jvmahon / Homebridge-HomeSeer4

Homebridge Plugin for HomeSeer 3 and 4
28 stars 8 forks source link

Thermostat changes not send to Homeseer #163

Closed AlanSmithe closed 2 years ago

AlanSmithe commented 2 years ago

I've created a thermostat with virtual devices attached to it. Homebridge is able to read the values from HomeSeer but changes (like setting the temperature or setting the state (Off/Heating/Cooling) isn't send to Homeseer.

Whenever I change something in Home there isn't any logging in Homebridge nor HomeSeer.

            {
                "type": "Thermostat",
                "name": "Living Room",
                "ref": 847,
                "stateRef": 498,
                "controlRef": 498,
                "heatingSetpointRef": 851,
                "coolingSetpointRef": 499,
                "temperatureUnit": "C"
            },
jvmahon commented 2 years ago

The "stateRef" and "controlRef" shouldn't be the same thing.

See https://github.com/jvmahon/Homebridge-HomeSeer4/wiki/Thermostats

"stateRef" == what your system is actually doing at this time "controRef" == what you have set it to do.

So, e.g., controlRef would point to the control that you use to set your system to heat / cool / auto.

When a system is actually running in, for example, heat, the actual system will switch between idle and heat as needed. the stateRef points to the device indicating this.

AlanSmithe commented 2 years ago

Ah I see, on this page https://github.com/jvmahon/Homebridge-HomeSeer4/wiki/Setting-Up-Your-Config.json-file it said that it could be the same device.

The thermostat in Home now gives me the options Off/Heating/Cooling/Auto. Whenever I click the buttons of the virtual devices in HomeSeer I see it changes in the Home app but it not sending anything back to HomeSeer when I click the buttons in the app. Nothing in the log's of Homebridge or HomeSeer

jvmahon commented 2 years ago

I updated the Wiki to be clearer:

image

jvmahon commented 2 years ago

The thermostat in Home now gives me the options Off/Heating/Cooling/Auto. Whenever I click the buttons of the virtual devices in HomeSeer I see it changes in the Home app but it not sending anything back to HomeSeer when I click the buttons in the app. Nothing in the log's of Homebridge or HomeSeer

Sorry, don't know what could be happening there. Show me how you have the virtual device set up and maybe I can look into this at some time. However, I'm extremely busy with my "real" work for the next month, so unless the issue is obvious to me, it will be a while before I can get back to you on this.

AlanSmithe commented 2 years ago

Understandable, I've also read that you moved from HomeSeer to Hubitat, so I really appreciate you still put your time and effort in the plugin.

This is an overview of my Virtual devices as well of the devices created by MQTT.

Screenshot 2021-12-30 at 15 11 09

State and Control are setup like this

Screenshot 2021-12-30 at 15 11 39

I only created the coolingsetpoint because it generated an error in Homebridge if I didn't specify a ref. This is a device with a value of 0.

Whenever I change a value in HomeSeer I can see this back in the logging of Homebridge as well in the Home App

Screenshot 2021-12-30 at 15 13 45

Whenever I change a setting (set the temperature or change the state) in the Home app I don't see anything happen in the log's.

AlanSmithe commented 2 years ago

This is my new config

            {
                "type": "Thermostat",
                "name": "Living Room",
                "ref": 847,
                "stateRef": 854,
                "controlRef": 855,
                "heatingSetpointRef": 851,
                "coolingSetpointRef": 856,
                "temperatureUnit": "C"
            },
jvmahon commented 2 years ago

I'm not sure this will do it, but ...

It looks like the "Control use" fields for your device are not properly set. I.e., you have 0 = Off 1 = On 2 = On alternate 3 = ??

They should be 0 = ThermModeOff 1 = ThermModeHeat 2 = ThermModeCool 3 = ThermModeAuto

Also, check that 854 and 855 use the same numeric coding - i.e., they both use 0 for Off, 1 for Heat, 2 for Cool.

Also, most HVACs that have Heat / Cool also have Auto for the controlRef (but not for the stateRef). I noted that your system doesn't have an Auto. I'd have to check if that causes a fault. Maybe add an "3 = ThermModeAuto" for the moment as another value for device 855 and see if that helps.

Thermostats were the hardest device to implement in this code. It seems there is a complete lack of consistency among driver implementations and without having the actual device / driver myself I am limited in what I can do to help. Also, I no longer use HomeSeer, so that also makes this quite difficult.

AlanSmithe commented 2 years ago

Jup that did the trick. I also had to set coolingSetpoint and heatingSetpoint to a value higher then 9 and it started working. Thanks a lot man.

jvmahon commented 2 years ago

I added a quick update to the wiki to explain about the "Control Use" settings. Hopefully this will help the next person!

image