zkra
13. Juni 2016 um 19:38
1
Hallo,
nach welcher Zeit stehen die nach MBUS_UpdateValues eingelesenen M-Bus-Messwerte in den IPS-Variablen zur Verfügung.
Aktuell warte ich mal vorsorglich 1 Sekunde.
MBUS_UpdateValues(29626 /*[ZK-Heiz\Zk-Wmz\WMZ01]*/);
IPS_Sleep(1000);
$OutStr = sprintf("%1.1f", GetValue(11884 /*[ZK-Heiz\Zk-Wmz\WMZ01\Energy]*/)).";";
$OutStr = $OutStr.sprintf("%1.1f", GetValue(35101 /*[ZK-Heiz\Zk-Wmz\WMZ01\Volume]*/)).";";
Eventuell wird im PHP-Skript ja auch erst nachdem der Befehl MBUS_UpdateValues vollständig incl. speichern in den Variablen abgearbeitet wurde in die nächste PHP-Zeile gesprungen in dem dann sofort mit GetValue() auf den neuen Wert zugeriffen werden kann, damit wäre dann der IPS_Sleep() ja überflüssig.
Gruß
zkra
paresy
13. Juni 2016 um 22:59
2
Du solltest direkt nach dem Befehl zugreifen können. Ein Sleep ist an der Stelle nicht erforderlich.
paresy
zkra
10. Dezember 2019 um 21:25
3
Hallo,
bekomme sporadisch im wieder einmal Fehlermeldungen bei MBUS_UpdateValues().
Script 46080, wird zyklisch jede Minute aufgerufen und liest nacheinader 6 WMZ ein
<?php
Include_once 'IPSLogger.ips.php';
//set_time_limit(58); //PHP Time-Limit neu aufziehen sonst Abbruch nach 30 Sek.
//-------------------
// Wmz01 lesen, Solaranlage
//-------------------
if (MBUS_UpdateValues(29626)){
$OutStr = sprintf("%1.1f", GetValue(11884)).";";
$OutStr = $OutStr.sprintf("%1.1f", GetValue(35101)).";";
$OutStr = $OutStr.sprintf("%1.3f", GetValue(32768)).";";
$OutStr = $OutStr.sprintf("%1.0f", GetValue(10089)*1000).";";
$OutStr = $OutStr.sprintf("%1.1f", GetValue(32768)).";";
$OutStr = $OutStr.sprintf("%1.1f", GetValue(16779)).";";
$OutStr = $OutStr.sprintf("%1.2f", GetValue(36406)).";";
SetValue(20425,$OutStr);
}
//-------------------
// Wmz02 lesen, Kesselkreis
//-------------------
if (MBUS_UpdateValues(29083)){
$OutStr = sprintf("%1.1f", GetValue(47091)).";";
$OutStr = $OutStr.sprintf("%1.1f", GetValue(32795)).";";
$OutStr = $OutStr.sprintf("%1.3f", GetValue(49291)).";";
$OutStr = $OutStr.sprintf("%1.0f", GetValue(40824)*1000).";";
...
Was könnte zur Fehlereingrenzung getan werden ?
Gruß
zkra
paresy
11. Dezember 2019 um 15:16
4
Betrifft es immer das selbe Gerät? Magst du zwischen den Abfragen mal ein paar Sleeps einfügen?
paresy