Hauptmenü

Notify und kein wait

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

Vorheriges Thema - Nächstes Thema

accessburn

Huhu,
ich hab mir aus dem Wiki ein Notify für die Batteriewarnung gemopst.
Funktioniert nach meiner Anpassung auch recht gut, zu gut... alle 5 Minuten :-D

Wie passt man sowas an?

.*:[Bb]attery:.* { if($EVENT !~ m/ok/) { my $aktor = AttrVal($NAME,"alias","Fehler");; fhem( "set Telegram message FHEM Batteriewarnung: *" . $aktor ."*") }; }
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

DeeSPe

Zitat von: accessburn am 16 Februar 2017, 11:10:09
Huhu,
ich hab mir aus dem Wiki ein Notify für die Batteriewarnung gemopst.
Funktioniert nach meiner Anpassung auch recht gut, zu gut... alle 5 Minuten :-D

Wie passt man sowas an?

.*:[Bb]attery:.* { if($EVENT !~ m/ok/) { my $aktor = AttrVal($NAME,"alias","Fehler");; fhem( "set Telegram message FHEM Batteriewarnung: *" . $aktor ."*") }; }

event-on-change-reading wäre das Zauber-Attribut am Aktor!

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

accessburn

Muss ich nun auf jedes Device ein "event-on-change-reading battery" setzen?
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

DeeSPe

Zitat von: accessburn am 16 Februar 2017, 11:17:43
Muss ich nun auf jedes Device ein "event-on-change-reading battery" setzen?

Das wäre taktisch unklug, denn dann beraubst Du Dich selbst der anderen Events die Deine Aktoren erzeugen und auf die Du reagieren willst.
Ich setzte meist auf allen Geräten "event-on-change-reading .*" und bei Bedarf "event-on-update-reading" auf nötige Readings, z.B. wakeup bei den batteriebetriebenen Sensoren.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

accessburn

Okay, hab mal einen HT auf change-reading .* gestellt.

Nun kommt aktuell nix mehr. Ich bin etwas unsicher das dass so stimmt :D
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,
meiner Meinung nach ist "event-on-change-reading" so erst einmal der falsche Weg. Ich würde das so angehen: Du nimmst Dein notify und änderst es so ab, dass nicht die Message direkt geschickt wird, sondern in einem Dummy irgendwas gesetzt wird. Diesen Dummy gibst Du dann das event-on-change-reading und lässt das notify mit der Message vom Dummy triggern.
Wenn Du die Batterien gewechselt hast, dann setzt Du den Dummy zurück. Alternativ kannst Du das auch von einem at täglich oder so erledigen lassen. Dann bekommst Du einmal am Tag die Nachricht.
Gruß,
   Thorsten

FUIP

DeeSPe

Zitat von: accessburn am 16 Februar 2017, 11:32:41
Nun kommt aktuell nix mehr. Ich bin etwas unsicher das dass so stimmt :D

Es werden dann halt von allen Readings nur noch Events erzeugt wenn sich der Wert ändert!

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

accessburn

Da wäre dann die at-Methode lieber denn ich habe aktuell 18 Devices, das wird ja eine never ending Stor :-)

DOIF oder at, gibt es da auch etwas wie ein allrounder (.*:[Bb]attery:.*) oder muss ich evenfalls eins für jedes einzelne anlegen?
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

Brice

Ich nutze für alerts, die ich nur alle paar Stunden oder nur täglich haben möchte ganz oldschool E-Mail per notify nach Zeitablauf erneut senden. Funktioniert natürlich auch mit Push-Nachrichten.

Wäre das eine Alternative?
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

DeeSPe

Zitat von: Thorsten Pferdekaemper am 16 Februar 2017, 11:42:06
Hi,
meiner Meinung nach ist "event-on-change-reading" so erst einmal der falsche Weg. Ich würde das so angehen: Du nimmst Dein notify und änderst es so ab, dass nicht die Message direkt geschickt wird, sondern in einem Dummy irgendwas gesetzt wird. Diesen Dummy gibst Du dann das event-on-change-reading und lässt das notify mit der Message vom Dummy triggern.
Wenn Du die Batterien gewechselt hast, dann setzt Du den Dummy zurück. Alternativ kannst Du das auch von einem at täglich oder so erledigen lassen. Dann bekommst Du einmal am Tag die Nachricht.
Gruß,
   Thorsten

