You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
if (!IsWriteOnly())
{
- // queue a "RequestValue" message to update the value- if (m_refreshAfterSet) {- cc->RequestValue( 0, m_id.GetIndex(), m_id.GetInstance(), Driver::MsgQueue_Send );+ if (m_refreshAfterSet)+ {+ if (!node->GetCommandClass(Internal::CC::Supervision::StaticGetCommandClassId()))+ {+ // queue a "RequestValue" message to update the value+ cc->RequestValue( 0, m_id.GetIndex(), m_id.GetInstance(), Driver::MsgQueue_Send );+ }
}
}
It broke setting LEDs in Homeseer HS-WD200+. Now whenever a LED is turned ON or OFF, the command is delivered to the Homeseer, but the value in the OZW memory is not updated. And since Domoticz checks current value before setting a new one, this causes problems for sequences like this:
Turn LED1 to Red (works if current value is Off)
Turn LED1 to Off (doesn't do anything because the value is still Off in OZW memory).
I checked what GetCommandClass() returns in my case, and it's not NULL, so RequestValue() is not getting called.
I wonder if this entire "skip refresh" logic should be accounted for here:
If I recall correctly, the logic is when a device supports the Supervision CC, you should not request the set value immediately. This is problematic because many devices need some time to process the setter and an immediate get would result in the old value. So for these devices Domoticz would not update the GUI. This is where the Supervision CC comes in handy: it will notify the application when a change occurs. But again, it's a long time ago and I'm not deep into ZWave internals.
So my guess is to check whether the Supervision CC report is handled correctly for your device.
Hi, @markruys
What is the purpose of this change in Value.cpp?
It broke setting LEDs in Homeseer HS-WD200+. Now whenever a LED is turned ON or OFF, the command is delivered to the Homeseer, but the value in the OZW memory is not updated. And since Domoticz checks current value before setting a new one, this causes problems for sequences like this:
I checked what GetCommandClass() returns in my case, and it's not NULL, so RequestValue() is not getting called.
I wonder if this entire "skip refresh" logic should be accounted for here:
open-zwave/cpp/src/value_classes/ValueInt.cpp
Lines 116 to 129 in f150a98
where the code is just creating a temporary value and is sending it to the device, apparently expecting that a refresh will happen in the end.
The text was updated successfully, but these errors were encountered: