[98_JsonMod.pm] Abfragezeiten und Berechnen der Readings AC ELWA-E

Begonnen von Rewe2000, 20 Juli 2020, 12:36:07

Vorheriges Thema - Nächstes Thema

Rewe2000

Hallo,

bin eben auf das Modul von herrmannj gestossen und lese damit meinen my-PV AC ELWA-E Heizstab aus. Grundsätzlich komme ich so an die Daten, wie ich es mir vorstelle, es gibt aber immer noch einige Dinge, welche ich bei mir verbessern will.

Abfragezeiten:
Die minimalste Abfragezeit ist gemäß cron Schreibweise 1 Minute */1 * * * *
Besteht die Möglichkeit den Abfrageintervall kürzer anzugeben z.B. 10 Sekunden?
Hintergrund:
Der von mir verwendete Heizstab moduliert die Leistung zwischen 0-3000 Watt, diese hätte ich gerne in kürzeren Abständen visualisiert einmal pro Minute. Da die Abfrage hier im Hausnetz stattfindet, brauche ich keine Angst zu haben, dass mich der Server irgenwann, wegen zuvielen Abfragen abweist.

Berechnung von Werten:
Die Werte für die Temperaturen werden in 1/10 Grad geliefert, besteht die Möglichkeit die Werte gleich in der readingList im Modul korrekt zu berechnen? Egal was ich da versucht habe, es war nicht mit Erfolg verbunden.
Sollte es nicht direkt gehen, bleibt ja immer noch der Weg über userReadings.

Umwandeln von Stati:
Wie wandelt man am geschicktesten Statusanzeigen, welche in Zahlen geliefert werden?
Geht das auch irgendwie direkt in der readingslist oder muss ich da auch besser den Umweg über userReadings nehmen?

Beispiel:
1 = Betriebsbereit
2 = Temp erreicht
3 = Standby
21 = Abgeschaltet
.....

defmod AC_ELWA_E JsonMod http://192.168.50.55/data.jsn
attr AC_ELWA_E DbLogExclude .*
attr AC_ELWA_E disable 0
attr AC_ELWA_E icon sani_boiler_temp
attr AC_ELWA_E interval */1 * * * *
attr AC_ELWA_E readingList single(jsonPath('$.device'), 'Geraet', 'N/A');;\
single(jsonPath('$.fwversion'), 'Firmwareversion', 'N/A');;\
single(jsonPath('$.status'), 'Status', 'N/A');;\
single(jsonPath('$.power'), 'Leistung', 'N/A');;\
single(jsonPath('$.temp1'), 'Speicher_Istwert', 'N/A');;\
single(jsonPath('$.ww1target'), 'Speicher_Sollwert', 'N/A');;\
single(jsonPath('$.ctrlstate'), 'Status_Ansteuerung', 'N/A');;\
single(jsonPath('$.tempchip'), 'Prozessortemperatur', 'N/A');;
attr AC_ELWA_E room Hauskraftwerk

setstate AC_ELWA_E 2020-07-20 12:31:00 .computedReadings Status_Ansteuerung,Firmwareversion,Speicher_Sollwert,Geraet,Leistung,Prozessortemperatur,Speicher_Istwert,Status
setstate AC_ELWA_E 2020-07-20 12:31:00 Firmwareversion 00200.01
setstate AC_ELWA_E 2020-07-20 12:31:00 Geraet AC ELWA-E
setstate AC_ELWA_E 2020-07-20 12:31:00 Leistung 0
setstate AC_ELWA_E 2020-07-20 12:31:00 Prozessortemperatur 29
setstate AC_ELWA_E 2020-07-20 12:31:00 Speicher_Istwert 220
setstate AC_ELWA_E 2020-07-20 12:31:00 Speicher_Sollwert 534
setstate AC_ELWA_E 2020-07-20 12:31:00 Status 21
setstate AC_ELWA_E 2020-07-20 12:31:00 Status_Ansteuerung Modbus Read receiveddefmod AC_ELWA_E JsonMod http://192.168.50.55/data.jsn
attr AC_ELWA_E DbLogExclude .*
attr AC_ELWA_E disable 0
attr AC_ELWA_E icon sani_boiler_temp
attr AC_ELWA_E interval */1 * * * *
attr AC_ELWA_E readingList single(jsonPath('$.device'), 'Geraet', 'N/A');;\
single(jsonPath('$.fwversion'), 'Firmwareversion', 'N/A');;\
single(jsonPath('$.status'), 'Status', 'N/A');;\
single(jsonPath('$.power'), 'Leistung', 'N/A');;\
single(jsonPath('$.temp1'), 'Speicher_Istwert', 'N/A');;\
single(jsonPath('$.ww1target'), 'Speicher_Sollwert', 'N/A');;\
single(jsonPath('$.ctrlstate'), 'Status_Ansteuerung', 'N/A');;\
single(jsonPath('$.tempchip'), 'Prozessortemperatur', 'N/A');;
attr AC_ELWA_E room Hauskraftwerk

setstate AC_ELWA_E 2020-07-20 12:31:00 .computedReadings Status_Ansteuerung,Firmwareversion,Speicher_Sollwert,Geraet,Leistung,Prozessortemperatur,Speicher_Istwert,Status
setstate AC_ELWA_E 2020-07-20 12:31:00 Firmwareversion 00200.01
setstate AC_ELWA_E 2020-07-20 12:31:00 Geraet AC ELWA-E
setstate AC_ELWA_E 2020-07-20 12:31:00 Leistung 0
setstate AC_ELWA_E 2020-07-20 12:31:00 Prozessortemperatur 29
setstate AC_ELWA_E 2020-07-20 12:31:00 Speicher_Istwert 220
setstate AC_ELWA_E 2020-07-20 12:31:00 Speicher_Sollwert 534
setstate AC_ELWA_E 2020-07-20 12:31:00 Status 21
setstate AC_ELWA_E 2020-07-20 12:31:00 Status_Ansteuerung Modbus Read received


Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

herrmannj

Moin Reinhard

Zur Zeit; ne, der cron Syntax hat da wirklich nix kleineres als eine Minute im Angebot

Die anderen beiden gehen aktuell nur über User Reading. Da wollte ich mir aber sowieso noch was einfallen lassen wie man das lösen kann. Tauchen doch immer mal use cases dazu auf.

Vg
Jörg

rudolfkoenig

Was spricht gegen userReadings?
Es waere schade, wenn jedes Modul anfangen wuerde, eine eigene Loesung anzubieten.

herrmannj


Rewe2000

Hallo,

danke Jörg, für die Info. Dies ist kein Problem, bevor ich hier mir UserReadings erstelle wollte ich hier mal nachfragen ob es nicht auch sofort irgendwie direkt bei der Abfrage geht. Du musst für mich da nicht extra was einbauen, das "Problem" kann ich auch gut mit UserReadings lösen.

Die Lösung der Zeitangaben über cron Syntax bietet natürlich sehr komfortable Möglichkeiten der Einstellung, hat für mich aber den großen Nachteil, dass hier keine Einstellung unter einer Minute möglich ist. Das Modul würde für alle Anwendungsfälle bei mir passen. Üblicherweise benötigt man Infos nicht in so kurzen Abständen. Aber da ich die Heizleistung einen modulierenden E-Heizstabs erfassen will benötige ich hier kürzere Abfragezyklen. Während einer Minute ändert sich da die Leistung um mehrere kW.

Kannst du mir da noch einen anderen Weg empfehlen um an die Json Daten in kurzen Abständen im Heimnetz zu gelangen oder ist da der "Umweg" über HTTPMOD derzeit der einzig gangbare Weg? Eine Modbus Schnittstelle ist am Heizstab vorhanden, diese weist aber die Verbindung ab, wenn eine Verbindung des Heizstabs zum Stromspeicher besteht, somit fällt diese Möglichkeit für mich weg (Hersteller ist kontaktiert, Antwort steht noch aus).

Vielen Dank für das tolle Modul
Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

herrmannj

Wird in den kommenden Tagen ein Update dazu geben.

Vg
Jörg

amenomade

Zitat von: herrmannj am 21 Juli 2020, 10:30:52
Wird in den kommenden Tagen ein Update dazu geben.

Vg
Jörg
Hallo Jörg. Wenn Du dabei bist, hätte ich als Wunsch eine "set reread" Funktion. Somit könnte man bei Bedarf, ohne den cron Parameter zu ändern, eine Abfrage sofort zu starten.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

yersinia

Zitat von: amenomade am 21 Juli 2020, 12:07:58
Hallo Jörg. Wenn Du dabei bist, hätte ich als Wunsch eine "set reread" Funktion.
Es gibt einen Wunschlisten Thread für JsonMod. :)
Zitat von: yersinia am 24 Mai 2020, 14:46:22
  • WebCmd Funktionen wie zB ein reread, analog zu HTTPMOD
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

amenomade

Zitat von: yersinia am 21 Juli 2020, 12:11:22
Es gibt einen Wunschlisten Thread für JsonMod. :)
Danke für den Hinweis. Gerade gesehen, das mein Wunsch sogar schon im ersten Post davon steht. Alles super dann :)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

herrmannj

Weil wir einmal dabei sind; damit die Wünsche umgesetzt werden können muss ich einen Teil des Moduls neu schreiben (der Block wo multi und singe definiert ist), Ich versuche dass das kompatibel zum jetzigen Verhalten ist. Weil ich aber Nebeneffekte nicht komplett ausschließen kann würde ich das gern vorab zum testen in den "JsonMod Wunschthread" und erst danach ins update geben.

Wer Interesse hat, abonniert doch schon mal bitte den "JsonMod Wunschthread" um die Beta dann zu sehen und, im Idealfall, dann auch zu testen. Wird so im Lauf der Woche werden.

Danke, vg
Joerg