Neues Modul 70_Growl

Begonnen von KernSani, 10 Oktober 2016, 22:27:43

Vorheriges Thema - Nächstes Thema

KernSani

Liebe Gemeinde,

auf Anregung von LordVoodoo habe ich ein kleines Growl-Modul gebastelt. Das Modul implementiert aktuell nur die absolut minimale Funktionalität (d.h. es kann Meldungen schicken).
Näheres zu Growl: http://growl.info/ oder http://www.growlforwindows.com/gfw/

Das Modul setzt auf Growl::GNTP auf (das werde ich in Zukunft ändern, war für den Start aber der schnellste Weg), das über cpan installiert sein muss.

Da ich gerade keinen Mac verfügbar habe, ist das Ding nur mit Growl for Windows getestet...

(Bekannte) Einschränkungen siehe TODOs.

Feedback und Anregungen sind willkommen...


DEFINE
define <devicename> Growl [<host>]
<host> ist der Growl-Server, an den Messages versendet werden. Default ist "localhost"

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

READINGS
lastError: Zeigt die letzte aufgetretene Fehlermeldung
lastMessage: Zeigt die zuletzt erfolgreich versendete Nachricht
state: aktueller Status des Moduls ("success" oder "error"

ATTRIBUTE
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>, mögliche Werte sind von -2 bis 2, wenn nicht gesetzt "0"
defaut_sticky: Default Wert für <Sticky>, mögliche Werte "true" oder "false", wenn nicht gesetzt "false" 
Growl_passwd: Passwort (wenn im Growl-Server gesetzt)

TODOs

  • Growl::GNTP ersetzen (durch non-blocking, mit Rückgabewerten etc...)
  • Callbacks auswerten (bei Sticky Nachrichten: CANCEL, CLOSE, TIMEOUT)
  • Passwort verschlüsselt ablegen
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Standarduser

Hi KernSani,

ich nutze Growl ziemlich umfangreich in meinem Netzwerk und bin froh, dass Du dieses Modul geschrieben hast, also danke schonmal.

Leider wird mir immer gemeldet, dass Growl::GNTP fehlen würde, sodass schon der erste Versuch scheitert:
Error: Perl moduls Growl::GNTP are missing on this system

Natürlich hab ich das zuvor installiert, und den Pi, auf dem FHEM läuft, auch schon neu gestartet - keine Veränderung.
Going to read '/home/pi/.cpan/Metadata'
  Database was generated on Sat, 29 Oct 2016 11:17:02 GMT
Growl::GNTP is up to date (0.21).

Hast Du einen Tipp für mich?

LordVoodoo

Hallo zusammen,

auch von meiner Seite vielen Dank für das Modul, es schließt bei mir eine wichtige Lücke im Bereich Informationsverteilung. Anbei ein Screenshot, bei dem man links das eingerichtete Device sieht und rechts eine Nachricht in Windows Media Center.

@Standarduser:
Die Installation war relativ einfach. Hast Du den Installationsbefehl für Growl::GNTP als root oder als Benutzer pi mit sudo ausgeführt?


Standarduser

Zitat von: LordVoodoo am 29 Oktober 2016, 23:35:53
Hast Du den Installationsbefehl für Growl::GNTP als root oder als Benutzer pi mit sudo ausgeführt?

???  ::) Danke für den Tipp.
Ich hatte Growl::GNTP als normaler Benutzer installiert ...

Richtig ist also:
sudo cpan install Growl::GNTP

Dann funktioniert die Definition.

Allerdings scheint es noch ein paar Probleme zu geben:
Eine Nachricht von FHEM direkt auf meinen Mac hat problemlos funktioniert. Normalerweise lasse ich aber alle Nachrichten an meine DiskStation senden und von dort aus weiterleiten. Was sonst sehr gut funktioniert führt hier dazu, dass FHEM sich komplett aufhängt. Ich nehme an, das ist der zweite Punkt der ToDo-Liste: "Callbacks auswerten (bei Sticky Nachrichten: CANCEL, CLOSE, TIMEOUT)"

LordVoodoo

Mir war noch aufgefallen, dass eine IP-Adresse in einer Definition hinterlegt sein muss. Ein Hostname scheint nicht zu genügen (oder mein Router hatte keine Lust auf DNS-Einträge, was er ganz gern mal macht).

Anbei noch die beiden Icons, die ich gestern erstell habe.

Standarduser

Hostnamen funktionieren bei mir ganz wunderbar.