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

LaSto

Zitat von: Matthias schrieb am So, 25 August 2013 11:16Hi 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

Hi Matthias,

vielen Dank für die schnelle Änderung.
Die Logs sind weniger geworden, allerdings habe ich jetzt Log mit "?" als Aussage, die ich vorher nicht hatte.
2013.08.25 14:21:33 3: ?
2013.08.25 14:21:38 3: ?
2013.08.25 14:21:51 3: ?
2013.08.25 14:22:06 3: FS20 set Lampe on
2013.08.25 14:22:38 3: FS20 set Lampe off
2013.08.25 14:22:40 3: ?
2013.08.25 14:22:44 3: ?


Das mit dem StateRegexp verstehe ich noch nicht ganz. Hab mal im Modul nachgeschaut und das gefunden was du geändert hast:
<li><a name="gcmsend_stateFilter"><code>attr &lt;name&gt; stateFilter &lt;string&gt;</code></a>
                <br />Send a GCM message only if the attribute matches the attribute filter regexp</li>


Wie benutze ich denn stateFilter?

Bei der neuen Version ist der State von gcm "Initialized" vorher war er "OK".
Momentan bekomme ich nichts mehr gepusht. Wenn ich es richtig verstehe muss ich jetzt mit stateFilter jedes Gerät angeben was gepusht werden soll?

Gruß
Lars

FS20, 3x S300TH, 1x CUL868, FritzBox 7390

Matthias

Hi,

sorry, das waren noch ein paar Debug-Meldungen die ich vergessen hatte zu entfernen. Die Meldungen sollten jetzt auch weg sein.
Der stateFilter filtert keine Gerätenamen, sondern die Zustandswerte (z.B. on, off usw.). Du kannst z.B. "(on|off)" angeben, dann werden auch nur on und off als Zustände gesendet.

Matthias

LaSto

ZitatBei der neuen Version ist der State von gcm "Initialized" vorher war er "OK".

Das ist richtig so?

Mit der neuen Version bekomme ich nichts gepusht!
Pusht das Modul alles wenn ich keinen Filter eingestellt hab, oder muss ich einen einstellen?

Die Logs sind jetzt sauber. Super!

Und nochmal vielen Dank...
FS20, 3x S300TH, 1x CUL868, FritzBox 7390

Matthias

Hi,

wenn kein StateFilter eingestellt ist müsste alles durchgehen. Das OK solle auch wieder auftauchen.

Matthias

LaSto

Hi Matthias,
also ich bekomme die neue Version nicht zum laufen.

Mein State bleibt immer bei "Initialized" und zwar, weil er nie die Sub gcmsend_message aufruft. Dies liegt daran, dass "if ($count > 0)" nie erfüllt wird.

Habe testweise das "if ($count > 0)" mal rausgenommen, dann bekomme ich natürlich auch wieder ein "OK".
Gepusht hat er trotzdem nichts.

Gehe ich zurück auf die alte Version pusht er sofort.

Weiter kann ich es leider nicht nachvollziehen, dafür ist mein Verständnis für Perl einfach zu schlecht.

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

Matthias

Hi,

wo auch immer heute Vormittag meine Gedanken waren - sicher nicht bei der Sache. Jetzt sollte es gehen ... sorry.

Matthias

LaSto

Super! Jetzt funzt es.
Hab aber noch nen Fehler entdeckt ;-)
Sei mir bitte nicht böse, falls ich nerve... Seh mich einfach als Betatester der die Bugs aufzeigt :-)

StateFilter hab ich getestet, das funktioniert astrein!

Wenn allerdings kein StateFilter gesetzt ist, werden die S300TH so angezeigt wie im Anhang zu sehen.

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

Matthias

Hm das sieht so aus, als ob der Wert der Aktualisierung leer wäre. Kannst du mal an Zeile 142

 && !($value eq "")

anhängen? Ich vermute der Fehler ist dann weg ...

Matthias

LaSto

Hat nichts verändert.
Das Problem tritt auch auf, obwohl ich auch einen Filter gesetzt habe (on|off|dim*).
Öffne ich andFHEM, hab ich so lange Werte in den Widgets stehen, bis einmal neue empfangen werden, dann steht da wieder "humidity".

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

Matthias

Hi,

danke fürs Ausprobieren. Ich habe mir gerade den Quelltext nochmal genauer angeschaut. Ich vermute der Fehler kommt in dem Moment, wenn ein Doppelpunkt im Wert vorkommt. Die bisherige Implementierung splittet einfach bei Doppelpunkten - das ist nicht ganz korrekt. Besser ist es nur anhand dem ersten Doppelpunkt zu splitten - das macht die jetzige Variante ...

