FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: Talkabout am 03 Juni 2015, 00:26:23

Titel: Neues Modul Pushalot
Beitrag von: Talkabout am 03 Juni 2015, 00:26:23
Hallo zusammen,

nachdem es nun für verschiedene Push-Dienste Module gibt, die meisten davon aber noch nicht so gut mit Windows Phone zusammen arbeiten, habe ich für den Service "Pushalot" ein kleines Modul geschrieben.

Im Moment ist es noch sehr einfach gestrickt, bei gesteigertem Interesse bin ich aber gerne bereit, es zu erweitern.

Die Definition eines Devices ist denkbar einfach:

define PushNotification Pushalot <token> [<source>]

Der optionale Source-Parameter gibt an, wer als "Absender" in der Nachricht erscheinen soll.

Zum Senden von Nachrichten reicht folgender Aufruf:

set PushNotification message "Meine Nachricht" ["Mein Titel"] ["URL"] ["Link Titel"] ["Bild-URL"] [True|False] [True|False]

Alle Parameter bis auf die Nachricht sind optional. Die einzelnen Parameter im Detail:

Nachricht:      Die Nachricht, die im Body erscheinen soll
Titel:             Der Titel der Nachricht
URL:              Eine Url, die als Link in der Nachricht erscheinen soll
Link Titel:      Ein alternativer Link-Titel
Bild-URL:       Eine URL zu einem Bild, welches in der Nachricht erscheinen soll
Important:     True wenn die Nachricht als wichtig markiert werden soll, sonst False
Silent:           True wenn die Nachricht als "silent" (still) verschickt werden soll. In diesem Fall bekommt der Empfänger keinen Benachrichtigung per Sound

Es gibt noch ein paar Readings:

last-message-raw => zeigt die letzte Nachricht im RAW-Format an
last-result-raw => zeigt das Ergebnis der letzten Anfrage im RAW-Format an
last-success => gibt den letzten Success-Status des letzten Ergebnisses an
last-status => gibt den letzten Status Code des letzten Ergebnisses an
last-description => gibt die Beschreibung des letzten Ergebnisses an


Angehängt findet Ihr die Modul-Datei, die Ihr bitte im Fhem-Verzeichnis unter "FHEM" platziert.

Viel Spaß damit!

Gruss
Titel: Antw:Neues Modul Pushalot
Beitrag von: Talkabout am 04 Juni 2015, 14:45:25
Hallo zusammen,

habe die Datei und die Beschreibung aktualisiert. Nun sollten alle Möglichkeiten gegeben sein, die über die API möglich sind.

Gruss
Titel: Antw:Neues Modul Pushalot
Beitrag von: Laffer72 am 04 Juni 2015, 20:08:46
Hallo Talkabout,

danke für das Modul. Es funktioniert bestens. Ich lasse mir damit bei verlassen des Hauses offene Fenster mitteilen.
Zur Grafik hab ich noch eine Frage:
Soll die auf meinem FHEM-System oder im Internet liegen?

Viele Grüße
Reinhard
Titel: Antw:Neues Modul Pushalot
Beitrag von: Talkabout am 04 Juni 2015, 22:36:06
@Laffer72

Der Link muss aus dem Internet aus erreichbar sein, daher funktioniert ein lokaler Dateipfad nicht. Es muss eine vollqualifizierte URL (z.b. http://www.meinedomain.de/pfad/zum/bild.png) sein.

Gruss
Titel: Antw:Neues Modul Pushalot
Beitrag von: Talkabout am 05 Juni 2015, 21:27:05
Hallo zusammen,

das Modul wurde nun auch in den Standard aufgenommen und sollte nach einem "update" in FHEM zur Verfügung stehen.

Gruss
Titel: Antw:Neues Modul Pushalot
Beitrag von: benz_freak am 09 Juni 2015, 23:34:05
Hallo Talkabout,
ich habe es seit 20 min im Einsatz Danke für deine Arbeit
hatte erst beim define das im log stehen:
reload: Error:Modul 70_Pushalot deactivated:
Can't locate JSON.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/70_Pushalot.pm line 45.
BEGIN failed--compilation aborted at ./FHEM/70_Pushalot.pm line 45.


habe dann ein
apt-get install libjson-perl
gemacht und schon ist alles gut

Habe da noch eine Frage wie kann ich "Time to live" mitgeben
Titel: Antw:Neues Modul Pushalot
Beitrag von: Talkabout am 09 Juni 2015, 23:41:55
@benz_freak

Ja, sorry. Ich dachte, dass mittlerweile fast alle FHEM-Module JSON benötigen, daher habe ich verpasst es ausdrücklich zu erwähnen :)

