2016-04-19 6 views
7

Ich arbeite an einer App, die das Philips Hue SDK verwendet. Ich möchte eine Aktion durchführen, wenn nach Sonnenuntergang. Es sieht so aus, als ob ein Sensor auf der Brücke ist, der wahr oder falsch zurückgeben kann, wenn der Benutzer gerade Tageslicht hat.Philips Hue Android SDK Überprüfung auf Sonnenuntergang/

Ich finde die Dokumentation ist ein wenig in diesem Bereich fehlt, oder zumindest ich finde es nicht. Ich habe http://www.developers.meethue.com/documentation/supported-sensors gefunden, aber es gibt keine Informationen darüber, wie man es benutzt. Die einzige andere Sache, die ich gefunden habe, ist http://www.developers.meethue.com/documentation/java-sdk-getting-started#usingSensors, die nur sagt, wie man neue Sensoren findet. Ich möchte nicht alle Sensoren, ich möchte nur auf den Tageslichtsensor zugreifen und einfach nur nachsehen, ob es Tageslicht ist und wenn nicht.

Vielen Dank für Ihre Hilfe.

Antwort

3

Sie können dies erreichen, indem Sie die JSON-Werte auf der Bridge entsprechend einstellen. Hier erfahren Sie, wie Sie das Werkzeug debug/clip.html auf der Bridge verwenden. Sie können auch eine der Hue-APIs verwenden, um diese Operationen auszuführen. Die Verwendung des Debug-Tools ist jedoch sehr einfach.

Zuerst PUT (update) die Tageslichtsensorkonfiguration mit Ihrem eigenen Long und Lat. Diese Werte sind für Omaha, NE. Die Offsets können plus oder minus 120 Minuten eingestellt werden, um den Status früher oder später als die berechnete Sonnenaufgangs-/Sonnenuntergangszeit für die angegebene Lat/Long-Koordinate zu ändern.

/api/<username>/sensors/1/config 

{ 
    "long": "96.0419W", 
    "lat": "41.2647N", 
    "sunriseoffset": 0, 
    "sunsetoffset": 0 
} 

Wenn Sie es richtig machen, der state/daylight Wert sollte entsprechend geändert werden.

nun POST (create) eine Regel, die auf dem Tageslicht zuzustandsbasierten abfeuert:

/api/<username>/rules 

{ 
    "name": "Turn lights off at sunrise", 
    "conditions": [ 
    { 
     "address": "/sensors/1/state/daylight", 
     "operator": "eq", 
     "value": "true" 
    } 
    ], 
    "actions": [ 
    { 
     "address": "/groups/0/action", 
     "method": "PUT", 
     "body": { 
     "on": false 
     } 
    } 
    ] 
} 

Diese Regel wird alle Lichter (Gruppe 0) ab, wenn der state/daylight Wert des Sensors auf true bei Sonnenaufgang dreht. Sie können eine zweite Regel hinzufügen, um das Licht bei Sonnenuntergang einzuschalten.

+0

Danke, das ist nützlich, aber ich suchte dies im Philips Hue SDK für Android – Boardy

+0

Wie gesagt, Sie können die Java-API verwenden, um genau dies zu tun, senden Sie einfach die create/update-Befehle, um diese Werte festzulegen. Ich bin selbst und iOS-Entwickler und habe das in objective-c gemacht, aber nicht in Java, aber es ist nicht schwierig. Wie auch immer, danke für die 25 Punkte! –

+0

RE: "Ich möchte nur auf den Tageslichtsensor zugreifen und nur eine Kontrolle machen, ist es Tageslicht und wenn nicht, etwas tun." Konfigurieren Sie daher zuerst den Tageslichtsensor wie oben, mit der richtigen Breite und Länge für Ihren Standort. Um festzustellen, ob es Tageslicht ist, überprüfen Sie den booleschen Wert, der sich unter/sensors/1/state/daylight befindet, mit etwas wie isDaylight = sensor [1] .state.daylight; (Ich laufe gerade nicht Java, aber es sollte so etwas sein). Wenn Sie etwas tun müssen, WENN es sich ändert, müssen Sie fortlaufend Abfragen durchführen, andernfalls erstellen Sie eine Regel, wie zuvor erwähnt, und lassen Sie die IT die Arbeit machen. –

Verwandte Themen