Link:
http://svn.code.sf.net/p/fhem/code/trunk/fhem/contrib/98_gcmsend.pm

Vorsicht - es heißt jetzt 98_gcmsend :-)

Viele Grüße,
Matthias

LaSto

Hi Matthias,
es sieht gut aus! Läuft alles perfekt.

Vielen Dank

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

Maergsche

#26
Hallo, ich habe mal versucht das Paket auf dem Raspberry PI zu installieren.  Leider komme ich nicht weiter ...

Im Log steht folgendes:
2013.10.14 17:03:06 3: error during request: 500 Can't connect to android.googleapis.com:443
2013.10.14 17:03:08 3: error during request: 500 Can't connect to android.googleapis.com:443

Ich habe versucht mich an die Anleitung von http://andfhem.klass.li/installation gehalten, doch installiere ich das Ja auf einen Raspberry Pi. 

Mozilla::CA und LWP::Protocol::https sind Up to Date

pi@raspberrypi /usr/share/perl5/Mail $ sudo cpan -i Mozilla::CA
Going to read '/root/.cpan/Metadata'
  Database was generated on Mon, 14 Oct 2013 12:53:03 GMT
Mozilla::CA is up to date (20130114).

pi@raspberrypi /usr/share/perl5/Mail $ sudo cpan -i LWP::Protocol::https
Going to read '/root/.cpan/Metadata'
  Database was generated on Mon, 14 Oct 2013 12:53:03 GMT
LWP::Protocol::https is up to date (6.04).


Jemand eine Idee ?

Maergsche

Jetzt habe ich noch mal folgendes Installiert: 

sudo cpan -i JSON
sudo cpan -i IO::Socket::SSL

So dass ich jetzt folgende Fehlermeldung erhalte:

2013.10.15 09:27:31 3: error during request: 400 Bad Request


Gestern war ich noch einen schritt vorm Abgrund ... bin ich jetzt weiter ?  ???

urmel86

#28
Zitat von: Maergsche am 15 Oktober 2013, 09:29:17

So dass ich jetzt folgende Fehlermeldung erhalte:

2013.10.15 09:27:31 3: error during request: 400 Bad Request


Die selbe Meldung erhalte ich leider auch...
Gruß Marco

EDIT:  Jetzt über Nacht konnte ich das Android Device Pairen. Nun kommt

2013.10.16 03:51:56 3: error during request: 500 Can't connect to android.googleapis.com:443

urmel86

Jetzt läuft es! War aber nicht einfach. Wiebei Maergsche auch die selben Meldungen. Module waren installiert. Daran lag es auch nicht. Woran genau es jetzt lag weis ich auch nicht.
Ich glaube dass es letztendlich das letzte save in der FHEM Commandozeile war.

Also wie in der Anleitung beschrieben vorgehen bis das Gerät gepairt ist. Überprüfen kann man das ja wenn man das Device gmc anklickt. Wenn erfolgreich gepairt wurde müsste ja das attr regID hinzugefügt worden sein.
Jetzt ein save in der Commandozeile brachte bei mir den Erfolg. Vielleicht wird es ja so auch bei den anderen...

Gruß Marco

Stephan

Könnte jemand mal sagen, wie ich die beiden Perl-Module auf meiner FritzBox installiert bekomme? Runtergeladen auf dem PC habe ich sie, komme aber nur per telnet an das verzeichniss, wo man die installieren muss und da hört es dann auf. Also für mich...:-)
Gruß
Stephan

fhem 5.5, Raspi B, CUL V3 868 (max), Arduino Uno R3 conf.firmata v2.05

Matthias

Hi,

Telnet wird dir dazu nicht reichen. Auf die Boxen kommt man allerdings normalerweise auch via SMB bzw. Netzwerkfreigabe. In Windows einfach mal \\IP_ADRESSE_DER_FRITZ_BOX eingeben. Die Installationsverzeichnisse gibt es dann wieder unter http://andfhem.klass.li/installation.

Viele Grüße,
Matthias

Stephan

Da scheinen aber dann die Berechtigungen nicht zu stimmen per smb

Gesendet von meinem Nexus 4 mit Tapatalk

Gruß
Stephan

fhem 5.5, Raspi B, CUL V3 868 (max), Arduino Uno R3 conf.firmata v2.05

Matthias

Das halte ich für unwahrscheinlich ... Du kannst es ja mit telnet und
ls -al
Im Ordner nachprüfen.

Matthias

lopez1de

#34
Ich will ja nicht meckern, aber leider ist die Anleitung schon veraltet (http://andfhem.klass.li/installation#gcm). Die Google Seiten sehen ganz anders aus und ganz selbsterklärend ist das alles nicht.

EDIT: Alles andere funktioniert super. :)

