Neues Modul: PushBullet

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

Vorheriges Thema - Nächstes Thema

fhainz

#60
Nimm das Modul aus diesem Post: http://forum.fhem.de/index.php/topic,25615.msg189503.html#msg189503 (JSON erforderlich)

Vielleicht kann ein Moderator den Thread mal ab meinem ersten Beitrag abtrennen?

Mit diesem Modul kannst du verschiedene Empfänger auswählen bzw. wenn du keine Endgerät angibst geht der Push an alle Devices.

Grüße

santa0912

Hallo zusammen,

ich nutze seit einiger Zeit erfolgreich fhem und auch Pushbullet.

Nun möchte ich gerne über ein notify eine Nachricht senden, die den Wert eines Dummys ausliest und als Text per pushbullet verschickt.

Ich dachte es funktioniert mit:

set pushbullet message Value("dummyname") | Titel

Leider kommt dann nur der Text "Value("dummyname")" in der Nachricht an. Wie kann ich einen Wert auslesen und per Pushbullet versenden?

Vielen Dank und Grüße

fhainz

Hallo!

Du mischt hier fhem und Perl Befehle.

Versuchs mal mit:

{
  my $val = Value("dummyname");
  fhem("set pushbullet message $val | Titel");
}


Grüße

santa0912

Vielen Dank für den Hinweis, nun läuft´s  :)

Viele Grüße,

zentis666

#64
Hi!
Hab gerade ein ähnliches Problem und stehe auf dem Schlauch...
Ich möchte mir morgens um 7 Uhr die aktuelle Temperatur auf mein iPhone pushen lassen, hab ein HMS100T (FS20).
Mit

define AussentempPush at *07:00:00 {my $TETemperatur = ReadingsVal("HMS100T_xxxx","temperature","xx")} ; set push message $TETemperatur | $TETemperatur | iPhone

pusht er zwar, löst aber die Variablen nicht auf , ausserdem geht der Push komischerweise an alle Geräte und nicht nur ans iPhone...

Was mach ich falsch?

Grüsse
Zentis
--
FHEM auf Debian VM - ESXi 6.0 Intel Nuc i5 4th Gen, Homematic auf HMCCU - RaspberryMatic auf Raspberry PI 3,
EM1000 & FS20 über CUNO,  IT über Arduino Firmata, MiLight über WLAN-nRF Gateway, Ebus, 1Wire, diverse Squeezeboxen, Dreambox 920UHD, Homebridge

linuxq

Es gibt ja auch einen Pushbullet Client für Blackberry 10:

http://appworld.blackberry.com/webstore/content/58534486/?countrycode=de&lang=de

Könnte das jemand im Wiki ergänzen?

Gruß

LinuxQ

fhainz

Zitat von: zentis666 am 03 November 2014, 22:28:02
define AussentempPush at *07:00:00 {my $TETemperatur = ReadingsVal("HMS100T_xxxx","temperature","xx")} ; set push message $TETemperatur | $TETemperatur | iPhone

Meine Codeschnippsel gehören wie immer in das DEF des at's:

*07:00:00 {
  my $TETemperatur = ReadingsVal("HMS100T_xxxx","temperature","xx");
  fhem("set push message $TETemperatur | $TETemperatur | iPhone");
}


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

Zitat von: linuxq am 06 November 2014, 09:35:38
Könnte das jemand im Wiki ergänzen?
Habs hinzugefügt. Im Wiki kannst du das aber auch gerne selber machen. Account besorgen und schon kanns los gehen.

Grüße

zentis666

Zitat von: fhainz am 08 November 2014, 09:25:52
Meine Codeschnippsel gehören wie immer in das DEF des at's:

*07:00:00 {
  my $TETemperatur = ReadingsVal("HMS100T_xxxx","temperature","xx");
  fhem("set push message $TETemperatur | $TETemperatur | iPhone");
}


Grüße

Danke, nun gehts!
--
FHEM auf Debian VM - ESXi 6.0 Intel Nuc i5 4th Gen, Homematic auf HMCCU - RaspberryMatic auf Raspberry PI 3,
EM1000 & FS20 über CUNO,  IT über Arduino Firmata, MiLight über WLAN-nRF Gateway, Ebus, 1Wire, diverse Squeezeboxen, Dreambox 920UHD, Homebridge

brede

hmm. .

Der Dienst läuft einwandfrei. Vielen Dank dafür.
Aber wie bekomme ich es hin, dass ich in einem Aufruf mehrere Kontakte einbinde - kommagetrennt klappte schon mal nicht?
Kann ich auch ein Kontakt mit einem Device mischen?

fhainz

Zitat von: brede am 08 November 2014, 12:01:51
Aber wie bekomme ich es hin, dass ich in einem Aufruf mehrere Kontakte einbinde - kommagetrennt klappte schon mal nicht?

Sieht so aus, als würde die Pushbullet API das gar nicht können.

ZitatEach push has a target, if you don't specify a target, we will broadcast it to all of the user's devices. Only one target may be specified.
Quelle: https://docs.pushbullet.com/v2/pushes/


Du könntest mehrere Pushes hintereinander, immer mit einem anderem Empfänger absetzen das sollte funktionieren.

Grüße

brede

Zitat von: fhainz am 25 Oktober 2014, 11:34:34
Nimm das Modul aus diesem Post: http://forum.fhem.de/index.php/topic,25615.msg189503.html#msg189503 (JSON erforderlich)
Mit diesem Modul kannst du verschiedene Empfänger auswählen bzw. wenn du keine Endgerät angibst geht der Push an alle Devices.

Danach müsste es mit dem Modul funktionieren.
Aber ich werde erst einmal deinen Vorschlag annehmen und die Push-Nachricht einzeln absetzen.

