andFHEM und gcmsend

Begonnen von Chaos, 31 Juli 2013, 20:26:00

Vorheriges Thema - Nächstes Thema

Chaos

Ahoi,

gerade frisch dabei meine ersten FHEM Erfahrungen zu sammeln.
Normalerweise finde ich meine Infos, aber zum wohl recht neuen GCM Send finde ich nur sehr wenig.

Ich behaupte mal die API und Registrierung hat alles geklappt.
Aber wie bekomme ich denn jetzt ne Nachricht dahin?
Ich verstehe die Syntax nicht so ganz (vermutlich fehlt mir da das FHEM Verständnis)
define gcm gcmsend
attr gcm apiKey XXXXXXXXXXXXXXX
attr gcm regIds XXXXXXXXXXXXX

Und ich würde gerne nur zum Test ein Benachrichtigung senden wenn meine Rollläden auf oder zu gehen.
define Rollladen_notify notify Rollladen set gcm test ists nicht ;-)

Kann mich da jemand erleuchten?

THX
   Chaos

Matthias

Hi,

ich glaube du hast da etwas falsch verstanden :-). GCMSend sendet momentan alle Statusänderungen per Push an Geräte. Dadurch entsteht auf den Geräten ein quasi aktueller Zustand von FHEM. Bei den Geräten brauchst du dazu nichts einstellen, intern wird in andFHEM der Zustand automatisch aktualisiert, soweit du richtig registriert bist.

Was du nun möchtest ist wohl eine Benachrichtigung anzeigen (?), wenn du eine Statusänderung erhalten hast. Dazu einfach lange auf ein Gerät drücken, Benachrichtigungen auswählen und z.B. Status auswählen.

Viele Grüße,
Matthias

Shoddy

Bin grad ein wenig am kämpfen...

Habe fhem 5.4 auf einer Fritzbox 7390 laufen, das gcm-modul kopiert, neu gestartet und dann leider den Plan verloren, wie ich weitermachen muss. Habe die tar.gz von cpan heruntergeladen und war dann ratlos, wie ich die "installieren" soll. Habe ein bisschen darin herumgestöbert und die https.pm in das Protocol-Verzeichnis von LWP auf der Box kopiert. Einmal die Variante über den Browser und dann nochmal via telnet. Dann zur Sicherheit auch nochmal neugestartet.

gcm kann ich auch definieren, mit API und Co. funktioniert alles, aber leider bekomme ich bei STATE folgenden Fehler:

500 Can't verify SSL peers without knowing which Certificate Authorities to trust

Hab ich beim "installieren" etwas falsch gemacht? Muss ich weitere Dateien kopieren? Hilfe?

Würde mich freuen, wenn jemand eine Idee hat...


FHEM auf Raspi 3
FS20, FHT, HMS

LaSto

Hi,
genau das Problem hatte ich auch!
Ich hab es dann irgendwann gefunden.
Wenn du die https.pm öffnest steht da irgendwo:

ZitatCan't verify SSL peers without knowing which Certificate Authorities to trust

This problem can be fixed by either setting the PERL_LWP_SSL_CA_FILE
envirionment variable or by installing the Mozilla::CA module.

To disable verification of SSL peers set the PERL_LWP_SSL_VERIFY_HOSTNAME
envirionment variable to 0.  If you do this you can't be sure that you
communicate with the expected peer.

Das mit dem PERL_LWP_SSL_CA_FILE habe ich nicht hinbekommen, also habe ich einfach das Mozilla::CA modul installiert und es lief.

Die https.pm muss nach \fhem\lib\perl5\site_perl\5.12.2\LWP\Protocol
Das Mozilla modul nach \fhem\lib\perl5\site_perl\5.12.2\Mozilla

Das Mozilla modul findest du hier: http://search.cpan.org/~abh/Mozilla-CA-20130114/lib/Mozilla/CA.pm

Wünsche Dir viel Erfolg!

Gruß
Lars
FS20, 3x S300TH, 1x CUL868, FritzBox 7390

Matthias

Danke, ich habe die Installationsanleitung (https://sites.google.com/site/andfhem/installation) angepasst.

Matthias

Shoddy

Super, Vielen Dank, läuft!

Vorallem so schnell, ich bin begeistert! ;-)


*edit: Danke sowieso an Matthias, echt tolle Arbeit!!
FHEM auf Raspi 3
FS20, FHT, HMS

LaSto

Hallo,
seit dem ich gcmsend installiert habe, wir mein Log extrem vollgemüllt.
Kann ich irgendwo einstellen das nicht so oft geloggt wird, oder das "verbose" von gcmsend ändern?

