Überwachen IMMER ON / Erreichbar ( HM-ES-PMSw1-Pl ) + Alarm

Begonnen von ChrisW, 02 Juli 2018, 09:48:18

Vorheriges Thema - Nächstes Thema

ChrisW

Hallo,
ich benutze einen HM-ES-PMSw1-Pl  als Leistungsmesser für meine Regenwasser Pumpe. Diese darf NIEMALS auf OFF gehen !
Laut Wiki habe ich schon den Trick mit dem ON nach Stromausfall und das Deaktivieren des Tasters gemacht.
Trotzdem will ich ein Watchdog ? haben welcher immer checkt ob Gerät ON ist UND was noch wichtiger ist das das Gerät nicht ausgefallen ist.
Ich weiss in dem HM Modul ist etwas dabei was Geräte meldet. Ich will davon aber was unabhäniges haben + Push usw.

Hat dafür zufällig jemand ein Code den mal grob verwenden kann?
Danke
Raspberry PI3 mit allem möglichen.

frank

wie sieht der stromverlauf am messstecker aus? gibt es hier einen minimalen strom, der nie unterschritten wird?

dann kannst du zb ein notify/doif oder watchdog auf das strom reading machen, um hier eine unterschreitung fest zu stellen.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

ChrisW

Leider nicht aber ich glaub das Teil meldet sich doch auch einmal am Tag oder ? Ich hab mal Logs eingerichtet.
Raspberry PI3 mit allem möglichen.

frank

poste mal je ein list vom hauptdevice und von chn2.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

ChrisW

Also im Log hab ich sehr oft etwas obwohl ich da schon mit .* nur änderungen Speichern lasse
018-07-02_11:38:38 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 1 U: 231.4 f: 49.98
2018-07-02_11:38:38 pumpe_regenwasser_Pwr voltage: 231.4
2018-07-02_11:41:39 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 1 U: 230.5 f: 49.99
2018-07-02_11:41:39 pumpe_regenwasser_Pwr frequency: 49.99
2018-07-02_11:41:39 pumpe_regenwasser_Pwr voltage: 230.5
2018-07-02_11:44:26 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 1 U: 231.1 f: 49.99
2018-07-02_11:44:26 pumpe_regenwasser_Pwr voltage: 231.1
2018-07-02_11:49:17 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 1 U: 230.9 f: 49.97
2018-07-02_11:49:17 pumpe_regenwasser_Pwr frequency: 49.97
2018-07-02_11:49:17 pumpe_regenwasser_Pwr voltage: 230.9
2018-07-02_11:51:21 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 1 U: 230.9 f: 49.96
2018-07-02_11:51:21 pumpe_regenwasser_Pwr frequency: 49.96
2018-07-02_11:54:14 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 1 U: 231.1 f: 50.01
2018-07-02_11:54:14 pumpe_regenwasser_Pwr frequency: 50.01
2018-07-02_11:54:14 pumpe_regenwasser_Pwr voltage: 231.1
2018-07-02_11:56:53 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 1 U: 231.2 f: 49.98
2018-07-02_11:56:53 pumpe_regenwasser_Pwr frequency: 49.98
2018-07-02_11:56:53 pumpe_regenwasser_Pwr voltage: 231.2
2018-07-02_11:59:17 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 1 U: 231.6 f: 49.99
2018-07-02_11:59:17 pumpe_regenwasser_Pwr frequency: 49.99
2018-07-02_11:59:17 pumpe_regenwasser_Pwr voltage: 231.6
2018-07-02_12:01:27 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 1 U: 231.1 f: 49.99
2018-07-02_12:01:27 pumpe_regenwasser_Pwr voltage: 231.1
2018-07-02_12:04:27 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 1 U: 231.3 f: 49.98
2018-07-02_12:04:27 pumpe_regenwasser_Pwr frequency: 49.98
2018-07-02_12:04:27 pumpe_regenwasser_Pwr voltage: 231.3
2018-07-02_12:07:12 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 1 U: 231.4 f: 49.97
2018-07-02_12:07:12 pumpe_regenwasser_Pwr frequency: 49.97
2018-07-02_12:07:12 pumpe_regenwasser_Pwr voltage: 231.4
2018-07-02_12:09:43 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 1 U: 231.8 f: 49.98
2018-07-02_12:09:43 pumpe_regenwasser_Pwr frequency: 49.98
2018-07-02_12:09:43 pumpe_regenwasser_Pwr voltage: 231.8
2018-07-02_12:11:59 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 1 U: 231.9 f: 49.98
2018-07-02_12:11:59 pumpe_regenwasser_Pwr voltage: 231.9
2018-07-02_12:14:01 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 1 U: 231.6 f: 49.99
2018-07-02_12:14:01 pumpe_regenwasser_Pwr frequency: 49.99
2018-07-02_12:14:01 pumpe_regenwasser_Pwr voltage: 231.6
2018-07-02_12:16:53 pumpe_regenwasser_Pwr current: 0
2018-07-02_12:16:53 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 0 U: 231.6 f: 49.96
2018-07-02_12:16:53 pumpe_regenwasser_Pwr frequency: 49.96
2018-07-02_12:19:30 pumpe_regenwasser_Pwr current: 1
2018-07-02_12:19:30 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 1 U: 231.7 f: 49.97
2018-07-02_12:19:30 pumpe_regenwasser_Pwr frequency: 49.97
2018-07-02_12:19:30 pumpe_regenwasser_Pwr voltage: 231.7
2018-07-02_12:21:53 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 1 U: 231.2 f: 49.97
2018-07-02_12:21:53 pumpe_regenwasser_Pwr voltage: 231.2
2018-07-02_12:24:01 pumpe_regenwasser_Pwr eState: E: 105.5 P: 0 I: 1 U: 231 f: 49.98
2018-07-02_12:24:01 pumpe_regenwasser_Pwr frequency: 49.98
2018-07-02_12:24:01 pumpe_regenwasser_Pwr voltage: 231


List Hauptgerät:
Internals:
   DEF        24AA70
   HMLAN_MSGCNT 69
   HMLAN_RAWMSG E24AA70,0000,5237D085,FF,FFB0,28845E24AA7000000080041F0000000001090DFE
   HMLAN_RSSI -80
   HMLAN_TIME 2018-07-02 12:26:59
   IODev      HMLAN
   LASTInputDev HMLAN
   MSGCNT     69
   NAME       pumpe_regenwasser
   NOTIFYDEV  global
   NR         501
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 pumpe_regenwasser_Sw
   channel_02 pumpe_regenwasser_Pwr
   channel_03 pumpe_regenwasser_SenPwr
   channel_04 pumpe_regenwasser_SenI
   channel_05 pumpe_regenwasser_SenU
   channel_06 pumpe_regenwasser_SenF
   lastMsg    No:28 - t:5E s:24AA70 d:000000 80041F0000000001090DFE
   protLastRcv 2018-07-02 12:26:59
   protSnd    2 last_at:2018-07-02 09:31:30
   protState  CMDs_done
   rssi_HMLAN cnt:1 min:-82 max:-82 avg:-82 lst:-82
   rssi_at_HMLAN cnt:69 min:-85 max:-79 avg:-81.43 lst:-80
   .attraggr:
   .attrminint:
   READINGS:
     2018-07-02 09:24:15   .D-devInfo      3F0100
     2018-07-02 09:24:15   .D-stc          51
     2018-07-02 09:20:33   .R-intKeyVisib  visib
     2017-09-27 11:20:39   .R-localResDis  off
     2018-07-02 12:26:59   .protLastRcv    2018-07-02 12:26:59
     2018-07-02 09:31:23   Activity        alive
     2018-07-02 09:26:52   CommandAccepted yes
     2018-07-02 09:24:15   D-firmware      1.4
     2018-07-02 09:24:15   D-serialNr      KEQ0965466
     2018-07-02 09:21:40   PairedTo        0x006633
     2017-09-27 11:20:39   R-pairCentral   0x006633
     2018-07-02 09:21:40   RegL_00.        02:81 0A:00 0B:66 0C:33 18:00 00:00
     2018-07-01 13:11:57   powerOn         2018-07-01 13:11:57
     2018-07-02 09:31:30   state           CMDs_done
   helper:
     HM_CMDNR   40
     cSnd       ,0100663324AA70010E
     mId        00AC
     regLst     ,0
     rxType     1
     supp_Pair_Rep 0
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +24AA70,00,00,00
       nextSend   1530527219.23629
       rxt        0
       vccu       VCCU
       p:
         24AA70
         00
         00
         00
       prefIO:
         HMLAN
     mRssi:
       mNo        28
       io:
         HMLAN:
           -78
           -78
     prt:
       bErr       0
       sProc      0
       rspWait:
     q:
       qReqConf   
       qReqStat   
     role:
       dev        1
       prs        1
     rssi:
       HMLAN:
         avg        -82
         cnt        1
         lst        -82
         max        -82
         min        -82
       at_HMLAN:
         avg        -81.4347826086956
         cnt        69
         lst        -80
         max        -79
         min        -85
     shadowReg:
     tmpl:
