Neues Modul 70_EFR.pm - N-ERGIE - Drehstromzähler

Begonnen von Zwiebel, 22 Dezember 2013, 18:56:59

Vorheriges Thema - Nächstes Thema

Zwiebel

Hallo Zusammen,

ich hab mit hilfe von Manuel ein neues Modul gebaut um den Drehstrom Zähler (unten) abzufragen.

N-ERGIE - Drehstromzähler
SMART Grid HUB - EFR-CU-M-EM-E001-1 (EasyMeter)

Das modul ist ab morgen per update verfügbar.

have fun...
Zwiebel

Petrosilius Zwackelmann

FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

Petrosilius Zwackelmann

Hallo Zwiebel,

bei der Abfrage des Stromzählers kommt es derzeit zu einer Zwangspause von ca. 20 Sekunden.
Ist es möglich die Abfrage in einem eigenen Thread (?) laufen zu lassen um das übrige System nicht zu stören?

Ansonsten läuft bisher alles prima, danke nochmals für dein tolles Modul...

Gruß Manuel



2013.12.23 22:26:47.141 1: HMLAN_Parse: CUL_HM new condition ok
2013.12.23 22:26:46.958 1: Perfmon: possible freeze starting at 22:26:27, delay is 19.958
2013.12.23 22:26:46.913 1: HMLAN_Parse: CUL_HM new condition init
2013.12.23 22:26:46.912 1: 192.168.178.2:1000 reappeared (CUL_HM)
2013.12.23 22:26:46.860 1: HMLAN_Parse: CUL_HM new condition disconnected
2013.12.23 22:26:46.856 1: 192.168.178.2:1000 disconnected, waiting to reappear
2013.12.23 22:24:47.162 1: HMLAN_Parse: CUL_HM new condition ok
2013.12.23 22:24:46.980 1: Perfmon: possible freeze starting at 22:24:27, delay is 19.979
2013.12.23 22:24:46.933 1: HMLAN_Parse: CUL_HM new condition init
2013.12.23 22:24:46.932 1: 192.168.178.2:1000 reappeared (CUL_HM)
2013.12.23 22:24:46.863 1: HMLAN_Parse: CUL_HM new condition disconnected
2013.12.23 22:24:46.859 1: 192.168.178.2:1000 disconnected, waiting to reappear
2013.12.23 22:22:47.090 1: HMLAN_Parse: CUL_HM new condition ok
2013.12.23 22:22:46.958 1: Perfmon: possible freeze starting at 22:22:27, delay is 19.958
2013.12.23 22:22:46.926 1: HMLAN_Parse: CUL_HM new condition init
2013.12.23 22:22:46.926 1: 192.168.178.2:1000 reappeared (CUL_HM)
2013.12.23 22:22:46.906 1: HMLAN_Parse: CUL_HM new condition disconnected
2013.12.23 22:22:46.903 1: 192.168.178.2:1000 disconnected, waiting to reappear
2013.12.23 22:20:46.824 1: HMLAN_Parse: CUL_HM new condition ok
2013.12.23 22:20:46.752 1: Perfmon: possible freeze starting at 22:20:27, delay is 19.752
FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

Zwiebel

Hallo Manuel,

woran erkenne ich denn in deinem log Auszug das das Modul EFR die Verzögerung verursacht?

Es gibt das Modul Blocking. Aber wie man das einbindet um so eine art threads zu bekommen weiß ich leider nicht.

Gruß
Zwiebel

Joachim

FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

Markus Bloch

Zitat von: Zwiebel am 24 Dezember 2013, 08:31:21
Hallo Manuel,

woran erkenne ich denn in deinem log Auszug das das Modul EFR die Verzögerung verursacht?

Es gibt das Modul Blocking. Aber wie man das einbindet um so eine art threads zu bekommen weiß ich leider nicht.

Gruß
Zwiebel

Hallo Zwiebel,

zum Modul Blocking.pm gibt es im Wiki einen Artikel, der die Einbindung in ein Modul erläutert: http://www.fhemwiki.de/wiki/Blocking_Call

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Petrosilius Zwackelmann

Hallo Markus Hallo Zwiebel,

ZitatHallo Manuel,

woran erkenne ich denn in deinem log Auszug das das Modul EFR die Verzögerung verursacht?

Es gibt das Modul Blocking. Aber wie man das einbindet um so eine art threads zu bekommen weiß ich leider nicht.

Gruß
Zwiebel

Ich habe das Intervall des EFR Moduls verändert und die 19 Sekundne Freeze Einträge verändern sich entsprechend.
Auch habe ich im Eventmonitor geschaut... Nach dem lange Zeit nichts geloggt wird kommen die Werte vom EFR Modul.

