I’m using the insteonPLM binding and it works great for my switches and dimmers, and it seems to be reporting the correct data to openhab, however when I change the setpoint, the value changes in openhab, but it remains the same on the thermostat. I went through the linking with insteon-terminal and the DB for both devices seems correct, but I noticed an extra responder in group 00 on my Thermostat database, could this be my problem? I can’t seem to delete it:
>>> thermostat.removeResponder("31.27.10","00")
getting db, be patient!
sent db query msg, incoming records: >>> 1 2 3 4 5 6 7 8 9
----- database -------
1fff 31.27.10 31.27.10 RESP 10100010 group: 00 data: 3c 50 44
1ff7 modem 2C.AE.A3 RESP 10100010 group: 00 data: 13 22 42
1fef modem 2C.AE.A3 CTRL 11100010 group: 01 data: 00 00 01
1fe7 modem 2C.AE.A3 CTRL 11100010 group: 02 data: 00 00 02
1fdf modem 2C.AE.A3 CTRL 11100010 group: 03 data: 00 00 03
1fd7 modem 2C.AE.A3 CTRL 11100010 group: 04 data: 00 00 04
1fcf modem 2C.AE.A3 CTRL 11100010 group: 05 data: 00 00 05
1fc7 modem 2C.AE.A3 CTRL 11100010 group: ef data: 03 1f ef
1fbf 00.00.00 00.00.00 (RESP) 00000000 group: 00 data: 00 00 00
----- end ------------
database complete, analyzing...
no matching found record, no action taken!
Please post your modem’s DB so we can see the modem’s controller links to the thermostat. The thermostat’s links to the modem you posted will only serve for the thermostat to report data to the Modem, but not for the modem to set any values on the thermostat.
Thanks! Here are the modem db:
0000 30.DA.8A 30.DA.8A RESP 10100010 group: 01 data: 00 00 00
0000 30.DA.8A 30.DA.8A CTRL 11100010 group: 00 data: 03 24 42
0000 2E.4C.6D 2E.4C.6D RESP 10100010 group: 01 data: 00 00 00
0000 2E.4C.6D 2E.4C.6D CTRL 11100010 group: 00 data: 03 0e 43
0000 2C.18.9B 2C.18.9B CTRL 11100010 group: 00 data: 03 08 42
0000 41.FD.B4 41.FD.B4 RESP 10100010 group: 01 data: 00 00 00
0000 41.FD.B4 41.FD.B4 CTRL 11100010 group: 00 data: 03 24 42
0000 40.9B.00 40.9B.00 CTRL 11100010 group: 00 data: 03 20 45
0000 thermostat 25.1A.12 RESP 10100010 group: 01 data: 00 00 01
0000 thermostat 25.1A.12 RESP 10100010 group: 02 data: 00 00 02
0000 thermostat 25.1A.12 RESP 10100010 group: 03 data: 00 00 03
0000 thermostat 25.1A.12 RESP 10100010 group: 04 data: 00 00 04
0000 thermostat 25.1A.12 RESP 10100010 group: 05 data: 00 00 05
0000 thermostat 25.1A.12 RESP 10100010 group: ef data: 00 00 ef
0000 thermostat 25.1A.12 CTRL 11100010 group: 00 data: 03 0b 0d
0000 47.04.5A 47.04.5A RESP 10100010 group: 01 data: 00 00 00
0000 47.04.5A 47.04.5A CTRL 11100010 group: 00 data: 03 24 42
0000 31.64.1A 31.64.1A RESP 10100010 group: 01 data: 00 00 00
0000 31.64.1A 31.64.1A CTRL 11100010 group: 00 data: 03 20 44
0000 30.01.28 30.01.28 CTRL 11100010 group: 00 data: 03 08 42
0000 31.69.71 31.69.71 CTRL 11100010 group: 00 data: 03 20 44
0000 44.DF.74 44.DF.74 RESP 10100010 group: 01 data: 00 00 00
0000 44.DF.74 44.DF.74 CTRL 11100010 group: 00 data: 03 24 42
0000 41.FB.9E 41.FB.9E RESP 10100010 group: 01 data: 00 00 00
0000 41.FB.9E 41.FB.9E CTRL 11100010 group: 00 data: 03 24 42
0000 41.FB.9E 41.FB.9E CTRL 11100010 group: 00 data: 03 24 42
0000 2E.4F.CF 2E.4F.CF RESP 10100010 group: 01 data: 00 00 00
0000 2E.4F.CF 2E.4F.CF CTRL 11100010 group: 00 data: 03 0e 43
0000 30.D9.27 30.D9.27 RESP 10100010 group: 01 data: 00 00 00
0000 30.D9.27 30.D9.27 CTRL 11100010 group: 00 data: 03 24 42
Just looking at my logs, and I actually don’t see log lines relating to the setpoint being set. I wonder if maybe there’s a problem with my item definitions? The numbers seem to be initialized fine and reflect changes that are made directly on the device? These are my items:
Number thermostatCoolPoint "cool point [%.1f °C]" { insteonplm="25.1A.12:F00.00.18#coolsetpoint" }
Number thermostatHeatPoint "heat point [%.1f °C]" { insteonplm="25.1A.12:F00.00.18#heatsetpoint" }
Number thermostatSystemMode "system mode [%d]" { insteonplm="25.1A.12:F00.00.18#systemmode" }
Number thermostatFanMode "fan mode [%d]" { insteonplm="25.1A.12:F00.00.18#fanmode" }
Number thermostatIsHeating "is heating [%d]" { insteonplm="25.1A.12:F00.00.18#isheating"}
Number thermostatIsCooling "is cooling [%d]" { insteonplm="25.1A.12:F00.00.18#iscooling"}
Number thermostatTempFahren "temperature [%.1f °F]" { insteonplm="25.1A.12:F00.00.18#tempfahrenheit" }
Number thermostatTempCelsius "temperature [%.1f °C]" { insteonplm="25.1A.12:F00.00.18#tempcelsius" }
Number thermostatHumidity "humidity [%.0f %%]" { insteonplm="25.1A.12:F00.00.18#humidity" }
edit: Ok, looking at my logs again, and it looks like I am getting a couple of warnings:
2018-01-30 20:47:49.832 [WARN ] [steonplm.internal.message.MsgFactory] - incoming message does not start with 0x02
2018-01-30 20:47:49.834 [WARN ] [ding.insteonplm.internal.driver.Port] - bad data received: incoming message does not start with 0x02
2018-01-30 20:47:49.835 [WARN ] [ding.insteonplm.internal.driver.Port] - got bad data back, must assume message was acked.
2018-01-30 20:47:50.348 [WARN ] [steonplm.internal.message.MsgFactory] - got unknown command code 0x00
2018-01-30 20:47:50.350 [WARN ] [ding.insteonplm.internal.driver.Port] - bad data received: got unknown command code 0x00
Hmm, seeing these warnings when I haven’t done any change to the set point. I’m really not sure what could be going on now
Just want to update this for any future googlers that might come across it. The problem was that I was controlling this through the api and sending the intended temperature in a PUT request to device/state as opposed to POST to the device route directly