Matthias

Hi,

Danke für den Hinweis. Google ändert furchtbar gern das Aussehen ihrer Seiten ... naja eine aktualisierte Anleitung mit neuen Grafiken ist online.

Matthias

lopez1de

Zitat von: Matthias am 17 November 2013, 17:45:58
Hi,

Danke für den Hinweis. Google ändert furchtbar gern das Aussehen ihrer Seiten ... naja eine aktualisierte Anleitung mit neuen Grafiken ist online.

Matthias

Danke. Kann man nicht oft genug sagen. Super Leistung!

Stephan

Zitat
Download and install the 98_gcmsend.pm module for FHEM (copy the file to the FHEM directory, make sure that your Perl installation meets all the dependencies. FHEM will tell you if it can load the module, especially when issuing reload 99_gcmsend.

Kann es sich hier um einen Schreibfehler handeln? Müsste es nicht "especially when issuing reload 98_gcmsend" heissen?

Und dann würde ich vorschlagen, es so zu schreiben:

"copy the file from the contrib directory (usually /opt/fhem/contrib) to the FHEM directory (usually /opt/fhem) and don't forget to modify the owner of 98_gcmsend.pm to fhem and the group to root ( sudo chown fhem:root /opt/fhem/98_gcmsend.pl )"
Gruß
Stephan

fhem 5.5, Raspi B, CUL V3 868 (max), Arduino Uno R3 conf.firmata v2.05

Stephan

"We have to configure the plug-in to talk to GCM. This is why we have to issue an FHEM command:
attr <gcm_device_name> apiKey <apiKey>
whereas <gcm_device_name> is the name of the device you created before and <apikey> is the key you just created within the Google console (number 2 within the image)."

Hier komme ich nicht weiter. Was soll das für ein gcm_device_name sein und wo habe ich dieses Device vorher angelegt?
Gruß
Stephan

fhem 5.5, Raspi B, CUL V3 868 (max), Arduino Uno R3 conf.firmata v2.05

Matthias

Hi,

danke für die Kommentare. Ich habe einen Teil davon umgesetzt :-). Ein paar Kommentare von mir dazu:

ZitatKann es sich hier um einen Schreibfehler handeln? Müsste es nicht "especially when issuing reload 98_gcmsend" heissen?
Jap, ist geändert.

Zitat"copy the file from the contrib directory (usually /opt/fhem/contrib) to the FHEM directory (usually /opt/fhem) and don't forget to modify the owner of 98_gcmsend.pm to fhem and the group to root ( sudo chown fhem:root /opt/fhem/98_gcmsend.pl )"

Das kann theoretisch gehen, wenn der Nutzer überhaupt ein contrib-Verzeichnis hat. Das gibt es nicht immer. Die Standardpfade sind definitiv nicht /opt/fhem o.ä.. Am einfachsten ist weiterhin der Download, auch wenn ich hinzugefügt habe, dass man die Datei auch kopieren kann.

Der Nutzer heißt auch nicht immer FHEM, die Gruppe muss nicht immer root sein.

ZitatHier komme ich nicht weiter. Was soll das für ein gcm_device_name sein und wo habe ich dieses Device vorher angelegt?
Sorry, da ist etwas verloren gegangen. Den Punkt zur Gerätedefinition habe ich wieder eingefügt.

Matthias

ext23

Guten Morgen,

ich hab das auch mal ausprobieren wollen aber ich bekomme unter FHEM immer ein "2013.11.20 08:37:23 3: error during request: 401 Unauthorized"
die beiden perl module sind installiert (ich nutze das unter Ubuntu)

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Stephan

Läuft! Danke!

Das ist allerdings ein gutes Beispiel dafür, dass sich Profis auch bei Dokus und Anleitungen kaum in die Lage von Anfängern versetzen können. Die haben halt Probleme, die sich Eingeweihte kaum vorstellen können..:-)
Gruß
Stephan

fhem 5.5, Raspi B, CUL V3 868 (max), Arduino Uno R3 conf.firmata v2.05

Matthias


afero

Moin zusammen,
Vielleicht gucke ich nicht richtig, aber ich glaube die Google Seiten haben sich schon wieder geändert. Und naja, ich bekomme es nicht gebacken. :-[

Gruss Björn

ein_guter

Hallo Björn,

die Installation habe ich gerade erfolgreich auf der FB7390 abgeschlossen  :) (Klasse App Matthias)
Die Google Seiten haben sich etwas verändert:
Der in der Anleitung beschriebene Submenu Punkt "Registered Apps" heisst jetzt "Credentials".