Attributes:
   IODev      HMLAN
   IOgrp      VCCU:HMLAN
   actCycle   000:10
   actStatus  alive
   autoReadReg 4_reqStatus
   expert     2_raw
   firmware   1.4
   model      HM-ES-PMSw1-Pl
   room       CUL_HM
   serialNr   KEQ0965466
   subType    powerMeter
   webCmd     getConfig:clear msgEvents


Und PWR list:
nternals:
   DEF        24AA7002
   NAME       pumpe_regenwasser_Pwr
   NOTIFYDEV  global
   NR         505
   STATE      105.5
   TYPE       CUL_HM
   chanNo     02
   device     pumpe_regenwasser
   .attraggr:
   .attreocr:
     .*
   .attrminint:
   READINGS:
     2018-02-06 12:40:25   R-averaging     1 s
     2018-02-06 12:40:25   R-sign          off
     2018-02-06 12:40:25   R-txMinDly      8 s
     2018-02-06 12:40:25   R-txThrCur      100 mA
     2018-02-06 12:40:25   R-txThrFrq      1 Hz
     2018-02-06 12:40:25   R-txThrPwr      100 W
     2018-02-06 12:40:25   R-txThrVlt      10 V
     2018-07-02 09:21:42   RegL_01.        08:00 7A:01 7B:08 7C:00 7D:27 7E:10  7F:00 80:64 81:00 82:64 83:64 00:00
     2018-07-02 12:26:59   boot            off
     2018-07-02 12:26:59   current         1
     2018-07-02 12:26:59   eState          E: 105.5 P: 0 I: 1 U: 231.7 f: 49.98
     2018-07-02 12:26:59   energy          105.5
     2018-07-02 12:26:59   energyCalc      54062.4
     2018-07-01 13:11:59   energyOffset    53956.9
     2018-07-02 12:26:59   frequency       49.98
     2018-07-02 12:26:59   power           0
     2018-07-02 12:26:59   state           105.5
     2018-07-02 12:26:59   voltage         231.7
   helper:
     regLst     ,1
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     role:
       chn        1
     shadowReg:
     tmpl:
Attributes:
   event-on-change-reading .*
   model      HM-ES-PMSw1-Pl
Raspberry PI3 mit allem möglichen.

frank

der messstecker sendet bei konstanter last mindestens im 2,5min rythmus. da die versorgungsspannung eigentlich nie konstant ist, gibt es dann auch etea in diesem rhytmus events.

es sieht so aus, als wäre der standby strom deiner pumpe ca 1 mA, siehe log. leider wird auch einmal 0 mA gemessen.

ich würde nun einen watchdog/doif definieren, der zb auslöst, wenn der strom mindestens 15min 0 ist.

ausserdem würde ich das register averaging im chn2 mal auf 10s setzen, in der hoffnung, dass im standby weniger oft 0mA gemessen wird.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

pwlr


ZitatUND was noch wichtiger ist das das Gerät nicht ausgefallen ist.
wenn das mit der Strommessung aufgrund wechselnder Last nicht funktioniert, kannst Du auch die Spannung oder die Frequenz mit einem 2.Watchdog überwachen (siehe Commandref). Spannung und Frequenz werden auch zyklisch gesendet.

