steilerDev / homebridge-openhab2-complete

A homebridge plugin for openHAB, that has the expectation to fully support all Services offered by Apple's Homekit Accessory Protocol (HAP)
GNU General Public License v3.0
52 stars 16 forks source link

Thermostat errors - when trying to allow Heating (on Off and Auto) #101

Open psyciknz opened 2 years ago

psyciknz commented 2 years ago

I've just changed my thermostats for openhab to include a modeItem and modeItemCharacteristic, in the hope that I can get it to show the difference between the central heating On, and in Auto Mode.

{
                    "name": "Central Heating",
                    "type": "thermostat",
                    "currentTempItem": "temperature_average",
                    "targetTempItem": "heating_current_target_temp",
                    "heatingItem": "heating_proxy",
                    "modeItem": "heating_current_mode",
                    "modeItemCharacteristic": "Heating",
                    "tempUnit": "Celsius",
                    "minTemp": "9",
                    "maxTemp": "23",
                    "minStep": "0.1"
                },

But after this change I now see these errors, talking about the cooling state. Do I need to other items (these don't seem to be mentioned in the docs) that are attached to nothing?

[7/11/2021, 8:32:53 PM] [openHAB2-Complete] Received state: 16.00 (transformed to 16) for Central Heating [temperature_average]
[7/11/2021, 8:32:53 PM] [openHAB2-Complete] Getting value for heating_current_mode from openHAB, because no cached state exists
[7/11/2021, 8:32:53 PM] [homebridge-openhab2-complete] This plugin threw an error from the characteristic 'Current Heating Cooling State': Unhandled error thrown inside read handler for characteristic: request is not defined. See https://git.io/JtMGR for more info.
[7/11/2021, 8:32:53 PM] [openHAB2-Complete] Received state: 16.0 (transformed to 16) for Central Heating [heating_current_target_temp]
[7/11/2021, 8:32:53 PM] [openHAB2-Complete] Getting value for heating_current_mode from openHAB, because no cached state exists
[7/11/2021, 8:32:53 PM] [homebridge-openhab2-complete] This plugin threw an error from the characteristic 'Target Heating Cooling State': Unhandled error thrown inside read handler for characteristic: request is not defined. See https://git.io/JtMGR for more info.
[7/11/2021, 8:32:59 PM] [openHAB2-Complete] Received state: 16.00 (transformed to 16) for Central Heating [temperature_average]
[7/11/2021, 8:32:59 PM] [openHAB2-Complete] Getting value for heating_current_mode from openHAB, because no cached state exists
[7/11/2021, 8:32:59 PM] [homebridge-openhab2-complete] This plugin threw an error from the characteristic 'Current Heating Cooling State': Unhandled error thrown inside read handler for characteristic: request is not defined. See https://git.io/JtMGR for more info.
[7/11/2021, 8:32:59 PM] [openHAB2-Complete] Received state: 16.0 (transformed to 16) for Central Heating [heating_current_target_temp]
[7/11/2021, 8:32:59 PM] [openHAB2-Complete] Getting value for heating_current_mode from openHAB, because no cached state exists
[7/11/2021, 8:32:59 PM] [homebridge-openhab2-complete] This plugin threw an error from the characteristic 'Target Heating Cooling State': Unhandled error thrown inside read handler for characteristic: request is not defined. See https://git.io/JtMGR for more info

Update

So I've just updated to the latest version of the plugin (homebridge-openhab2-complete v1.3.3) Now when in homekit switching the values between off, heat, cool (which shouldn't be there) and auto, on auto I see this in the log:

[7/11/2021, 8:52:07 PM] [homebridge-openhab2-complete] This plugin generated a warning from the characteristic 'Current Heating Cooling State': characteristic was supplied illegal value: number 3 exceeded maximum of 2. See https://git.io/JtMGR for more info.

Same config as above, I tell it I only have heating.

Auto guidance? I have states I can put my central heating in (defined by openhab) as On, Off and Schedule, I'm mapping On to Heat, Off to off, and Schedule to Auto modes in homebridge.

steilerDev commented 2 years ago

Hi @psyciknz ,

I think i found a logic issue in my code...since I have the same item for targetHeatingCoolingState (Which can be set to Heating, Cooling, Off and Auto) and currentHeatingCoolingState (Which can only be set to Heating, Cooling, Off), when setting the target state, the current state is updated as well and will produce the above error...I think I need to split this into two items, one setting and one reading the current state, alternatively I could scratch the Auto setting...

Let me know what you think.

psyciknz commented 2 years ago

Auto doesn't seem to do what I expected, in terms of ui.

I expected that if it was in auto and the heating switch was on, it would show something in the ui to show the state of the heating. But it doesn't seem to change.

So it could go, but then if you did have a heating and cooling system how would you control it? Mine is pretty much just for reflecting state.

psyciknz commented 2 years ago

Could they be split into individual thermostats with different capabilities rather than one that tries to do all?

Here's what mine looks like when I set the heating to on (forced on) - ignore the heating to temp. image

But here's auto - which is my schedule mode that if temp gets below (in this case 16, it will turn on). But in this case the actual heating switch is actually on. Should the top left blue circle with 16 in it, go orange if the heating is running? image