Unter "Credentials" muss jetzt ein "Public API access" angelegt werden. Und zwar ein "Browserkey".
Die Diallogbox zu den "Refereres" leer lassen --> Any referer allowed
Nach Erstellung API Key kopieren. Der Rest wie gehabt. 

Lag es daran?

Gruß
Markus

Matthias

Hi,

Google hat irgendwie Spaß daran jeden Monat die Seiten zu ändern ... nu denn.

Ich habe mal eine aktualisierte Version der Anleitung hochgeladen. Ich könnt ja mal drüber schauen ob das so passt. Selber vergisst man oft irgendeinen Zwischenschritt. Link ist wie üblich http://andfhem.klass.li/installation.html#gcm.

Wenn ich schon bei GCM mal wieder schreibe:
Ich habe gerade für das 98_gcmsend Modul eine neue Version hochgeladen. Neben einigen Aufräumarbeiten unterstützt dieses jetzt ein lange gefordertes Feature: Es können selbst definierte Nachrichten geschickt werden.

Allerdings funktioniert das Ganze auch nur mit der neuen Version von andFHEM - die allerdings bisher nur bei mir auf dem Rechner liegt :-). So nebenbei gibt es jetzt dann auch Unterstützung für die Notification LEDs (die blinken dann schön grün), Vibration (allerdings nur wenn attr gcm vibrate true gesetzt ist) und einen Notification Sound für die Benachrichtigung.

Viele Grüße,
Matthias

Arek

Hi,

ich kriege die Push-Benachrichtigung einfach nicht zum Laufen. Ich habe alles nach Anleitung gemacht und nach dem Registrieren wurde das Attribut "regIds" hinzugefügt. Der Status ist OK. Aber es kommt einfach keine Benachrichtigung an, auch im Log ist kein gcmsend auffindbar. Mit der App GCM test kommen die Notifications allerdings an, also muss es an Fhem liegen.
Was mache ich falsch?

Gruß Arek

Matthias

#47
Hi,

kannst du mal den LogLevel für das gcm Gerät in FHEM etwas absenken (z.B. auf level 3?). Dann müssten relativ viele Nachrichten auftauchen - u.U. auch Fehlermeldungen bei der Serververbindung.

Hast du in andFHEM die Projekt-ID richtig eingetragen?

Matthias

Arek

Hi,

vielen Dank!

Jetzt habe ich im Filelog auch was zu stehen:

2014.01.05 20:51:37 3: error during request: 501 Attempt to reload LWP/Protocol/https.pm aborted.
Compilation failed in require (LWP::Protocol::https not installed)

Die Datei ist aber da, allerdings nicht im selben Pfad wie in der Anleitung, weil er bei mir etwas anders aussieht (siehe Screenshot)

Gruß Arek

Matthias

Hi,

hm da kann ich dir auch nicht weiterhelfen. Davon habe ich auch keine großartige Ahnung ... Vielleicht weiß Rudolf weiter?

Matthias

C. Zimmermann

Hallo,

hab gerade versucht gcmsend auf mehr als einem Gerät zu aktivieren. Leider kommt beim Tablet (Nexus7) die Fehlermeldung "GCM ist nicht aktiv! stimmt die Projekt ID?". Beim Smartphone (N5) funktioniert gcm einwandfrei. Kann es sein, dass gcmsend aktuell nur mit einem Gerät umgehen kann? Hatte Google Cloud message so verstanden, das alle Geräte eines google Accounts den Push bekommen und somit multiple Geräte möglich sind. Korrigier mich bitte, sollte ich falsch liegen.

Viele Grüße

Arek

Hi,

das Problem konnte ich lösen. Ich habe gemerkt, dass die Größe meiner https.pm sich von deiner unterscheidet und habe sie erneut heruntergeladen. Allerding bin ich jetzt beim nächsten Problem angekommen:

error during request: 500 Can't connect to android.googleapis.com:443

Was ist denn da jetzt los???

Gruß Arek

erw85

Hi Arek,

hast Du mal testweise versucht im gcmsend-Skript die Kommunikation mit der Google Cloud temporär auf http umzustellen?


#my $req = HTTP::Request->new(POST => "https://android.googleapis.com/gcm/send");
my $req = HTTP::Request->new(POST => "http://android.googleapis.com/gcm/send");


Bei mir konnte ich dadurch das Problem eingrenzen.

Gruß
Erw

erw85

Hi,

@Matthias: danke für das schöne neue Feature mit den selbst definierten Nachrichten mittels gcmsend!

