Elektronische Haushalts Zähler [eHZ] auslesen

Der Vollständigkeit halber möchte ich noch die Fertigstellung melden.
https://www.symcon.de/forum/threads/40366-Stromz%C3%A4hler-mit-RS485-Schnittstelle-im-Pull-Modus-einlesen?p=394719#post394719

Hallo zusammen,

nutze das Modul EHz mit Anschluss am Seriellen Port über USB Lesekopf und bekomme in unregelmäßigen Abständen folgenden Fehler:

04.10.2019, 10:12:33 | Haushaltzaehler | Buffer is over 256kB

Hat das jemand eine Idee woher das kommt?

Hallo,

nach dem Update auf 5.5 bekomme ich diese Fehlermeldung bei jeder Aktualisierung der Werte:

29.10.2020, 20:08:20 | FlowHandler          | Could not forward data to instance #32853: <br />
<b>Deprecated</b>:  Invalid characters passed for attempted conversion, these have been ignored in <b>/var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php</b> on line <b>152</b><br />
<br />
<b>Deprecated</b>:  Invalid characters passed for attempted conversion, these have been ignored in <b>/var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php</b> on line <b>154</b><br />
<br />
<b>Deprecated</b>:  Invalid characters passed for attempted conversion, these have been ignored in <b>/var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php</b> on line <b>152</b><br />
<br />
<b>Deprecated</b>:  Invalid characters passed for attempted conversion, these have been ignored in <b>/var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php</b> on line <b>154</b><br />
<br />
<b>Deprecated</b>:  Invalid characters passed for attempted conversion, these have been ignored in <b>/var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php</b> on line <b>152</b><br />
<br />
<b>Deprecated</b>:  Invalid characters passed for attempted conversion, these have been ignored in <b>/var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php</b> on line <b>154</b><br />
<br />
<b>Deprecated</b>:  Invalid characters passed for attempted conversion, these have been ignored in <b>/var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php</b> on line <b>152</b><br />
<br />
<b>Deprecated</b>:  Invalid characters passed for attempted conversion, these have been ignored in <b>/var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php</b> on line <b>154</b><br />
<br />
<b>Deprecated</b>:  Invalid characters passed for attempted conversion, these have been ignored in <b>/var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php</b> on line <b>152</b><br />
<br />
<b>Deprecated</b>:  Invalid characters passed for attempted conversion, these have been ignored in <b>/var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php</b> on line <b>154</b><br />
<br />
<b>Deprecated</b>:  Invalid characters passed for attempted conversion, these have been ignored in <b>/var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php</b> on line <b>152</b><br />
<br />
<b>Deprecated</b>:  Invalid characters passed for attempted conversion, these have been ignored in <b>/var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php</b> on line <b>154</b><br />
<br />
<b>Deprecated</b>:  Invalid characters passed for attempted conversion, these have been ignored in <b>/var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php</b> on line <b>113</b><br />
<br />
<b>Deprecated</b>:  Invalid characters passed for attempted conversion, these have been ignored in <b>/var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php</b> on line <b>117</b><br />

Das wären die beiden Zeilen 152/154 aus der module.php:

$ident = hexdec($index);

                $value = hexdec($this-&gt;Str2Hex(substr($energieData, 4))) / $scaler;

Das wären die beiden Zeilen 113-117 aus der module.php:

$ident = hexdec($index);
$split = substr($powerData, 4, -2);

                if ($split != "\xFF\xFF") {
                    $value = hexdec($this-&gt;Str2Hex(substr($powerData, 4))) / $scaler;

Ich kann aber leider nichts finden was mir weiterhilft.
Das Modul an sich klappt, schreibt mir nur mit den Zeilen den Error Log voll.

Kann mir einer helfen?

Vielen Dank

Hallo yodaeichen,

schau Mal hier:

https://www.php.net/manual/de/function.hexdec.php

hexdec() ignoriert alle nicht hexadezimal kodierten Zeichen (0-9 a-f) in hex_string. Von PHP 7.4.0 an ist die Übergabe jeglicher ungültiger Zeichen missbilligt.

Ab V5.5 wird PHP 7.4.0 verwendet. Vorerst erhält man nur den Hinweis, später wird es nicht mehr funktionieren.

In $index stehen Zeichen , die nicht passen…(vllt. ein Leerzeichen)…

LG
lueralba

Hallo,

ich habe die Leerzeichen Str2Hex ersetzt,
das ist aber quick-and-dirty, man kann das natürlich auch direkt in $hex
schreiben oder allgemein whitespaces wie tab,space etc. ersetzen. Funktioniert so bei mir :slight_smile:

private function Str2Hex($daten)
{
$hex = ‚‘;
$stripped=’’;
for ($i = 0; $i < strlen($daten); $i++) {
$hex .= sprintf(’%02X ‚, ord($daten[$i]));
}
$stripped = str_replace(‘ ', ‚‘, $hex);

    return $stripped;
}

Guten Morgen zusammen,

das zuletzt genannte Problem habe ich auch.

Wie komme ich denn an der Symbox an die php-Dateien des Modules um den Eintrag anzupassen?

Grüße Willi

Hier der Link zum Modul für die neue PHP Version

https://github.com/emale999/EHZ

Hi Schnecke,

ist aus dem Projekt eigentlich etwas geworden.
Ich kämpfe mit geloggten Sekundenwerten und würde diese gerne in anderen Zeiten loggen.
Die vielen Werte machen mir die Datenabfrage zu langsam. Das von dir damals beschriebene wäre genau was ich für meine Energiezähler brauche.

Gruß