@Zwiebel:

hast du mit dem Blocking.pm schon einmal gearbeitet? Falls nicht veruche ich mir da einzuarbeiten und das Modul umzubauen..

Gruß Manuel
FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

Petrosilius Zwackelmann

Von Joachim kam der Tipp mit apptime die Programmlaufzeit (?) anzuzeigen.
Ergebnis anbei --> (energy_Update ist ein SUB von 70_EFR.pm)


name             function    max  count    total  average param Max call
                   tmr-energy_Update      HASH(0x8b84298)  20282      3    60457 20152.33 HASH(0x8b84298)
             tmr-HUEDevice_GetUpdate      HASH(0x8b287c8)     82      4      249    62.25 HASH(0x8b287c8)
          tmr-Heating_Control_Update      HASH(0x890b0d0)     63      2      124    62.00 HASH(0x890b0d0)
             tmr-HUEDevice_GetUpdate      HASH(0x8b054c0)     67      4      244    61.00 HASH(0x8b054c0)
             tmr-HUEDevice_GetUpdate      HASH(0x8b05a60)     62      4      243    60.75 HASH(0x8b05a60)
             tmr-HUEDevice_GetUpdate      HASH(0x8b28d58)     67      4      243    60.75 HASH(0x8b28d58)
             tmr-HUEDevice_GetUpdate      HASH(0x8b29028)     79      4      240    60.00 HASH(0x8b29028)
             tmr-HUEDevice_GetUpdate      HASH(0x89b1fc8)     64      4      233    58.25 HASH(0x89b1fc8)
             tmr-HUEDevice_GetUpdate      HASH(0x8b28a88)     60      4      222    55.50 HASH(0x8b28a88)


Danke Joachim
Gruß Manuel
FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

Zwiebel

Hi Manuel,

ich hab noch nie mit dem Blocking.pm gearbeitet.
Wenn du möchtest kannst du das Modul EFR gern umbauen.

gruß
Zwiebel

Markus Bloch

Hi Zwiebel,

schau dir einfach mal das Modul 32_speedtest.pm an, das ist ein sehr einfaches kleines Modul, welches einen Shell-Aufruf via Blocking.pm in einen Thread verlagert.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Zwiebel

Hallo Zusammen,

ich hab jetzt mal das Modul angepasst. Bin aber nicht sicher ob das so funktioniert, weil ich nicht so ein Strom Zähler habe.

Gruß
Zwiebel

Petrosilius Zwackelmann

#11
Hallo Zwiebel,


Rückmeldung aus einem Kurzzeittest: Das Modul funktioniert noch... Im Log konnte ich keinen Freeze Eintrag mehr sehen..
Rückmeldung ob es noch Hängenbleiber gibt sende ich sobald ich wieder im Lande bin.
1000 Dank.

Gruß Manuel
FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony

Markus Bloch

#12
Zitat von: Zwiebel am 27 Dezember 2013, 10:02:04
Hallo Zusammen,

ich hab jetzt mal das Modul angepasst. Bin aber nicht sicher ob das so funktioniert, weil ich nicht so ein Strom Zähler habe.

Gruß
Zwiebel

Hallo Zwiebel,

ich habe dein Modul ebenfalls nur durchgesehen. Zwei Punkte sind mir dabei aufgefallen.


  • Die Zeile 150:

    Log3 $hash, 5, "$hash->{NAME} loop done " ;

    sollte eher am Ende in der Funktion energy_energyDone() stehen, weil erst da der Loop wirklich einmal rum ist.

  • Du schedulest den Timer für den nächsten Durchlauf bereits in der Funktion energy_Update(). Das kann im Gutfall durchaus funktionieren, aber sollte der Abfragezyklus kleiner sein, als die Dauer eines Durchlaufes würden sich hier Blocking Calls anstauhen und den entsprechenden Host mit Unterprozessen volllaufen lassen.

    Daher solltest du dies unbedingt in die Funktion energy_energyDone() verlegen, weil dann wird der nächste Durchlauf auch tatsächlich erst dann gescheduled, wenn der aktuelle Loop rum ist.

Der Rest sieht soweit gut aus.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Zwiebel

Hallo Markus,

vielen dank!

hab es abgeändert und hoch geladen.

gruß
Zwiebel

Petrosilius Zwackelmann

Hallo Zwiebel,

Danke für das Update.... Test läuft bisher ohne Probleme.
Guten Rutsch
Manuel
FHEM 6 auf RaspPi V3:
HM_LAN / CUNX / HUEBridge /OneWire / Homebridge / SONOS / Harmony