Habe da auch noch eine Frage dazu: Gibt es die Möglichkeit die empfangene Nachricht nicht nur im Notification Center (Pull-down Liste vom oberen Bildschirmrand), sondern auch in einem Widget von andFHEM zu lesen?
Denn wenn ich die Nachricht im Notification Center auswähle, dann werde ich nach andFHEM weitergeleitet, der Nachrichtentext wird bei mir aber nirgendwo in andFHEM angezeigt.

Evtl. liegt es ja an meiner Android Version, nutze 4.3

Schön wäre auch noch folgendes Feature: per attr für individuelle NotifyIDs einstellbare Vibration bzw. Sounds

Viele Grüße
Erw

Matthias

Hi,

es gibt schon einen Feature-Request um eine Liste der letzten GCM-Kommandos anzeigen zu können. Das muss ich bei Gelegenheit mal bauen.

Matthias

Shoddy

Wo Du grad von Features sprichst ;-)

Gibts eine Möglichkeit mir Temperaturwerte schicken zu lassen, wenn ich den State-Filter aktiviert habe? Da ich dort ja die jeweiligen States eintragen muss, müsste ich theoretisch jeden einzelnen Temperaturwert eintragen, der übermittelt werden könnte, oder sehe ich das grad falsch?


Grüße!
FHEM auf Raspi 3
FS20, FHT, HMS

Matthias

Hi,

nein, du kannst einen regulären Ausdruck angeben :-).

temperature: [0-9,]+

liefert dir zum Beispiel alle Werte, die mit temperature beginnen und anschließend einen Dezimalwert haben. Beispiel:

temperature: 20
temperature 20,9
temperature 3,5

Die eckigen Klammern geben eine Auswahl an Zeichen an, erlaubt sind also die Ziffern 0-9 und das Komma (Vorsicht mit dem Punkt, den muss man escapen, sonst matched er auf jedes beliebige Zeichen). Das + gibt an, dass mehr als eines dieser Zeichen vorkommen muss. Noch eine Referenz dazu: http://www.chemie.fu-berlin.de/chemnet/use/suppl/perl-regex.html

Matthias


Shoddy

FHEM auf Raspi 3
FS20, FHT, HMS

atze09

Hallo zusammen,
irgendwie stehe ich gerade auf dem Schlauch..
Ich habe alles eingerichtet meine 2 androids registriert, hat auch alles wunderbar geklappt.
Aber jetzt zu meiner Frage, wie muss der Befehl zum schicken der Nachrichtien aussehen, habe dazu irgendwie nichts gefunden außer den ersten Post aber das funzt so nicht.

Möchte eine Nachricht senden wenn ein dummy auf standby schaltet.
Hoff Ihr könne mir helfen.
Danke schonmal.

Grüße,
Dominik

Shoddy

Zitat von: atze09 am 22 April 2014, 11:20:48
Aber jetzt zu meiner Frage, wie muss der Befehl zum schicken der Nachrichtien aussehen, habe dazu irgendwie nichts gefunden außer den ersten Post aber das funzt so nicht.

Eigentlich recht simpel... Sagen wir mal Dein gcm-device heißt "pushy":


set pushy send Achtung|Einhornalarm|Das Einhorn frisst schon wieder das Popcorn!


fhem sollte jetzt eine Nachricht namens "Achtung" ans Gerät schicken. Der Titel ist "Einhornalarm", der Text "Das Einhorn frisst schon wieder das Popcorn!"

Die dummy-standby-notify-geschichte könnte dann so aussehen (dummy heißt Fernseher mit entsprechender setList):


define dummy_standby_notify notify Fernseher:standby set pushy send Standbymeldung|Fernseher|Der Fernseher ist nun im standby


Viel Erfolg damit, hoffe es funzt..


Grüße...
FHEM auf Raspi 3
FS20, FHT, HMS

atze09

Zitat von: Shoddy am 22 April 2014, 21:18:49
Eigentlich recht simpel... Sagen wir mal Dein gcm-device heißt "pushy":


set pushy send Achtung|Einhornalarm|Das Einhorn frisst schon wieder das Popcorn!


fhem sollte jetzt eine Nachricht namens "Achtung" ans Gerät schicken. Der Titel ist "Einhornalarm", der Text "Das Einhorn frisst schon wieder das Popcorn!"

Die dummy-standby-notify-geschichte könnte dann so aussehen (dummy heißt Fernseher mit entsprechender setList):


define dummy_standby_notify notify Fernseher:standby set pushy send Standbymeldung|Fernseher|Der Fernseher ist nun im standby


Viel Erfolg damit, hoffe es funzt..


Grüße...

Funktioniert wunderbar, vielen Dank für die Anleitung.
War ich eigentlich blind oder wo hätte ich diese Info finden können?

Shoddy

Zitat von: atze09 am 24 April 2014, 18:11:56
War ich eigentlich blind oder wo hätte ich diese Info finden können?

