Neues Modul: PushBullet

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

Vorheriges Thema - Nächstes Thema

fhainz

Hallo!

Das Modul ist jetzt eingecheckt.

Ich hab mal aus dem Beispiel oben ein kleines Modul gebastelt. Bei mir funktioniert es schon ganz gut. Könnte das mal jemand testen?

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.


Wiki-Artikel: http://www.fhemwiki.de/wiki/Pushbullet

Zitat
Pushbullet

Pushbullet ist ein Dienst, um Benachrichtigungen an unterschiedliche Endgeräte zu senden. Pushbullet stellt Apps für iPhone, Android, Windows (Beta), Mac OS X (bald erhältlich) sowie Plugins für Chrome und Firefox an.
Für weitere Informationen über den Dienst besuche pushbullet.com.

Diskutiere das Modul hier.


Define
define <name> Pushbullet <accessToken>

Notiz:
JSON muss auf dem FHEM Host installiert sein.
Registriere dich auf pushbullet.com um deine accessToken zu bekommen.

Set clear
Löscht alle Device Readings
contactAdd name | email
Fügt einen neuen Kontakt hinzu. Leerzeichen im Namen sind erlaubt.
deviceDelete deviceName
Löscht das Device.
deviceRename deviceName | neuerDeviceName
Benennt das Device um.
link [| Titel | Device]
Sendet einen Link mit optionalen Titel und Device. Wenn kein Device angegeben ist, geht der Push an alle deine Devices.
list Item1[, Item2, Item3, ... | Titel | Device]
Sendet eine Liste mit einem oder mehreren Items, optionalen Titel und Device. Wenn kein Device angegeben ist, geht der Push an alle deine Devices.
message [| Titel | Device]
Sendet eine Nachricht mit optionalen Titel und Device. Wenn kein Device angegeben ist, geht der Push an alle deine Devices.

Beispiele:
set Pushbullet message Das ist eine Nachricht
Sendet eine Push Benachrichtigung mit der Nachricht "Das ist eine Nachricht" ohne vorbestimmten Titel an alle deine Devices.

set Pushbullet message Das ist eine Nachricht | Ein Titel
Sendet eine Push Benachrichtigung mit der Nachricht "Das ist eine Nachricht" mit dem Titel "Ein Titel" an alle deine Devices.

set Pushbullet message This is a message | Ein Titel | iPhone
Sendet eine Push Benachrichtigung mit der Nachricht "Das ist eine Nachricht" mit dem Titel "Ein Titel" an deinen Device iPhone.

set Pushbullet message This is a message | Ein Titel | Max Mustermann
Sendet eine Push Benachrichtigung mit der Nachricht "Das ist eine Nachricht" mit dem Titel "Ein Titel" an deinen Kontakt Max Mustermann.


Note:
Leerstellen vor und nach dem Trenner | werden nicht benötigt.

Get
devices
Liest alle Geräte und Kontakte ein und setzt die entsprechenden Readings.

Attributes
defaultDevice
Standart Device für Pushnachrichten.
defaultTitle
Standart Titel für Pushnachrichten. Wenn nicht gesetzt ist der Standart Titel FHEM

Englische und Deutsche Doku sind vorhanden.

Grüße


fhainz

Hab oben eine neue Version angehängt.

Grüße

Christoph

Habs getestet läuft ohne Probleme  8)

Danke

Gruß Christoph

fhainz

#3
Hallo!

Freut mich das es funktioniert.

Hab oben wieder eine neue Version angehängt.

- JSON muss auf dem FHEM Host installiert sein.
- Trenner von @@ auf | geändert
- Vorhandene Devices von pushbullet.com auslesen
- Vorhandene Devices umbenennen
- Versand an unterschiedliche Devices möglich

Grüße

locutus

Hallo fhainz,
der Host Server schmiert auf meinen beiden Rasperrys ab und die Ausgabe in der Konsole meldet folgendes:

Scalar value @devices[0] better written as $devices[0] at ./FHEM/70_Pushbullet.pm line 172.
Scalar value @devices[1] better written as $devices[1] at ./FHEM/70_Pushbullet.pm line 177.
Scalar value @devices[0] better written as $devices[0] at ./FHEM/70_Pushbullet.pm line 206.
Use of uninitialized value $data in concatenation (.) or string at ./FHEM/70_Pushbullet.pm line 62.
Use of uninitialized value $data in substitution (s///) at ./FHEM/70_Pushbullet.pm line 64.
Use of uninitialized value $data in pattern match (m//) at ./FHEM/70_Pushbullet.pm line 65.
malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/70_Pushbullet.pm line 273.


JSON Installation auf RasPi A: cpan install JSON
JSON Installation auf RasPi B: sudo apt-get install libjson-perl

Christoph

Bei mir funktioniert das Modul ohne Probleme, bekomme aber auch Fehler in den Log geschrieben:

Use of uninitialized value within @a in concatenation (.) or string at ./FHEM/70_Pushbullet.pm line 96.
Use of uninitialized value in pattern match (m//) at ./FHEM/33_readingsHistory.pm line 240.
Use of uninitialized value within @a in concatenation (.) or string at ./FHEM/70_Pushbullet.pm line 96.
Use of uninitialized value within @a in concatenation (.) or string at ./FHEM/70_Pushbullet.pm line 96.
Use of uninitialized value within @a in concatenation (.) or string at ./FHEM/70_Pushbullet.pm line 96.
Use of uninitialized value within @a in concatenation (.) or string at ./FHEM/70_Pushbullet.pm line 96.
Use of uninitialized value $deviceNick in substitution (s///) at ./FHEM/70_Pushbullet.pm line 136.
Use of uninitialized value $deviceNick in substitution (s///) at ./FHEM/70_Pushbullet.pm line 137.
Use of uninitialized value $deviceNick in concatenation (.) or string at ./FHEM/70_Pushbullet.pm line 140.
Use of uninitialized value $deviceNick in concatenation (.) or string at ./FHEM/70_Pushbullet.pm line 142.
Use of uninitialized value $deviceIden in concatenation (.) or string at ./FHEM/70_Pushbullet.pm line 142.
Use of uninitialized value $_ in substitution (s///) at FHEM/HttpUtils.pm line 44.
Use of uninitialized value in concatenation (.) or string at FHEM/HttpUtils.pm line 180.
Use of uninitialized value within @a in concatenation (.) or string at ./FHEM/70_Pushbullet.pm line 96.
Use of uninitialized value within @a in concatenation (.) or string at ./FHEM/70_Pushbullet.pm line 96.

fhainz

Hallo!

Danke für die Rückmeldungen.
Anscheinend werden die Leerzeichen vor und nach dem | leider nicht richtig entfernt. Ich sitze schon an einer neuen Version in der direkt ein JSON Statement Pushbullet übergeben wird. Dann stürzt FHEM wenigstens nicht ab sondern zeigt eine Fehlermeldung.

Kontakte hinzufügen/löschen/umbenennen funktioniert auch schon.

Auf meiner TODO-Liste steht noch:
- Devices umbennen - Trenner | verwenden, wegen Leerzeichen in Device Names
- Listen versenden
- Links versenden
- Bilder (zB Webcam) versenden

Mal schauen was ich davon zusammenbringe :D
Aber erstmal muss ich schauen das ich das mit den Leerzeichen in den Griff bekomme.

Grüße

fhainz

#7
Großteils sind das nur Warnungen die ihr in der Konsole habt. Alle hab ich nicht wegbekommen, aber ein paar ;)

Hab in meinem ersten Post wieder eine neue Version angehängt. Probiert die mal bitte, das Modul sollte jetzt (hoffentlich) nicht mehr abstürzen.

Änderungen:
- Set Funktionen umbennant (deviceDelete,deviceRename)
- Push an Kontakte möglich
- Kontakt hinzufügen (contactAdd) / löschen (deviceDelete) / umbenennen (deviceRename) möglich
- Fehlermeldungen durch Pushbullet Fehlermeldungen ersetzt

locutus

Der Host auf der Himbeere ist erneut mit einer Meldung ausgestiegen:
malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/70_Pushbullet.pm line 61.

Auf dieses Feature bin ich schon gespannt:
Zitat von: fhainz am 08 August 2014, 12:09:54
Auf meiner TODO-Liste steht noch:
- Bilder (zB Webcam) versenden


fhainz

Könntest du mal bitte Line 58 kommentieren und nochmals versuchen?

Ich kann das hier auf 3 Pi's und 1 MacMini nicht nachstellen :( Auf einem Pi hab ich sogar erst JSON installieren müssen. sudo apt-get install libjson-perl und bei mir funktionierts.  :o

locutus

Leider ohne Erfolg. Welche Distribution läuft auf den Pi's? So langsam habe ich die spezielle Kernel Version im Verdacht.

fhainz

Bei mir läuft weezy, aktuelle version, auf allen pi's.

fhainz

Hallo!

Ich hab in meinem ersten Post wieder eine neue Version angehängt. Bei mir läuft das Modul jetzt sehr stabil und ist seit Ewigkeiten nicht mehr abgestürzt.

Änderungen:
- set list item1[, item2, item3, ... | Titel | Device] möglich
- set <name> link [ | titel | device ] möglich. Der Content des übergeben Link wird direkt in zB der App angezeigt. zB URL zum aktuellen Webcam Bild
- deviceRename Trenner auf | geändert. Somit werden Leerzeichen werden im Device Namen unterstützt
- Readings umgestellt

Als nächstes versuch ich mich am File Upload.

Grüße

mac-d

Hallo, ich hab das Modul bei mir installiert, bekomme aber folgende Fehlermeldung.

Can't use an undefined value as an ARRAY reference at ./FHEM/70_Pushbullet.pm line 327.

Gruss Dieter

fhainz

Hallo!

Welches System benutzt du?
Ist die Meldung direkt beim define gekommen oder hast du eine Nachricht gesendet?

Vielleicht kannst du mir ein paar mehr Informationen geben.


Grüße