FHEM Forum

FHEM => Automatisierung => Thema gestartet von: KernSani am 27 September 2016, 23:19:02

Titel: Neues Modul 70_PROWL
Beitrag von: KernSani am 27 September 2016, 23:19:02
Liebe FHEM-Gemeinde,

ich nutze schon lange Prowl (https://www.prowlapp.com/) als Benachrichtigungsservice, gemäß dieser Anleitung (http://www.meintechblog.de/2013/11/howto-mit-fhem-push-nachrichten-aufs-iphone-schicken/). Um Perl und FHEM besser zu verstehen, habe ich nun erste Gehversuche unternommen, ein Modul selbst zu entwickeln. Mein Prowl-Modul ist noch sehr rudimentär und ich weiß nicht, ob es irgendwem irgendwie hilft, aber ich habe einiges gelernt (und hoffe durch Feedback und Anregungen noch mehr zu lernen).

DEFINE
define <devicename> Prowl
Damit ist das device definiert, um es funktionsfähig zu machen muß ein Api-Key im Attribut apikey (s.u.) gepflegt werden

SET
msg: Ser eigentliche Sinn des Moduls - Nachrichten versenden. Der msg Befehl ist folgendermassen aufgebaut:
set <devicename> msg <Nachricht>:<Priorität>:<Event>:<Applikation>
Ausser <Nachricht> sind alle Parameter optional und werden ggf. durch default-Werte ersetzt(s.u.)

GET
token: Nur notwendig wenn kein Prowl APIKEY vorhanden ist. Erzeugt ein Token und eine URL. Durch ausführen der URL (und ggf. Anmeldung/Registrierung) wird dem Modul Zugriff gewährt. Danach muss get apikey ausgeführt werden.
apikey: holt den durch get token generierten apikey ab und speichert ihn in der Applikation.


READINGS
apiKeyState: zeigt den aktuellen Status des Api-Keys an (valid oder invalid)
lastError: Zeigt die letzte aufgetretene Fehlermeldung
lastErrorCode: Der von Prowl zurück gemeldete Errorcode
remaining: Verbleibende Benachrichtigungen (von 1000/Stunde)
nextReset: Wann wird der Zähler wieder auf 1000 gesetzt
state: aktueller Status des Moduls
token: Ein durch GET token generiertes token
tokenUrl: URL, die im Browser aufgerufen werden muss, um dem Modul Zugriffsrechte zu geben (sofern kein bereits vorhandener eigener API Key eingegeben wurde)

ATTRIBUTE
apikey: Prowl Api-Key - entweder bereits vorhanden oder durch Get token/Get apikey erzeugt
default_application: Default Wert für <Applikation>, wenn nicht gesetzt "FHEM"
default_event: Default Wert für <Event>, wenn nicht gesetzt "Nachricht"
default_prio: Default Wert für <Priorität>, wenn nicht gesetzt "0"

TODOs

Für weitere Ideen und Anregungen bin ich dankbar.

Titel: Antw:Neues Modul 70_PROWL
Beitrag von: KernSani am 01 Oktober 2016, 21:05:02
ist das Modul sooo sinnlos, dass es wirklich überhaupt niemanden interessiert?? :'(
Titel: Antw:Neues Modul 70_PROWL
Beitrag von: mahowi am 02 Oktober 2016, 10:44:12
Es ist sicher nicht sinnlos, sonst hättest Du es ja bestimmt nicht geschrieben.  ;)

Ich denke, bei der Menge an Messengern, die man mit fhem nutzen kann und da Prowl nur für iOS ist, gibt es eben nicht so viele Nutzer hier.
Titel: Antw:Neues Modul 70_PROWL
Beitrag von: KernSani am 02 Oktober 2016, 18:24:52
Sooo, im ersten post hängt jetzt die generalüberholte und dank des hervorragenden Supports von Cooltux optimierte Version.

Titel: Antw:Neues Modul 70_PROWL
Beitrag von: CoolTux am 02 Oktober 2016, 19:49:43
Trage mich mal ein damit ich informiert werde
Titel: Antw:Neues Modul 70_PROWL
Beitrag von: LordVoodoo am 08 Oktober 2016, 15:20:35
Hallo,