Ich hab selber nochmal gesucht, aber nix gefunden und ehrlich gesagt auch keine Ahnung, wo ich das her hab. Hab's mir aus meiner eigenen config zusammengereimt...

Aber schön, dass es klappt!


Grüße...
FHEM auf Raspi 3
FS20, FHT, HMS

guybrush

#62
Hallo,

ich habe die Anleitung von hier genau befolgt: http://andfhem.klass.li/installation.html#gcm

Ich habe auch eine generierte regIDs im fhem.cfg was wohl mein Android Phone wiederspiegelt. Aber aktualisieren per GCM tut sich nichts. Kann es sein dass ich "Abrechnung" in der Google Developer Console aktivieren muss? Also bedeutet das, dass es Geld kostet mit GCM zu arbeiten? Ich verstehe das noch nicht so ganz, von daher brauche ich da Hilfe. Im LOG findet sich überhaupt nichts. Muss ich das Loglevel umstellen, falls SSL oder so schwierigkeiten macht?

Das Tutorial ist für die alte Version der Console, man konnte aber umstellen auf das alte Layout.

Viele Grüße

Edit: Mein Loglevel ist auf Verbose 3

guybrush

#63
Mein Fehler ist folgender:

2014.07.19 12:52:01 5: error during request: 500 Can't connect to android.googleapis.com:443

Nach Umstellung im http Request auf http dann

2014.07.19 13:11:44 5: error during request: 401 Unauthorized

guybrush

Ich bin ein wenig vorangekommen:

Es muss in der Anleitung ergänzt werden, dass der Service "Google Cloud Messaging for Android" ebenfalls in der Developer Console hinzugefügt werden muss. Jetzt geht es zumindest per HTTP Request, aber per HTTPS erhalte ich weiter:

2014.07.19 16:31:07 5: error during request: 500 Can't connect to android.googleapis.com:443

Weiß leider nicht weiter. Dazu kommt, dass die cpan.org Server seit gestern down sind und ich so gezwungen war das "https.pm" und das "CA.pm" über google zu suchen und zu downloaden. ich weiß daher nicht, ob die Dateien veraltet sind oder nicht. Wäre toll wenn jemand die aktuellsten (mit denen es geht) mal hochladen könnte.

Vielen Dank

Jojo11

#65
Hallo,

ich habe auch Interesse an push-Benachrichtigungen und teste gerade pushover und gcmsend/andFHEM. Soweit klappt alles prima und schnell, wenn es stabil läuft. Zum testen habe ich bei keinem Gerät die Benachrichtigungen aktiviert und nur ein einziges notify definiert, welches eine Testnachricht schickt (beim Schalten einer Lampe). Folgendes ist mir aufgefallen:
- Seitdem ich gcmsend eingerichtet habe, ist das Schalten der Lampe verzögert (dafür kommt die push-Nachricht).
- Wenn ich mehrere Nachrichten schicke, ohne sie abzurufen, kann ich hinterher nur noch die jeweils letzte lesen. Wie kann ich das ändern bzw. lässt sich das überhaupt ändern?
- Seit der Aktivierung der push-Benachrichtigungen friert FHEM öfters mal ein und verlangsamt mein Telefon, so dass ich die app über "beenden erzwingen" stoppen muss (andFHEM Version 3.00).
- Wenn ich FHEM neustarte,ist der Zustand meines Telefons (Nexus 4) in andFHEM "Initialized". Dennoch erhalte ich keine push-Nachrichten, aber auch keine log-Einträge. Erst wenn ich nochmal auf registrieren klicke, geht es wieder. Das registrieren an sich dauert ziemlich lange.

Bin für Tipps jeder Art dankbar!
Pushover ist sicherlich schon ausgereifter. Dennoch würde ich andFHEM bevorzugen, wenn ich sicher sein kann, keine Nachricht zu verpassen.

schöne Grüße
Jo

Brockmann

Zitat von: Jojo11 am 20 Juli 2014, 19:54:51
- Seitdem ich gcmsend eingerichtet habe, ist das Schalten der Lampe verzögert (dafür kommt die push-Nachricht).
Du schreibst nicht, wie Du es genau umgesetzt hast.
Je nach dem ist das Versenden der Nachricht vermutlich "blocking", d.h. FHEM wird solange blockiert, bis die Nachricht abgesetzt werden konnte. Das kann schon mal ein paar Sekunden dauern. Danach wird dann vermutlich erst die Lampe geschaltet. Wenn Du die Reihenfolge vertauschst (also erst Lampe schalten, dann Nachricht schicken) wirst Du davon zumindest nichts bemerken.

