Hauptmenü

Notify und kein wait

Begonnen von accessburn, 16 Februar 2017, 11:10:09

Vorheriges Thema - Nächstes Thema

accessburn

Ha!
Ich hab was fast funktionierendes :-)

Jedoch folgende Frage daraus, wieso wird einmal "ok" in den Dummy geschrieben, beim nächsten trigger "alles_gut" dann wieder "ok".
Die Batterie ist doch immer leer :-D


.*:[Bb]attery:.* { if($EVENT !~ m/ok/) { my $aktor = AttrVal($NAME,"alias","Fehler");; fhem( "set battery_dummy $aktor") } else { fhem( "set battery_dummy alles_gut") }; }
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

Thorsten Pferdekaemper

Hi,
Du verwirrst mich und Dich selbst wahrscheinlich auch. Das notify, das den Dummy gesetzt hat, war doch schon perfekt. Es schreibt einfach das Device, was als letztes einen Batteriealarm hatte, in den Dummy rein. Ok, wenn es zwei Devices warden, dann bist Du zurück beim ursprünglichen Problem, aber da sehen wir dann weiter.
Bei dem neuen notify must Du doch in den Kommandoteil nur das schreiben:

set telegram message blablabla

Das ist alles.
Gruß,
   Thorsten
FUIP

accessburn

Verwirrt ist kein ausdruck, nennt mich Alan Touring ;-)

Ich hab es jetzt über ein at gelöst, denn das ursprüngliche kriege ich eh nicht mehr zusammen :-D
das at nervt mich zweimal am Tag so lange der dummy auf irgendwas anderes steht als ok. Jedoch wechselt der dummy andauernd seinen Status hin und her
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

Thorsten Pferdekaemper

Zitat von: accessburn am 16 Februar 2017, 16:38:07
Verwirrt ist kein ausdruck, nennt mich Alan Touring ;-)
Der Herr hieß "Alan Turing", ohne "o".  :P

Zitat
Ich hab es jetzt über ein at gelöst, denn das ursprüngliche kriege ich eh nicht mehr zusammen :-D
das at nervt mich zweimal am Tag so lange der dummy auf irgendwas anderes steht als ok. Jedoch wechselt der dummy andauernd seinen Status hin und her
Dann lass uns doch nochmal teilhaben an Deinen Verwirrungen. Wie wär's wenn Du mal ein List der beteiligten notifies, des at und des Dummys machst?
Gruß,
   Thorsten
FUIP

accessburn

notify n_batt_chk
ZitatInternals:
   CFGFN
   DEF        .*:[Bb]attery:.* { if($EVENT !~ m/ok/) { my $aktor = AttrVal($NAME,"alias","Fehler");; fhem( "set battery_dummy $aktor") } else { fhem( "set battery_dummy ok") }; }
   NAME       n_batt_chk
   NR         11028
   NTFY_ORDER 50-n_batt_chk
   REGEXP     .*:[Bb]attery:.*
   STATE      2017-02-16 16:52:05
   TYPE       notify
   Readings:
     2017-02-16 16:43:23   state           active
Attributes:
   room       Wohnzimmer

dummy battery_dummy
ZitatInternals:
   CFGFN
   NAME       battery_dummy
   NR         11072
   STATE      ok
   TYPE       dummy
   Readings:
     2017-02-16 16:52:06   state           ok
Attributes:
   room       Wohnzimmer

at batterie_warnung:
ZitatInternals:
   CFGFN
   COMMAND    { my $aktor = ReadingsVal("battery_dummy","state","Fehler");; if ($aktor !~ m/ok/) { fhem( "set Telegram message FHEM Batteriewarnung: *" . $aktor ."*" ) }; }
   DEF        +*12:00 { my $aktor = ReadingsVal("battery_dummy","state","Fehler");; if ($aktor !~ m/ok/) { fhem( "set Telegram message FHEM Batteriewarnung: *" . $aktor ."*" ) }; }
   NAME       batterie_warnung
   NR         11200
   NTM        04:02:43
   PERIODIC   yes
   RELATIVE   yes
   REP        -1
   STATE      Next: 04:02:43
   TIMESPEC   12:00
   TRIGGERTIME 1487300563.37993
   TRIGGERTIME_FMT 2017-02-17 04:02:43
   TYPE       at
   Readings:
     2017-02-16 16:02:43   state           Next: 04:02:43
