Fibaro hat mal wieder eine neue Funktion in der neuen Firmware ohne jegliche, öffentliche Dokumentation rausgehauen. Diesmal handelt es sich um eine neue Art der Push-Benachrichtigung.
Wie Ihr in dem Beitragsbild erkennen könnt, gibt es nun mit den sogenannten "Interactive PUSH notifications" (O-Ton Fibaro) die Möglichkeit mit einer Szene auf dem HC2 zu interagieren. Theoretisch können hier jetzt Szenen gestartet (RUN, beziehungsweise YES) oder Szenen abgebrochen (CANCEL) oder auch nicht ausgeführt werden (NO). Dafür nutzt Fibaro die sogenannte 3D Touch-Funktionalität der neueren iPhones. Ihr könnt also, nachdem Ihr euch eine solche Push zugeschickt habt, etwas doller auf die Push-Nachricht drücken und die oben genannten Aktionen erscheinen und Ihr könnt eine Aktion auswählen. Wie diese Funktion bei älteren iPhones ohne 3D Touch oder bei Android-Handys umgesetzt wurde, können wir leider nicht testen.
Als zusätzliches Feature können jetzt zwei Zeilen der Push angepasst werden und der Name, also Fibaro HC-xxxxxxx, ist aus den Push-Nachrichten verschwunden. Der letztere Punkt ist übrigens auch bei den "normalen" Push-Nachrichten umgesetzt und dort erscheint nur noch "HomeCenter". Kommen wir jetzt zu der benötigten LUA-Funktion (In Blockszenen ist dies bisher noch nicht umgesetzt).
LUA Szene zum Versenden von "Interactive PUSH notifications"
--[[ %% properties %% events %% globals --]] local phoneID = {232,464} local title = 'Die Alarmanlage wurde ausgelöst!' local message = 'Soll die Alarm-Szene abgebrochen werden?' local category = 'RUN_CANCEL' -- or 'YES_NO' local sceneID = 107 fibaro:debug('Interactive Push wird versendet...') for i=1, #phoneID do if phoneID[i] ~= nil then fibaro:debug('Versende Interactive Push an ID ' ..phoneID[i]) api.post('/mobile/push', {["mobileDevices"]={phoneID[i]}, ["message"]=message, ["title"]=title, ["category"]=category, ["data"]={["sceneId"]=sceneID}}); end end
In dieser Szene müsst Ihr noch ein paar Konfigurationen durchführen. Dafür haben wir euch alle wichtigen Informationen in lokale Variablen ausgelagert, so dass Ihr diese übersichtlich anpassen könnt. Wir gehen diese jetzt mal einzeln durch:
local phoneID = {232,464}
Hier müssen eure IDs der Handys eingetragen werden. Solltet Ihr diese nicht kennen, so könnt Ihr diese aus der API auslesen. Diese findet Ihr unter der URL http://IP-HC/api/devices. Dort könnt Ihr dann nach dem Namen des Handys suchen und die ID aus der JSON-Datei auslesen. Die IDs müssen mit einem Komma getrennt in den geschweiften Klammern aufgeführt werden. Sollte nur eine ID eingetragen werden, dann werden die geschweiften Klammern trotzdem benötigt.
ID Handy
local title = 'Die Alarmanlage wurde ausgelöst!'
An dieser Stelle kann der Titel der Push Nachricht festgelegt werden. Dieser kann als Typ String frei vergeben werden. In dem Bild nach den fünf notwendigen Konfigurationen erkennt Ihr an welcher Stelle (rote Markierung) dieser Titel auftaucht.
local message = 'Soll die Alarm-Szene abgebrochen werden?'
Hier kann die Message der Push bestimmt werden. In dem Bild ist diese Message blau markiert.
local category = 'RUN_CANCEL' -- or 'YES_NO'
Es gibt zwei unterschiedliche Kategorien der interaktiven Push Benachrichtigungen. Dies ist zum einen "RUN_CANCEL" und "YES_NO". Die Unterschiede könnt Ihr in dem Bild ausmachen. Diese wurden grün markiert. Andere Konstellationen funktionieren an dieser Stelle nicht!
local sceneID = 107
Als letztes muss nur noch die ID der Szene, welche Ihr über die Push Nachricht steuern wollt, eingetragen werden. Diese ID könnt Ihr aus der URL-Leiste eures Browsers auslesen, wenn Ihr in der Konfiguration der entsprechenden Szene seid.
Unterschiede zwischen den 2 Kategoerien & farbliche Markierungen
Das war es dann auch schon... Als Firmware wird hier mindestens die 4.104-Beta vorausgesetzt, mit vorher veröffentlichen Firmwares funktioniert das nicht.
Wenn Ihr die Szene jetzt manuell ausführt, dann sollte an alle hinterlegten HandyIDs eine Push-Nachricht versendet werden, mit der Ihr interagieren könnt. In unseren Tests hat das bisher leider nicht zuverlässig funktioniert und wir haben nicht alle Kombinationen getestet.
Könnt Ihr euch vorstellen diese Funktion zu nutzen? Wenn ja, habt Ihr dafür schon Ideen? Wie sind eure Tests verlaufen, hat es zuverlässig funktioniert? Wir würden uns über eure Kommentare freuen.