Modul IPS EHZ (Elektronischer Haushaltzähler)

Guten Abend,

den hatte ich zuvor getestet. Nachdem nur vier Variablen angelegt wurden, hatte ich auf den dev Branch gewechselt.

ich hatte nun noch einmal auf den Master gewechselt, die Instanz gelöscht und erneut in der Legacy-Konsole angelegt. Nun ist nur noch eine Variable (01 08 00) angelegt worden. Und diese wird auch nicht aktualisiert.

Hier die dazugehörige Meldung:

16.10.2018 21:37:25 | FlowHandler | Kann Daten nicht zur Instanz #39628 weiterleiten: <br />
<b>Fatal error</b>:  Uncaught Error: Call to undefined function IPS_GetVariableCompatibility() in /var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php:167
Stack trace:
#0 /var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php(157): Haushaltzaehler->SetVariableFloat(67584, '01 08 00 ', '~Electricity', 13317,6897)
#1 /var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php(78): Haushaltzaehler->setSml('v\x05\x08\xB2\xA8vb\x00b\x00rc\x01\x01v...')
#2 /-(3): Haushaltzaehler->ReceiveData('{"DataID":"{018...')
#3 {main}
  thrown in <b>/var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php</b> on line <b>167</b><br />
Abort Processing during Fatal-Error: Uncaught Error: Call to undefined function IPS_GetVariableCompatibility() in /var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php:167
Stack trace:
#0 /var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php(157): Haushaltzaehler->SetVariableFloat(67584, '01 08 00 ', '~Electricity', 13317,6897)
#1 /var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php(78): Haushaltzaehler->setSml('v\x05\x08\xB2\xA8vb\x00b\x00rc\x01\x01v...')
#2 /-(3): Haushaltzaehler->ReceiveData('{"DataID":"{018...')
#3 {main}
  thrown
   Error in Script /var/lib/symcon/modules/EHZ/Haushaltzaehler/module.php on Line 167

Gruss,

Jörg

Hallo Jörg,

ich würde dir ja gerne weiter helfen. Ich kann leider die Fehler nicht nachvollziehen.
Zumal ich hier auch einen MT 681 laufen habe.

Ist auf dem Raspi irgendetwas anderst.?

Hast Du mal die Aktuallisierungszeit hoch gestellt so auf 10sec.

Hallo Jörg,

habe den Debug mal um (Data Log)erweitert. Bitte einmal den dev updaten.

In der Instanz den Debug öffnen. und bitte mal einen Dump in Hex.

Hallo Rainer,

danke für die Antwort.

Ich hatte auch die Aktualisierungszeit variiert…

Was meinst Du mit „anders sein“ auf dem Raspi?

Es ist ein Standard Raspbian Stretch installiert mit einem Standard-Symcon aus dem Stable Repo. Die Installation ist durchgepatched.

Ich stehe wirklich vor einem Rätsel… Falls jemand diesen Thread mitliest und eine Idee hat: immer her damit!

LG,
Jörg

Ich kenne mich mit Rasbi überhaupt nicht aus.

Ist bei dir eigentlich die Datei __compatibility.inc.php vorhanden?

Siehe hier.
https://www.symcon.de/service/dokumentation/einfuehrung/systemvoraussetzungen/

Fix

IPS_GetVariableCompatibility durch IPS_GetVariable ersetzt.

Danke!

Läuft!!!

Sorry für die Umstände Jörg. aber ich habe halt nicht mehr sämtliche Hardware zum testen. Solltest Du den Spezialschalter eingeschaltet haben, schalt ihn wieder aus.

Ich habe eine Photvoltaik Anlage auf dem Dach, wenn diese ins Netz einspeist sind die Leistungen der 3 Phasen sowie die Gesamtleistung im negativen Bereich.
In der Konsole werden die Werte auch korrekt angezeigt, im WF allerdings sind die Werte falsch. Auch in der Datenbank stehen die Werte nicht korrekt.
Gibt es dafür eine Lösung?

