Modul für Pushover

Begonnen von Johannes_B, 07 November 2013, 13:28:08

Vorheriges Thema - Nächstes Thema

Loredo

#375

Ich habe gerade nochmals eine aktualisierte Version eingecheckt, die ohne Perl::JSON die alte Funktionalität erhält (das Error-Handling ist dann so eingeschränkt wie es früher auch war). Die neuen Funktionen brauchen Perl::JSON.
Das urlEncoding ist auch erweitert.

Zitat von: Andre am 28 August 2015, 15:12:01
kannst Du eventuell ein kurzes Beispiel für die Verwendung von infix / callbackUrl geben? Irgendwie klappt das nicht so wie ich mir das dachte.


Das Define hast du entsprechend geändert und den infix angefügt?
Also:



define msgPush_Julian Pushover khlgjgoiugouhliuho gkjgkzgiuzgtuzgiuzt pushCallback


Danach ist der Callback erreichbar unter http://127.0.0.1:8083/fhem/pushCallback
Das ist exakt gleich wie beim GEOFANCY Modul. Ich empfehle eine abgesicherte Konfiguration wie sie auch für das GEOFANCY Modul im Wiki beschrieben steht.

Das Attribut callbackUrl muss dann auf die URL gesetzt werden, mit der FHEM dann von außen erreichbar ist.
Also z.B. https://meindyndns.org/webhook/pushCallback.

pushCallback sollte hier mit dem gesetzten infix überein stimmen. Es kann aber je nach Art, wie man FHEM nach außen erreichbar macht, auch abweichen (z.B. wenn ein Reverse-Proxy eine andere URL nach außen bereitstellt und es an die interne weiterleitet).



Eine URL schickt man dann so:


set msgPush_Julian msg 'Testnachricht' 'Klick mal auf diese URL' '' 0 '' 0 3600 'Hier klicken' 'http://www.example.com/'



Eine Mobilgeräte-Interne URL geht auch (in diesem Fall gibts keine Callback Readings in FHEM):


set msgPush_Julian msg 'Testnachricht' 'In diesem Programm gehts weiter' '' 0 '' 0 3600 'Programm öffnen' 'program://'



Eine Emergency Nachricht sähe so aus:




set msgPush_Julian msg 'Wichtige Testnachricht' 'Es ist was schlimmes passiert, bitte bestätigen' '' 2 '' 120 3600




Eine Emergency Nachricht mit URL so:




set msgPush_Julian msg 'Wichtige Testnachricht' 'Es ist was schlimmes passiert, bitte bestätigen.' '' 2 '' 120 3600 'Weitere Infos ansehen' 'http://www.example.com/'
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

volschin

Supi, jetzt funktioniert auch %. Vielen Dank.
Intel NUC+Ubuntu 24.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7690, Echo Dots+Show8, HomeBridge

All-Ex

Zitat von: Loredo am 28 August 2015, 18:17:35
Ich habe gerade nochmals eine aktualisierte Version eingecheckt, die ohne Perl::JSON die alte Funktionalität erhält (das Error-Handling ist dann so eingeschränkt wie es früher auch war). Die neuen Funktionen brauchen Perl::JSON.

Super, Danke dass Du dran arbeitest :-)

Habe das Modul upgedatet, aber weiter JSON Probleme:

2015.08.30 18:03:25 0: Can't locate JSON.pm in @INC (you may need to install the JSON module) (@INC contains: /usr/lib/perl5/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl . /usr/local/FHEM/share/fhem/FHEM) at /usr/local/FHEM/share/fhem/FHEM/70_Pushover.pm line 350.
BEGIN failed--compilation aborted at /usr/local/FHEM/share/fhem/FHEM/70_Pushover.pm line 350.


Als ich sicherstellen wollte, dass ich die richtige Version installiert habe ist aufgefallen, dass das Modul gar nicht auftaucht, wenn ich version eingebe. Ich vermute mal, dass das durch Einfügen von $Id behoben werden kann, ähnlich wie z.B. beim CUL_HM Modul:
# $Id: 10_CUL_HM.pm 9168 2015-08-30 13:45:07Z martinp876 $

Loredo

Kannst du in Zeile 350 mal das "use" in "require" umändern?
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

All-Ex

Ja, mit require läuft's auch ohne JSON  :)

Dank Dir!

Loredo

Danke! Hab eine gefixte Variante eingecheckt.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

#381
Ich habe noch etwas hinzugefügt:


1. Der Status wird jetzt alle 10 Minuten geprüft. Das heißt ein Device, welches wegen fehlender Internet-Verbindung mal auf "disconnected" schaltet, geht dann wieder auf "connected". Außerdem wird die Device-Liste dadurch aktualisiert und falls der APP-Token oder die User-ID ungültig werden sollte, dann merkt man das auch sehr schnell.


2. Es gibt ein Reading "available", welches zwischen 1 und 0 wechselt, je nachdem ob man gerade Nachrichten verschicken kann oder nicht ("state" ist komplexer und für eine solche Abfrage nicht geeignet). Ich brauchte das Reading für eine verlässliche Aussage für die schon erwähnten FHEM msg-Befehle und mache auf dieser Grundlage einen Fallback auf E-Mail.




Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

All-Ex

Das Update von heute früh hat mir keine Versionsnr. angezeigt. Scheinbar ist die Ergänzung von $Id im SVN nicht angekommen:

http://sourceforge.net/p/fhem/code/9174/ 
"70_Pushover: set Id keyword" meldet "Empty file"

volschin

Ein set Id keyword wird da nicht helfen, da es laut History in svn in 70_Pushover noch nie eine $Id Zeile gab. Damit hat auch ein gesetztes Keyword keinen Anker wo es landen könnte.
Das müsste Loredo dann noch einbauen.
Intel NUC+Ubuntu 24.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7690, Echo Dots+Show8, HomeBridge

Loredo

Ist schon lange drin.




EDIT: Ah Pardon, andere Module. Hier noch nicht, aber jetzt ;)
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

All-Ex

Zitat von: volschin am 29 August 2015, 15:30:06
Supi, jetzt funktioniert auch %. Vielen Dank.
Weiß jemand wie ich jetzt einen Zeilenumbruch einfüge? Bisher habe ich das mit %0A gemacht, aber nun wird %0A ausgegeben (ohne Zeilenumbruch).

%%0A  \%0A  \\%0A  \n  \\n  hab ich schon probiert.

volschin

Du könntest ein br tag nehmen. Das Modul kann ja jetzt HTML.
Intel NUC+Ubuntu 24.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7690, Echo Dots+Show8, HomeBridge

P.A.Trick

Ich habe gerade mal versucht eine Interaktion via pushover zu senden!
Folgende Fehlermeldung habe ich erhalten!

2015.09.02 21:00:03.383 1: PERL WARNING: Use of each() on hash after insertion without resetting hash iterator results in undefined behavior, Perl interpreter: 0x7e008 at ./FHEM/70_Pushover.pm line 761.
2015.09.02 21:00:03.384 3: stacktrace:
2015.09.02 21:00:03.385 3:     main::__ANON__                      called by ./FHEM/70_Pushover.pm (761)
2015.09.02 21:00:03.386 3:     main::Pushover_SetMessage           called by ./FHEM/70_Pushover.pm (172)
2015.09.02 21:00:03.387 3:     main::Pushover_Set                  called by fhem.pl (3051)
2015.09.02 21:00:03.388 3:     main::CallFn                        called by fhem.pl (1531)
2015.09.02 21:00:03.389 3:     main::DoSet                         called by fhem.pl (1561)
2015.09.02 21:00:03.389 3:     main::CommandSet                    called by fhem.pl (1042)
2015.09.02 21:00:03.390 3:     main::AnalyzeCommand                called by fhem.pl (913)
2015.09.02 21:00:03.392 3:     main::AnalyzeCommandChain           called by ./FHEM/01_FHEMWEB.pm (2068)
2015.09.02 21:00:03.392 3:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (672)
2015.09.02 21:00:03.393 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (435)
2015.09.02 21:00:03.394 3:     main::FW_Read                       called by fhem.pl (3056)
2015.09.02 21:00:03.395 3:     main::CallFn                        called by fhem.pl (651)


Aufruf wie in der CommandRef angegeben!
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

Loredo

das sieht nach einer verhunzten FHEM Installation aus.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

richberry22

Hallo,

pushover erlaubt doch das gezielte Versenden an ein bestimmtes Device. Wenn ich ein einfaches "set pushmsg msg 'title' 'message' " mache, wird es an alle registrierten Geräte gesendet. Der Wiki-Eintrag sagt, dass es für gezielte Pushnachrichten folgendermaßen aussehen soll:

set pushmsg msg 'title' 'message' 'device' 'priority' 'sound' . Allerdings funktioniert das bei mir nicht. Wenn ich das Device mit angebe, wird es trotzdem an alle Empfänger geschickt.

Was mache ich falsch?

Gruß
Michael