ungetestet: Eigentlich müsste man auch den Channel_05 oder Channel_06 mit einem Aktor (der an einem anderen Stromkreis / Sicherung hängt) peeren können. Den Aktor programmiert Du dann in einen "Off-for-Timer" Status, der von einem der beiden Channel immer nachgetriggert wird. Dann kannst Du bei Ausfall eine Alarmlampe / Hupe oder was auch immer ansteuern. Vorteil - funktioniert auch bei einem Ausfall von fhem oder sonstigen zentralen Problemen. Wär mal was anderes....es gibt viele Möglichkeiten...

helmut

#7
Zitat von: ChrisW am 02 Juli 2018, 09:48:18
ich benutze einen HM-ES-PMSw1-Pl  als Leistungsmesser für meine Regenwasser Pumpe. Diese darf NIEMALS auf OFF gehen !
[...]
Hat dafür zufällig jemand ein Code den mal grob verwenden kann?
Danke

Ich habe genau dasselbe Problem und das mit einem HM-ES-PMSw1-SM geloest. Der Code ist  holzschnittartig und hat jede Menge
Raum fuer Verbesserungen, funktioniert aber zu meiner Zufriedenheit.

Die Idee ist, anhand eines willkuerlichen Leistungs-Schwellwertes die Ein- und Ausschaltzeiten zu ermitteln, mitzuschreiben und
auszuwerten um gegebenenfalls einen ALarm auszuloesen.

defmod dmy_drainpumpe dummy
attr dmy_drainpumpe DbLogInclude Einphase,Ausphase

defmod chk_drainpumpe notify pm_drainpumpe_pwr:power.* { \
        my $wd_dp_ein = ReadingsVal("global_variables","wd_dp_ein","0");; \
        my $wd_dp_aus = ReadingsVal("global_variables","wd_dp_aus","0");; \
        my $act_date = int(time);; \
        my $rcpt = ReadingsVal("global_variables","m_rcpt_family","0");; \
        if ($EVTPART1 > 100) { \
                if ($wd_dp_ein ne "0") { \
                        if (($act_date - $wd_dp_ein) > 600) { \
                                fhem_mail $rcpt,"Fehler Drainpumpe Einphase","Drainpumpe laeuft seit ".($act_date - $wd_dp_ein)." Sekunden ununterbrochen";; \
                                sendTextsecureGrp("1139cfc08bb696be5cf2c2fd2968b544", "Fehler Drainpumpe Einphase, Drainpumpe laeuft seit ".($act_date - $wd_dp_ein)." Sekunden ununterbrochen");; \
                        } \
                } elsif ($wd_dp_ein == "0") { \
                        my $aus = $act_date - $wd_dp_aus;; \
                        fhem    "setreading dmy_drainpumpe Ausphase $aus;; \
                                 setreading global_variables wd_dp_ein $act_date;; \
                                 setreading global_variables wd_dp_aus 0";; \
                } \
        } elsif ($EVTPART1 == 0) { \
                if ($wd_dp_aus ne "0") { \
                        if (($act_date - $wd_dp_aus) > 3600) { \
                                fhem_mail $rcpt,"Fehler Drainpumpe Ausphase","Drainpumpe laeuft seit ".($act_date - $wd_dp_aus)." Sekunden nicht mehr";; \
                                sendTextsecureGrp("1139cfc08bb696be5cf2c2fd2968b544", "Fehler Drainpumpe Ausphase, Drainpumpe laeuft seit ".($act_date - $wd_dp_aus)." Sekunden nicht mehr");; \
                        } \
                } elsif ($wd_dp_aus == "0") { \
                        my $ein = $act_date - $wd_dp_ein;; \
                        fhem    "setreading dmy_drainpumpe Einphase $ein;; \
                                 setreading global_variables wd_dp_aus $act_date;; \
                                 setreading global_variables wd_dp_ein 0";; \
                } \
        } \
}

defmod wd_drainpumpe watchdog pm_drainpumpe_pwr:power.* 00:10:00 SAME { \
        Log 2, "Log_wd_drainpumpe Watchdog: Seit 10 Minuten keine Werte vom PowerMeter Drainpumpe empfangen";; \
        my $rcpt = ReadingsVal("global_variables","m_rcpt_family","0");; \
        fhem_mail $rcpt,"Fehler PowerMeter Drainpumpe","Seit 10 Minuten keine Werte vom PowerMeter empfangen";; \
        sendTextsecureGrp("1139cfc08bb696be5cf2c2fd2968b544", "Fehler PowerMeter Drainpumpe, seit 10 Minuten keine Werte vom PowerMeter empfangen");; \
}


