Neues Modul Pushalot

Begonnen von Talkabout, 03 Juni 2015, 00:26:23

Vorheriges Thema - Nächstes Thema

Talkabout

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

Talkabout

Hallo zusammen,

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

Gruss

Laffer72

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
Raspberry Pi Rev.B, FB7390 (FHEM2FHEM), Sonos, Smarter Coffee
Osram Lightify:2m LED-Streifen, 5m-LED-Streifen, Gartenspot, Surface 28W, Classic E14,E27, Classic RGBW E27, PAR16 GU10, Plug
CUL868:FS20-ST, FS20-DI, FS20-FMS, FS20-ES1
HMUSB:HM-Sec-RHS,HM-Sec-MDIR2
Jeelink868:TX-29-IT, TFA30.315

Talkabout

@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

Talkabout

Hallo zusammen,

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

Gruss

benz_freak

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

Talkabout

@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

benz_freak

@ 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

carzl

#8
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 :-)
Fhem 6.0 auf RPi3: CUL, JeeLink, Hue Bridge v2, HarmonyHub, Fritzbox7590+7412, 6x FHT80b, 2x FS20S6A, FS20S4A, S300TH, 4x FritzDECT200/210, 4x TX29DTH, 4x Hue LightStripe, 5x Hue Smart Plug, Sonos mit 5x Play:1, Beam und Sub; 3x Lenovo Tab M10 mit FTUI

Badflex

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
Raspberry Pi, CUL868(SlowRF), FB 7490, SmartVisu, fast nur HomeMatic wenig FS20, Netatmo

Badflex

Oder ist das so in ordnung
Raspberry Pi, CUL868(SlowRF), FB 7490, SmartVisu, fast nur HomeMatic wenig FS20, Netatmo

CoolTux


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


Schau mal ob es so geht


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

DecaTec

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?

CoolTux


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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

DecaTec

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...