Time-To-Live kann im Moment noch nicht übergeben werden. Ich kann es aber einbauen, wenn Du es dringend brauchst.

Gruss
Titel: Antw:Neues Modul Pushalot
Beitrag von: benz_freak am 10 Juni 2015, 10:48:26
@ Talkabout
Time to Live würde ich gerne benutzen dann muss ich nicht auf allen Geräten die Push nachrichten löschen
aber dringend ist das nicht wenn das in 1-2Monaten funktioniert würde mir dicke reichen bin eh noch im aufbau

Danke für deine schnelle Antwort
Titel: Antw:Neues Modul Pushalot
Beitrag von: carzl am 17 Juni 2015, 09:11:46
Danke für das praktische Modul!  :) Ich habe meine Pushs bisher per curl abgesetzt und etliche funktionierende Definitionen in meiner Fhem-Installation drin, deshalb bin ich auch nicht sofort nach Veröffentlichung auf das Modul "angesprungen"  ;) Aber mit Modul finde ich es natürlich eleganter und einfacher, werde meine DEFs wohl alle austauschen. Es hat problemlos und auf Schuss funktioniert, vom Lesen in der Commandref bis zum ersten Push auf mein Lumia keine 2 Minuten  ;D

Klasse, vielen Dank!!!

EDIT: Ach ja, timetolive wäre tatsächlich ganz chic. Nicht zwingend, aber eben cool, genau wie benz_freak sehe ich das :-)
Titel: Antw:Neues Modul Pushalot
Beitrag von: Badflex am 29 Oktober 2015, 18:54:25
Ich bekomme es mal wieder nicht mit meinem notify hin.
Vielleicht sieht jemand den fehler.

define Gartenueberwachung notify Bewegungsmelder:motion { if (Value("Terrassentuer") ne "open")) { fhem("set Pushalot message "Meine Nachricht"" )} }

Danke
Titel: Antw:Neues Modul Pushalot
Beitrag von: Badflex am 30 Oktober 2015, 16:29:57
Oder ist das so in ordnung
Titel: Antw:Neues Modul Pushalot
Beitrag von: CoolTux am 30 Oktober 2015, 16:58:57

define Gartenueberwachung notify Bewegungsmelder:motion.* { if ( Value( "Terrassentuer" ) ne "open") {
                                                                                                         fhem "set Pushalot message "Meine Nachricht"";
                                                                                                         }
                                                                                                      }


Schau mal ob es so geht


Grüße
Titel: Antw:Neues Modul Pushalot
Beitrag von: DecaTec am 06 November 2015, 09:06:27
Also erst einmal danke für dieses Modul!

Eine Frage habe ich aber:
Ist bei einem notify der Aufruf auch "direkt" möglich, also ohne Durchstieg nach fhem?

Als Beispiel:

define NotifyPushOverload notify HMLAN1:overload { {fhem ("set PushNotification message 'HMlan overload!' 'FHEM'")};; }

funktioniert bei mir. Durchstieg auf fhem durch { fhem ("set...

Wenn ich es allerdings mit einem direkten Aufruf probiere:

define NotifyPushOverload notify HMLAN1:overload { set PushNotification message "HMlan overload!" "FHEM" }

bekomme ich folgende Fehler im Log:

2015.11.06 08:56:23 1: PERL WARNING: String found where operator expected at (eval 37) line 1, near "message "HMlan overload!""
2015.11.06 08:56:23 3: eval: { set PushNotification message "HMlan overload!" "FHEM" }
2015.11.06 08:56:23 1: PERL WARNING: (Do you need to predeclare message?)
2015.11.06 08:56:23 1: PERL WARNING: String found where operator expected at (eval 37) line 1, near ""HMlan overload!" "FHEM""
2015.11.06 08:56:23 3: eval: { set PushNotification message "HMlan overload!" "FHEM" }
2015.11.06 08:56:23 1: PERL WARNING: (Missing operator before  "FHEM"?)
2015.11.06 08:56:23 3: NotifyPushOverload return value: syntax error at (eval 37) line 1, near "message "HMlan overload!""


Was ist beim zweiten Define falsch?
Titel: Antw:Neues Modul Pushalot
Beitrag von: CoolTux am 06 November 2015, 09:09:37

define NotifyPushOverload notify HMLAN1:overload { fhem "set PushNotification message "HMlan overload!" "FHEM""; }


Sobald Du geschweifte Klammern verwendest sagst Du fhem das du die fhem umgebung verlässt und auf Perlcode umsteigst.
Titel: Antw:Neues Modul Pushalot
Beitrag von: DecaTec am 06 November 2015, 09:12:43
OK, aber auch wenn ich das hier mache (also ohne die Klammern)

define NotifyPushOverload notify HMLAN1:overload set PushNotification message "HMlan overload!" "FHEM"


bleibt die Fehlermeldung die gleiche...
Titel: Antw:Neues Modul Pushalot
Beitrag von: CoolTux am 06 November 2015, 09:15:41

define NotifyPushOverload notify HMLAN1:overload { fhem "set PushNotification message 'HMlan overload!' 'FHEM'"; }
Titel: Antw:Neues Modul Pushalot
Beitrag von: DecaTec am 06 November 2015, 09:19:39
Zitat von: CoolTux am 06 November 2015, 09:15:41

define NotifyPushOverload notify HMLAN1:overload { fhem "set PushNotification message 'HMlan overload!' 'FHEM'"; }


Ja, das funktioniert (s.o.).

Ich frage mich nur warum man hier auf fhem-Ebene "runter" muss. Dadurch, dass Pushalot ein Modul ist, würde ich erwarten, dass ein direkter Aufruf in einem notify möglich ist.
Titel: Antw:Neues Modul Pushalot
Beitrag von: CoolTux am 06 November 2015, 09:43:02
Hast Du es denn schon mal anders versucht? Ich kenne das Modul nicht.



define NotifyPushOverload notify HMLAN1:overload set PushNotification message 'HMlan overload!' 'FHEM'
Titel: Antw:Neues Modul Pushalot
Beitrag von: DecaTec am 06 November 2015, 10:27:31
Ja, mit einfachen Hochfusseln, mit doppelten, mit Klammer, ohne Klammer...
Habe schon alles durchprobiert, bevor ich hier gefragt habe.

Klappen tut das nur mit Durchstieg nach fhem, was mich gewundert hat.
Titel: Antw:Neues Modul Pushalot
Beitrag von: benz_freak am 02 Februar 2016, 08:46:25
Hallo Talkabout,
ich wollte noch mal nach der Funktion "time to live for message" nachfragen.
Könntest du das Bitte noch einbauen.
Titel: Antw:Neues Modul Pushalot
Beitrag von: Talkabout am 02 Februar 2016, 20:23:40
Zitat von: benz_freak am 02 Februar 2016, 08:46:25
Hallo Talkabout,
ich wollte noch mal nach der Funktion "time to live for message" nachfragen.
Könntest du das Bitte noch einbauen.
Entschuldige, habe das Thema nicht mehr auf dem Schirm gehabt. Feature kommt morgen mit dem Update.

Gruss
Titel: Antw:Neues Modul Pushalot
Beitrag von: benz_freak am 03 Februar 2016, 11:00:40
Hallo Talkabout,
ein "set Push message "Waschvorgang abgeschlossen!" "Keller" "" "" "" True False 30"
Funktioniert perfekt
Danke

@DecaTec
mein notify
DEF    WaschmaschineBetrieb:standby set Push message "Waschvorgang abgeschlossen!" "Keller" "" "" "" True False 30

http://www.fhemwiki.de/wiki/Notify
Warum ist die 2. Variante besser? In der 1. Variante wechselt man von Fhem-Ebene des notify mittels {} auf Perl-Ebene, wo man mit dem Schlüsselwort Fhem "" wieder einen Befehl auf Fhem-Ebene ausführt. In der 2. Variante werden diese unnötigen, resourcenverschwendenden Ebenen-Wechsel vermieden. Alles wird auf der Fhem-Ebene ausgeführt.
Titel: Antw:Neues Modul Pushalot
Beitrag von: Gigafix am 20 Februar 2016, 20:14:57
Hallo

Ich möchte gerne den aktuellen Zeitstempel mit in die Nachricht einfügen. Bei anderen Modulen habe ich das immer mit dem Aufruf von ".strftime('%H:%M', localtime)." für die Zeit ohne Sekunden oder ".strftime('%d.%m.%Y', localtime)." für das Datum gemacht. Das funktioniert hier so einfach wegen der Anführungszeichen aber nicht, da das Modul ja auch Anführungszeichen verwendet. Wie kann man das am besten maskieren - oder gibt es noch eine andere Möglichkeit die aktuelle Uhrzeit oder auch das Datum einzufügen?

Gruß Gigafix
Titel: Antw:Neues Modul Pushalot
Beitrag von: Talkabout am 21 Februar 2016, 20:57:26
Zitat von: Gigafix am 20 Februar 2016, 20:14:57
Hallo

Ich möchte gerne den aktuellen Zeitstempel mit in die Nachricht einfügen. Bei anderen Modulen habe ich das immer mit dem Aufruf von ".strftime('%H:%M', localtime)." für die Zeit ohne Sekunden oder ".strftime('%d.%m.%Y', localtime)." für das Datum gemacht. Das funktioniert hier so einfach wegen der Anführungszeichen aber nicht, da das Modul ja auch Anführungszeichen verwendet. Wie kann man das am besten maskieren - oder gibt es noch eine andere Möglichkeit die aktuelle Uhrzeit oder auch das Datum einzufügen?

Gruß Gigafix
Kannst Du mir bitte ein Beispiel geben, wie es in anderen Modulen funktioniert (komplette Befehlszeile)? Ich bin mir gerade unschlüssig, wie man das integrieren kann/soll.

Gruss
Titel: Antw:Neues Modul Pushalot
Beitrag von: CoolTux am 21 Februar 2016, 21:23:47
Zitat von: Gigafix am 20 Februar 2016, 20:14:57
Hallo

Ich möchte gerne den aktuellen Zeitstempel mit in die Nachricht einfügen. Bei anderen Modulen habe ich das immer mit dem Aufruf von ".strftime('%H:%M', localtime)." für die Zeit ohne Sekunden oder ".strftime('%d.%m.%Y', localtime)." für das Datum gemacht. Das funktioniert hier so einfach wegen der Anführungszeichen aber nicht, da das Modul ja auch Anführungszeichen verwendet. Wie kann man das am besten maskieren - oder gibt es noch eine andere Möglichkeit die aktuelle Uhrzeit oder auch das Datum einzufügen?

Gruß Gigafix

Versuche mal die Anführungszeichen von der Nachricht zu escapen, eventuell hilft das schon.



Grüße
Titel: Antw:Neues Modul Pushalot
Beitrag von: Gigafix am 22 Februar 2016, 00:51:10
Hallo

Hier ein Beispielcode bei dem ich mit verschiedenen Benachrichtigungen experimentiere.


Schalter_Klingel:Short.* {fhem ("
set my_Pushbullet message Es hat heute um ".strftime('%H:%M', localtime)." jemand geklingelt | Klingel;
set 491234567890 send Es hat heute um ".strftime('%H:%M', localtime)." jemand geklingelt;
set TelegramRoBot message @#Gruppe Es hat heute um ".strftime('%H:%M', localtime)." jemand geklingelt;
set Pushalot message "Es hat heute jemand geklingelt" "Klingel";
")
if (ReadingsVal('Tuer','sabotageError','on') eq 'off')
}


Das funktioniert soweit, nur das ich bei Pushalot bisher nicht die Zeit mitgeben kann. Mit dem Escapen tue ich mich ein wenig schwer - ich hatte da schon verschiedenes versucht z.B. mit
'".strftime('%H:%M', localtime)."'
oder
'"'.strftime('%H:%M', localtime).'"'
aber das war nur Versuch und Irrtum, ohne zu wissen wie man es richtig macht.

Es ist jetzt auch nicht überwichtig - ich dachte nur das es eine einfache Möglichkeit gibt dies darzustellen. Ich habe ja noch Alternativen - bin noch nicht ganz sicher welches Modul ich letztendlich zur Benachrichtigung einsetze.

Gruß Gigafix

***EDIT***

Habe es jetzt wie folgt gelöst:
{(strftime("%d.%m.%Y um %H:%M",localtime()))}
Titel: Antw:Neues Modul Pushalot
Beitrag von: Badflex am 14 November 2016, 14:28:04
Zitat von: DecaTec am 06 November 2015, 09:19:39
Ja, das funktioniert (s.o.).

Ich frage mich nur warum man hier auf fhem-Ebene "runter" muss. Dadurch, dass Pushalot ein Modul ist, würde ich erwarten, dass ein direkter Aufruf in einem notify möglich ist.

Bei mir funktioniert das nicht so. Er pusht den Text si wie er ist mit '. Ich wollte das so machen wie es auf der ersten Seite steht also mit großer farbiger Überschrift und Link. Leider schreibt er das in Perl alles hinternander weg.
Was mach ich falsch?
Titel: Antw:Neues Modul Pushalot
Beitrag von: CoolTux am 14 November 2016, 14:40:57
Gib mal bitte was du bisher hast.
Titel: Antw:Neues Modul Pushalot
Beitrag von: Badflex am 14 November 2016, 17:13:11
Hab vieles probiert kommt aber nichts richtiges. Der letzte stand ist das:

Bewegungsmelder:motion { if ( Value( "Terrassentuer" ) ne "open"){ fhem ("set Pushalot message Da schleicht einer im Garten rum. _ACHTUNG! _ https://my.netatmo.com/app/camera _ https://my.netatmo.com/app/camera ");}}

Titel: Antw:Neues Modul Pushalot
Beitrag von: CoolTux am 14 November 2016, 17:59:52

set Pushalot message "Da schleicht einer im Garten rum." "ACHTUNG!" "https://my.netatmo.com/app/camera" "Link zum Kamerabild"


Mit diesem set Befehl innerhalb Deiner Routine sollte es dann gehen
Titel: Antw:Neues Modul Pushalot
Beitrag von: Badflex am 14 November 2016, 18:06:05
Nein, das hatte ich auch probiert. Dan zeigt er nur das erste in den " an. Den rest nicht mehr.
Titel: Antw:Neues Modul Pushalot
Beitrag von: CoolTux am 14 November 2016, 18:08:38
Stimmt hast Recht, ich vergaß


set Pushalot message 'Da schleicht einer im Garten rum.' 'ACHTUNG!' 'https://my.netatmo.com/app/camera' 'Link zum Kamerabild'


Dann bitte so.
Titel: Antw:Neues Modul Pushalot
Beitrag von: CoolTux am 14 November 2016, 18:10:06
Alles zusammen müsste dann so sein


Bewegungsmelder:motion { if ( Value( "Terrassentuer" ) ne "open"){ fhem ("set Pushalot message 'Da schleicht einer im Garten rum.' 'ACHTUNG!' 'https://my.netatmo.com/app/camera' 'Link zum Kamerabild'");}}


Man achte am Ende auf das ' und dann gleich dran das "
Titel: Antw:Neues Modul Pushalot
Beitrag von: Badflex am 14 November 2016, 18:16:12
Dan sieht das so aus:
Titel: Antw:Neues Modul Pushalot
Beitrag von: Badflex am 14 November 2016, 18:18:45
Sollte doch so aussehen wie unten auf diesem Bild.
Titel: Antw:Neues Modul Pushalot
Beitrag von: CoolTux am 14 November 2016, 18:20:53

Bewegungsmelder:motion { if ( Value( "Terrassentuer" ) ne "open"){ fhem ("set Pushalot message \"Da schleicht einer im Garten rum.\" \"ACHTUNG!\" \"https://my.netatmo.com/app/camera' 'Link zum Kamerabild\"");}}


Dann escapen wir mal
Titel: Antw:Neues Modul Pushalot
Beitrag von: Badflex am 14 November 2016, 18:46:34
Sieht schon besser aus,aber der Link geht nicht. Zeigt aber einen kleinen grünen Punkt an. Da geht aber nix.
Titel: Antw:Neues Modul Pushalot
Beitrag von: CoolTux am 14 November 2016, 19:05:12
Wenn du es genau so gemacht hast wie es oben steht das hast du einfach nur kopiert und nicht überlegt. Schade.  Es fehlen noch Gänsefüße die auch noch escapt werden müssen.
Titel: Antw:Neues Modul Pushalot
Beitrag von: Badflex am 14 November 2016, 20:05:25
So jetzt hab ich's. Ist aber ein bißchen andersrum wie auf der ersten Seite beschrieben.

Bewegungsmelder:motion { if ( Value( "Terrassentuer" ) ne "open"){ fhem ("set Pushalot message \"Nachricht \" \"Überschrift\" \"URL Link zum Bild\" \"Url Verweis\" \"Text der für den Link angezeigt werden soll\"");}}

Vielen Dank für die schnelle hilfe. Hat mich schon graue Haare gekostet:)
Titel: Antw:Neues Modul Pushalot
Beitrag von: CoolTux am 14 November 2016, 20:14:43
Eigentlich ist es nicht anders. Das Problem ist das du auf Perlebene den fhem Aufruf machst. Deswegen das ganze etwas komplexer.
Titel: Antw:Neues Modul Pushalot
Beitrag von: Badflex am 14 November 2016, 20:28:09
Die Reihenfolge ist  jedenfalls andersrum. Liegt vielleicht am Perl.
Danke .
Titel: Antw:Neues Modul Pushalot
Beitrag von: Badflex am 01 Januar 2017, 15:44:34
Frohes neues an alle!

Mal wieder ein frage zur weiterentwicklung meine Pushnachricht:
Bewegungsmelder:motion { if ( Value( "Terrassentuer" ) ne "open"){ fhem ("set Pushalot message \"Nachricht \" \"Überschrift\" \"URL Link zum Bild\" \"Url Verweis\" \"Text der für den Link angezeigt werden soll\"");}}

Der Link zum Bild steht bei mir im Device reading unter den namen Snapshot.
Kann ich den inhalt irgendwie in der Pushnachricht verpacken?
Am besten als Bild, aber als Text würde mir auch schon reichen.

hat jemand eine idee wie ich das anstelle?

Danke
Titel: Antw:Neues Modul Pushalot
Beitrag von: Badflex am 05 Januar 2017, 15:25:19
Keiner eine idee?
Titel: Antw:Neues Modul Pushalot
Beitrag von: DecaTec am 26 Mai 2017, 10:47:38
Kann es sein, dass die App aus dem Store genommen wurde?
Musste nach einem Hard-Reset meines Phones feststellen, dass die App nicht mehr abrufbar ist (nicht einmal mehr über die Bibliothek in der Store App).

Falls das kein temporäres Problem sein sollte: Gibt's eine Alternative für Windows?
Titel: Antw:Neues Modul Pushalot
Beitrag von: DecaTec am 11 Juni 2017, 19:59:26
Nachdem Pushalot weiterhin im Store fehlt, scheint die App tatsächlich aus dem Store entfernt worden zu sein.
Nachdem ich ein Paar Versuche mit PushBullet gemacht habe (dafür gibt's auf 3rd Party Apps im MS Store), bin ich nun auf die Lösung mit einem Telegram-Bot gekommen. Letzeres gefällt mir mittlerweile am Besten, da man auch Befehle an FHEM senden kann.
Titel: Antw:Neues Modul Pushalot
Beitrag von: krikan am 10 März 2018, 18:01:05
Ist der Dienst von Pushalot komplett eingestellt?
Die Internetseite von Pushalot ist nicht erreichbar und die Suchmaschinenergebnisse lassen mich das annehmen.

Falls der Dienst eingestellt ist, kann das Modul bitte in https://svn.fhem.de/trac/browser/trunk/fhem/contrib/deprecated oder ähnlich verschoben werden?

Danke und Gruß, Christian
Titel: Antw:Neues Modul Pushalot
Beitrag von: rudolfkoenig am 20 März 2018, 22:31:04
Habe das Modul nach contrib/deprecated verschoben.