Der Zusatznutzen ist die Moeglichkeit der visuellen Darstellung der Ein- und Ausschaltzeiten.
Edit: Da wie ich gerade sehe, Deine Pumpe immer? laeuft, wirst Du das so nicht uebernehmen koennen, aber modifiziert ...

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

ChrisW

hmm Danke für den Code aber den kann ich so kaum gebrauchen :(
Was ich mir eher überlegt habe .. kann man nicht schauen ob etwas von der Steckdose gekommen ist und ob der Status ON ist ?
Da es eine Tauchpumpe ist die hat normal keine Standby.
Raspberry PI3 mit allem möglichen.

helmut

Zitat von: ChrisW am 09 Juli 2018, 11:15:01
Da es eine Tauchpumpe ist die hat normal keine Standby.
Das heisst, die laeuft tatsaechlich ununterbrochen durch? Ich habe auch eine Tauchpumpe und die hat jetzt im Sommer
Ausschaltphasen von bis zu einer Stunde um dann in ungefaehr einer Minute das angesammelte Wasser abzupumpen.
Der Schwimmerschalter hat eine mechanische Hysterese von ungefaehr 25 cm.

Der Status ON hilft zum Beispiel bei einem mechanischen Defekt des Schwimmerschalters nicht. Du koenntest hoechstens
den Strom innerhalb gewisser Grenzen ueberwachen. Aber selbst das hilft nicht, wenn die Wurzeln eines Baumes den Weg
in das Abwasserrohr gefunden haben. Hatte ich auch schon.

Wenn die wirklich ununterbrochen Strom zieht, habe ich keine Idee mehr.

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

ChrisW

naja geht darum ich habe ein Loch wo all mein Regenwasser reinläuft. Läuft das über = Haus voller Wasser.
Unten in dem Loch ist eine Tauchpumpe mit Schwimmer. Die Pumpe ist immer am Strom aber springt nur an wenn sich Wasser ansammelt.. das war aktuell vor 4 Wochen ...

Will erstmal nur verhindern das Ste Steckdose/Strommesser aus einem Defekt oder was auch immer auf OFF ist oder kaputt.

Ist die Pumpe selbst Defekt oder Kabel kaputt dann werde ich das ohne Wassersensor nicht mitbekommen .. das ist mir schon klar.


Raspberry PI3 mit allem möglichen.

helmut

Ah, es ist also genau umgekehrt. Sie ist zwar staendig bereit, laeuft aber eher im Wochenrhythmus mal an.
Bevor ich auf meine Loesung kam, hatte ich einen zusaetzlichen Schwimmerschalter installiert der Alarm ausloeste,
so etwas in der Art: https://www.conrad.de/de/schwimmerschalter-fuellen-leeren-5-m-1clrlg025pvc-551233.html

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

Pfriemler

Hatte da schon was probiert, aber die Offline-Erkennung klappte noch ncht. Ein Watchdog wäre ideal dafür. Der andere Zweig des DOIF versucht, wenn der Aktor off meldet, mehrere Einschaltversuche (gedacht als Sicherheit falls Funkstörungen die Befehle "verschlucken) und schickt final ebenfalls eine Nachricht.
Bin derzeit away, daher nur diese Idee.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

helmut

Der Aktor ist doch staendig an und zusaetzlich hat Chris ihn derart verriegelt, dass er nicht aus Versehen mit dem Taster
ausgeschaltet werden kann.

Ich bin sogar noch einen Schritt weiter gegangen, habe das Relais gebrueckt und den Aktor ausgeschaltet. So spare ich den
Strom fuer das Relais und bin ganz sicher, dass es nicht am Aktor liegt, wenn die Pumpe keine Spannung sieht. Vom
HM-ES-PMSw1-SM bekomme ich trotzdem alle Strom- und Leistungsdaten geliefert.

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)