Attributes:
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

Thorsten Pferdekaemper

Hi,
also ich würde das in etwa wie folgt ändern:
1. Das erste notify:

.*:[Bb]attery:.* { if($EVENT !~ m/ok/) { my $aktor = AttrVal($NAME,"alias","Fehler");; fhem("setreading battery_dummy lastLowDevice ".$actor);;   fhem( "setreading battery_dummy battstate low") } }

2. Im dummy noch zusätzlich:

attr battery_dummy event-on-change-reading battstate

3. Noch ein notify etwa so:

define n_battMsg notify battery_dummy:battstate:.low set Telegram message FHEM Batteriewarnung [battery_dummy:lastLowDevice]

4. Das at so definieren:

define removeBattstate at +*12:00 setreading battery_dummy battstate ok


Du solltest dann zweimal am Tag die Nachricht bekommen, solange Du keine Batterien wechselst. Der Dummy-Status wechselt auch nur zweimal am Tag kurz.
Gruß,
   Thorsten

Gruß,
   Thorsten
FUIP

accessburn

Okay, somit bin ich komplett raus, versteh nicht wieso das so sein muss. Aber ich möchte dich jetzt nicht ärgern, nur es geht nicht :-(

battstate bleibt auf okay stehen. Hab das at mal auf eine minute gedreht und mal bisschen laufen lassen...
Das Log schimpft:
Zitat2017.02.16 17:49:04 1: ERROR evaluating my $EVTPART0='battery:';my $TYPE='MAX';my $SELF='n_batt_chk';my $EVTPART1='ok';my $EVENT='battery: ok';my $NAME='MAX_132a2c';{ if($EVENT !~ m/ok/) { my $aktor = AttrVal($NAME,"alias","Fehler");; fhem("setreading battery_dummy lastLowDevice ".$actor);;   fhem( "setreading battery_dummy battstate low") } }: Global symbol "$actor" requires explicit package name at (eval 53169) line 1.
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

Thorsten Pferdekaemper

Zitat von: accessburn am 16 Februar 2017, 17:49:38
Okay, somit bin ich komplett raus, versteh nicht wieso das so sein muss.
Muss ja gar nicht, aber ich hatte Dein letztes Posting so verstanden, dass es nocht nicht richtig klappt.

Zitat
battstate bleibt auf okay stehen. Hab das at mal auf eine minute gedreht und mal bisschen laufen lassen...
Das Log schimpft:
Ah, ich habe da in dem ersten notify aus Versehen $actor statt $aktor geschrieben.
Gruß,
   Thorsten
FUIP

accessburn

Autsch, hab ich auch nicht entdeckt ...

Ich habe den at auf einer Minute laufen. Die Mails kommen wie vorher als normaler notify alle 5-6 Minuten.
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

Thorsten Pferdekaemper

Zitat von: accessburn am 16 Februar 2017, 20:00:27
Ich habe den at auf einer Minute laufen. Die Mails kommen wie vorher als normaler notify alle 5-6 Minuten.
Ja, das ist klar. Wenn das at jede Minute läuft, dann setzt es jede Minute das battstate zurück. Dann kann man sich das ganze auch sparen. Du musst das at seltener laufen lassen als die Devices ihre Events produzieren. Dann solltest Du den Effekt sehen. Also z.B. das at alle 15 Minuten, dann müssten die Messages alle 15 bis 21 Minuten kommen, wenn es vorher alle 5 bis 6 Minuten war.
Gruß,
   Thorsten
FUIP

accessburn

Okay ich teste das mal.
In der Hoffnung es macht irgendwann klick...

Ich weiß schon warum ich PHP gelernt hab und nicht Perl ;-)
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

Thorsten Pferdekaemper

Zitat von: accessburn am 16 Februar 2017, 20:08:00
Ich weiß schon warum ich PHP gelernt hab und nicht Perl ;-)
Wieso? Da ist doch jetzt fast kein Perl dabei.
FUIP