Neues Modul: PushBullet

Begonnen von fhainz, 06 August 2014, 01:19:13

Vorheriges Thema - Nächstes Thema

mac-d

Hallo,

anbei die Daten...

{"devices": [{"iden": "ujy1VNZ5geOsjzX6H2Gtga", "created": 1407964320.4424601, "nickname": "iPhone", "modified": 1407989156.4535501, "push_token": "production:911116a08cbc504fd5944d2624f989f52f406c0a5fdb2d3d70de7c70e75ba1aa", "active": true, "model": "iPhone 5C", "app_version": 1752, "type": "ios", "pushable": true, "manufacturer": "Apple"}, {"iden": "ujy1VNZ5geOsjzZuK9JmHA", "created": 1407784180.2497799, "modified": 1407964286.165, "active": false}, {"iden": "ujy1VNZ5geOdjzWIEVDzOK", "created": 1407671577.1947601, "modified": 1407784161.7040401, "active": false}, {"iden": "ujy1VNZ5geOdjAiVsKnSTs", "created": 1407671683.6882401, "nickname": "Chrome", "modified": 1407671683.8861699, "active": true, "model": "Chrome", "app_version": 105, "type": "chrome", "pushable": true, "manufacturer": "Google"}]}

Dieter

fhainz

#31
Bei mir werden deine Devices eingelesen.

Nimm mal bitte die Version die ich hier anhänge und mach ein
attr <name> verbose 4
Anschließend noch ein
get <name> devices
und poste bitte den Log.

Grüße

mac-d

Hallo,

jetzt bin ich wieder Online...

Anbei der LOG Auszug...

2014.08.14 16:49:28 4: nachricht: data:$VAR1 = undef;
2014.08.14 16:49:28 4: nachricht: json:$VAR1 = undef;
2014.08.14 16:49:28 4: nachricht: data:$VAR1 = undef;
2014.08.14 16:49:28 4: nachricht: json:$VAR1 = undef;

Gruss Dieter

RoBra81

#33
Zitat von: fhainz am 14 August 2014, 10:32:03
Ich werd mich mal schlau machen was das sein könnte. Aber mit FritzBoxen kenn ich mich gar nicht aus. Die sind in Österreich kaum verbreitet. Mal schauen ob ich was rausfinde.

Es liegt scheinbar nicht an der FritzBox: Ich habe jetzt mal testweise die Zeilen 390-395 auskommentiert und da konnte ich das device anlegen. Nun habe ich die Kommentierung wieder weggenommen und alles funktioniert ohne Fehler. Meine Vermutung ist, dass es beim ersten define noch keine Readings gibt und daher die Fehlermeldung kommt. Wenn die Readings dann angelegt sind, kann er

each($hash->{READINGS})

auch richtig interpretieren. Hast du da eventuell während deiner Entwicklung was geändert und hast danach kein neues Device angelegt?

Ronny


EDIT: Ich kann nun zwar Nachrichten schicken, die gehen aber immer an alle Devices - egal, was ich versuche...

fhainz

Hallo!

Zitat von: mac-d am 14 August 2014, 16:50:42
2014.08.14 16:49:28 4: nachricht: data:$VAR1 = undef;
2014.08.14 16:49:28 4: nachricht: json:$VAR1 = undef;
2014.08.14 16:49:28 4: nachricht: data:$VAR1 = undef;
2014.08.14 16:49:28 4: nachricht: json:$VAR1 = undef;

Hast du die version genommen die ich im letzten post angehängt hatte? Da fehlen mir noch 2 Logs die ich in die angehängte version eingebaut habe.
Könnte es sein, dass hast du einen falschen accessToken eingetragen hast? Oder kannst du mal versucht den neu accessToken generieren und neu eintragen? Ich komm einfach nicht drauf warum bei dir keine devices gefunden werden.

---------------------

