home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
70.93k stars 29.58k forks source link

Missing Floor Heating Device in Homematic IP Integration #103968

Open PalleRaa opened 9 months ago

PalleRaa commented 9 months ago

The problem

Same issue as #90647

The current valve positions of floor heating actuators are not available for logging.

The documentation shows that this is intentional:

There is no need to directly support the following devices by Home Assistant, because their integration is done by the required wall thermostats: Floor Heating Actuator – 6x channels, 230V (HMIP-FAL230-C6) Floor Heating Actuator – 10x channels, 230V (HMIP-FAL230-C10) Floor Heating Actuator – 6x channels, 24V (HMIP-FAL24-C6) Floor Heating Actuator – 10x channels, 24V (HMIP-FAL24-C10) Floor Heating Actuator – 12x channels, motorized (HMIP-FALMOT-C12)

While I agree that there is no need to change the valve position or switching state of floor heating actuators, I still want to be able to log them for troubleshooting issues.

The "valvePosition" values are certainly present in the dump of my access point configuration: { "devices": { "########0000000000000007": { "functionalChannels": { "1": { "channelRole": "FLOOR_HEATING_COOLING_CONTROLLER", "deviceId": "########0000000000000007", "functionalChannelType": "FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL", "groupIndex": 1, "groups": [ "00000000-0000-0000-0000-000000000004", "00000000-0000-0000-0000-000000000005" ], "index": 1, "label": "Heizkreislauf 1", "valvePosition": 0.0, "valveState": "ADAPTION_DONE" } } } } }

It would be great if the "valvePosition" values could be made available for logging and troubleshooting.

What version of Home Assistant Core has the issue?

core-2023.11.2

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

HomematicIP_cloud

Link to integration documentation on our website

https://www.home-assistant.io/integrations/homematicip_cloud

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

home-assistant[bot] commented 9 months ago

homematicip_cloud documentation homematicip_cloud source

jojoac commented 9 months ago

I vote for this feature request!! Yes it is right there is not much to set. on this but it is a very useful information set in this adapter. The valve position allows me to fine tune my the hydraulic balancing in my heating system. This very special came int the game if you're heating with a heat pump. https://en.wikipedia.org/wiki/Hydronic_balancing.

windsurf commented 9 months ago

Vote +1 for this request Mainly info/debug/finetune purposes on valve settings in a hidden part of the home ;-) Some handling issues with my heatings systems, so much appreciated

thecem commented 8 months ago

I requested this long time ago. If we had this information you could not only take care of the hydrulic balance, but you could also set the required heat energy in the heatpump. So this would be a game changer in home heating systems. additional you could save more energy.

With a homematicip_cloud.dump_hap_config

The Config shows the valve position::

 "12": {
                    "channelRole": "FLOOR_HEATING_COOLING_CONTROLLER",
                    "deviceId": "3014F7110000000000000022",
                    "functionalChannelType": "FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL",
                    "groupIndex": 12,
                    "groups": [
                        "00000000-0000-0000-0000-000000000022",
                        "00000000-0000-0000-0000-000000000023"
                    ],
                    "index": 12,
                    "label": "Heizkreislauf (12) OG Bad Heizk\u00f6rper",
                    "valvePosition": 0.12,
                    "valveState": "ADAPTION_DONE"

Is there a method to automatically dump the config and pull the information into a sensor?

Additional it would be possible to have the attribute "hvac_action" and show in the graph when the circuit is heating.

Roktwo commented 8 months ago

+1 vote for this request! This feature is already implemented for radiators - in combination with my heat pump very helpful. Would be very nice to get it for floor heating too!

thecem commented 8 months ago

@hahn-th May you could help out here, I would love to bring this into the integration, but need some help here.

I would vote for to bring this as additional attributes into the associated climate entity.

So we have the valve_position as needed for heatpumps and additional the hvac_action to get a nice graph like this (pwm)

grafik

The benefit of the falmot is that the energyconsumption is extrem low (0,3 Watt!!) since there ar motorised valve actuators, not the thermical ones (in comparsion of 28 Watt with 12 Thermo actuators). Additional we have a permanent flow, what don´t stop the flow in the heat pump circuit (extrem relevant for openloop). And finally a permanent regulation of the hydronic and thermic balancing!

attributes of "climate.hmip_og_bad", today:

hvac_modes: auto, heat
min_temp: 5
max_temp: 30
preset_modes: NB, FO, PVA
current_temperature: 22.1
temperature: 22
current_humidity: 51
preset_mode: NB
model_type: HmIP-Heating-Group
is_group: true
friendly_name: HMIP OG Bad
supported_features: 17

new:

hvac_modes: auto, heat
min_temp: 5
max_temp: 30
preset_modes: NB, FO, PVA
current_temperature: 22.1
temperature: 22

current_humidity: 51
valve_position_1: 0.38
valve_position_2: 0.38 
valve_position_12: 0.12
valve_position_average: 29.3 (%)
hvac_action: heating

preset_mode: NB
model_type: HmIP-Heating-Group
is_group: true
friendly_name: HMIP OG Bad
supported_features: 17

with the groups and device id out of the HMIP should this be possible.

What do you think?

thx!

hahn-th commented 8 months ago

@hahn-th May you could help out here, I would love to bring this into the integration, but need some help here.

Great to here that! I will help with the review!

I would vote for to bring this as additional attributes into the associated climate entity. So we have the valve_position as needed for heatpumps and additional the hvac_action to get a nice graph like this (pwm)

I think this gonna work. But i am not sure, if an additional attribute would be the best way. I think the home-assistant documentation says that it is better to use fewer extra attributes, but a separate sensor. So for each Falmot channel there would be the valve state as an additional separate sensor. As far as i know you cant use extra attributes for diagrams.

Maybe you can contact me via discord (agonist6159) , so we can talk about that in more detail.

thecem commented 7 months ago

Someone who is willing to test? (ON YOUR OWN RISK!)

downgit the branch:

FALMOT-C12 ValvePostion Sensors

If you want to test it in your production Home Assistant environment, copy the integration folder into /config/custom_components, add a version to the manifest.json (e.g. "version": "0.0.0"), and restart Home Assistant. Home Assistant will always prioritize integrations in custom_components over the core integration. Don't forget to remove it once you are done testing; otherwise, you will be stuck on that version.

ValvePosition per Thermostat:

grafik

barryvdh commented 7 months ago

I tried this, seems to work. Both my Falmot-C12s show up. Result showed almost directly.

image

I'm not sure how to check the minimum valve service. I do not see that on the Android app interface? Or where should I look?

PalleRaa commented 7 months ago

Would it also work with HMIP FAL230-C10? Sorry I have not had the time (and competences) to test.

thecem commented 7 months ago

@ Moment only c12. I see there is an issue with not used valves! Could pls send me over a dump?

minimum Value is an hidden option, even not accessible via the app, you can set it via services. But it seem to have no effect even you set it to a value more than 0%. I made this entity in an assumption to be be able to set the minimum flow for the complete Falmot. Its experimental.

windsurf commented 7 months ago

Stupid me, cannot get this to work:

Still no Falmot device found, none in debug log, system log or devices/entities. What am I doing wrong ? P.S. yes of course my HmIP app shows Falmot-C12

thecem commented 7 months ago

What is in config/custom_components/homematicip_cloud ? Where is the manifest file? Did you add to manifest.json (e.g. "version": "0.0.0")? Did you restart HA?

thecem commented 7 months ago

If someone has a dump file with a falmot-C12 less then 12 valves pls send it over to me. thx

barryvdh commented 7 months ago

What is the issue? It shows as unknown, which seems fine?

barryvdh commented 7 months ago

Or what do you mean with less then 12? Available or connected?

thecem commented 7 months ago

What is the issue? It shows as unknown, which seems fine?

Should only show once that are really used… not the unknown channels.

thecem commented 7 months ago

Or what do you mean with less then 12? Available or connected?

Less than 12 motorized actuators connected to the falmot-c12

thecem commented 7 months ago

Is this right you don’t have channel 1,2,11,12 connected?

barryvdh commented 7 months ago

Yes correct Screenshot_20240123-174209

I'll see if I can send a snippet later, on my phone now. But I think the valvePosition was just null, and the name also.

thecem commented 7 months ago

Would be great, interesting will be this example, a channel without a connected motorized actuator.

The example show one channel with connected actuator:

"12": {
                    "channelRole": "FLOOR_HEATING_COOLING_CONTROLLER",
                    "deviceId": "3014F7110000000000000022",
                    "functionalChannelType": "FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL",
                    "groupIndex": 12,
                    "groups": [
                        "00000000-0000-0000-0000-000000000022",
                        "00000000-0000-0000-0000-000000000023"
                    ],
                    "index": 12,
                    "label": "Heizkreislauf (12) OG Bad Heizk\u00f6rper",
                    "valvePosition": 0.12,
                    "valveState": "ADAPTION_DONE"
barryvdh commented 7 months ago

See valve 2 (not connected) and 3 (connected):

                "2": {
                    "channelRole": null,
                    "deviceId": "30xxxxxx0000000000000004",
                    "functionalChannelType": "FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL",
                    "groupIndex": 2,
                    "groups": [],
                    "index": 2,
                    "label": "",
                    "valvePosition": null,
                    "valveState": "ADJUSTMENT_TOO_SMALL"
                },
                "3": {
                    "channelRole": "FLOOR_HEATING_COOLING_CONTROLLER",
                    "deviceId": "30xxxxxx0000000000000004",
                    "functionalChannelType": "FLOOR_TERMINAL_BLOCK_MECHANIC_CHANNEL",
                    "groupIndex": 3,
                    "groups": [
                        "00000000-0000-0000-0000-000000000022",
                        "00000000-0000-0000-0000-000000000023"
                    ],
                    "index": 3,
                    "label": "Verwarmingscircuit (3)",
                    "valvePosition": 0.0,
                    "valveState": "ADAPTION_DONE"
                },
windsurf commented 7 months ago

What is in config/custom_components/homematicip_cloud ? Where is the manifest file? Did you add to manifest.json (e.g. "version": "0.0.0")? Did you restart HA?

Indeed stupid me, missing ',' in manifest file, after adding the version phrase ;-) Have a Falmot C12 with 9 (out of 12) valves attached, what do you need to complete ?

thecem commented 7 months ago

Above example helps:

so we have to filter for

"valvePosition": null

and / or

"channelRole": null

thecem commented 7 months ago

@barryvdh could you pls replace the old sensor.py with the new one: sensor.py and show me the above device Info Page from HA?

It should´t have any more the unknown valves in.

thx

barryvdh commented 7 months ago

I think it's good. It doesn't delete them directly, but that is intended:

image
thecem commented 7 months ago

nice!

pavlam2 commented 7 months ago

Works fine for me as well, thank you!

Just an observation: When i turn on "Heating zone compensation" in the app, it shows a new setting called "Valve position switching value". This goes to the "minimum valve position" in hass.

barryvdh commented 7 months ago

I saw that option as well today, but the Dutch translation didn't really make it clear. Something about making sound. The option itself also wasn't really clear. But those are fixed values, not sure if that's required. Screenshot_20240123-214602

thecem commented 7 months ago

Perfect, I didn’t tryed this. So if we would activate this via HA we need the value out of the falmot-c12. Someone an idea with value this could be in the dump?

barryvdh commented 7 months ago

I could enable them and dump the config, but not until tonight.

Would it be useful to create a PR for the valve values, and maybe a separate one this settings? As we're not really sure what it does?

barryvdh commented 7 months ago

https://homematic-ip.com/sites/default/files/downloads/homematic-ip-user-guide-en.pdf image

Cannot test that, but if I understand correctly, for small percentages (eg. the minimuValue we supply in the service then?) it uses PWM (so on-off) instead of actually using 15%?

thecem commented 7 months ago

Yes we should separate this. I tested it and it is only relevant if there is an heating request. Even it is set to true and minimum valve position is 20% the valve will closed to 0% since there is no heating request. I thought it could be used for surplus heating by the heat pump to allow a overheating of the floor heating system or to have min flow. I will hide the entity's and will add a switch for activate the function.

thecem commented 7 months ago

PWM will be used if there is an thermal actuator, motorized actuators like FALMOT-C12, don't use PWM even it is described in the app.

jojoac commented 7 months ago

Taking the first Screenshot. in this area you could set emergency settings if the thermostats not talking to the FALMOT-C12. Then you could set how wide the valves are opening for cooling and heating if there is no communication.

image

the last option: Heating zone compensation. Is if you have a room with 2 heating circuits that are not balanced. Then the FALMOT-C12 is pulsing (opening one of the valves a little bit more or less) to find the ideal position that the both circuits are giving the same heat. Mostly used on very old floor heating systems. Where is no option to balance the circuits.

windsurf commented 6 months ago

Works like a charm, 1 FALMOT C12 with 9 active valves. For approx 2 weeks now, no issues found. Please indicate when/how to expect to be integrated into the original stack of HA ?

seemaexle commented 6 months ago

Haven't had a chance to test it so far, but I'm really keen to have the feature/states of the FALMOT C12 via the Acces Point in my home assistant. Is there anything concrete yet as to when this can be expected? Thank you so much in advance.

issue-triage-workflows[bot] commented 3 months ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

hahn-th commented 3 months ago

@thecem Any updates here?

barryvdh commented 1 month ago

I've added the commits to https://github.com/home-assistant/core/pull/122759 I've tested this before, and it seemed to work. I'ved merged in into main and tried to merge as best I could. I cannot get one test to work locally yet, and it would have to be merged again after https://github.com/home-assistant/core/pull/121943 is merged.

PalleRaa commented 1 month ago

Hi,

As I understand this only support for the HMIP-FALMOT-C12 have been added. right?

So we still support for: Floor Heating Actuator – 6x channels, 230V (HMIP-FAL230-C6) Floor Heating Actuator – 10x channels, 230V (HMIP-FAL230-C10) Floor Heating Actuator – 6x channels, 24V (HMIP-FAL24-C6) Floor Heating Actuator – 10x channels, 24V (HMIP-FAL24-C10)

If so we should create a new ticket for these.

thecem commented 1 month ago

@PalleRaa : Only the Falmot-C12 is supported. @barryvdh: 💪! Did not find the time, I will double check if I could help, my link above should have the latest changes. I‘m on vacation and will help asap. @hahn-th: you told me to generate the tests, but not sure how to. May you could help out here?

thx everyone!

barryvdh commented 2 weeks ago

I merged it with the latest changes and fixed the tests that were used; https://github.com/home-assistant/core/pull/122759