core
core copied to clipboard
Missing support/visibility of thermostats (floor heating) through the Fibaro integration using Home center 3
The problem
Missing support/visibility for thermostats (floor heating) through the Fibaro integration using Home center 3. The thermostats (Device type: com.fibaro.hvacSystem) is not visible in Home assistant.
For example:

What version of Home Assistant Core has the issue?
2022.4.3
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant OS
Integration causing the issue
Fibaro
Link to integration documentation on our website
https://www.home-assistant.io/integrations/fibaro/
Diagnostics information
No response
Example YAML snippet
No response
Anything in the logs that might be useful for us?
No response
Additional information
No response
fibaro documentation fibaro source (message by IssueLinks)
Hey there @rappenze, mind taking a look at this issue as it has been labeled with an integration (fibaro) you are listed as a code owner for? Thanks!
(message by CodeOwnersMention)
Unfortunately I do not have such a device and also no HC3.
Can you please add here the json response from HC3 so we can support that device correctly? Relevant is the output of http://<FIBARO_HOST>/api/devices (you have to enter fibaro credentials). Just add the part for the relevant device or the complete output. If it contains private data just anonymize that parts.
Many thanks.
@rappenze, thx for replying back to me. Here is the JSON-code for the "device-category":
{ "id": 168, "name": "Romtermostat", "roomID": 227, "view": [ { "assetsPath": "dynamic-plugins/com.fibaro.hvacSystem", "name": "com.fibaro.hvacSystem", "translatesPath": "/assets/i18n/com.fibaro.hvacSystem", "type": "ts" }, { "assetsPath": "dynamic-plugins/energy", "name": "energy", "translatesPath": "/assets/i18n/energy", "type": "ts" }, { "assetsPath": "dynamic-plugins/power", "name": "power", "translatesPath": "/assets/i18n/power", "type": "ts" } ], "type": "com.fibaro.hvacSystem", "baseType": "com.fibaro.device", "enabled": true, "visible": true, "isPlugin": false, "parentId": 165, "viewXml": false, "hasUIView": false, "configXml": false, "interfaces": [ "energy", "hcSchedule", "heatingThermostatSetpoint", "overrideTime", "power", "thermostatMode", "thermostatOperatingState", "zwave", "zwaveMultiChannelAssociation" ], "properties": { "pollingTimeSec": 0, "zwaveCompany": "Heatit", "zwaveInfo": "3,6,7", "zwaveVersion": "4.0", "categories": [ "climate" ], "climateZoneId": 10, "configured": true, "dead": false, "deadReason": "", "deviceControlType": 1, "deviceIcon": 70, "deviceRole": "Other", "emailNotificationID": 0, "emailNotificationType": 0, "endPointId": 1, "energy": 4195.9, "heatingThermostatSetpoint": 20, "heatingThermostatSetpointCapabilitiesMax": 35, "heatingThermostatSetpointCapabilitiesMin": 5, "heatingThermostatSetpointFuture": 20, "heatingThermostatSetpointStep": { "C": 0.5, "F": 1 }, "log": "", "logTemp": "", "manufacturer": "", "markAsDead": true, "model": "", "nodeId": 26, "overridesSchedule": false, "parametersTemplate": 0, "power": 0.31, "productInfo": "1,155,0,3,2,3,4,0", "pushNotificationID": 0, "pushNotificationType": 0, "saveLogs": true, "saveToEnergyPanel": true, "serialNumber": "", "setpointExpiryDate": 4294967295, "showEnergy": true, "smsNotificationID": 0, "smsNotificationType": 0, "storeEnergyData": true, "supportedDeviceRoles": [ "Other" ], "supportedThermostatModes": [ "Off", "Heat" ], "thermostatMode": "Off", "thermostatModeFuture": "", "thermostatModeManufacturerData": [], "thermostatOperatingState": "Idle", "timestamp": 0, "unit": "C", "useTemplate": true, "userDescription": "" }, "actions": { "reconfigure": 0, "reset": 0, "setHeatingThermostatSetpoint": 1, "setThermostatMode": 1, "setTime": 1 }, "created": 1649970369, "modified": 1649970461, "sortOrder": 98 },
Please let me know if you missing something or if you want the paste in other format.
Best regards,
A little offtopic, but if it's possible to add this binary switch too (ordinary a quickapp/virtual device in HC3) , that would be great. Perfect as a solution for starting scenes in HC3 based on the conditions set from HA.
JSON-code: { "id": 562, "name": "test", "roomID": 225, "view": [ { "assetsPath": "dynamic-plugins/com.fibaro.binarySwitch", "name": "com.fibaro.binarySwitch", "translatesPath": "/assets/i18n/com.fibaro.binarySwitch", "type": "ts" }, { "type": "json" } ], "type": "com.fibaro.binarySwitch", "baseType": "com.fibaro.actor", "enabled": true, "visible": true, "isPlugin": true, "parentId": 0, "viewXml": true, "hasUIView": false, "configXml": false, "interfaces": [ "light", "quickApp" ], "properties": { "apiVersion": "1.2", "categories": [ "lights" ], "dead": false, "deadReason": "", "deviceControlType": 2, "deviceIcon": 2, "deviceRole": "Light", "icon": { "path": "assets/icon/fibaro/onoff/onoff0.png", "source": "HC" }, "isLight": true, "log": "", "logTemp": "", "manufacturer": "", "model": "", "quickAppVariables": [], "saveLogs": true, "state": false, "supportedDeviceRoles": [ "Light", "Drencher", "Pin", "NightLamp", "Kettle", "Bracket", "AirConditioner", "AlarmAlarm", "Coffee", "GardenLamp", "TvSet", "CeilingFan", "Toaster", "Radio", "RoofWindow", "Other", "AlarmState", "AlarmArm", "VideoGateBell", "VideoGateOpen", "Valve" ], "typeTemplateInitialized": true, "uiCallbacks": [], "useEmbededView": true, "userDescription": "", "value": false, "viewLayout": { "$jason": { "body": { "header": { "style": { "height": "0" }, "title": "quickApp_device_57" }, "sections": { "items": [] } }, "head": { "title": "quickApp_device_57" } } } }, "actions": { "toggle": 0, "turnOff": 0, "turnOn": 0 }, "created": 1650315830, "modified": 1650315830, "sortOrder": 386 }
Best regards,
The binary switch should already be available if you select "Import entities from fibaro plugins?" when you add the integration.

