Neues Modul 70_PROWL

Begonnen von KernSani, 27 September 2016, 23:19:02

Vorheriges Thema - Nächstes Thema

KernSani

Liebe FHEM-Gemeinde,

ich nutze schon lange Prowl als Benachrichtigungsservice, gemäß dieser Anleitung. 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

  • API-Funktionen für Token-Erzeugung/APIKEY-Generierung einbinden
  • Attribut-Werte überprüfen
  • Code aufräumenn
  • Timer zum erneuten versenden bei Fehler (nicht erreichbar)
  • Timer für Status Update (remaining)
  • Doku
  • ...

Für weitere Ideen und Anregungen bin ich dankbar.

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

ist das Modul sooo sinnlos, dass es wirklich überhaupt niemanden interessiert?? :'(
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

mahowi

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.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

KernSani

Sooo, im ersten post hängt jetzt die generalüberholte und dank des hervorragenden Supports von Cooltux optimierte Version.

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

CoolTux

Trage mich mal ein damit ich informiert werde
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

LordVoodoo

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.

KernSani

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
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

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...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

CoolTux

Hallo Oli,

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


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

CoolTux

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

KernSani

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
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

CoolTux

Ahh, verstehe. Na vielleicht meldet sich der Kollege ja noch.
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

LordVoodoo

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.

LordVoodoo

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.

Hanjo

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 ;-)