Mich würden ja Dump interessieren, sowohl von Bezug als auch von Einspeisung.

Gesendet von iPad mit Tapatalk

Kein Thema,
hier sind die Dumps.

dump_Serial_bezug.txt (34.8 KB)dump_modul_bezug.txt (37.9 KB)dump_Serial.txt (34.3 KB)dump_modul.txt (62.2 KB)

Hallo Rainer,

eher durch Zufall (wenn es läuft, dann läuft es, dann braucht man es ja nicht ein duzend mal beim Laufen beäugen) ist mir aufgefallen, dass mein Modul ab und an einfach aussteigt. Es werden keine Werte mehr gezogen.
Ausgangssituation: Ich habe meine Ausleseeinheit nach diesem Artikel eingerichtet und installiert: Artikel
Nun bekomme ich die Werte also per UDP angeboten. Hierfür habe ich auch einen UDP Socket in IPS eingebunden. Werte kommen hier an. Im Modul wähle ich Client Socket und trage den oben genannten UDP Socket ein. Alles gut.

Der Fehler, dass keinen Daten mehr gezogen werden, ist auf folgendes Verhalten zurück zu führen. Das Modul erzeugt eigenständig einen Client Socket und bindet diesen in sich ein. Wann und warum ist mir nicht bekannt. Dieser Client Socket bietet jedoch keine Daten an … und dann klemmt es.

Riecht für mich wie ein Bug. :eek::wink:
Magst Du den bei Zeiten fixen?! Vielen Dank im Voraus.

Servus,
…und warum nimmst Du nicht den UDP vom Modul oder hab ich was falsch verstanden?

Gesendet von iPad mit Tapatalk

Den nehme ich ja … immer wieder. Aber irgendwann (Grund und genauer Zeitpunkt, ala „periodisch alle …“ unbekannt) kreiert das Modul einen neuen Client Socket (!) (also explizit; anstatt meinen UDP Socket weiterzuverwenden) und bindet diesen ein. Ich beoachte das schon eine Weile.

Sehr seltsam, dieser müsste dann ja konfiguriert werden. Von alleine macht das Modul nix.
Passiert das eventuell bei einem Update vom Modul selbst oder vom System.?

Ich behalte das im Hinterkopf. Im Moment komme ich zeitlich nicht dazu. Es wird auch noch Erweiterungen geben so wie es im letzten Dump aussieht. [emoji3541]

Gesendet von iPad mit Tapatalk

Genau das ist es ja; der Client Socket wird angelegt enthält aber keine Daten (weder IP-Adresse noch Port) und deshalb stoppt der Datenfluss.

Das kann ich Dir leider nicht genau sagen. Denkbar ist beides.

Ich wollte auch nur Bescheid geben. Ich bin mit meinem UDP Socket vllt. eher exotisch unterwegs, aber nichts desto trotz. :slight_smile:

Nö warum, deshalb hab ich die diversen Auswahlmöglichkeiten ja eingebaut.
Mit der Symbox hast Du ja gar keine andere Wahl mehr.
Ich müsste meine Hardware nur mal zusammen bauen…irgendwann.[emoji30]

Gesendet von iPad mit Tapatalk

Hallo Rainer,

ich habe das Modul seit ein paar Wochen in Betrieb.Gestern fiel mir beim Anschauen der PHP Informationen in der Konsole auf, dass immer, wenn Daten vom Lesekopf kommen, die Anzahl der Threads ansteigt. siehe Screenshot.
Ist das Verhalten normal? :confused: Sehe das sonst bei keinem anderen Modul oder Skript.

Gruß Rainer

Ich kann den Fehler jetzt reproduzieren … nach jedem Neustart des IPS Servers wird ein neuer ClientSocket angelegt.

Danke für die Hinweise. Ich sehe mir das an wenn ich wieder etwas Zeit habe.

Gesendet von iPad mit Tapatalk