Batteriestatus sendet keine Mitteilung

Begonnen von en-trust, 14 Juni 2017, 09:03:19

Vorheriges Thema - Nächstes Thema

en-trust

Folgendes habe ich erstellt...


#Batteriestatus aller Devices anzeigen
define GS.Batterie readingsGroup .*:[Bb]attery\
.*:[Bb]atteryLevel
attr GS.Batterie alias Batteriestatus
attr GS.Batterie group Sensoren
attr GS.Batterie mapping %ROOM
attr GS.Batterie notime 1
attr GS.Batterie room Gerätestatus
attr GS.Batterie valueFormat {return "0" if( $VALUE eq "low" );; return "100" if( $VALUE eq "ok" );; return "25" if( $VALUE < 2.1 );; return "50" if( $VALUE < 2.3 );; return "75" if( $VALUE < 2.5 );; return "100"}
attr GS.Batterie valueIcon {'battery.0' => 'measure_battery_0@red','battery.100' => 'measure_battery_100@green','Battery.0' => 'measure_battery_0@red','Battery.100' => 'measure_battery_100@green','batteryLevel.0' => 'measure_battery_0@red','batteryLevel.25' => 'measure_battery_25@red','batteryLevel.50' => 'measure_battery_50@orange','batteryLevel.75' => 'measure_battery_75@green','batteryLevel.100' => 'measure_battery_100@green'}

define BatterieStatus readingsGroup .*:[bB]attery
attr BatterieStatus mapping $ALIAS
attr BatterieStatus notime 1
attr BatterieStatus room Hardware
attr BatterieStatus valueFormat { my ($wert) = $VALUE =~ m/(\d+)/;; $wert = 100 if ($VALUE eq "ok");; $wert = 49 if ($VALUE eq "low");; $wert = 0 if ($VALUE eq "critical");; return "<i class='fa fa-battery-0 green fa-2x'><span class='myhidden'>critical</i>" if ($wert < 25);; return "<i class='fa fa-battery-0 green fa-2x'><span class='myhidden'>low</i>" if ($wert < 50);; return "<i class='fa fa-battery-4 green fa-2x'><span class='myhidden'>ok</span></i>";;}
attr BatterieStatus valueIcon {'battery.ok' => 'batterie@green', 'battery.low' => 'batterie@yellow', 'battery.critical' => 'batterie.red'}