Verstehe nicht was an der dummy Lösung besser ist!
In meinem System gibt es bis auf das ImportDevice keinen einzigen dummy und trotzdem funktioniert alles wie es soll.

Ihr macht das schon mit Euren dummy(s)......
Viel Spaß weiterhin.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

accessburn

Zitat von: DeeSPe am 16 Februar 2017, 12:05:52
Ihr macht das schon mit Euren dummy(s)......

Da ist aber einer eingeschnappt :-)

Dann hilf mir doch. Ich benötige nur ein Push (wie auch immer) mindestens einmal am Tag das alle Devices auf ein battery:low testet.
Ich möchte keine 18 Notifys, Dummys oder ähnliches anlegen :-)


Bitte nicht streiten, sondern helft mir  ;D 8)
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: DeeSPe am 16 Februar 2017, 11:44:20
Es werden dann halt von allen Readings nur noch Events erzeugt wenn sich der Wert ändert!
Die Frage ist halt, ob man das will. Ich würde das nicht woollen.

Zitat von: DeeSPe am 16 Februar 2017, 12:05:52
Verstehe nicht was an der dummy Lösung besser ist!
Man kann relative einfach steuern, wie oft man die Message haben will.

Zitat von: accessburn am 16 Februar 2017, 11:46:22DOIF oder at, gibt es da auch etwas wie ein allrounder (.*:[Bb]attery:.*) oder muss ich evenfalls eins für jedes einzelne anlegen?
Du lässt das notify so wie es ist,  nur dass Du das mit der Message durch das setzen eines geeigneten Readings in einem Dummy ersetzt.

Zitat von: accessburn am 16 Februar 2017, 12:16:21Ich benötige nur ein Push (wie auch immer) mindestens einmal am Tag das alle Devices auf ein battery:low testet.
Ich möchte keine 18 Notifys, Dummys oder ähnliches anlegen :-)
Genau das macht doch meine Lösung. Du musst nur ein Dummy anlegen. Wenn Du willst, dann kannst Du auch ein Reading in irgend einem anderen Device anlagen, muss ja kein neuer Dummy sein.
Gruß,
   Thorsten
FUIP

accessburn

So, soweit bin ich:

ZitatInternals:
   CFGFN
   NAME       Batterie_dummy
   NR         5993
   STATE      Heizung_WZ_Rechts
   TYPE       dummy
   Readings:
     2017-02-16 12:56:33   state           Heizung_WZ_Rechts
Attributes:
   event-on-change-reading .*
   room       Wohnzimmer

ZitatInternals:
   DEF        .*:[Bb]attery:.* { if($EVENT !~ m/ok/) { my $aktor = AttrVal($NAME,"alias","Fehler");; fhem( "set Batterie_dummy " . $aktor) }; }
   NAME       n_batt_chk
   NR         430
   NTFY_ORDER 50-n_batt_chk
   REGEXP     .*:[Bb]attery:.*
   STATE      2017-02-16 12:56:33
   TYPE       notify
   Readings:
     2017-02-16 12:54:16   state           active
Attributes:


Wie stell ich jetzt die Verbindung 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

Na, wie gesagt: Du machst Dir ein notify, das bei Änderung des Dummy triggert und sendest darin Deine Message.
Gruß,
   Thorsten
FUIP

accessburn

Und da bin ich jetzt am selben Punkt angekommen wie es vorher schon mal war. Ich hab kein Plan wie das gehen soll.

Korrigiere mich, ich versuche es wenigstens zu lernen :-)

Neues, zusätzliches Notify mit:


{
  my $Batteriealarm = ReadingsVal("Batterie_dummy", "state", "Fehler");
  if ($Batteriealarm !~ m/ok/)
  {
    fhem("set telegram message blablabla;set Batterie_dummy ok")
  }
}


macht das dann so sinn?
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