Pushover bei Statusänderung

Begonnen von Aki1988, 04 März 2014, 14:25:19

Vorheriges Thema - Nächstes Thema

Aki1988

Hallo, nachdem ich lange rumprobiert habe (als Anfänger) eine einfache Push Benachrichtigung auf mein iPhone mit Pushover zu senden möchte ich euch hier mal das Ergebnis vorlegen.

Zuerst habe ich Pushover in FHEM definiert (siehe http://fhem.de/commandref_DE.html#Pushover):
define <name> Pushover <token> <user>

also bei mir in diesem Beispiel:
define Pushover_Test Pushover abcdefghijklmnopqrstuvwxyzXXXXX abcdefghijklmnopqrstuvwxyzXXXXX

Als nächstes habe ich mir einen Dummy erstellt welcher mein Gerät darstellt welches beim Schalten eine Push Benachrichtigung auslösen soll:
define TestGeraet dummy
attr TestGeraet webCmd on:off

das TestGeraet in einen Definierten Zustand bringen mit
set TestGeraet off
Das hier geht natürlich auch mit einem schon vorhandenen Gerät welches den Status an FHEM zurückmeldet (z.B. Homematic)

Jetzt erstelle ich ein notify das die Push Benachrichtigung bei Statusänderung ausführt.

define PushDummy notify TestGeraet {fhem ("set Pushover_Test msg 'FHEM' 'Dummy geschalten!' '' 0 ''")}}

wenn ich jetzt das TestGeraet schalte erhalte ich eine Push Benachrichtigung auf meinem Smartphone (Ich setze mal voraus das die App eingerichtet ist)

---------------------------------------------------------------------------------------------------------------------------------------------------
Zur Erweiterung habe ich noch einen Schalter (Push_Aktiv) definiert mit dem ich die Push Benachrichtigungen "unterdrücken" kann.
define Push_Aktiv dummy
attr Push_Aktiv webCmd on:off

Auch hier wieder den Schalter in einen definierten Zustand bringen mit
set Push_Aktiv on

jetzt das neue notify mit IF Push_Aktiv=ON einbauen
define PushDummy notify TestGeraet {if(Value("Push_Aktiv") eq "on") {fhem ("set Pushover_Test msg 'Titel' 'Push Aktiv und Schalter ausgelößt.' '' 0 ''")}}

heißt auf Deutsch: Wenn das TestGeraet geschaltet wird überprüfe ob Push_Aktiv den Status on hat. Wenn ja, dann Schicke eine Push Nachricht.

So funktioniert es bei mir. Ein kleiner Schritt für die FHEM Experten hier, aber ich bin recht froh dass ich es hinbekommen habe. Vielleicht hilft es ja dem einen oder anderen.

P.A.Trick

Würde auch herrlich in unser Wiki passen, oder?
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Aki1988

So ich habe mein obiges Programm noch einmal erweitert: Jetzt kann ich den Schaltzustand des TestGeraets in der Pushnachricht mitsenden.

Also nocheinmal im überblick

define Pushover_Test Pushover abcdefghijklmnopqrstuvwxyzXXXXX abcdefghijklmnopqrstuvwxyzXXXXX
define TestGeraet dummy
attr TestGeraet webCmd on:off


das TestGeraet in einen Definierten Zustand bringen mit
set TestGeraet off
oder mit einem Klick auf Off

Push Aktiv Dummy anlegen:
define Push_Aktiv dummy
attr Push_Aktiv webCmd on:off


Auch hier wieder den Schalter in einen definierten Zustand bringen mit
set Push_Aktiv on

define PushNotify notify TestGeraet {if(Value("Push_Aktiv") eq "on"){my $temp_Status = Value("TestGeraet");; fhem ("set Pushover_Test msg 'TestGeraet' 'Schaltzustand: $temp_Status' '' 0 ''")}}

define PushNotify notify TestGeraet {if(Value("Push_Aktiv") eq "on"){my $temp_Status = Value("TestGeraet");; fhem ("set Pushover_Test msg 'TestGeraet' 'Schaltzustand: $temp_Status' '' 0 ''")}}

