neue PHP-Module als Ersatz meiner Delphi-Module

Hallo Tommi,
hier die entsprechenden Zeilen aus der /var/log/symcon/logfile.log.

Gruß
Peter

logfile_EMGZ.txt (5.79 KB)

nee, das meinte ich nicht. Öffne doch Bitte bei dem für den Gaszähler zuständigen EnegryDevice das Debugfenster und schicke mir bitte diesen Output. Das Problem liegt wohl eher dort als an der Verarbeitung im CUL Modul.

Danke!
Tommi

Ich habe doch noch was gefunden und eine neue Version hochgeladen. Wenn es wieder nicht klappt, bitte den Debugoutput schicken.

Tommi

Hallo Tommi,
super, nach dem Update funktioniert es jetzt. Die Variablen „Counter“, „Current Counter“ und Peak Counter (und wie schon vorher „RSSI“) werden jetzt gefüllt. Die anderen Variablen (z.B. „Gas Aktuell“) bleiben leer, dafür gibt es ja aber auch keine Werte von der CUL. Wofür sind diese Variablen?

Noch einige Anmerkungen:

  • Im Meldungsfenster gibt es auch ohne das Flag „Add Debug output to Messages“ sehr viele Meldungen vom Modul. Kann man das irgendwo ausschalten?
  • Meine FS20-Bewegungsmelder erhalten eine Variable „Dimmer“. Steckt das in den RAW-Messages mit drin?
  • Bei den S300TH-Devices wird für die relative Feuchte ja die Variable „Feuchte“ angelegt. Ich würde hier gern den Namen „relFeuchte“ verwenden. Momentan ändere ich das in WSDev/module.php nach einem Modul-Update manuell. Könnte ich alternativ auch direkt bei den angelegten Devices den Namen ändern, oder würde dann diese Variable („relFeuchte“) anschließend nicht mehr aktualisiert werden, weil das Modul nach dem alten Variablennamen („Feuchte“) sucht?

Danke und Gruß
Peter

Eigentlich sollten nicht nur die Counter, sondern die anderen Variablen (Gas * m3) jetzt auch gefüllt werden. Da stimmt was noch nicht. Bitte schicke mir (wie schon mehrfach angefragt) die Ausgabe aus dem Debugfenster des EnergyDevice.

Wenn das Debug Flag aus ist, sollten im Messagefenster nur noch Fehler auftauchen. Wenn Dich da was stört, kann ich ansehen, ob die Meldung Debug oder Fehler ist. Die Devices haben hier eigenes Flag, was Du auch einzeln ausschalten musst.

Das Schreiben der Debug-Messages in das Meldungsfenster werde ich ohnehin bald wieder rausnehmen, da ich nach den letzten IPS-Updates auch das Instance Debug Fenster füllen kann und nicht mehr auf das Meldungsfenster angewiesen bin.

Du kannst mir den CUL-Code des Bewegungsmelders schicken. Wenn er sich eindeutig als solcher Identifizieren lässt, könnte die Dimmervariable ich bei der Anlage rausnehmen; glaube ich aber nicht. Per Definition beinhaltet der FS20-Code leider neben an/aus im gleichen Byte Dimmwerte. Wenn ich die Dimmer Variable nicht mit anlege, würde ein echter Dimmer Probleme bekommen Wenn Du kannst die Dimmervariable auch löschen, wenn sie Dich stört.

Die Variablen kannst Du umbenennen, aber nicht verschieben und nicht den Ident ändern.

HTH
Tommi

Hallo Tommi,

Bitte schicke mir (wie schon mehrfach angefragt) die Ausgabe aus dem Debugfenster des EnergyDevice.

anbei das Debug-File, das ich erstellt habe, indem ich im EMGZ-Device auf Debug geklickt habe - ich hoffe, dass es nun das richtige ist.

Die Devices haben hier eigenes Flag, was Du auch einzeln ausschalten musst.

Das war’s. Ich hatte angenommen, dass es nur das Flag im Splitter gibt.

Du kannst mir den CUL-Code des Bewegungsmelders schicken.

Sind das diese aus der CULdebug.log?
{„DataID“:"{018EF6B5-AB94-40C6-AA53-46943E824ACF}",„Buffer“:„F3FB6003A4FF4
„}
{„DataID“:“{018EF6B5-AB94-40C6-AA53-46943E824ACF}“,„Buffer“:„F3FB6103A4FF0
„}
{„DataID“:“{018EF6B5-AB94-40C6-AA53-46943E824ACF}“,„Buffer“:„F3FB6203A4FE6
„}
{„DataID“:“{018EF6B5-AB94-40C6-AA53-46943E824ACF}“,„Buffer“:"F3FB6303A4FDAr
"}

Danke u dGruß
Peter

dump.txt (4.6 KB)

So, damit kann ich wieder was anfangen. Offenbar klappt das Umrechnen nicht so richtig, weil die CounterFactor-Property auf Null stand. Ich habe wieder eine neue Version hochgeladen, die das korrigieren soll. Bitte das EnergyDevice löschen und neu anlegen lassen.

In der neuen Version ist auch eine Änderung für FS20 drin. Der Bewegungssensor sendet das Gleiche wie der Regensensor. Die Dimmervariable wird jetzt nur angelegt, wenn beim erstem Empfang auch ein Dimmkommando enthalten ist. Dafür auch diese Instance löschen und neu anlegen lassen.

Tommi

Nach dem Update werden die Variablen des EMGZ Devices nun gefüllt. Ausnahme: „Counter Offset“ wird weiterhin nicht aktualisiert, und „Gas Actual“ ist vermutlich Null, weil momentan kein Gas verbraucht wird (?).

Das FS20-Device hat nun keine „Dimmer“ Variable mehr.

Danke.

Gruß
Peter

dump2.txt (4.74 KB)

Prima,

Die CounterOffset-Variable wird erst beim nächsten Zählerüberlauf aktualisiert.

Tommi

  • CUL: rewrite EMxx Counter handling
  • CUL: FS20 Dimmer must be created with a dimming record, otherwise its only a switch
  • remove Debug to Messages function (req. IPS4.0 #150+)
  • TE923: fixes missing profile, add Last Day Rain Variable

Tommi

Hallo Tommi,
ich schon wieder :wink:
Ich habe drei FHT Türfensterkontakte, die unter FHEM auch alle erkannt und geloggt werden. Mit dem Modul unter Symcon wird einer dieser Sensoren jedoch nicht als Device angelegt. Im Anhang dazu das Log des Splitterdevices. Das FHT-Device „F6B644“ wird nicht (richtig) erkannt, während das Device „469161“ richtig verarbeitet wird. Es sieht so aus, als wenn der Sensor „F6B644“ als FS20-Device interpretiert wird und evt. das „F“ in der ID missachtet wird. Hier beide Sensoren im Vergleich:

TXT: 02.06.2016 06:43:58.00 | ReceiveData | Data arrived:{„DataID“:"{018EF6B5-AB94-40C6-AA53-46943E824ACF}",„Buffer“:"TF6B64401E7
"}
HEX: 02.06.2016 06:43:58.00 | ReceiveData | 44 61 74 61 20 61 72 72 69 76 65 64 3A 7B 22 44 61 74 61 49 44 22 3A 22 7B 30 31 38 45 46 36 42 35 2D 41 42 39 34 2D 34 30 43 36 2D 41 41 35 33 2D 34 36 39 34 33 45 38 32 34 41 43 46 7D 22 2C 22 42 75 66 66 65 72 22 3A 22 54 46 36 42 36 34 34 30 31 45 37 5C 72 5C 6E 22 7D
TXT: 02.06.2016 06:43:58.00 | ReceiveData | Actual Buffer:TF6B64401E7<CR><LF>
HEX: 02.06.2016 06:43:58.00 | ReceiveData | 41 63 74 75 61 6C 20 42 75 66 66 65 72 3A 54 46 36 42 36 34 34 30 31 45 37 0D 0A
TXT: 02.06.2016 06:43:58.00 | Parse | Line:TF6B64401E7
HEX: 02.06.2016 06:43:58.00 | Parse | 4C 69 6E 65 3A 54 46 36 42 36 34 34 30 31 45 37
TXT: 02.06.2016 06:43:58.00 | parse_FS20 | Device:233423212111(6B6440), Action: on-old-for-timer-prev (1E00), Signal -70

TXT: 02.06.2016 06:40:13.00 | ReceiveData | Data arrived:{„DataID“:"{018EF6B5-AB94-40C6-AA53-46943E824ACF}",„Buffer“:"T46916102ED
"}
HEX: 02.06.2016 06:40:13.00 | ReceiveData | 44 61 74 61 20 61 72 72 69 76 65 64 3A 7B 22 44 61 74 61 49 44 22 3A 22 7B 30 31 38 45 46 36 42 35 2D 41 42 39 34 2D 34 30 43 36 2D 41 41 35 33 2D 34 36 39 34 33 45 38 32 34 41 43 46 7D 22 2C 22 42 75 66 66 65 72 22 3A 22 54 34 36 39 31 36 31 30 32 45 44 5C 72 5C 6E 22 7D
TXT: 02.06.2016 06:40:13.00 | ReceiveData | Actual Buffer:T46916102ED<CR><LF>
HEX: 02.06.2016 06:40:13.00 | ReceiveData | 41 63 74 75 61 6C 20 42 75 66 66 65 72 3A 54 34 36 39 31 36 31 30 32 45 44 0D 0A
TXT: 02.06.2016 06:40:13.00 | Parse | Line:T46916102ED
HEX: 02.06.2016 06:40:13.00 | Parse | 4C 69 6E 65 3A 54 34 36 39 31 36 31 30 32 45 44
TXT: 02.06.2016 06:40:13.00 | parse_FHT | FHT TFK Dev 469161 Code Window:Closed

Gruß
Peter

split.txt (59 KB)

Danke!. Fix ist hochgeladen.

Tommi

Funktioniert :). Vielen Dank für den Fix.
Gruß
Peter

Umbau des NUT Modules, um auch UPS ohne ups.serial Feld auslesen zu können.
Dabei wurden neue Properties eingeführt, so das die Splittermodule und die dazu gehörigen Devicemodule neu angelegt werden müssen. So kann bei mehreren USV an einem NUT-Server anhand des UPS Names die auszulesende USV festgelegt werden. Die Property Nominal Power definiert die Leistung der USV, false diese sie nicht selber mitteilt.

Außerdem:
Fix eines Parameter Fehlers im CUL Modul, der durch einen anderen Fix kürzlich herein kam

Tommi

Hallo Tommi,

ich wollte gerade Dein Modul/Instanz „APCUPSD“ installieren, bekomme aber unter IP-Symcon 4.10, 07.10.2016, 2257f1c63002 folgende Fehlermeldung:

Modul APCUPSD.jpg

Mache ich was verkehrt oder ist das Modul fehlerhaft?

Tschau Hein09

Bitte bei IPS 4.1 auch den 4.1 Branch auswählen :wink:

Tommi

Hallo Tommi,

vielen Dank, mit dem 4.1 Branch funktioniert es.

Habe aber dazu noch Fragen:

Machst Du den Client Socket immer extra auf zur Abfrage und danach wieder zu?

Wie bekomme ich die weiteren Felder als Variable angelegt?
In APCUPSD habe ich folgende Felder:

aber in IPS stehen mir nur diese Felder zur Verfügung:
APCUPSD.jpg

Was muss ich machen damit ich alle Werte aus APCUPSD auch in IPS sehe?

Hein09

Hallo,

der Clientsocket wird nur beim Zugriff geöffnet und dann auch gleich wieder geschlossen. das ist soweit korrekt.

Das Problem mit den zusätzlichen Angaben ist leider, das nicht alle Modelle die gleichen Felder bereitstellen. Somit würden bei diesen Modellen die überwiegende Anzahl von Variablen leer bleiben. Um mehr Daten sehen zu können müssen im Splitter zunächst die entsprechenden Felder extrahiert und mit einem Tag (caps) versehen werden. Diese caps müssen im Energy-Modul dann neuen Variablen zugewiesen und die Daten dazu ausgewertet werden.

Tommi

Hallo Tommi,

kannst Du mir etwas mehr Input geben?

Wofinde ich die Felder im Splitter, meine Splitter Instanz sieht so aus:

wie kann man die Felder extrahieren und wie kann ich die mit Caps versehen?

Hein09

So einfach ist es nicht. Das geht nur durch Anpassung der Module.

Im APCUPSD module php zunächst die fieldlist mit den neuen Caps ergänzen.
Dann in der Funktion Parse die neuen Werte extrahieren und mit dem in der Fieldlist angebenen Tag dem $data-Array zufügen.

Im Energy module.php müssen im $capvars Array Variablen den neuen Tags(Caps) zugewiesen werden.
Zum Schluss müssen in dessen Parse Funktion die einkommenden Daten den neuen Variablen gemäß dem vorhandenen Muster zugewiesen werden.

Tommi