Zitat von: RoBra81 am 15 August 2014, 14:27:28
Meine Vermutung ist, dass es beim ersten define noch keine Readings gibt und daher die Fehlermeldung kommt.
Das vermute ich auch.
Eigenartig ist nur das diese Funktion erst beim senden aufgerufen wird (oder sollte). Weiters sollte es auch nach dem define ein state Reading mit Wert Initialized geben so dass die Schleife nicht fehlschlagen kann.
Egal, ich hab ein return wenn keine Readings vorhanden eingebaut und hoffe das löst das Problem.

Zitat von: RoBra81 am 15 August 2014, 14:27:28
Hast du da eventuell während deiner Entwicklung was geändert und hast danach kein neues Device angelegt?
Vor jedem upload im Forum lösche ich normalerweise mein Device, lege es neu an und probiere alle Funktionen nochmals durch. Ich konnte deinen Fehler auch nicht nachstellen.

Zitat von: RoBra81 am 15 August 2014, 14:27:28
Ich kann nun zwar Nachrichten schicken, die gehen aber immer an alle Devices - egal, was ich versuche...

Hast recht, wenn man keine Leerzeichen verwendet. :'( Versuchs mal mit, das sollte gehen.
Ich mach mich mal auf die Suche...

Grüße

fhainz

Bug gefunden. Sollte jetzt funktionieren.

Ich hab ein public git Repository bei bitbucket.org eingerichtet. Ist für mich einfacher als der Foren Upload hier da ich in der Entwicklung auch git verwende.
Einfach auschecken oder die raw Datei laden. In den Downloads gibts noch die Möglichkeit das komplette Repository zu laden.

Die neueste Version ist immer hier zu finden:
https://bitbucket.org/fhainz/fhemplaygroundpublic/


Grüße

mac-d

Hallo,

ich hab mir eine neuen Key bei Pushbullet geholt.

Leider funktioniert das einlesen immer noch nicht.

2014.08.15 17:45:16 4: nachricht: data:$VAR1 = undef;
2014.08.15 17:45:16 4: nachricht: json:$VAR1 = undef;
2014.08.15 17:45:16 4: nachricht: Es wurden 0 Endgeraete neu eingelesen.
2014.08.15 17:45:17 4: nachricht: data:$VAR1 = undef;
2014.08.15 17:45:17 4: nachricht: json:$VAR1 = undef;
2014.08.15 17:45:17 4: nachricht: Es wurden 0 Kontakte neu eingelesen.

Im Raspberry  funktioniert der direkte Aufruf aber alles ohne Probleme...

Gruss Dieter

mac-d


Hallo,

ich hab gestern mal das Modul 99_myPushBullet.pm getestet
und dort funktioniert das versenden schon mal.
Vielleicht hast Du noch eine Idee um meinem Fehler.

Gruss Dieter

fhainz

#38
Ja ist klar, da werden auch keine devices ausgelesen und an alle devices versendet. Das senden geht ja auch nur nicht weil keine devices bei dir eingetragen werden.
Ich hab dir gestern mal eine PN geschickt, schau dir die mal an.

fhainz

Hallo!

Wie schon in der PN erwähnt, funktioniert dein Key bei mir Problemlos. Deine beiden Devices werden sofort gelistet.

Ich vermute das JSON bei dir, warum auch immer, nicht korrekt funktioniert.

Was du noch versuchen könntest:
- sudo apt-get update
- sudo apt-get upgrade
- sudo apt-get install libjson-perl

Vielleicht hilft das was.

Grüße

RoBra81

Zitat von: RoBra81 am 15 August 2014, 14:27:28Nun habe ich die Kommentierung wieder weggenommen und alles funktioniert ohne Fehler.

Beim Laden der neuen Version habe ich gerade festgestellt, dass ich die Kommentierung anscheinend doch nicht wieder rausgenommen habe. Das Modul funktioniert bei mir nur, wenn die Zeilen auskommentiert sind...

mac-d

Hallo, doch zu früh gefreut.

Heute hab ich ein Update von FHEM gemacht und 70_Pushbullet.pm wieder eingespielt.
Nach dem "shutdown restart" sind die Geräte wieder verschwunden.