Zitat
- Wenn ich mehrere Nachrichten schicke, ohne sie abzurufen, kann ich hinterher nur noch die jeweils letzte lesen. Wie kann ich das ändern bzw. lässt sich das überhaupt ändern?
Reden wir jetzt von Pushover?

Zitat
Pushover ist sicherlich schon ausgereifter. Dennoch würde ich andFHEM bevorzugen, wenn ich sicher sein kann, keine Nachricht zu verpassen.
Den ersten Teil würde ich unterschreiben. Was Du mit Nachrichten verpassen meinst, kann ich nicht nachvollziehen. Ich bekomme für jede Pushover-Nachricht ein einzelnes Symbol auf dem Handy und sie werden alle einzeln angezeigt. Ebenso kann man alle in der App oder im Widget einsehen, solange man sie nicht ausdrücklich löscht.

Jojo11

Hallo,

danke für die Rückmeldung und sorry für die verwirrende Formulierung.
Zum Testen habe ich nur ein notify auf die Zustandsänderung einer Lampe gesetzt, in dem nur der gcmsend-Befehl enthalten ist. Gefühlt würde ich sagen, dass der Schaltvorgang erst durchgeführt wird, wenn die Nachricht geschickt wurde. Aber mit Deinem Hinweis kann ich das ja optimieren.
Bzgl. der mehreren Nachrichten, von denen nur die jeweils letzte noch lesbar ist rede ich von gcmsend. Angenommen ich schalte 2 Lampen ein, von denen ich jeweils eine Benachrichtigung erhalte. In diesem Fall kann ich nur noch eine lesen, da die andere "überschrieben" wird. Bei pushover z.B. werden diese Nachrichten ähnlich wie bei einem email- oder messenger-Programm gesammelt und untereinander aufgelistet (was Du im letzten Teil beschreibst). Genau das fehlt irgendwie in andFHEM  :-\ Wahrscheinlich ist das aber recht aufwendig umzusetzen.

schöne Grüße
Jo

guybrush

Es läuft jetzt bei mir, ich hatte vergessen den "CA" Ordner unter "Mozilla" anzulegen und das Zertifikat dort hineinzukopieren   ::)

Jojo11

Noch etwas ist mir aufgefallen: Seitdem ich gcmsend verwende (jeweils nur ca. 5 Nachrichten pro Tag und nur "manuelle"), saugt andFHEM spürbar meinen Akku leer. Ich verwende ein Nexus 4 mit Android 4.4.4 und andFHEM 3.0.0.

schöne Grüße
Jo

guybrush

Zitat von: Jojo11 am 22 Juli 2014, 17:49:52
Noch etwas ist mir aufgefallen: Seitdem ich gcmsend verwende (jeweils nur ca. 5 Nachrichten pro Tag und nur "manuelle"), saugt andFHEM spürbar meinen Akku leer. Ich verwende ein Nexus 4 mit Android 4.4.4 und andFHEM 3.0.0.

Aktuelle Version von andFHEM  ist 3.0.2. Das klingt etwas merkwürdig, du solltest z.B. mit BetterBatteryStats deine wakelocks prüfen. Bei mir fällt andFHEM nicht negativ auf (Galaxy S3 Android 4.4.4). Wenn es bei dir Probleme macht kannst du per Greenifiy die App einfrieren. In der Bezahlvariante + XPosed Framework bleiben die Pushnachrichten erhalten. Am Push dürfte es nicht liegen.

Viel Erfolg

egmontr

Hallo Matthias,

wie Du weißt, habe ich gcmsend auch für EgiGeoZone implementiert und werde die Funktionalität demnächst freigeben.
Einen Wunsch hätte ich aber noch: Kannst Du noch ein Attribut gcmsend_sound true/false aufnehmen? Somit könnte man in der App den Standarnachrichtenton ausgeben oder nicht.

LG Egmont

RPI B+ mit FHEM und CUL V3 868MHZ

Matthias

Hi,

ich hab' das Attribut mal hinzugefügt.

Matthias

egmontr

LG Egmont

RPI B+ mit FHEM und CUL V3 868MHZ

hyper2910

Mal eine frage zu den Modulen :

Kann man diese auch mit cpan installieren?
Gruss
Cubietruck mit FHEM, CUL V3 443MHz, 2 x CULV3 868MHz, Milights, Max Heizungssteuerung, Homematic, IT,

manuelxxl