if(Value("Push_Aktiv") eq "on") --> Wenn der Dummy Schalter "Push_Aktiv" AN ist
my $temp_Status = Value("TestGeraet") --> erstelle die Variable $temp_Status und Schreibe dort den Status (bzw Value) vom TestGeraet hinein
fhem ("set Pushover_Test msg 'TestGeraet' 'Schaltzustand: $temp_Status' '' 0 ''") --> führe den FHEM Befehl "set Pushover_Test msg 'TestGeraet' 'Schaltzustand: $temp_Status' '' 0 ''" aus wobei $temp_Status als Variable durch den oben hineingeschriebenen Wert ersetzt wird.

dieda

Interessant, obwohl ich Pushover nur unterwegs nutze und Zuhause WebViewControl.
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

AHA1805

Hallo

hab mir auch eine Lösung mit Pushover gebastelt.

Diese schickt mir, wenn ich nach Hause komme, und noch niemand die Post aus dem Briefkasten geholt hat eine Pushover Nachricht aufs Handy.

Wenn es jemanden interessiert, kann ich es beschreiben.

Schöne Grüße
Hannes
AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

fazer41

@aki1988
Ich habe mal dein Beispiel übernommen. Für Testgerät meinen in Fhem bestehenden AV-Receiver genommen.
Ich möchte eine Benachrichtigung bekommen, sobald das Gerät eingeschaltet wird. Ist nur um die eigentlich Funktion zu testen.
Ich erhalte auch die Benachrichtigung, allerdings sofort 8 Mal beim Einschalten und 8 Mal beim Ausschalten.

Hier noch der fhem Auszug
define Pushover_Test Pushover xxxxxxxxxxxxxxxxxxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxx
define Push_Aktiv dummy
attr Push_Aktiv webCmd on:off
define PushNotify notify AV_Receiver {if(Value("Push_Aktiv") eq "on"){my $temp_Status = Value("AV_Receiver");; fhem ("set Pushover_Test msg 'AV_Receiver' 'Schaltzustand: $temp_Status' '' 0 ''")}}

Kann sich jemand einen Reim draus machen?

AHA1805

Was zeigt
"inform timer"
bzw. "Event Monitor" in der Web Oberfläche
SG

Gesendet von Unterwegs mit Tapatalk 4

AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

P.A.Trick

Setze mal event-on-change auf das Device "AV_Receiver", dann sollte die Zustandsänderung nur einmal kommen!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

fazer41

#8
Zitat von: AHA1805 am 18 März 2014, 18:32:41
Was zeigt
"inform timer"
bzw. "Event Monitor" in der Web Oberfläche
SG

Gesendet von Unterwegs mit Tapatalk 4
inform timer liefert
2014-03-19 09:01:01 Pushover Pushover_Test last-message: AV_Receiver: Schaltzustand: on
                                                                                                                   2014-03-19 09:01:01 Pushover Pushover_Test last-result: OK






und das ganze 8 Mal......

bei attr AV_Receiver event-on-change-reading .* bekomme ich die Benachrichtigung nur noch zweimal
bei attr AV_Receiver event-on-change-reading  1 bekomme ich keinerlei Benachrichtigung

Folgender Eintrag war erfolgreich attr AV_Receiver event-on-change-reading state

inesa394

#9
Hallo AHA1805

Würde mich interressieren wenn du so nett wärst veröffentlich es doch

Bei mir funktioniert es nicht mit einen Bewegungsmelder von Homematic
hier der code was ist da falsch bekomme keinerlei Nachricht auf mein Handy
Pushover ist eingerichtet
define Pushover1 Pushover atVUuddddpceGE3Q9o36Erddwkddh xxxxxxxxxGRZErTuxxxnM8wNTJ85i
define pushnachricht dummy
attr pushnachricht webCmd on:off
define Push_Aktiv dummy
attr Push_Aktiv webCmd on:off
define PushNotify notify aussen_bewegung {if(Value("Push_Aktiv") eq "on"){my $temp_Status = Value("aussen_bewegung");;;; fhem ("set Pushover1 msg 'aussen_bewegung' 'Schaltzustand: $temp_Status' '' 0 ''")}}



Gruß Inesa

inesa394

Funktioniert jetzt bei mir danke noch für diese gute Idee

Gesendet von meinem LG-D802 mit Tapatalk


fazer41

@Inesa394
Hast Du noch was ändern müssen damit es funktioniert und wenn ja was? :)

P.A.Trick