Das einlesen der Geräte funktioniert leider auch nicht mehr.

Ich kann das leider nicht weiter nachvollziehen, aber anscheinend hat der Fehler
mit dem Update zu tun.

Bis heute Morgen hat alles bestens funktioniert.

Gruss Dieter

RoBra81

Zitat von: RoBra81 am 14 August 2014, 10:26:39
Als, ich hab's jetzt runtergeladen und versucht zu definieren, aber leider kann er das Modul nicht laden:

2014.08.14 10:23:57 1: reload: Error:Modul 70_Pushbullet deactivated:
Type of arg 1 to each must be hash or array (not hash element) at ./FHEM/70_Pushbullet.pm line 390, near "}) "
Type of arg 1 to each must be hash or array (not hash element) at ./FHEM/70_Pushbullet.pm line 391, near "}) "

2014.08.14 10:23:57 0: Type of arg 1 to each must be hash or array (not hash element) at ./FHEM/70_Pushbullet.pm line 390, near "}) "
Type of arg 1 to each must be hash or array (not hash element) at ./FHEM/70_Pushbullet.pm line 391, near "}) "


Ich habe eine FritzBox 7490 und habe auch JSON nach dieser "Anleitung" installiert: http://www.fhemwiki.de/wiki/Hue#HUE_auf_der_Fritzbox

Woran kann das liegen?

Danke
Ronny

Zur Info: Da ich das Problem seit meinem gestrigen Update auch in einem zweiten Modul habe, habe ich mal einen eigenen Thread aufgemacht: http://forum.fhem.de/index.php/topic,26357.0.html

fhainz

Zitat von: mac-d am 20 August 2014, 14:53:30
Heute hab ich ein Update von FHEM gemacht und 70_Pushbullet.pm wieder eingespielt.
Nach dem "shutdown restart" sind die Geräte wieder verschwunden.
Nach einem Update musst du die Datei nicht wieder neu einspielen, update löscht keine Dateien. Warum das Pushbullet Device verschwunden ist kann ich mir auch nicht erklären ausser du hast nach dem anlegen nicht auf den save button geklickt.

Mach bitte noch einmal
attr <name> verbose 4
Anschließend noch ein
get <name> devices
und poste bitte den Log.

Wie gesagt dein Key hat bei mir problemlos funktioniert, hab das Modul gerade wieder auf 2 RasPi's und 1 MacMini getestet. Dabei ist mir aufgefallen das es immer noch das Problem Nachrichten gehen an alle Devices gibt. Das schau ich mir nochmals an. Ansonsten hat es auf jedem Gerät problemlos funktioniert.
Das dein Problem mit dem Update zusammen hängt kann ich mir irgendwie nicht vorstellen/erklären. Meine fhem's sind auch tagesaktuell. Schon mal die Rechte kontrolliert? Steht irgendwas im Log?

@RoBra81
Du hast die aktuelle Version aus dem bitbucket Repository oder?
Könntest auch mal bitte
attr <name> verbose 4
setzen und den Log posten?

Grüße

RoBra81

So, ich hab's  :)

Das Weather-Modul, in welchem ich auch das Problem hatte, hat ein Update erfahren, das nun funktioniert. Also habe ich die Änderungen mal ins PushBullet-Modul übernommen und siehe da, es funktioniert und ich kann nun Meldungen auch an einzelne Geräte schicken. Der folgende, geänderte Code funktioniert nun bei mir:

  while( ($nkey, $nvalue) = each %{$hash->{READINGS}} ){
    while( ($rkey, $rvalue) = each %{$hash->{READINGS}{$nkey}} ){
       Log3 $hash, 4, $name . ": nkey:" . $nkey . " nvalue:" . $nvalue . " rkey:" . $rkey . " rvalue:" . $rvalue if( $rvalue eq $deviceNick );
       $deviceIden = $nkey if( $rvalue eq $deviceNick );
    }
  }


Ronny