wäre eine Erweiterung oder eine eigenständige Implementierung von GROWL möglich?
Wenn ja, könnte man so an seinen Windows-PC oder MAC Ereignisse schicken...sogar eine Meldung im Windows Media Center wäre denkbar.

Viele Grüße.
Titel: Antw:Neues Modul 70_PROWL
Beitrag von: KernSani am 09 Oktober 2016, 00:06:55
Zitat von: LordVoodoo am 08 Oktober 2016, 15:20:35
Hallo,

wäre eine Erweiterung oder eine eigenständige Implementierung von GROWL möglich?

Ich habe mir das API mal angesehen... sieht gut aus. Werde mal das Basteln anfangen und hoffentlich bald eine erste Version bereitstellen können...

Grüße,

Oli
Titel: Antw:Neues Modul 70_PROWL
Beitrag von: KernSani am 10 Oktober 2016, 22:29:34
Zitat von: LordVoodoo am 08 Oktober 2016, 15:20:35
wäre eine Erweiterung oder eine eigenständige Implementierung von GROWL möglich?

Done :-) https://forum.fhem.de/index.php/topic,58825.0.html

@CoolTux: Wenn du Lust hast, kannst du ja mal drüber schauen...
Titel: Antw:Neues Modul 70_PROWL
Beitrag von: CoolTux am 10 Oktober 2016, 22:36:23
Hallo Oli,

Schaue ich mir gerne morgen Vormittag mal in Ruhe an  :)


Grüße
Titel: Antw:Neues Modul 70_PROWL
Beitrag von: CoolTux am 12 Oktober 2016, 12:49:48
Habe mal geschaut.

Kann das Teil überhaupt was  ;D
Also alles was ich gefunden habe ist das die Growl_SendMessage aufgerufen wird. Kann es leider nicht testen. Brauch mal da keinen Token mehr. Scheint nun über ein Passwort zu gehen. Ansonsten sieht es erstmal ganz gut aus.



Grüße
Titel: Antw:Neues Modul 70_PROWL
Beitrag von: KernSani am 12 Oktober 2016, 21:11:19
Zitat von: CoolTux am 12 Oktober 2016, 12:49:48
Kann das Teil überhaupt was  ;D
Also alles was ich gefunden habe ist das die Growl_SendMessage aufgerufen wird.

Genau das kann es, messages an Growl/Growl for Windows schicken :-) Das hatte LordVoodoo sich ja gewünscht (auch wenn er das Interesse mittlerweile wohl verloren hat). Growl funktioniert ein wenig anders als Prowl... Growl hängt im eigenen Netzwerk und man kann ein Passwort setzen (oder auch nicht)
Eigentlich sollte es auch einen Callback unterstützen über den man mitgeteilt bekommt, ob die Message per Timeout, Click oder Cancel verschwunden ist... Hab mir einen abgebrochen, habe das mit diesem Growl::GNTP Modul nicht hinbekommen :-S

Grüße,

Oli
Titel: Antw:Neues Modul 70_PROWL
Beitrag von: CoolTux am 12 Oktober 2016, 21:25:44
Ahh, verstehe. Na vielleicht meldet sich der Kollege ja noch.
Titel: Antw:Neues Modul 70_PROWL
Beitrag von: LordVoodoo am 25 Oktober 2016, 12:16:46
Hallo,

habe das Interesse nicht verloren, nur ein kaputtes SmartHome hat mich abgehalten. Das OSMC wollte vergangene Woche nicht mehr booten. Seit gestern Abend funktioniert es wieder.

Melde mich in Kürze.
Titel: Antw:Neues Modul 70_PROWL
Beitrag von: LordVoodoo am 25 Oktober 2016, 22:04:51
Guten Abend,

ein erster Test war erfolgreich, konnte bereits nach wenigen Minuten Growl-Nachrichten senden. :-)
Getestet habe ich es von FHEM@Raspberry mit Raspian an einen Windows-10-PC und an einen Mac.

Sehr schick.

Vielen Dank an dieser Stelle.

