Beiträge von to0b

    Nochmal zum Verständis:


    deCONZ läuft bei dir als systemd Service?


    Die Software ist nicht dafür ausgelegt beides gleichzeitig zu betreiben!

    Entweder deCONZ läuft als Service OHNE GUI (headless) und nur über die Phoscon oder Wireless Light Contol Weboberfläche zu bedienen.

    Oder deCONZ läuft nicht als Service und wird über die deCONZ Verknüpfung auf dem Pi Desktop gestartet. Dann hat man die deCONZ GUI (über VNC) und die Phoscon sowie die WLL Weboberfläche.


    Bei mir läuft deCONZ als systemd Service. Dadurch kann ich auf dem Pi Desktop auch nicht die GUI starten. Sobald ich den service beende kann ich auch wieder die GUI starten.

    Ich schätze, dass wenn deCONZ als Service läuft man die GUI nicht noch zusätzlich benutzen kann. Da ja dann zwei Prozesse versuchen auf einen physikalischen Adapter und dessen Funktion zuzugreifen.


    Beendet doch einfach mal den Service und startet dann die GUI.

    Es sieht so aus als ob beim sudo service restartder homebridge Prozess nicht beendet und wird. Weil in den Logs der Homebridge Prozess noch läuft und somit den Port blockiert ist bzw. Homebridge noch läuft.


    Was steht in der Service Datei unter /etc/systemd/system/homebridge.service

    Error: listen EADDRINUSE :::51830

    Bedeutet, dass entweder deine Homebridge 2x ausgeführt wird, oder ein anderes Programm bereits den Port 51830 nutzt.

    Da hier einige gefragt haben, wie man über die Hue API und dem Homebridge-hue Plugin weitere Funktionen nutzen kann, habe ich mir gedacht ich schreibe eine kleine Anleitung dafür:


    Zuerst braucht ihr allerdings ein paar Grundlegende API Verständnisse, die ich versuche hier ein wenig zu erklären.

    Grundlegende API Bedienung

    1. API Client

    Als erstes benötigt man einen API Client. Ich nutze für OS X den Insomnia.rest Client.

    Philips bietet zwar auf der Hue Bridge einen eigenen Client an, dieser ist jedoch bei größeren Abfragen umständlich.

    http://<bridge ip address>/debug/clip.html

    2. API Benutzer anlegen

    Dazu über den API Client eurer Wahl folgendes absetzten:

    Methode: POST

    URL: http://<bridge ip address>/api

    Body: {"devicetype":"my_app#mac tobi"}


    Es folgt die Aufforderung den Link Button auf der Hue Bridge zu drücken.


    Nachdem der Button gedrückt wurde, wird die Abfrage aus 2.1 erneut ausgeführt und ihr solltet nun einen Benutzernamen angezeigt bekommen:

    [{ "success": { "username": "XXXXXXXXXXXXXXXXXXXXXXXXXXX" }}]


    Nun müsst ihr den Username heraus kopieren und mit in die URL einbauen, damit ihr Authentifiziert seid und weitere Abfragen ausführen könnt:

    http://<bridge ip address>/api/XXXXXXXXXXXXXXXXXXXXXXXXXXX

    3. Abfragen

    Als Test fragen wir nun einfach alle Lampen mit folgendem Befehl ab:

    Methode: GET

    URL: http://<bridge ip address>/api/XXXXXXXXXXXXXXXXXXXXXXXXXXX/lights

    Body:


    Es sollten nun alle Lampen im JSON Format ausgegeben werden. Beispiel:


    Einzelne Lampen werden dann einfach mit der jeweiligen Nummer in der URL angesprochen:

    Methode: GET

    URL: http://<bridge ip address>/api/XXXXXXXXXXXXXXXXXXXXXXXXXXX/lights/1

    Body:


    Die gleichen GET Abfragen kann man für alle Ressourcen auf der Bridge ausführen:

    Sensoren : /sensors/

    Regeln: /rules/

    Gruppen: /groups/

    Szenen: /scenes/

    Zeitpläne: /schedules/

    4. Ändern

    Über die Anfragen kann man ebenso Ressourcen ändern.


    Beispiele:


    Einschalten einer Lampe:

    Methode: PUT

    URL: http://<bridge ip address>/api/XXXXXXXXXXXXXXXXXXXXXXXXXXX/lights/1/state

    Body: { "on": true }


    Ausschalten einer Lampe:

    Methode: PUT

    URL: http://<bridge ip address>/api/XXXXXXXXXXXXXXXXXXXXXXXXXXX/lights/1/state

    Body: { "on": false }


    Anpassen der Helligkeit auf 100%:

    Methode: PUT

    URL: http://<bridge ip address>/api/XXXXXXXXXXXXXXXXXXXXXXXXXXX/lights/1/state

    Body: { "on": true, "bri": 254 }


    Gruppe auf 100% Helligkeit in Blau einschalten:

    Methode: PUT

    URL: http://<bridge ip address>/api/XXXXXXXXXXXXXXXXXXXXXXXXXXX/groups/0/action

    Body: { "on":true, "bri": 254, "sat": 255, "hue": 46920 }


    Eine Liste mit den Parametern findet ihr hier: http://www.burgestrand.se/hue-api/


    Dies sollte euch nun ein bisschen ein Grundverständnis geben, um zu sehen, wie man über die API arbeitet.


    Weitere Hilfreiche Anleitungen für die API findet hier:

    https://developers.meethue.com/documentation/core-concepts

    http://www.burgestrand.se/hue-api/

    Hue API mit Homebridge-hue nutzen

    Kommen wir nun zu den Funktionen, die man über die Hue API in Kombination mit dem hue Plugin nutzen kann.


    Ich habe mir zum Beispiel in HomeKit einen virtuellen Switch über die Hue API angelegt, der über eine Regel alle Lampen für 10 Sekunden in der Farbe Rot blinken lässt. Dies hatte ich zuerst über das IFTTT Plugin realisiert, aber die Reaktionszeit war mir dort teilweise deutlich zu langsam.

    1. CLIPGenericFlag anlegen

    Zuerst muss man einen neuen Sensor anlegen:

    Methode: POST

    URL: http://<bridge ip address>/api/XXXXXXXXXXXXXXXXXXXXXXXXXXX/sensors

    Body:

    Code: Body
    {  
        "manufacturername": "homebridge-hue",  
        "modelid": "CLIPGenericFlag",  
        "name": "Alarm Sensor Flag",  
        "swversion": "1", 
        "type": "CLIPGenericFlag",  
        "uniqueid": "Alarm Sensor Flag"
    }

    Es folgt eine success Rückmeldung mit der entsprechenden Sensor Nummer /sensors/XX/. Diese Nummer merken!


    Diesen Sensor kombiniert man nun mit einer Regel, was der Sensor auslösen soll:

    Methode: POST

    URL: http://<bridge ip address>/api/XXXXXXXXXXXXXXXXXXXXXXXXXXX/rules

    Body:

    Achtung: Im Body die Sensor Nummer 2x anpassen!"address": "/sensors/XX/state"


    Diese Regel steuert den Sensor und stellt die Group0 (alle Lampen) auf Rot ("sat", "hue"), die Helligkeit auf 100% ("bri") und das Blinken für 10 Sekunden ("alert").


    Wer nur ein einmaliges Blinken haben möchte, muss "alert": "lselect" auf "alert": "select" ändern. Allerdings spielt hier die gleichzeitige Farbänderung mit rein.

    2. Homebridge-Hue Plugin config anpassen

    Um den Switch in HomeKit angezeigt zu bekommen muss man nun die Homebridge config.json anpassen.


    In der Hue Platform:

    Sensoren müssen aktiviert sein

    "sensors": true,


    Ebenso darf "CLIP" nicht als "excludeSensorTypes" gesetzt sein.

    Ich habe bei mir nur folgende Sensoren ausgeschlossen:

    "excludeSensorTypes": ["CLIPPresence", "CLIPGenericStatus", "Daylight", "Geofence"]


    Nach einem Neustart der Homebridge sollte nun in HomeKit ein Schalter mit dem Namen des zuvor angelegten CLIPGenericFlag erscheinen.


    Dies als kleines Beispiel, was mit der API und homebridge-hue zusätzlich möglich ist.