arachnetech / homebridge-mqttthing

A plugin for Homebridge allowing the integration of many different accessory types using MQTT.
Apache License 2.0
462 stars 104 forks source link

unable to correctly configure thermostat #669

Open anishp55 opened 5 months ago

anishp55 commented 5 months ago

I am not sure what is happening with homebridge-mqttthing. the thermostat is configured to return temps in F, checking the mqtt topic for the themostat also shows that the temp is in F, yet inside of the Home app the temperature is shown to be above 100 degrees. I am unable to establish why this is happening since i cannot see the logs for the plugin as well.

anishp55 commented 5 months ago

it appears the thermostat in homekit is in Celsius by default. But now when the bridge restarts, the Home app doesn't update the thermostats status. my current config is as follows. if i update the state in the home app then it shows, but otherwise it just shows the thermostat as off.

{
            "type": "thermostat",
            "name": "Honeywell",
            "url": "mqtt://172.16.85.4:1883",
            "topics": {
                "getCurrentHeatingCoolingState": {
                    "topic" : "zwave/Home/Thermostat/thermostat_operating_state/endpoint_0/state",
                    "apply" : "return message;"
                },
                "getTargetHeatingCoolingState": {
                    "topic":  "zwave/Home/Thermostat/thermostat_operating_state/endpoint_0/mode",
                    "apply": "return message"
                },
                "setTargetHeatingCoolingState": {
                    "topic": "zwave/Home/Thermostat/thermostat_mode/endpoint_0/mode/set",
                    "apply": "return message;"
                },
                "getCurrentTemperature": {
                    "topic": "zwave/Home/Thermostat/sensor_multilevel/endpoint_0/Air_temperature",
                    "apply": "return Math.round(( message - 32) * (5/9));"
                },
                "setTargetTemperature": {
                    "topic": "zwave/Home/Thermostat/thermostat_setpoint/endpoint_0/setpoint/1/set",
                    "apply": "return Math.round( message * (9/5) + 32) ;"
                },
                "getTargetTemperature": {
                    "topic": "zwave/Home/Thermostat/thermostat_setpoint/endpoint_0/setpoint/1",
                    "apply": "return Math.round(( message - 32) * (5/9));"
                },
                "getCurrentRelativeHumidity": "zwave/Home/Thermostat/49/0/Humidity"
            },
            "heatingCoolingStateValues": [0, 1, 2, 3] ,
            "restrictHeatingCoolingState": [
                0,
                1,
                2
            ],
            "temperatureDisplayUnitsValues": ["FAHRENHEIT"],
            "minTemperature": 18,
            "maxTemperature": 29.5,
            "manufacturer": "Honeywell",
            "model": "TH6320ZW",
            "firmwareRevision": "1.3",
            "accessory": "mqttthing"
}