You can only add all entities from quickapps / plugins or none.
Oh, I have not noticed that checkbox. Thx for the notice.
Is the JSON-code pasted earlier for the HVAC devices OK?
Best regards,
The Json should be enough to implement this feature. Unfortunately it is quite different to existing fibaro climate devices so it needs a bit more work than I expected initially.
I implemented that and created the PR #72300.
@spernesen Because I do not have the needed devices to test it, are you willing to checkout this branch and test if the change works? Probably there is also some other people out there which has this devices and are willing to test this change?
Hello,
Thx! I can do that with pleasure, but I'm not quite sure how to test the branch @rappenze? Is there any simple turtorial for how to do it?
There is a tutorial how to install development environment here: https://developers.home-assistant.io/docs/development_environment/
I am very new to this and have never tested someone's PR before, but I think I've done it correctly and am seeing the following error.
2022-05-30 12:46:11 ERROR (MainThread) [homeassistant.components.climate] Error while setting up fibaro platform for climate Traceback (most recent call last): File "/workspaces/core/homeassistant/helpers/entity_platform.py", line 249, in _async_setup_platform await asyncio.shield(task) File "/workspaces/core/homeassistant/components/fibaro/climate.py", line 111, in async_setup_entry [ File "/workspaces/core/homeassistant/components/fibaro/climate.py", line 112, in FibaroThermostat(device) File "/workspaces/core/homeassistant/components/fibaro/climate.py", line 199, in init op_modes = prop.supportedThermostatModes.split(",") File "/usr/local/lib/python3.9/site-packages/fiblary3/client/v4/models.py", line 72, in getitem return list.getitem(self, key) TypeError: list indices must be integers or slices, not str 2022-05-30 12:46:11 ERROR (MainThread) [homeassistant.components.sensor] fibaro: Error on device update! Traceback (most recent call last): File "/workspaces/core/homeassistant/helpers/entity_platform.py", line 431, in _async_add_entity await entity.async_device_update(warning=False) File "/workspaces/core/homeassistant/helpers/entity.py", line 736, in async_device_update await task File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) File "/workspaces/core/homeassistant/components/fibaro/sensor.py", line 147, in update self.current_value = float(self.fibaro_device.properties.value) TypeError: float() argument must be a string or a number, not 'RecursiveDict' 2022-05-30 12:46:11 ERROR (MainThread) [homeassistant.components.sensor] fibaro: Error on device update! Traceback (most recent call last): File "/workspaces/core/homeassistant/helpers/entity_platform.py", line 431, in _async_add_entity await entity.async_device_update(warning=False) File "/workspaces/core/homeassistant/helpers/entity.py", line 736, in async_device_update await task File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) File "/workspaces/core/homeassistant/components/fibaro/sensor.py", line 147, in update self.current_value = float(self.fibaro_device.properties.value) TypeError: float() argument must be a string or a number, not 'RecursiveDict'
Many thanks for the feedback. Unfortunately the errors are quite strange so I'm not sure if your setup was wrong or if I really made an error in the new code. Also 2 out of 3 errors are thrown from places where no code changes have been added. So I'm a bit confused...
Hi @rappenze!
I've checked out the easiest way for me to test the branch for me.
If you could add a "version-parameter" to the "manifest.json" file next time you doing a update, I can add the "beta branch" as a custom component and increase the version with one number. The custom component will then override the stable Fibaro integration. I will return any errors from the log.
A example from the HACS-integration:

Regards, Philip
Unfortunately adding a version to core integrations is not wished: https://developers.home-assistant.io/docs/creating_integration_manifest/#version
Hello @rappenze I also have such devices, I will try to test it, while I will post my json here for two types of devices:
{ "id": 227, "name": "224.1", "roomID": 221, "view": [{ "assetsPath": "dynamic-plugins/com.fibaro.hvacSystem", "name": "com.fibaro.hvacSystem", "translatesPath": "/assets/i18n/com.fibaro.hvacSystem", "type": "ts" } ], "type": "com.fibaro.hvacSystem", "baseType": "com.fibaro.device", "enabled": true, "visible": true, "isPlugin": false, "parentId": 224, "viewXml": false, "hasUIView": false, "configXml": false, "interfaces": ["coolingThermostatSetpoint", "energySaveHeatingThermostatSetpoint", "heatingThermostatSetpoint", "thermostatMode", "zwave", "zwaveMultiChannelAssociation"], "properties": { "pollingTimeSec": 0, "zwaveCompany": "Heatit", "zwaveInfo": "3,5,3", "zwaveVersion": "3.4", "categories": ["climate"], "configured": true, "coolingThermostatSetpoint": 0.0, "coolingThermostatSetpointCapabilitiesMax": 35.0, "coolingThermostatSetpointCapabilitiesMin": 5.0, "coolingThermostatSetpointFuture": 0.0, "coolingThermostatSetpointStep": { "C": 0.5, "F": 1.0 }, "dead": false, "deadReason": "", "deviceControlType": 1, "deviceIcon": 70, "deviceRole": "Other", "endPointId": 1, "energySaveHeatingThermostatSetpoint": 0.0, "energySaveHeatingThermostatSetpointCapabilitiesMax": 35.0, "energySaveHeatingThermostatSetpointCapabilitiesMin": 5.0, "energySaveHeatingThermostatSetpointFuture": 0.0, "energySaveHeatingThermostatSetpointStep": { "C": 0.5, "F": 1.0 }, "heatingThermostatSetpoint": 23.5, "heatingThermostatSetpointCapabilitiesMax": 35.0, "heatingThermostatSetpointCapabilitiesMin": 5.0, "heatingThermostatSetpointFuture": 23.5, "heatingThermostatSetpointStep": { "C": 0.5, "F": 1.0 }, "log": "", "logTemp": "", "manufacturer": "", "markAsDead": true, "model": "", "nodeId": 32, "parametersTemplate": 846, "productInfo": "1,155,0,3,2,2,3,4", "saveLogs": true, "serialNumber": "", "setpointExpiryDate": 0, "supportedDeviceRoles": ["Other"], "supportedThermostatModes": ["Off", "Heat", "Cool", "EnergyHeat"], "thermostatMode": "Off", "thermostatModeFuture": "Off", "thermostatModeManufacturerData": [], "unit": "C", "useTemplate": true, "userDescription": "" }, "actions": { "reconfigure": 0, "setCoolingThermostatSetpoint": 1, "setEnergySaveHeatingThermostatSetpoint": 1, "setHeatingThermostatSetpoint": 1, "setThermostatMode": 1 }, "created": 1656525105, "modified": 1656525215, "sortOrder": 188 }
and
{ "id": 251, "name": "rad176.0", "roomID": 221, "view": [{ "assetsPath": "dynamic-plugins/com.fibaro.hvacSystem", "name": "com.fibaro.hvacSystem", "translatesPath": "/assets/i18n/com.fibaro.hvacSystem", "type": "ts" } ], "type": "com.fibaro.hvacSystem", "baseType": "com.fibaro.device", "enabled": true, "visible": true, "isPlugin": false, "parentId": 176, "viewXml": false, "hasUIView": false, "configXml": false, "interfaces": ["battery", "fibaroFirmwareUpdate", "heatingThermostatSetpoint", "thermostatMode", "zwave", "zwaveAlarm", "zwaveProtection"], "properties": { "pollingTimeSec": 0, "zwaveCompany": "Eurotronics", "zwaveInfo": "3,4,61", "zwaveVersion": "0.15", "RFProtectionState": 0, "RFProtectionSupport": 0, "alarmLevel": 0, "alarmType": 0, "batteryLevel": 90, "batteryLowNotification": true, "categories": ["climate"], "configured": true, "dead": false, "deadReason": "", "defInterval": 0, "deviceControlType": 1, "deviceIcon": 70, "deviceRole": "Other", "endPointId": 0, "firmwareUpdate": { "info": "", "progress": 0, "status": "UpToDate", "updateVersion": "0.15" }, "heatingThermostatSetpoint": 20.0, "heatingThermostatSetpointCapabilitiesMax": 28.0, "heatingThermostatSetpointCapabilitiesMin": 8.0, "heatingThermostatSetpointFuture": 20.0, "heatingThermostatSetpointStep": { "C": 0.5, "F": 1.0 }, "localProtectionState": 0, "localProtectionSupport": 7, "log": "", "logTemp": "", "manufacturer": "", "markAsDead": true, "maxInterval": 0, "minInterval": 0, "model": "", "nodeId": 23, "parametersTemplate": 0, "productInfo": "1,72,0,3,0,1,0,15", "protectionExclusiveControl": 0, "protectionExclusiveControlSupport": false, "protectionState": 0, "protectionTimeout": 0, "protectionTimeoutSupport": false, "saveLogs": true, "serialNumber": "", "setpointExpiryDate": 0, "stepInterval": 0, "supportedDeviceRoles": ["Other"], "supportedThermostatModes": ["Off", "Heat", "EnergyHeat", "FullPower"], "thermostatMode": "Heat", "thermostatModeFuture": "", "thermostatModeManufacturerData": [], "unit": "C", "updateVersion": "", "useTemplate": true, "userDescription": "" }, "actions": { "abortUpdate": 1, "reconfigure": 0, "retryUpdate": 1, "setHeatingThermostatSetpoint": 1, "setInterval": 1, "setThermostatMode": 1, "startUpdate": 1, "updateFirmware": 1 }, "created": 1656525105, "modified": 1656525304, "sortOrder": 212 }
Traceback (most recent call last):
File "/workspaces/core/homeassistant/helpers/entity_platform.py", line 250, in _async_setup_platform
await asyncio.shield(task)
File "/workspaces/core/homeassistant/components/fibaro/climate.py", line 111, in async_setup_entry
[
File "/workspaces/core/homeassistant/components/fibaro/climate.py", line 112, in
Thanks for your feedback, so it looks like I implemented something wrongly with the data model. Give me some time, I think I need to write some tests so that I can at least ensure that the basics of my code works.
Ok, no problem. Thank you! I'm ready to try when you say
Hello @rappenze , can I help you?
For sure you're welcome to fix the code as needed if you have the according knowledge.
But in the meanwhile I was able to add tests to verify the new code in the PR and also i fixed some problems. Additionally I checked that the additional JSON added should as well work.
So if you can test again that would be a great help.
Hey @rappenze Looks great! without errors added to the main page I'll test and then come back
Hello @rappenze Everything works! Looking forward to the release! ;) If you need to check something specific, I'm always ready.
Thanks for your feedback. I opened the PR so now it will go through code review and hopefully be merged in the near future.
Hello, my thermostats are also not visible in latest HAOS. How is the integration looking? Or is it already available in the dev branch? Is there something I can do to make it work? Thank you!
Hello, @rappenze please tell me, I see that PR has moved to the editing stage Looking forward to this change in release)
I replaced the PR with a new one because it was never reviewed, probably because it was too big. Also in the meantime the typings have been added in the same file in a separate PR so mine was not mergeable anymore. Let's hope the new PR get's more attention.
Also just noticed that i can only see temperature, but not the actual switches of the hvac switches. I see your PR has gotten a review too, if you need more feedback i believe i have the same setup/requirement (just @ my name if needed)
Hi, I’m keen for this merger to be added. I’m stuck without being able to control the temperature through HA, and holding back on buying more till it works Any idea on when it might be released, or if I can get a pre release version?
thanks for your work Jon
Seems PR is stuck again :-(
HELTUN thermostats do not work due to missing hvac support. Is it possible to release alpha version with PR included?
Thanks.