Ich habe mal angefangen einen Wiki Artikel zu schreiben. Jeder ist herzlich eingeladen zu ändern bzw. zu verbessern!

http://www.fhemwiki.de/wiki/Pushover
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

inesa394

Nein im code hat sich bei mir ein Fehler eingeschlichen

Gesendet von meinem LG-D802 mit Tapatalk


AHA1805

Hallo Inesa,

ich habe Pushover verwendet, so dass ich informiert werde, wenn Post in den Briefkasten geworfen wird
Aber nur wenn ich schon zu Hause bin, oder gerade nach Hause komme.

Definition von PUSHOVER

define PO_Hannes_Post Pushover aZaaUo58xxxxxxxxxxxxxxxxxxx urdJFEeNESEukxxxxxxxxxxxxxxxxxxx
define PO_Heike_Post Pushover aYeh3kLijKS8xxxxxxxxxxxxxxxxxxx uGdVXxEkgYR5s1vxxxxxxxxxxxxxxxxxxx


Im Briefkasten habe ich einen HM-SCI-3-FM eingebaut, welcher den Status des Deckels als auch der Türe mittels Reedkontakt bzw. Taster abfrägt.
define SW_Briefkasten_Tuer CUL_HM 20837A02
define SW_Briefkasten_Deckel CUL_HM 20837A03


Den Status ob der Briefkasten voll/leer als auch
Ob die Nachricht schon gesendet wurde (zu Hause) oder nicht (noch unterwegs)
wird in 3 dummys zwischen gespeichert.
define Briefkasten dummy
define pushPostHeike dummy
define pushPostHannes dummy


Diese Schalte lösen einen Notify aus, welche die Function evtBriefkasten aufruft.
define ntf_Briefkasten notify SW_Briefkasten.* {evtBriefkasten("@")}

Die eigentliche Funktion für das auswerten der Deckel und versenden der Nachrichten.
sub evtBriefkasten($)
{
   my ($objname) = shift;
   my ($objvalue) = Value($objname) ;
   my ($statBriefkasten) = Value("Briefkasten");
   my ($myAnwesend) = "";
   my ($myPushstate) ="";
   if ($objname eq "SW_Briefkasten_Deckel" and $objvalue eq "open" and $statBriefkasten eq "leer") {
      fhem("set Briefkasten voll");
      $myAnwesend  =  Value("Anw_Nexus");
      if ($myAnwesend eq "present") {
          fhem("set pushPostHeike send");
          fhem("set PO_Heike_Post msg msg 'Briefkasten' 'Der Briefkasten ist voll' '' 0 ''");
      } else {
          fhem("set pushPostHeike pendig");
      }

      $myAnwesend  =  Value("Anw_iPhone");
      if ($myAnwesend eq "present") {
          fhem("set pushPostHannes send");
          fhem("set PO_Hannes_Post msg msg 'Briefkasten voll' 'Der Briefkasten ist voll' '' 0 ''");
      } else {
          fhem("set pushPostHannes pendig");
      }
   }
   #Briefkasten Status zurück setzen
   if ($objname eq "SW_Briefkasten_Tuer" and $objvalue eq "closed" and $statBriefkasten eq "voll") {
      fhem("set Briefkasten leer");
      fhem("set pushPostHannes leer");
      fhem("set pushPostHeike leer");
   }
}




Den Status über "zu Hause" oder "abwesend" mache ich über das PRESENC Modul
define Anw_iPhone PRESENCE fritzbox AHAs-iPhone
define Anw_Nexus PRESENCE fritzbox Nexus4


Dann noch ein Notify bei einem Event des PRESENC Modul
define ntf_Anwesend notify Anw_.* {evt_Anwesend("@")}

sub evt_Anwesend($)
{
   my ($objname) = shift;
   my ($objvalue) = Value($objname) ;
   my ($myPushstate) ="";
   if ($objvalue eq "present" ) {
       $myPushstate =  Value("pushPostHeike");
       if ($myPushstate eq "pendig"  and $objname eq "Anw_Nexus") {
         fhem("set PO_Heike_Post msg msg 'Briefkasten' 'Der Briefkasten ist voll' '' 0 ''");
         fhem("set pushPostHeike send");
       }
       $myPushstate =  Value("pushPostHannes");
       if ($myPushstate eq "pendig"  and (($objname eq "Anw_iPhone") or ($objname eq "Anw_Note8"))) {
         fhem("set PO_Hannes_Post msg msg 'Briefkasten' 'Der Briefkasten ist voll' '' 0 ''");
         fhem("set pushPostHannes send");
       }
   }
}