Hier mal ein kurzer Auszug aus meinem Log:
Zitat2013.08.19 22:45:48 3: trigger BadLuefter_N : OK
2013.08.19 22:45:48 3: BadLuefter_Trig_N return value: OK
2013.08.19 22:45:49 3: NTFY return: OK
2013.08.19 22:46:32 3: NTFY return: OK
2013.08.19 22:47:22 3: NTFY return: OK
2013.08.19 22:47:28 3: NTFY return: OK
2013.08.19 22:47:29 3: NTFY return: OK
2013.08.19 22:47:29 3: NTFY return: OK
2013.08.19 22:47:30 3: NTFY return: OK
2013.08.19 22:47:31 3: NTFY return: OK
2013.08.19 22:47:32 3: NTFY return: OK
2013.08.19 22:48:42 3: NTFY return: OK
2013.08.19 22:48:42 3: trigger BadLuefter_N : OK
2013.08.19 22:48:42 3: BadLuefter_Trig_N return value: OK
2013.08.19 22:48:42 3: NTFY return: OK
2013.08.19 22:49:29 3: NTFY return: OK
2013.08.19 22:50:18 3: NTFY return: OK
2013.08.19 22:51:20 3: NTFY return: OK
2013.08.19 22:51:20 3: NTFY return: OK
2013.08.19 22:51:21 3: NTFY return: OK
2013.08.19 22:51:22 3: NTFY return: OK
2013.08.19 22:51:23 3: NTFY return: OK
2013.08.19 22:51:23 3: NTFY return: OK
2013.08.19 22:51:35 3: NTFY return: OK

Was genau löst den "NTFY return: OK" Log aus?
Ich denke das aif jedenfall die S300TH damit zu tun haben.

Gruß
Lars
FS20, 3x S300TH, 1x CUL868, FritzBox 7390

Matthias

Das ist einge gute Frage, die ich nicht eindeutig beantworten kann. Die Log-Meldungen kommen von der Notify-Funktion, die im Modul auf alle Geräteänderungen reagiert. Wie man dieses Meldungen allerdings verstecken kann habe ich bisher nicht herausgefunden.

Vielleicht weiß ein anderer Entwickler hier gerade Rat dazu?

Viele Grüße,
Matthias

rudolfkoenig

Falls das NotifyFn eines Moduls etwas zurueckliefert, dann wird das in FHEM ausgegeben mit "NTFY return: $ret".

Matthias

Cool danke das baue ich demnächst um.

LaSto

Hat schon jemand Erfahrung mit dem Akkuverbrauch gemacht?
Hab gcmsend jetzt einige Tage laufen und jeden Abend war mein Handy komplett leer.
Hab heute morgen gcmsend man deaktiviert und jetzt hab ich noch 50% Akku.
Also, wenn es das wirklich war frisst es ganzschön viel Akku.
Allerdings ist es auch irgendwie logisch. Wenn ich allein überlege, das ich 3 S300th habe, die alle 3 min den Wert ändern und dieser gepusht wird...
Vielleicht kann man ja noch eine Option einbauen, dass bestimme Geräte nicht gepusht werden. Die S300TH bräuchte ich z.B. nicht aktuell auf dem Handy. Mir würden sie Zustände von Schaltern vollkommen reichen und die senden ja auch nicht so oft.

Gruß
Lars
FS20, 3x S300TH, 1x CUL868, FritzBox 7390

Matthias

Hi Rudolf,

danke nochmal für die Antwort. Ich habe mir den Quelltext des Moduls gerade nochmal angesehen und etwas angepasst. Eine Rückfrage hätte ich trotzdem noch: Die NotifyFn liefert nichts zurück. Die Methode verwendet kein Return-Statement. Was sie allerdings macht ist den Status nochmal auf OK zu setzen. Wenn man diese Aktion nur ausführt, wenn der Status nicht OK ist, dann werden auch entsprechend die Log-Meldungen nicht geschrieben.

Heißt das nun, dass die Notify-Nachricht bei jedem veränderten Status ausgegeben wird?

Viele Grüße,
Matthias

Matthias

Hi Lars,

ich habe mal eben einen StateRegexp eingebaut. Die neueste Version gibt es jetzt im contrib Ordner von FHEM: http://svn.code.sf.net/p/fhem/code/trunk/fhem/contrib/99_gcmsend.pm

Matthias

rudolfkoenig

> Was sie allerdings macht ist den Status nochmal auf OK zu setzen.

Ohne expliziten return ist der Rueckgabewert einer Funktion das Ergebnis des letzten Befehls.
Im NotifyFn ist deswegen in den meisten Faellen ein explizites "return undef" notwendig.

Matthias

Danke, das passt. Damit habe ich das Funktionsprinzip verstanden :-)