[dss-developer] Device-Status abrufen / JSON API / Device/getState und getConsumption
Arn Matthias
m.arn at biviator.ch
Thu Feb 9 18:47:25 CET 2012
Hallo Christoph
Danke für die rasche Antwort. Ich habe soeben den Request /getOutputValue/ mit offset=0 ausprobiert. Das Result lässt ein wenig auf sich warten, aber der Ausgangswert kann ich nun so abfragen, super! Ich werde aber unmöglich alle meine Devices so auslesen wollen. Desshalb denke ich dass deine Lösung mit dem Aufruf von "lastCalledScene" im Property-Tree prima für meine Vorhaben passen wird.
Vielen Dank nochmals für deine Hilfe.
Matthias Arn
Biviator AG | Tannackerweg 4 | 2572 Mörigen
Tel: +41 / (0)32 397 07 80 | Fax: +41 / (0)32 397 07 81
Email to: m.arn at biviator.ch | Web: www.biviator.ch
-----Ursprüngliche Nachricht-----
Von: Hofmann, Christoph [mailto:christoph.hofmann at aizo.com]
Gesendet: Donnerstag, 9. Februar 2012 11:32
An: dSS development list
Betreff: Re: [dss-developer] Device-Status abrufen / JSON API / Device/ getState und getConsumption
Hallo Arn,
Habe gerade ein ähnliches Problem wie Thomas H.Schmuck (siehe email-archiv vom 03.Jan 2012 http://forum.digitalstrom.org/pipermail/dss-developer/2012-January/000417.html)
sorry, aber das ist ein völlig anderes Problem!
> Nun benötige ich ein Feedback um meine Applikation mit dem aktuellen
> Zustand aller Devices zu versorgen.
> Meine Frage: Ist es irgendwie möglich den Status eines Devices (z.B.
> Licht) zu erfragen???
Da digitalSTROM ein dezentrales System ist, liegt die Status-Information derzeit leider nur im Gerät vor. Es ist nicht unbedingt empfehlenswert, jedes Gerät (womöglich auch noch ziemlich oft) nach seinem Status zu fragen, da dies nicht nur den Bus belastet, sondern eben auch noch entsprechend lange dauert. Außerdem ist ein Gerät während dem Abfragen von Daten natürlich nicht mehr im stromsparenden Standby-Modus.
Eine saubere Lösung wäre, die Intelligenz in die Applikation zu verlagern und z.B. die aufgerufenen Szenen mitzuhören oder die zuletzt aufgerufene Szene abzufragen. Das geht über eine Abfrage an den Property-Tree mittels query [1], z.B. mit /json/property/query?query=/apartment/zones/*(ZoneID, name)/groups/*(lastCalledScene) .
Möchte man nun exakt den Status eines Gerätes wissen, müsste man die üblicherweise aufgerufenen Szenen von allen Geräten kennen, so dass man daraus den Status eines Gerätes errechnen kann. Diese Leistung wird das System in Zukunft selber können, aktuell ist dies jedoch noch nicht implementiert. Einen bestimmten Szenenwert kann man aktuell mittels getConfig [2] auslesen. Die Szenenwerte liegen in class 128, der index entspricht der Szenennummer, siehe dazu [3].
Möchte man dennoch unbedingt (und ich bitte eindringlich, dies konzeptionell nicht so zu implementieren!) den aktuellen Ausgangswert abfragen, so geht das mit [4] (offset=0).
Grüße
Christoph
[1] http://developer.digitalstrom.org/download/dss/1.3/dss-1.3.0-doc/dss-1.3.0-json_api.html#property_query
[2] http://developer.digitalstrom.org/download/dss/1.3/dss-1.3.0-doc/dss-1.3.0-json_api.html#device_getConfig
[3] http://redmine.digitalstrom.org/projects/dss/wiki/Scene_table
[4] http://developer.digitalstrom.org/download/dss/1.3/dss-1.3.0-doc/dss-1.3.0-json_api.html#device_getOutputValue
--
Christoph Hofmann
aizo gmbh, Deutschland - http://www.aizo.com
Erleben Sie digitalSTROM live auf der light+building 2012 15. - 20. April 2012, Frankfurt am Main, Halle 9, Stand B57
More information about the dss-developer
mailing list