FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: en-trust am 14 Juni 2017, 09:03:19

Titel: Batteriestatus sendet keine Mitteilung
Beitrag von: en-trust am 14 Juni 2017, 09:03:19
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.
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: amenomade am 14 Juni 2017, 09:25:49
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.
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: amenomade am 14 Juni 2017, 09:45:06
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?
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: kadettilac89 am 14 Juni 2017, 09:55:35
Hi,

Quelle des Codes ist ein bekannter Blog.

http://www.meintechblog.de/2015/08/fhem-rechtzeitige-benachrichtigung-bei-leeren-batterien/ (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 (https://wiki.fhem.de/wiki/Batterie%C3%BCberwachung)
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: en-trust am 14 Juni 2017, 12:00:37
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
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: Otto123 am 14 Juni 2017, 12:38:46
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
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag 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.
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: amenomade am 14 Juni 2017, 13:00:45
Dein Device heisst NAME       FL.Tuerkontakt

Dein AT arbeitet mit ReadingsVal("FL.Tuerschloss"
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag 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 )\


Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: Otto123 am 14 Juni 2017, 13:43:29
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
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: kadettilac89 am 14 Juni 2017, 14:15:17
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";
  }
}
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: en-trust am 14 Juni 2017, 15:12:46
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.
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: amenomade am 14 Juni 2017, 15:44:08
Ich weiss nicht, ob das reicht, aber zumindest gibt es eine "{" zu viel vor fhem()
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: en-trust am 14 Juni 2017, 16:06:06

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.
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: amenomade am 14 Juni 2017, 16:06:14
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.


Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: kadettilac89 am 14 Juni 2017, 16:28:44
Zitat von: amenomade am 14 Juni 2017, 16:06:14
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.
Die Slash sind Zeilenumbrüche. Wie schon gesagt mach bitte alles über das webfrontend dann musst du dich um solche Sachen nicht kümmern.
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: amenomade am 14 Juni 2017, 17:02:42
Zitat von: kadettilac89 am 14 Juni 2017, 16:28:44
Die Slash sind Zeilenumbrüche.

Ich weiss, ich weiss...  ::) :-X  Soll ich das Topic "Direkt editieren der fhem.cfg" wieder hier aufmachen? ;)
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: kadettilac89 am 14 Juni 2017, 20:11:00
Zitat von: amenomade am 14 Juni 2017, 17:02:42
Ich weiss, ich weiss...  ::) :-X  Soll ich das Topic "Direkt editieren der fhem.cfg" wieder hier aufmachen? ;)

Dann brauch ich Popcorn ... die Diskussion hatten wir schon ein paar Tage nicht mehr. Ich verstehe die Anfänger auch, es gibt Blogs in denen der Eindruck erweckt wird dass alles ganz einfach ist, Beispiele der CFG sind angegeben jedoch kein Hinweis wie diese einzupflegen sind. Ich weiß nicht wer da helfen kann, aber es wäre sicher hilfreich, wenn zumindest im Fhem-Wiki direkt über den Beispielen ein Hinweis oder Link auf ein "How-To import Beispiel" was selbst ein Wiki-Artikel wert wäre.

@en-trust, Finger weg von der fhem.cfg :). Es gibt keinen Grund als Anfänger hier zu editieren. Für den Fall, dass du die Definition hast, z. B. aus dem Wiki, hast du in jedem Device ganz unten den Link "Raw Definition". Dort kannst du die Beispiele direkt reinposten, beim Speichern wird ein Syntax-Check gemacht. Dann siehst du viel früher ob irgend was falsch ist. Zumindest Klammern oder grunlegende Sachen.
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: Otto123 am 14 Juni 2017, 21:12:07
Der Hinweis zur Raw Def ist ja schon gekommen  ;D
Angelernt ist (ich hasse englische Worte die irgendwie deutsch dekliniert werden) bzw. pairing ist erfolgreich, wenn in den Readings die Werte der hmId sauber bei PairedTo drin stehen.

Ich möchte an der Stelle auch hmInfo empfehlen, bitte definieren und configcheck machen. Dann die Fehler abarbeiten  8)

Aber ist alles kein Zwang, vor allem nicht für den Fall.  8)

Gruß Otto
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: en-trust am 18 Juni 2017, 11:40:41
Fehlermeldung ist jetzt weg aber eine Meldung bekomm ich ich nicht. Bekomme ich bei diesem notify die Meldung dann sobald der Status eintrifft? Dann müsste ich ja doch eine tgl Prüfung einbauen denn ich kann ja mal die Meldung übersehen.
Titel: Antw:Batteriestatus sendet keine Mitteilung
Beitrag von: Otto123 am 18 Juni 2017, 15:29:24
Du bist irgendwie lustig. Du willst doch eine Meldung wenn eine Batterie tot ist. Solange wie keine tot ist gibt es auch keine Meldung. Wenn Du das battery reading nicht mit event-on-change-reading maskiert hast, bekommst Du dann jedes mal wenn das Gerät die readings aktualisiert eine Nachricht, es wird dich schon nerven.

Warmen Sonntag noch
Otto