This used to work fine but as of today I get the following error message Initially I thought it was related to a new HA update but after rolling back the issue still persist. All other ETZ values are read fine by HA. I increased logging but can’t find anything that makes sense. Any idea what could have happened?
Could not sync group address ‘3/6/10’ (Livingroom Thermostat Z35 Mode - Operation mode)
10:27:10 PM – (WARNING) /usr/local/lib/python3.10/site-packages/xknx/remote_value/remote_value.py - message first occurred at 10:24:58 PM and shows up 4 times
Error: KNX bus did not respond in time (2.0 secs) to GroupValueRead request for: 3/6/10
10:27:10 PM – (WARNING) /usr/local/lib/python3.10/site-packages/xknx/core/value_reader.py - message first occurred at 10:24:58 PM and shows up 4 times
Hi !
Is it answered by the bus?
I think sometimes the answere can get processed slower than the timeout-timer - especially when migrating database versions etc.
You’ll get this warning even if the response comes 2.1 sec after the read - which can happen in some (rare) cases. The question is: does a (late) response arrive or not.
You can check from ETS or by setting log level of xknx.telegram to debug (see Knx Integration docs).
Thank you for your response Farmio,
I do not see the value of Group address 3/6/10 change in ETS when I change the value from HA. It stays the same in ETS. When I change the value directly from my Z35 (KNX) it does change correctly in ETS.
I did enable the knx.telegram logging, but I’m not sure how to read them.
here you can see an outgoing GroupValueRead telegram to 3/6/10. It should be replied by a GroupValueResponse telegram from the bus (in < 2 seconds - ideally < 0.1).
What exactly are you doing in HA to change it?
When you eg. set from “heat” to “cool” it should send something to 3/6/9 - and the bus should respond to 3/6/10 with the new status.
In HA if I’m trying to change the value of the climate entity, e.g, this does not update the GroupAddress in ETS. The only value that works from HA on/off state ( on_off_state_address: “3/6/8” ).
When I change the value of the GroupAddress (HVAC Mode) directly on my Zennio Z35 KNX display the 3/6/9 value does change correctly in ETS.
And nothing in between from 3/6/10?
Not even in ETS? Then there is some misconfiguration going on - either in the GAs for HA or in the devices Applikation.
I would like to control my Daikin Airo through the Z35. They are probably called differently in HA and ETS but this is the only Data type/control I can match from ETS to HA (controller_mode). Or is there a different attribute I should use in HA to match with the “HVAC_controller_mode” in ETS?
When I change the Group Object 3/6/9 (“HVAC_controller_mode”) through the KNX device (Z35), the values change but when I change the values through the Climate values (controller_mode_addrress: 3/6/9) entity in HA nothing changes in ETS.
So the Zennio is just a Switch / controlling device? What is the actual Knx actuator you want to read values from and send values to - what device connects to the daikin thing?
If this is done by the Z35 then you are missing read-flags. But that should not be keeping HA from sending to 3/6/9.
Again: in ETS GroupMonitor no telegram is received when you switch the climate entity from “heat” to “cool”? And in HAs xknx.telegram log you can see such a telegram?
The Zennio Z35 is a Captive Touch Panel which also has a Thermostat in it. Z35 Capacitive touch panel with a 3.5” display (zennio.com)
Daikin is the brand of my Ducted Airconditioning system. I’m using the HA “Daikin AC” integration to control it through HA.
I want to be able to control the Daikin AC through the Thermostat on the Z35.
Again: in ETS GroupMonitor no telegram is received when you switch the climate entity from “heat” to “cool”?
Correct, no telegram is received.
And in HAs xknx.telegram log you can see such a telegram?
After changing from Heat to Cool this is what I see in the xknx.telegram log:
There is something wrong… there are no empty GroupValueWrite payloads. Maybe the forum just ate it because it isn’t wrapped in code tags. (I assume that is the case because it ate some of this quote too…)
But to your original problem: you can’t use a HA Knx climate entity without a climate actuator providing any status. And the HA daikin integration won’t do that on its own so you would have to do that manually in an automation.
If you set it from your Z35 it will send to the bus, but who should receive and process that (ie send the new status to 3/6/10)? A HA Knx entity won’t, because it is simply not made to do that - it will never send any new data to a *_state_address.
From a KNX perspective all I want is to visualize and control the Z35 thermostat in HA through the KNX integration.
In HA I would than link the two (Daikin Thermostat and Z35 Thermostat) with scripts and Automations. What is already working is setting the target temperature between the two.
This is what I see from 3/6/10 :
2022-07-10 13:48:34 DEBUG (MainThread) [xknx.telegram] <Telegram direction="Outgoing" source_address="1.1.250" destination_address="3/6/10" payload="<GroupValueRead />" />
2022-07-10 13:48:36 WARNING (MainThread) [xknx.log] Error: KNX bus did not respond in time (2.0 secs) to GroupValueRead request for: 3/6/10
2022-07-10 13:48:36 WARNING (MainThread) [xknx.log] Could not sync group address '3/6/10' (Livingroom Z35 Mode - Controller mode)
From this log it looks like it is not able to read 3/6/10. I just don’t understand why.
farmio, I’m not 100% sure if setting the mode has ever worked between HA and KNX. What stopped working when I started this question was the entity itself. After one of the recent updates of HA the entity started working again except for the mode. As I have made changes and tested multiple things I’m not sure if it has been one of the HA updates or my changes.
farmio, Im a bit confused. Hope you can help me out here.
If controller_mode_state_address cannot read the value from the GA in KNX why does it exist in the HA KNX integration? And how would I be able to read and write the Climate Control Mode of the Z35 Thermostat?
*_state_addresses are read by HA. In KNX a GA can only be read if any group object on this GA has the read flag set. So it can be read from HA, but the GA has to be configured accordingly in KNX (ETS) to respond.
I think you only have one group object linked to this GA - and according to your screenshot above it doesn’t have a read-flag set.
I wouldn’t be surprised that the Z35 doesn’t set this flag by default since it is usually a consumer of this status, not the producer (the “single source of truth” of this would normally be a climate actuator that actually controls this - a display like the Zennio or HA is the consumer).
I would really not use 2 HA climate entities for this. It would just make synchronisation more complicated since the KNX one tries to sync from the bus - which it can’t because you actually want to send the states of HA-Daikin to the bus.
I’d only use the Daikin climate entity and use knx’s expose or knx.send in an automation to send changed state to the bus and knx_event in an automation to control the Daikin climate from the Z35. Send only to state addresses and act only on non-state-addresses - this way you avoid loops.
Im trying to follow the advice and deleted the Z35 Climate Entity from HA.
The main challange I’m facing is how to sync the Temperature from the KNX bus (Z35) to the Daikin Climate Entity. I can read the Temperature fine through knx_read but in a HA automation I can only set a fix value for temperature:
Previously I used to sync the Temperature through a script using template (‘climate.livingroom_thermostat_Z35’ is/was the entity for my knx Thermostat) that I called from an Automation.
update_daikin_ac_temp:
alias: Update Daikin_ac Temperature
sequence:
- service: climate.set_temperature
data:
temperature: '{{ state_attr(''climate.livingroom_thermostat_Z35'', ''temperature'')|float }}'
entity_id: climate.daikin_ac
mode: single
However the above will not work without having an Entity for the KNX Thermostat.
Is there anyway to read a GA value from the KNX bus and pass it to the Temperature attribute of the Climate entity (Daikin) in HA?
Maybe I’m missing some detail here, but as I see it you are trying the wrong way.
There is no need to sync or actively read anything from the KNX bus - the single source of truth is the climate device - and that is not on the bus.
If its state changes (doesn’t matter what changed it - can be KNX or some other thing) it should send the updated state (target temperature, mode etc.) to the bus so the Z35 can update its displayed values. Use expose (or an automation with knx.send service) for that.
If you change something from the bus (Z35) - act on that received telegram (not actively read, but triggered by your change). Use knx_event for that.
Otherwise if you restart HA the Daikin integration gets its data directly from the climate device and the knx entity gets its data from the Z35. If these values diverge, who is going to win? My described approach avoids such conflicts entirely.