Schöne Grüße
Hannes
AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

fazer41

@Aha1805
Danke für Deine Briefkastenlösung!
welche Reedkontakte hast du im Briefkasten verbaut?

inesa394

Das ist der HC-SCI-3-FM wenn ich richtig gelesen habe.Wozu sind die Kabel die aus dem Sensor rausschauen?

Gesendet von meinem LG-D802 mit Tapatalk


AHA1805

Zitat von: fazer41 am 25 März 2014, 10:47:57
@Aha1805
Danke für Deine Briefkastenlösung!
welche Reedkontakte hast du im Briefkasten verbaut?

Wenn ich Zuhause bin kann ich mal ein Foto machen.


Zitat von: inesa394 am 25 März 2014, 11:54:28
Das ist der HC-SCI-3-FM wenn ich richtig gelesen habe.Wozu sind die Kabel die aus dem Sensor rausschauen?
Mit den Kabel kann man den Zustand von 3 Schalter, Taster, egal ob Öffner oder Schließer in Echtzeit zuverlässig abfragen.

Bei mir ein Taster mit Öffner Funktion für den Deckel
und ein Eingang für der Tür Status via Reedkontakt.

Gesendet von meinem LG-D802 mit Tapatalk


Gesendet von Unterwegs mit Tapatalk 4
AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

AHA1805

Hallo hier das Bild
(http://img.tapatalk.com/d/14/03/29/6equ4y6y.jpg)

hat zwar etwas gedauert, aber es war immer schon zu dunkel zum Fotografieren.

Gruß Hannes

Gesendet von Unterwegs mit Tapatalk 4

AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

fazer41

Danke fürs Bild. Saubere Lösung!

Gesendet von meinem GT-I9100 mit Tapatalk


fazer41

Wie sieht die Befehlszeile aus wenn ich für ein Ereignis zwei Personen auf unterschiedlichen Pushoveraccounts die selbe Benachrichtigung zukommen lassen will. Kann ich das zusammen definieren oder geht das nur einzeln.

Meine Benachrichtigung lautet bisher folgendermassen
define WaschmaschineAbgeschlossenPushover notify HR.WaschmaschineBetrieb:standby {fhem("set PushWa msg 'Hauswirtschaftsraum''Waschvorgang abgeschlossen' '' 0 ''")}
PushWa habe ich vorher definiert.
Die zweite Person soll die selbe Benachrichtigung bekommen?

P.A.Trick

Du kannst bei Pushover sog. "Delivery Groups" definieren. So wie ich das verstanden habe, sollte das doch genau für deinen Fall passen!?


https://pushover.net/groups/build

ZitatIf you often need to send the same notification to a group of Pushover users at the same time, creating a Delivery Group can make this process easier.
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

fazer41

Zitat von: P.A.Trick am 31 März 2014, 23:10:06
Du kannst bei Pushover sog. "Delivery Groups" definieren. So wie ich das verstanden habe, sollte das doch genau für deinen Fall passen!?


https://pushover.net/groups/build

ja danke, das vereinfacht die Sache enorm!

crepp1967

@Aki1988
Hallo,
Diese Lösung habe ich schon lange gesucht. Allerdings hapert es bei mir an der Umsetzung. Den Dummy habe ich definiert u. er funktioniert auch, aber wie kann ich einen Aktor zuordnen ?

Meine Konfig:

define pushover_modul Pushover xxx xxx
attr pushover_modul room Connect
define Pushover_Test Pushover xxx xxx
define Poolpumpe dummy
attr Poolpumpe room Energie
attr Poolpumpe webCmd on:off
define PushDummy notify Poolpumpe {fhem ("set Pushover_Test msg 'FHEM' 'Poolpumpe wurde geschalten!' '' 0 ''")}

u. hier der Schalter bei dem der Status an Pushover gesendet werden soll:

define Schalter CUL_HM 24A36801
attr Schalter event-on-change-reading state
attr Schalter model HM-ES-PMSw1-Pl
attr Schalter peerIDs 00000000,
attr Schalter room Energie

Wäre dankbar für Tipps ...
Gruß
crepp1967