Closed ade5hmukh closed 10 months ago
This is great, thanks for providing the required data. I'll get started on this soon, but it may take a couple of weeks. I'll post back when a testable version of ready.
@ade5hmukh Can you confirm a few things for me?
Thanks again!
Answers below:
https://www.alarm.com/web/api/devices/thermostats/ID-XXXX-1202/setState
It doesn't show boiler/condenser running but does show βοΈ for cooling and π₯ for heating if that's what you were asking.
supportsCirculateFanModeWhenOff means that the fan can be on in circulate mode when the system is neither heating nor cooling. -- This is really important to keep the air circulating in the house in an event of wildfires or AQI index is horrible outdoors and we want to circulate air indoors irrespective of heating/cooling on/off. But this can be only done through the device and not available on alarm.com.
hope this helps! thanks for working on it!
Nice detail -- thanks for that!
I have code that's ready to test. Can you update your integration to v0.2.12-beta.0? Let's see what happens.
If you don't have beta releases enabled in HACS, do the following:
i'm not sure what's wrong. please pardon my ignorance:
Setup failed for custom integration alarmdotcom: Requirements for alarmdotcom not found: ['pyalarmdotcomajax==0.4'].
8:39:03 PM β (ERROR) setup.py
Unable to install package pyalarmdotcomajax==0.4: ERROR: Could not find a version that satisfies the requirement pyalarmdotcomajax==0.4 (from versions: 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8, 0.1.10, 0.1.11, 0.1.12, 0.1.13, 0.2.0b0, 0.2.0b1, 0.2.0b2, 0.2.0b3, 0.2.0b4, 0.2.0b5, 0.2.0b6, 0.2.0b7, 0.2.0b8, 0.2.0b9, 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.2.5, 0.2.6, 0.2.7, 0.2.8, 0.2.9, 0.2.10, 0.3.0, 0.3.1, 0.3.2, 0.3.3, 0.3.4) ERROR: No matching distribution found for pyalarmdotcomajax==0.4 WARNING: You are using pip version 22.0.3; however, version 22.1.2 is available. You should consider upgrading via the '/usr/local/bin/python3 -m pip install --upgrade pip' command.
8:39:03 PM β (ERROR) util/package.py - message first occurred at 8:37:49 PM and shows up 3 times
updated pip but i know that wasn't the problem. how do i install pyalarmdotcomajax on HA docker instance?
Setup failed for custom integration alarmdotcom: Requirements for alarmdotcom not found: ['pyalarmdotcomajax==0.4'].
8:52:44 PM β (ERROR) setup.py
Unable to install package pyalarmdotcomajax==0.4: ERROR: Could not find a version that satisfies the requirement pyalarmdotcomajax==0.4 (from versions: 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8, 0.1.10, 0.1.11, 0.1.12, 0.1.13, 0.2.0b0, 0.2.0b1, 0.2.0b2, 0.2.0b3, 0.2.0b4, 0.2.0b5, 0.2.0b6, 0.2.0b7, 0.2.0b8, 0.2.0b9, 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.2.5, 0.2.6, 0.2.7, 0.2.8, 0.2.9, 0.2.10, 0.3.0, 0.3.1, 0.3.2, 0.3.3, 0.3.4) ERROR: No matching distribution found for pyalarmdotcomajax==0.4
8:52:44 PM β (ERROR) util/package.py - message first occurred at 8:51:26 PM and shows up 3 times
Oops, there was a hiccup with publishing the update to pypi. It should work now. Can you try again? You may need to remove / re-add the integration.
Ok, that worked. You have nailed basic cool/heat/off functionality. However, there are few kinks that I'm not sure if it can be fixed easily.
Alarm.com shows currently at 74 and set to 74:
In the above case: Issue was fixed when I hit reload on alarmdotcom integration.
Fan modes set doesn't create any log entry. Not that I care about logs but I don't seem to see if action actually was triggered or not. on the other hand, action is triggered and alarm.com turns ON the fan but it isn't reflecting on HA, as shown below: HA turn ON fan from AUTO mode:
Alarm.com shows fan ON.
Perhaps the above issue will be resolved when i reload the integration.
Idle/Off mode doesn't show up and it sticks to fan only mode by default. HA:
Alarm.com:
Thanks so much for quick turnaround! I'm happy irrespective of this issues because i can see my thermostat on HA :)
Can you send a debug log for the states that you're capturing in the screenshot?
For each item, set up as follows:
In Tab A:
In Tab B:
Then....
Thanks!
Actually, let's just put this on hold for a couple of weeks. I'll install an Alarm.com-compatible thermostat on my system and will just develop off of that.
This should work with the latest update.
Thanks! sorry for no responses past couple weeks. I'll test this update and report if any issues.
Hey -- have you been able to test?
Yes sir, all commands work fine but there's one slight issue that i'm not sure how/if we can fix. there are times, when we will use alarm.com app to change settings on thermostat instead of the home-assistant. those changes don't reflect until you send any command from home-assistant to the thermostat. what we perhaps need is keepalive/status message every certain seconds/minutes? it may not be a dealbreaker to me, but there are times when data on home-assistant doesn't reflect the true state of thermostat.
Would you mind send me a debug dump (like in my screenshot above) when the two system go out of sync? HA definitely syncs, it may just be misinterpreting the states. Also, when you post the log, please let me know what Alarm.com shows vs what Home Assistant shows.
Would you mind send me a debug dump (like in my screenshot above) when the two system go out of sync? HA definitely syncs, it may just be misinterpreting the states. Also, when you post the log, please let me know what Alarm.com shows vs what Home Assistant shows.
Hello, I just installed the alarm.com integration and my thermostat isnt working as expected. My provider is embridge and I am using Celsius. Home assistant Alarm.com
I just changed my home assistant unit to Fahrenheit and now the home assistant value is 0.5 more than the alarm.com reported value
@AalianKhan I am having the same issue with celcius. Did you ever solve it?
Nope, still not solved
Hey @AalianKhan @Raul-7-7: Can you confirm whether this works with the newest version of the integration?
@elahd I don't see my thermostat at all now. I tried reloading the integration as well.
Are you on the latest version of the integration and Home Assistant?
Yup, I am on version 3.0.4
This works now
@elahd Hey,
Thank you for fixing the issue. I noticed that the step is set to 1. Am I able to change it to a step of 0.5 instead?
Thanks
Thank @elahd works great, however, I have the same question as @AalianKhan , is there a way to change the step to 0.5 instead?
@AalianKhan created this issue: https://github.com/pyalarmdotcom/alarmdotcom/issues/353
The alarmdotcom maintainers don't have direct access to all Alarm.com devices. We need your help to support new devices.
Please open one issue per device.
Which device would you like us to support? Provide the device name and a link to a page with device details.
Where does this device appear in the Alarm.com mobile app?
Thermostats
What types of actions does this device support? E.g.: Garage doors support opening and closing. Alarm systems support arming (home, away, and night modes) and disarming.Which provider do you use? E.g.: Alarm Net, ADT, Surety Home, etc.
Safe Haven Security
Include pyalarmdotcomajax Server Output This is an important step. It's helpful for us to see how this device is represented on the Alarm.com server. We have a tool for dumping this data via the command line.pip install pyalarmdotcomajax
.adc -u YOUR_USERNAME -p YOUR_PASSWORD -c YOUR_2FA_COOKIE -vx
Include Action Endpoints This is a more technical than the last step, but in order to support actions for devices we need you to use a tool like Wireshark of Fiddler Classic to tell use which endpoints the Alarm.com app uses to control these devices. For example, for a garage door, we would need the following information:
(Opening a garage door requires submitting a request to
https://www.alarm.com/web/api/devices/garageDoors/open
.)How do I do this? Packet captures show TLS encrypted data.
Edit: Looked through other open issues and found out about httptoolkit.Post requests made to:
https://www.alarm.com/web/api/devices/thermostats/ID-XXXX-1202/setState
{ "desiredState": 2, "statePollOnly": false }
{ "desiredState": 1, "statePollOnly": false }
{ "desiredFanMode": 1, "desiredFanDuration": 1, "statePollOnly": false }
{ "desiredCoolSetpoint": 74, "statePollOnly": false }
{ "desiredHeatSetpoint": 71, "statePollOnly": false }
{ "data": { "id": "ID-XXXX-1202", "type": "devices/thermostat", "attributes": { "requiresSetup": false, "forwardingAmbientTemp": 77, "minHeatSetpoint": 40, "maxHeatSetpoint": 90, "minCoolSetpoint": 50, "maxCoolSetpoint": 99, "minAuxHeatSetpoint": 40, "maxAuxHeatSetpoint": 90, "heatSetpoint": 71, "desiredHeatSetpoint": 71, "coolSetpoint": 74, "desiredCoolSetpoint": 74, "homeHeatSetpoint": 70, "homeCoolSetpoint": 77, "awayHeatSetpoint": 68, "awayCoolSetpoint": 76, "sleepHeatSetpoint": 72, "sleepCoolSetpoint": 74, "setpointOffset": 1, "autoSetpointBuffer": 3, "thirdPartySettingsUrlDesc": null, "thirdPartySettingsUrl": null, "state": 2, "desiredState": 2, "inferredState": 3, "scheduleMode": 1, "fanMode": 0, "desiredFanMode": 0, "fanDuration": null, "localDisplayLockingMode": 0, "desiredLocalDisplayLockingMode": null, "hasRtsIssue": false, "isControlled": false, "supportsSetpoints": true, "isPoolController": false, "supportsOffMode": true, "supportsHeatMode": true, "supportsCoolMode": true, "supportsAutoMode": false, "supportsSmartSchedules": false, "supportsAuxHeatMode": false, "supportsSchedules": true, "supportsFanMode": true, "supportsIndefiniteFanOn": false, "supportedFanDurations": [ 1, 2, 3, 24 ], "supportsCirculateFanModeAlways": false, "supportsCirculateFanModeWhenOff": true, "supportsRts": null, "supportsLocalDisplayLocking": false, "supportsPartialLocalDisplayLocking": false, "supportsHvacAnalytics": false, "supportsThirdPartySettings": false, "hasPendingTempModeChange": false, "hasPendingSetpointChange": false, "hasPendingHeatSetpointChange": false, "hasPendingCoolSetpointChange": false, "ambientTemp": 77, "isPaired": false, "supportsPairing": false, "tempForwardingActive": true, "supportsHumidity": false, "humidityLevel": null, "managedDeviceType": 15, "hasState": true, "canBeRenamed": true, "canBeDeleted": false, "canAccessWebSettings": true, "canAccessAppSettings": true, "webSettings": 1011, "canAccessTroubleshootingWizard": false, "troubleshootingWizard": null, "canBeLinkedToVideoDevice": false, "videoDeviceLinkDeviceIds": [], "macAddress": "", "manufacturer": "Honeywell", "isOAuth": false, "isZWave": true, "supportsCommandClassBasic": false, "isMalfunctioning": false, "canBeSaved": true, "canChangeDescription": true, "description": "Upstairs Thermostat", "deviceModelId": 4293, "canConfirmStateChange": true, "canReceiveCommands": true, "remoteCommandsEnabled": true, "hasPermissionToChangeState": true, "deviceIcon": { "icon": 37 }, "batteryLevelNull": 95, "lowBattery": false, "criticalBattery": false }, "relationships": { "ruleSuggestions": { "data": [ { "id": "1202_1", "type": "automation/rules/ruleSuggestion" }, { "id": "1202_5", "type": "automation/rules/ruleSuggestion" } ], "meta": { "count": "2" } }, "thermostatSettingsTemplate": { "data": null }, "remoteTemperatureSensors": { "data": [], "meta": { "count": "0" } }, "boilerControlSystem": { "data": null }, "valveSwitches": { "data": [], "meta": { "count": "0" } }, "peakProtect": { "data": { "id": "ID-XXXX-1202", "type": "automation/peak-protect" } }, "controlledThermostats": { "data": [], "meta": { "count": "0" } }, "system": { "data": { "id": "8838516", "type": "systems/system" } }, "stateInfo": { "data": null } } }, "included": [], "meta": { "transformer_version": "1.1" } }