Improve force update logic in MQTT publishing to handle child variables and links more effectively

This commit is contained in:
jhartworks
2026-03-04 09:48:18 +01:00
parent 1a1d694b9e
commit cc455e3d24
+21 -18
View File
@@ -216,9 +216,11 @@ class MonitoringClient extends IPSModule {
$parname = IPS_GetName($catChild); $parname = IPS_GetName($catChild);
if (IPS_VariableExists($catChild) != 1 && IPS_LinkExists($catChild) != 1){
foreach ($childids as $childid){ foreach ($childids as $childid){
if (IPS_VariableExists($childid) != 1 && IPS_LinkExists($childid) != 1){
foreach ($childids as $childid){ foreach ($childids as $childid){
if (IPS_VariableExists($childid) != 1){ if (IPS_VariableExists($childid) != 1){
@@ -240,27 +242,28 @@ class MonitoringClient extends IPSModule {
IPS_LogMessage("Monitoring Client", "Force Update with Parent: " . $topic . " mit Payload: " . $payload); IPS_LogMessage("Monitoring Client", "Force Update with Parent: " . $topic . " mit Payload: " . $payload);
} }
}else{
if (IPS_VariableExists($childid) != 1){
if(IPS_LinkExists($childid) == 1){ }
$linkInfo = IPS_GetLink($childid); }else{
$linkTarget = $linkInfo["TargetID"]; $childid = $catChild;
$childid = $linkTarget; if (IPS_VariableExists($childid) != 1){
$varInfo = IPS_GetVariable($childid);
}
}
$varInfo = IPS_GetVariable($childid); if(IPS_LinkExists($childid) == 1){
$varname = IPS_GetName($childid); $linkInfo = IPS_GetLink($childid);
$topic = $catId["top"]. $parname."_".$varname; $linkTarget = $linkInfo["TargetID"];
$payload = round(getvalue($childid), 2); $childid = $linkTarget;
$varInfo = IPS_GetVariable($childid);
$this->MqttPublish($this->InstanceID,$mqttId, $topic, $payload, false);
IPS_LogMessage("Monitoring Client", "Force Update with Parent: " . $topic . " mit Payload: " . $payload);
} }
} }
$varInfo = IPS_GetVariable($childid);
$varname = IPS_GetName($childid);
$topic = $catId["top"]. $parname."_".$varname;
$payload = round(getvalue($childid), 2);
$this->MqttPublish($this->InstanceID,$mqttId, $topic, $payload, false);
IPS_LogMessage("Monitoring Client", "Force Update with Parent: " . $topic . " mit Payload: " . $payload);
}
} }
} }