Wenn es gewünscht ist, kann ich mich um einen Wikibeitrag und ein Icon (SVG) kümmern.
Titel: Aw: Neues Modul 70_PROWL
Beitrag von: Hanjo am 07 Mai 2023, 21:52:19
Ich bin vielleicht ein paar Jährchen zu spät, aber ich kann bestätigen, dass das Modul auch im Jahr 2023 noch einwandfrei funktioniert - vielen Dank dafür 👍

Benutze das für ein altes iPad mit einem uralt-iOS ;-)
Titel: Aw: Neues Modul 70_PROWL
Beitrag von: Hanjo am 10 Mai 2023, 20:40:33
Tja, leider zu früh gefreut... Nachdem ich das Modul aktiviert habe stürzt FHEM reproduzierbar nach einiger Zeit ab.

Also verbose auf 5; zuerst erhalte ich folgende Meldungen:
2023.05.10 14:29:53 5: Prowl Prowl_hanjo: called function Prowl_Set() with$VAR1 = 'Prowl_hanjo';
$VAR2 = '?';

2023.05.10 14:29:53 5: Prowl Prowl_hanjo: called function Prowl_Set() with$VAR1 = 'Prowl_hanjo';
$VAR2 = '?';

2023.05.10 14:29:53 5: Prowl Prowl_hanjo: sending URL https://api.prowlapp.com/publicapi//verify?apikey=71a...
2023.05.10 14:29:53 5: Prowl Prowl_hanjo: NextTimer:Wed May 10 14:29:53 2023
Das wiederholt sich dann hunderte Male:
2023.05.10 14:29:57 5: Prowl Prowl_hanjo: called function Prowl_Set() with$VAR1 = 'Prowl_hanjo';
$VAR2 = '?';

2023.05.10 14:29:57 5: Prowl Prowl_hanjo: called function Prowl_Set() with$VAR1 = 'Prowl_hanjo';
$VAR2 = '?';

2023.05.10 14:29:57 5: Prowl Prowl_hanjo: sending URL https://api.prowlapp.com/publicapi//verify?apikey=71a...
2023.05.10 14:29:57 5: Prowl Prowl_hanjo: NextTimer:Wed May 10 14:29:53 2023
Und irgendwann wird es dann zu:
2023.05.10 14:30:01 5: Prowl Prowl_hanjo: called function Prowl_Set() with$VAR1 = 'Prowl_hanjo';
$VAR2 = '?';

2023.05.10 14:30:01 5: Prowl Prowl_hanjo: called function Prowl_Set() with$VAR1 = 'Prowl_hanjo';
$VAR2 = '?';

2023.05.10 14:30:01 5: Prowl Prowl_hanjo: sending URL https://api.prowlapp.com/publicapi//verify?apikey=71a...
2023.05.10 14:30:01 3: error while requesting https://api.prowlapp.com/publicapi//verify?apikey=71a... - Cant create UDP socket:Too many open files
2023.05.10 14:30:01 5: Prowl Prowl_hanjo: called function Prowl_Set() with$VAR1 = 'Prowl_hanjo';
$VAR2 = '?';

2023.05.10 14:30:01 5: Prowl Prowl_hanjo: called function Prowl_Set() with$VAR1 = 'Prowl_hanjo';
$VAR2 = '?';

2023.05.10 14:30:01 5: Prowl Prowl_hanjo: NextTimer:Wed May 10 14:29:53 2023
Das wiederholt sich dann wieder hunderte (oder tausende?) Male, bis es dann zu folgendem wird:
2023.05.10 14:30:29 5: Prowl Prowl_hanjo: sending URL https://api.prowlapp.com/publicapi//verify?apikey=71a...
2023.05.10 14:30:29 3: error while requesting https://api.prowlapp.com/publicapi//verify?apikey=71a... - Cant create UDP socket:Too many open files
2023.05.10 14:30:29 5: Prowl Prowl_hanjo: NextTimer:Wed May 10 14:29:53 2023
und das wiederholt sich dann beliebig oft, bis ich FHEM kille und neustarte.

Ich habe versucht den Code zu analysieren, aber ich kenne mich leider nicht gut genug aus. Hat jemand eine Idee, wo das Problem liegen könnte? Offensichtlich werden zu viele Verbindungen geöffnet und dann scheinbar nicht wieder geschlossen, was dann nach kurzer Zeit zum Absturz führt...