Fibaro HC2 pushBullet API

Hey,
ich möchte euch ein Script von mir nicht vorenthalten. Es ist eine Funktion, mit der man sich via pushbullet push(es?) aufs Smartphone senden kann. Das geht deutlich zuverlässiger als mit der Fibaro App und ist auch schlanker.
Die Funktionsweise ist eigentlich selbsterklärend. Ihr müsst nur noch euren API Key eintragen. Diesen findet ihr bzw legt ihr hier an:https://www.pushbullet.com/#settings/account
Die Dokumentation zu Pushbullet, wer sich soweit damit befassen will, gibt es hier: https://docs.pushbullet.com/#create-push
Es gibt einige möglichkeiten elemente zu integrieren wie Bilder, Links und Dateien…

function push(titel, message) 
  	local apikey = '0.igujiginpibgpnofdmgviosmrhjig' --api key eintragen
    local http = net.HTTPClient() 
	local response, status, errorCode = http:request("https://api.pushbullet.com/v2/pushes", { 
      	options = { 
            method = 'POST', 
              headers = {
         		 ['Access-Token'] = apikey,
          		 ['Content-Type'] = 'application/json'
        	  }, 
              data = '{"body":"'..message..'","title":"'..titel..'","type":"note"}', 
              timeout = 5000 }, 
        success =  function(resp) end, --funktion für rückgabe
          error = function(err) print('[ERROR] ' .. err) end 
    })
end

--script teil
push("Titel","Inhalt") -- funktion zum einsetzen

Viel Spass damit

Saubere Arbeit. Schade, dass man keine übergreifende Szenen anlegen kann :frowning:

Eine Integration mit pushover gibt es auch. Diese sieht aber deutlich einfacher aus. Cool, danke :slight_smile:

Pushover ist vom Prinzip gleich, man müsste die doku lesen. Der Aufbau unterscheidet sich aber sicher nur minimal.

Hast du dir mal die Möglichkeit angeschaut SMS zu verschicken? Das wäre richtig interessant.

Was gibt es da? Geht das auch mit einer API irgendwo kostenlos?
Übrigens habe ich jetzt eine globale variable mit dem String für die daten. als trigger diese globale variable.
so kann man sobald sich die globale variable ändert diesen push dann verschicken und muss die funktion nicht mehr überall einbauen :slight_smile:

Oder über Telegram statt SMS:
http://forum.fibaro.com/index.php?/topic/20581-sending-messages-from-your-hc2-to-your-telegram-account/?hl=telegram
was aber etwas aufwendiger einzurichten ist.

Hab es mir jetzt mal für iOS angeschaut. Funktioniert zuverlässig, habe auber auch bisher nur 2,3 Nachrichten verschickt.

Unter iOS sind die Möglichkeiten aber deutlich kleiner als unter Android (soweit ich das beurteilen kann).

Die SMS kannst du nur bei Android nutzen. Dort wird deinem Handy eine bestimmte Nachricht geschickt, wodurch im Hintergrund wohl dein Handy dir selbst eine SMS-Nachricht schickt. Davon hast du als normaler User 100 im Monat frei und es funktioniert wohl auch mit der API. :slight_smile:

Ich nutze Pushbullet, weil es unter Android alles spiegeln kann. Apple hat an sich ja schon “Handoff” oder wie es heißt, das geht mit Pushbullet genauso. Das coole ist, wer Chrome nutzt bekommt die Pushes auch am PC und im besten Fall auch auf Arbeit etc… ich will ja immer wissen, wer gerade bei mir zuhause die Tür auf macht :stuck_out_tongue:

Ich kann es nur jedem empfehlen, der unter allen Betriebssystemen zuverlässig Nachrichten will.

Grüße

Ist zwar schon etwas her, aber könntet Ihr nochmal ein Beispiel schicken, wie ich eine pushbullet jetzt raus schicke?

Hi,

die Funktion/Code findest du im ersten Post. Damit wird eine Nachricht verschickt.

Gruß

Hallo zusammen,

bin mich gerade dabei in das HC2 reinzufuchsen und würde gerne direkt auf Pushbullet gehen.

Soweit ist der Code selbsterklärend. Ich weiß nur leider nicht wo ich den einsetzen soll.
Bei der Szene mit reinkopieren? oder kann ich irgendwo, wie bei den Mitteilungen im HC2, verschiede Vorlagen erstellen?

Vielen Dank im Voraus,

VG Chris

Hi,

das ist eine Funktion für Szenen. Einfach dort hineinkopieren und die Funktion mit

push("Titel","Inhalt") – funktion zum einsetzen

starten. Damit wird der Text übergeben.

Gruß

Vielen Dank für die Antwort boomx,

werde das heute Abend direkt mal probieren.
Geht rein über LUA Szene oder geht es auch über eine Blockszene?

Gruß

Geht nur über LUA.

Gruß

:slight_smile: Alles klar , Danke dir.

Falls noch Fragen aufkommen , würde ich mich nochmal melden wenn es ok ist…

Denke aber habe das Prinzip verstanden.

Gruß

Funktioniert super, Danke!!

Grüße

Matthias

Richtig Super, Daniel. Danke für das Script. Hilft einwandfrei wenn das HC2 in der aktuellen Version ein Pushmuffel ist.
Gruß Carsten

Muss doch nochmal fragen (bin jetzt erst zum probieren gekommen).
Habe eine Blockzene “kaffeemaschine aus” in lua code umgewandelt und habe einfach den kompletten pushbulletcode darunter kopiert.

Wenn ich die Szene manuel starte klappt das mit pushbullet. Wenn die Szene automatisch nach der eingestellten Zeit startet, dann klappen push´s nicht.

Hat jemand einen Rat für mich? :slight_smile:

Gruß Chris

Hi,

das könnte an den Triggern oder Deinen Abfragen liegen…
Am besten Du postest deinen Code (bitte oberhalb des Fensters dern “code”-Button drücken, Code einfügen und erneut den “code”-Button drücken.

VG Hoggle

Guten Abend Hoogle :slight_smile: Vielen Dank dass du auf mein Anfänger Problem antwortest :slight_smile:

Hier der Code der Szene…

--[[
%% autostart
%% properties
%% events
%% globals
--]]

local sourceTrigger = fibaro:getSourceTrigger();
function tempFunc()
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
 ( ((currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "06:57") )
)
then
	fibaro:call(19, "turnOff");
	fibaro:call(5, "sendDefinedPushNotification", "4");
end

setTimeout(tempFunc, 60*1000)
end
if (sourceTrigger["type"] == "autostart") then
tempFunc()
else

local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
startSource["type"] == "other"
)
then
	fibaro:call(19, "turnOff");
	function push(titel, message) 
  	local apikey = 'o.lxlkT5GNmwVhiyOqeoa1ZANCObWlaURO' --api key eintragen
    local http = net.HTTPClient() 
	local response, status, errorCode = http:request("https://api.pushbullet.com/v2/pushes", { 
      	options = { 
            method = 'POST', 
              headers = {
         		 ['Access-Token'] = apikey,
          		 ['Content-Type'] = 'application/json'
        	  }, 
              data = '{"body":"'..message..'","title":"'..titel..'","type":"note"}', 
              timeout = 5000 }, 
        success =  function(resp) end, --funktion für rückgabe
          error = function(err) print('[ERROR] ' .. err) end 
    })
end

--script teil
push("Kueche","Kaffee ist FERTIG")
    
end

end

VG Chris