fhainz

Du kannst ja verschiedene Empfänger auswählen. Entweder an Device1 oder Device2 oder Device3 oder nix angeben dann geht der Push an alle Devices. Pushbullet selbst kann das nicht, das liegt nicht an meinem Modul.

zentis666

Ich hab ein kleines Problem mit einem Push.
Ich habe einige Fenster-Drehgriffkontakte von Homematic, zusätzlich noch das Residents-Modul und hab nun versucht mir eine Nachricht schicken zu lassen
wenn einer der Kontakte geöffnet wird bei Abwesenheit aller Bewohner (wird über geofency realisiert).
Da die Namen aller Kontakte mit hm_w beginnen mache ich das einfach per notify so:
DEF .*:.* { if ($NAME =~ m"hm_w" && $EVENT eq "open" && Value("RESIDENTS") eq "absent") {fhem("set push message Alarm Fensteröffnung $NAME | Fenster $NAME wurde geöffnet")} }
Das funktioniert prima.

Nun haben diese Sensoren einen "Sabotagekontakt", d.h. wenn ich das cover öffne geht das Reading des Sensors von "cover" von "closed" nach "open".
Mit
DEF .*:.* { if ($NAME =~ m"hm_w" && ReadingsVal($NAME, "cover", "closed") eq "open" && Value("RESIDENTS") eq "absent") {fhem("set push message Alarm Fenster Sabotage $NAME | Fenster $NAME Batteriefach wurde geöffnet")} }
bekomme ich nicht nur einen Push sondern 5 mal den gleichen innerhalb von 1-2 Sekunden.
Im Logfile steht dann
2014.11.08 22:39:01 1: PERL WARNING: Use of uninitialized value within @a in concatenation (.) or string at ./FHEM/70_Pushbullet.pm line 114.
2014.11.08 22:39:02 1: PERL WARNING: Use of uninitialized value within @a in concatenation (.) or string at ./FHEM/70_Pushbullet.pm line 114.
2014.11.08 22:39:02 1: PERL WARNING: Use of uninitialized value within @a in concatenation (.) or string at ./FHEM/70_Pushbullet.pm line 114.
2014.11.08 22:39:03 1: PERL WARNING: Use of uninitialized value within @a in concatenation (.) or string at ./FHEM/70_Pushbullet.pm line 114.
2014.11.08 22:39:03 1: PERL WARNING: Use of uninitialized value within @a in concatenation (.) or string at ./FHEM/70_Pushbullet.pm line 114.


Ist das ein Fehler im PushBullett oder hab ich da was falsch gemacht?
--
FHEM auf Debian VM - ESXi 6.0 Intel Nuc i5 4th Gen, Homematic auf HMCCU - RaspberryMatic auf Raspberry PI 3,
EM1000 & FS20 über CUNO,  IT über Arduino Firmata, MiLight über WLAN-nRF Gateway, Ebus, 1Wire, diverse Squeezeboxen, Dreambox 920UHD, Homebridge

fhainz

#73
Ein notify auf .*:.* ist nicht performant und damit musst du sehr aufpassen. Es triggert bei jedem FHEM-Event. Mit ziemlicher Sicherheit bekommst du deshalb mehrere Pushes.
Ich würde das notify auf den Fensterkontakt triggern lassen und dann den jeweiligen status des resident moduls prüfen.

Was die Perl Warnings betrifft hab ich glaube ich dazu schon etwas ein paar Beiträge davor geschrieben. Hatte bisher noch keine Zeit da Zeit zu investieren. Diese Warnings beeinträchtigen die Funktionsweise des Moduls in keiner Weise.


Grüße

zentis666

Zitat von: fhainz am 08 November 2014, 23:21:19
Ein notify auf .*:.* ist nicht performant und damit musst du sehr aufpassen. Es triggert bei jedem FHEM-Event. Mit ziemlicher Sicherheit bekommst du deshalb mehrere Pushes.
War mir nicht bewusst, hab ich geändert, danke für den Hinweis! Ist mir bisher nicht aufgefallen, mein Cubietruck hat da wahrscheinlich genügend Reserven.
Aber da mein Spieltrieb gerade mal wieder geweckt ist kann sich das schnell ändert ;-)

Zitat von: fhainz am 08 November 2014, 23:21:19
Ich würde das notify auf den Fensterkontakt triggern lassen und dann den jeweiligen status des resident moduls prüfen.
Hab ich so gemacht:

DEF
hm_w.*:.* { if (ReadingsVal($NAME, "cover", "closed") eq "open"
&& Value("RESIDENTS") eq "home")
{fhem("set push message Alarm Fenster Sabotage $NAME | Fenster $NAME Batteriefach wurde geöffnet | iPhone")} }

Bringt aber wieder 5 Pushes. Wenn ich ein Cover öffne ändern sich diese 5 Readings
alive, battery, contact, cover, recentStateType,
wird dann bei jeder der 5 Änderungen getriggert?!

Dann mach ich das anders, ich hab die Fenster in Structures pro Raum zusammengefasst und visualisiere sie per
HomeMatic Funk-Statusanzeige. Da greife ich mir einfach ab wenn der Status der Structure sich ändert, sollte ja keine große Verzögerung geben.


--
FHEM auf Debian VM - ESXi 6.0 Intel Nuc i5 4th Gen, Homematic auf HMCCU - RaspberryMatic auf Raspberry PI 3,
EM1000 & FS20 über CUNO,  IT über Arduino Firmata, MiLight über WLAN-nRF Gateway, Ebus, 1Wire, diverse Squeezeboxen, Dreambox 920UHD, Homebridge