Ich wollte mal nachfragen wie ich die Module auf die FritzBox kopiert kann?
Zur Info ich bin ein völliger Anfänger :-)
Den Ordner lib/perl5/site_perl/5.12.2/ habe ich über FritzNas gefunden.
Wenn ich die Module die ich geladen haben entpacke dann erhalte einen Ordner "LWP-Protocol-https-6.04" in dem zwei weitere Ordner "lib" und "t" und einige Dateien sich befinden.
Wenn ich die zweite Datei entpacke erhalte ich einen Ordner "Mozilla-CA-20130114" in dem sich die selben Ordner sich befinden.
Welchen Teil und in welcher Ordnerstruktur muss ich das auf die Fritzbox kopieren?
Einfach die beiden Ordner "Mozilla-CA-20130114" und "LWP-Protocol-https-6.04" nach lib/perl5/site_perl/5.12.2/ kopieren oder wie?

Würde halt gerne die andFHEM App auch unterwegs bedinnenkönnen.

Würde mich für eine Antwort freuen.

suchard

#76
Wer kann mir helfen?

Ich nutze andFHEM und betreibe FHEM auf einem Raspberry.
Habe alles nach Anleitung gemacht: http://andfhem.klass.li/installation.html#gcm

Alle Einstellungen auf GCM überprüft (API-Key, usw.).
Auch bereits einmal das Projekt gelöscht und neu angelegt, GCM ist auch aktiv.
Aber egal war ich tue, jede Aktivität in FHEM wird mit dem 401 quittiert.

In FHEM ist eine GCM-Device angelegt, der apiKey hinterlegt, die regId wird automatisch angelegt sobald ich in andFHEM das Gerät registriere.
Aber sofort nach der Registrierung in andFHEM erhalte ich die erste 401-Meldung im Logfile von FHEM.

In GCM (Google) selbst habe ich keine Schlüsseleinschränkung angelegt.

Wer kann helfen, ich bin absolut ratlos? Habe es schon bei zwei Google-Accounts versucht, immer das gleiche Problem.


Nachtrag:
Im dashboard von GCM scheinen auch keinerlei Anfragen angekommen, keinerlei Traffic

datwuslon

Hallo Zusammen,

sorry, wenn ich hier noch mal Nachhaken muss, aber ich bekomme das Modul einfach nicht zum Laufen.

Wenn ich in Fhem den reload - Befehl ausführe, erhalte ich folgende Einträge im log:

2018.04.05 17:28:46 1: PERL WARNING: Subroutine gcmsend_Initialize redefined at ./FHEM/98_gcmsend.pm line 13.
2018.04.05 17:28:46 1: PERL WARNING: Subroutine gcmsend_attr redefined at ./FHEM/98_gcmsend.pm line 22.
2018.04.05 17:28:46 1: PERL WARNING: Subroutine gcmsend_set redefined at ./FHEM/98_gcmsend.pm line 33.
2018.04.05 17:28:46 1: PERL WARNING: Subroutine gcmsend_Define redefined at ./FHEM/98_gcmsend.pm line 54.
2018.04.05 17:28:46 1: PERL WARNING: Subroutine gcmsend_array_to_json redefined at ./FHEM/98_gcmsend.pm line 71.
2018.04.05 17:28:46 1: PERL WARNING: Subroutine gcmsend_sendPayload redefined at ./FHEM/98_gcmsend.pm line 86.
2018.04.05 17:28:46 1: PERL WARNING: Subroutine gcmsend_getGeneralPayload redefined at ./FHEM/98_gcmsend.pm line 133.
2018.04.05 17:28:46 1: PERL WARNING: Subroutine gcmsend_sendNotify redefined at ./FHEM/98_gcmsend.pm line 153.
2018.04.05 17:28:46 1: PERL WARNING: Subroutine gcmsend_toJson redefined at ./FHEM/98_gcmsend.pm line 163.
2018.04.05 17:28:46 1: PERL WARNING: Subroutine gcmsend_encrypt redefined at ./FHEM/98_gcmsend.pm line 176.
2018.04.05 17:28:46 1: PERL WARNING: Subroutine gcmsend_sendMessage redefined at ./FHEM/98_gcmsend.pm line 204.
2018.04.05 17:28:46 1: PERL WARNING: Subroutine gcmsend_getLastDeviceStatesFor redefined at ./FHEM/98_gcmsend.pm line 245.
2018.04.05 17:28:46 1: PERL WARNING: Subroutine gcmsend_notify redefined at ./FHEM/98_gcmsend.pm line 261.

Und das ist auch schon alles, was ich von gcm im log finden kann. Selbst die manuellen set gmc send - Befehle liefern zwar eine "1" zurück, aber keinerlei Einträge im Log geschweige denn die Übertragung zu andFhem auf meinem erfolgreich verknüpften Androiden.

Zum Einsatz kommen die aktuelle Fhem 5.8 auf Raspbian Pi 3 mit Debian-Derivat osmc 4.14.26-2-osmc