#Pushover-Benachrichtigung bei leeren Batterien
define BatteryLowPushover at *19:00:00 { if ( $mday <= 6 && $wday == 0 )\
{if (ReadingsVal("DG.LaCrosse", "battery", "-1") eq "low")\
  {fhem ("set PushMessenger msg 'Klimasensor (DG)' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
{if (ReadingsVal("GT.LaCrosse", "battery", "-1") eq "low")\
  {fhem ("set PushMessenger msg 'Klimasensor (Garten)' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
{if (ReadingsVal("KZ.LaCrosse", "battery", "-1") eq "low")\
  {fhem ("set PushMessenger msg 'Klimasensor (KZ)' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
{if (ReadingsVal("SZ.LaCrosse", "battery", "-1") eq "low")\
  {fhem ("set PushMessenger msg 'Klimasensor (SZ)' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
{if (ReadingsVal("VR.LaCrosse", "battery", "-1") eq "low")\
  {fhem ("set PushMessenger msg 'Klimasensor (VR)' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
{if (ReadingsVal("WZ.LaCrosse", "battery", "-1") eq "low")\
  {fhem ("set PushMessenger msg 'Klimasensor (WZ)' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
{if (ReadingsVal("FL.Tuerschloss", "battery", "-1") eq "low")\
  {fhem ("set PushMessenger msg 'Haustürkontakt' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
{if (ReadingsVal("GT.Tuerschloss", "battery", "-1") eq "low")\
  {fhem ("set PushMessenger msg 'Gartenhaustürkontakt' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
{if (ReadingsVal("WZ.Tuerkontakt", "battery", "-1") eq "low")\
  {fhem ("set PushMessenger msg 'Terrassentürkontakt' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
}
attr BatteryLowPushover group Sensoren
attr BatteryLowPushover room Gerätestatus


Allerdings müsste das jetzt greifen ... da unter Readings battery auf low steht.

{if (ReadingsVal("FL.Tuerschloss", "battery", "-1") eq "low")\
  {fhem ("set PushMessenger msg 'Haustürkontakt' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\


Das seit Tagen... Bekomme aber keine Nachricht.

amenomade

#1
Das kriegst Du aber erst wenn if ( $mday <= 6 && $wday == 0 )

War am 04.06 die Batterie schon lehr?

EDIT: übrigens... wenn der erste Sonntag des Monats der 7. ist, wie es im Mai war, kriegst Du gar nix.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Ah sorry, zu schnell gelesen. Deine Einrückung hat mich verwirrt. Die Bedingung mit mday und wday gilt nur für DG.LaCrosse.

Zeig mal ein "list FL.Tuerschloss" bitte.
Und funktioniert dein PushMessenger?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

kadettilac89

Hi,

Quelle des Codes ist ein bekannter Blog.

http://www.meintechblog.de/2015/08/fhem-rechtzeitige-benachrichtigung-bei-leeren-batterien/

Wieviel davon hast du abgeändert? Der Blog ist von 2015, vielleicht funktioniert der Code an sich schon nicht mehr bevor du überhaupt erst umgebaut hast.

Alternativ, kennst du den Wiki-Eintrag zum Thema Batterieüberwachung? Habe ich in Verbindung mit Pushover im Einsatz. Ich frage mich warum die Batterie nur einmal im Monat gemeldet werden soll. Wenn bis dahin der Sensor schon ausgefallen ist .... Ich finde es besser sofort darüber informiert zu werden. ... just my 2 Cents.

https://wiki.fhem.de/wiki/Batterie%C3%BCberwachung

en-trust

Bin newbie und hab das Scrip genau von dieser besagten Seite. Vielleicht gibt es ja eine bessere Lösung die mir tgl. den Status übermittelt wenn was nicht stimmt.

list sagt...


Internals:
   DEF        3FB7A6
   IODev      myCUL
   LASTInputDev myCUL
   MSGCNT     15
   NAME       FL.Tuerkontakt
   NOTIFYDEV  global
   NR         669
   STATE      closed
   TYPE       CUL_HM
   lastMsg    No:CD - t:41 s:3FB7A6 d:F11034 81CD00
   myCUL_MSGCNT 15
   myCUL_RAWMSG A0CCDA6413FB7A6F1103481CD00::-92:myCUL
   myCUL_RSSI -92
   myCUL_TIME 2017-06-14 10:28:54
   protLastRcv 2017-06-14 10:28:54
   protSnd    6 last_at:2017-06-14 10:28:54
   protState  CMDs_done
   rssi_at_myCUL avg:-94.83 lst:-92 cnt:15 min:-99 max:-87.5
   Readings:
     2017-06-14 10:22:40   Activity        alive
     2017-04-10 14:13:23   D-firmware      2.4
     2017-04-10 14:13:23   D-serialNr      xxxxxx
     2017-06-05 04:42:42   alive           yes
     2017-06-14 10:28:54   battery         low
     2017-06-14 10:28:54   contact         closed (to myVCCU)
     2017-06-05 04:42:42   powerOn         2017-06-05 04:42:42
     2017-06-05 04:42:42   recentStateType info
     2017-06-05 04:42:42   sabotageError   off
     2017-06-14 10:28:54   state           closed
     2017-06-14 10:28:54   trigger_cnt     205
   Helper:
     HM_CMDNR   205
     mId        00B1
     rxType     28
     supp_Pair_Rep 0
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Io:
       newChn     +3FB7A6,00,00,00
       nextSend   1497428934.42244
       prefIO
       rxt        2
       vccu
       p:
         3FB7A6
         00
         00
         00
     Mrssi:
       mNo        CD
       Io:
         myCUL      -90
     Prt:
       bErr       0
       sProc      0
       sleeping   1
       Rspwait:
     Q:
       qReqConf   00
       qReqStat
     Role:
       chn        1
       dev        1
     Rpt:
       IO         myCUL
       flg        A
       ts         1497428934.32705
       ack:
         HASH(0x3221d80)
         CD8002F110343FB7A60101C800
     Rssi:
       At_mycul:
         avg        -94.8333333333333
         cnt        15
         lst        -92
         max        -87.5
         min        -99
     Tmpl:
Attributes:
   IODev      myCUL
   actCycle   028:00
   actStatus  alive
   alias      Haustürkontakt
   autoReadReg 4_reqStatus
   devStateIcon .*:fts_door_right_closed .*:fts_door_right .*:fts_door_right .*:fts_door_right .*:fts_door_right
   event-on-change-reading state,battery,sabotageError
   expert     2_raw
   firmware   2.4
   group      Aktoren
   icon       fts_door_right_open
   model      HM-SEC-SC-2
   peerIDs    00000000,
   room       CUL_HM,Hausflur,Sensoren
   serialNr   MEQ1135604
   subType    threeStateSensor

Otto123

Hi,

Spielt zwar für Dein Problem keine Rolle, aber ich würde den Kontakt auch anlernen (pairen)
Und die RSSI Werte sind schlecht  -> unter -80 -> kann gehen muss aber nicht!

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

en-trust

Den Kontakte hatte ich damals aber gepaired und meldet sich auch zuverlässig via push wenn die Tür geöffnet wird.

amenomade

Dein Device heisst NAME       FL.Tuerkontakt

Dein AT arbeitet mit ReadingsVal("FL.Tuerschloss"
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

en-trust

Blind... Danke. Geändert und testweise mal die Uhrzeit geändert und es klappt.

Habt Ihr eine Empfehlung was ich statt dessen nehmen soll bzw. was wäre hier sinnvoll ?

define BatteryLowPushover at *19:00:00 { if ( $mday <= 6 && $wday == 0 )\



Otto123

Zitat von: en-trust am 14 Juni 2017, 13:00:22
Den Kontakte hatte ich damals aber gepaired und meldet sich auch zuverlässig via push wenn die Tür geöffnet wird.
Das Du die Meldung bekommst und der Status aktualisiert wird und autocreate ein define erzeugt hat ist noch lange nicht gepairt.
Es fehlen die entsprechenden Readings, das Gerät ist nicht gepairt. Aber dem aktuellen Fall und mir ist das Wurscht, bloß steuern kannst Du das Gerät damit nicht.

Und mit dem RSSI um die -90 kann es sein, dass auch mal Meldungen verloren gehen -> und ohne Pairing leuchtet der Sensor nicht mal rot  ;D
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kadettilac89

Zitat von: en-trust am 14 Juni 2017, 13:28:55
Blind... Danke. Geändert und testweise mal die Uhrzeit geändert und es klappt.

Habt Ihr eine Empfehlung was ich statt dessen nehmen soll bzw. was wäre hier sinnvoll ?

define BatteryLowPushover at *19:00:00 { if ( $mday <= 6 && $wday == 0 )\

Kommt auf die Anforderung an, meine Empfehlung ist weiterhin sofort per Push eine Nachricht zu bekommen wenn irgend eine Batterie leer ist. Egal ob Diestag ist oder nicht. Ich sende mir eine Mail und eine Push. Die Mail kann ich mir dann ganz einfach zu einem Termin im Kalender wandeln wenn ich unterwegs bin. Definition wie im verlinkten Wiki. Der nicht zu vergessende Vorteil davon ... sobald IRGEND ein Device in Zukunft mit Batterie-Reading angelegt wird ist sofort in der Überwachung aktiv. Du musst nichts anpassen und kannst es somit nicht vergessen.

Mein Code ....


define n_batt_chk notify .*:[Bb]attery:.* { if($EVENT !~ m/ok/) {
  { DebianMail('xxxxxx@xxx.de','FHEM Batteriewarnung',$NAME.': '.$EVENT,'')};
   fhem("set pushover msg 'FHEM Batteriewarnung' '$NAME: $EVENT'");
   Log 3, "$NAME: Batteriewarnung $EVENT";
  }
}

en-trust

#11
Woran erkennst Du denn, ob der gepaired ist ? PeerId 0000000? Ich hatte das damals mit set <CUL> hmPairForSec 600 gemacht und er hatte mir dann in fhem den Eitrag gesetzt.
Hab Batterie jetzt einfach mal aus der wiki übernommen...


define rg_battery readingsGroup .*:battery
attr rg_battery alias Batteriestatus
attr rg_battery valueIcon {'battery.ok' => 'batterie', 'battery.low' => 'batterie@red'}
attr rg_battery commands { "battery.low" => "set %DEVICE replaceBatteryForSec 60" }

define n_batt_chk notify .*:[Bb]attery:.* { if($EVENT !~ m/ok/) {\
  { fhem("set PushMessenger msg 'FHEM Batteriewarnung' '$NAME: $EVENT'");\
   Log 3, "$NAME: Batteriewarnung $EVENT";\
  }\
}


Er meckert allerdings, obwohl ich es 1:1 kopiert habe.

Unknown command Log, try help.
Unknown command }
, try help.

amenomade

Ich weiss nicht, ob das reicht, aber zumindest gibt es eine "{" zu viel vor fhem()
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

en-trust


define n_batt_chk notify .*:[Bb]attery:.* { if($EVENT !~ m/ok/) {\
   fhem("set PushMessenger msg 'FHEM Batteriewarnung' '$NAME: $EVENT'");\
   Log 3, ("$NAME: Batteriewarnung $EVENT");\
  }\
}


Mag fhem trotzdem nicht.

amenomade

Zitatobwohl ich es 1:1 kopiert habe
Eigentlich hast Du nicht.

kadettilac89 hatte diese "\" Zeichen am Ende der Zeilen nicht.
Warum? Wahrscheinlich, weill er nicht die gleiche Eingabe-Methode als Du nutzt ................................  :-X

Wenn bei dir die "\" benötigt werden, dann brauchst Du auch die ";" zu verdoppeln. Evtl. auch die Einführungszeichen zu escapen mit \ vorne...

Arbeite bitte lieber im Editor des Webfrontend beim Klicken auf "DEF". Da brauchst Du dich nicht um "\" oder ";;" zu kümmern. Wird uns alle Zeit sparen.


Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus