NEWS
Devices, Alias, Assistenten + Visualisierungen + die Zukunft
-
Ich bin gerade vom Zigbee Stick auf das Board umgestiegen und hatte exakt das Problem. Viele Skripte funktionieren nicht mehr, Alexa findet meine Geräte nicht. Ich finde den Ansatz super, besonders mit dem Fokus auf Alexa und Google.
Programmieren kann ich leider nicht, aber helfen würde ich sehr gerne!
Wie wäre es die 60 Gerätetypen von Alexa in einer Google Tabelle (o.Ä.) zu erfassen?Der Geräte Adapter ist für mich aktuell noch nicht ganz klar: z.B. bei einem LED RGB Lightstrip. Muss ich Licht, RGB-Licht, Farbtemperatur oder RGB-Licht single nehmen? Die darauf folgenden Typen sind mir auch nicht ganz verständlich.
@adsfa said in Devices, Alias, Assistenten + Visualisierungen + die Zukunft:
Der Geräte Adapter ist für mich aktuell noch nicht ganz klar: z.B. bei einem LED RGB Lightstrip. Muss ich Licht, RGB-Licht, Farbtemperatur oder RGB-Licht single nehmen? Die darauf folgenden Typen sind mir auch nicht ganz verständlich.
Ja, da fehlt leider noch eine Beschreibung der Geräte und auch der States, finde ich... aktuell muss man viel raten.
Was du in deinem Fall nehmen musst ist RGB-Licht oder RGB-Licht Single, das hängt davon ab, ob du einzelne States für r/g/b hast oder einen in den RGB als Hex-String eingetragen wird. Farbtemperatur enthalten beide als optionalen Zusatz. -
Devices, Aliasses, Assistenten und Visualisierungen und die Zukunft
Die Einführung von Aliasses in den js-controller und die ersten Versionen des "Devices"-Adapters waren nur der Anfang. WIr haben einiges damit vor.
Dieser Beitrag soll einige der Ideen und Gründe darstellen und zur Diskussion einladen. Noch ist nichts in Stein gemeisselt und das alles umzusetzen wird auch nicht wenig Aufwand, aber gemeinsam können wir in diese Richtung arbeiten.
Aktuelle Realität und die Probleme ...
Ein grosser Vorteil von ioBroker ist seine Flexibilität. Jeder Adapter kann seine Objekte und Zustände frei strukturieren. Das wird auch fleissig angewendet :)
Die Große Herausforderung ist allerdings, das Visualisierungs-Adapter und auch die Assistenzsystem-Adapter - iot vor allem für Amazon Alexa und Google/Next Home, aber auch yahka für Homekit - Informationen brauchen was einzelne Zustände darstellen und ob/wie mehrere Zustände zusammengehören. Ziel ist ja, dass diese Adapter mit wenig zusätzlichem Aufwand für den User Ihr Arbeit verrichten und die Geräte bedienbar machen.
Über Objekttypen wie "device" und "channel" oder im Notfall "folder" kann ein Adapter Zustände gruppieren und do dem User und auch anderen Adaptern mehr Informationen zu den Zuständen geben. Die Idee von "device" und "channel" kommt aus der Homematic Ecke und funktioniert dort recht gut. Ob ein Adapter das nutzen kann hängt aber stark von den Geräten und Kommunikationsprotokollen ab. Auch Adapter wo eine Instanz nur ein Gerät anbindet hat üblicherweise dann kein "device" Objekt.
Die Rollenangabe bei den Zuständen sind ein weiterer Weg Informationen darüber bereitzustellen was ein Zustand darstellt und bedeutet. Wir ersuchen bei allen Adaptern darauf zu achten das die Rollen Sinn machen. Ob aber eine Rolleninformation zur Verfügung steht ist auch eine Frage des Kommunikationsprotokolls. Der mqtt Adapter könnte gar keine Rollen für die Zustände bereitstellen, weil er es selbst nicht weiss.
Die aktuellen Visualisierungs- bzw. Assistenten-Adapter benötigen daher aktuell entweder umfangreiche Konfiguration oder können immer nur einen einzelnen State steuern oder müssen "Zusammenhänge erraten". Material als Beispiel nutz eine sog. "type detector" Library die versucht anhang von Rollen UND Device/Channel Strukturen zu erkennen was zusammen gehört und wie man es sinnvoll darstellen kann. Damit das aber immer funktioniert müssen die Zustände auch eine entsprechenden Aufbau haben - im Zweifel müssen also Adapter aufwändig angepasst werden.
Bei Amazon Alexa gibt es inzwischen für die Smart-Home-Skills die Version 3 (ioBroker nutzt noch Version 2) - hier sind es anstelle der ca. 10 Gerätetypen von v2 plötzlich ca. 60! Das ganze auf die gleiche Weise zu Mappen wir aktuell ist unmöglich. Daher müsste man die ganze Arbeit auf den user abwälzen.Weiterhin war es bisher auch beim Tausch von Geräten (z.B. wegen Defekten) immer schwierig in Bezug auf eigene Skripte oder z.B. Szenen. Meist ändert sich mit der Seriennummer des Geräts auch die Objekt-ID - oder Sie ändert sich beim Wechsel des Protokolls ganz. Dann muss man alle Skripte und auch die Visualisierungen bzw. andere betoffenen Adapter raussuchen und anpassen. Das ist recht aufwändig.
Erste Schritte: Aliasses und der Basis-Devices Adapter
Bei der Einführung der Aliasse haben wir bisher primär den einfachen Gerätetausch und weniger nötige Anpassungen an Skripten oder Visualisierungs-Adaptern propagiert. Und ja, diese Themen können damit bereits umgangen werden.
Unter dem reservierten Namensbereich alias.0 können Objekte angelegt werden, die auf ein anderes Objekt vom Type "state" verweisen. Dabei kann das neue Objekt auch einen anderen Datentyp o.ä. anbieten und auch Werte in beide Richtungen umrechnen. Der Zustand dieses Alias-Objekts hängt immer an dem Zustand des entsprechenden Quell-Objekts.
So weit so gut.
Um das wenigstens rudimentär zu bearbeiten wurde der Devices-Adapter programmiert, der versucht Geräte im System zu finden. Er beachtet dabei "device" Objekte und unterstützt auch Quasi-Aliasse vom "linkeddevices"-Adapter. Das ganze wirkt etwas Chaotisch und da muss garantiert noch viel dran getan werden.Beim Anlegen eines neuen Geräts wird dieses in alias.0 angelegt und man kann den Gerätetyp wählen. Passed zu diesem werden dann eine Liste von "Standard"-Objekten/Zuständen angezeigt die man mit den verlinkten IDs füllt. Diese Standard-Objekte haben das Ziel das am Ende alle über Devices angelegten "Schalter" bzw. "Lampen" o.ä. identisch aussehen, die korrekten Rollen und Datentypen haben. Somit kann man auch ein Licht welches zB per mqtt angebunden ist eine Definition verpassen, sodass Visualisierungs- bzw. Assistenz-Adapter wissen was es ist und wie es dann angezeigt werden muss.
Aktuell ist die Anzahl der Gerätetypen noch eher überschaubar, aber es ist ja auch nur der Anfang. Es gibt auch Helfer-Skripte im Forum die in alias.0 einfach Erlauben verknüpfte Objekte anzulegen.
Aber ja, so richtig gross ist der Mehrwert aktuell noch nicht, das ist uns bewusst.... aber die Zukunft wird besser
In den nächsten Abschnitten möchte ich Euch so ein bisschen über die Pläne und Ideen erzählen die wir auf dieser Basis angehen wollen.
Schritt 1: Gerätetypen und "Objekt-Templates"
Wie oben schon erwähnt, definiert Amazon für die Alexa Welt aktuell über 60 Gerätetypen, die alle unterschiedliche Werte als nötige bzw. optionale Felder haben. Bei Google gibt es ähnliches. Viele davon sind auch für Visualisierungen interessant, weil man am "Typ" eines Geräts sehr gut entscheiden kann wie man es anzeigen und bedienen sollte - und das viel besser als zu raten :-)
Daher ist die Idee das wir, angefangen mit den Amazon- und Google Objekttypen den Devices Adapter um diese erweitern und in diesem Zuge für ioBroker Standardisieren - Standard bezüglich Pflicht und Standard-optionalen States(z.B. SET, ACTIUAL, COLOR, STATE ...). Gern kann man überlegen dazu weitere States "nutzerdefiniert" hinzufügen zu lassen, die aber dann von den ganzen nutzenden Adaptern ignoriert werden!
Das ganze wird dann als alias angelegt. Zusätzlich speichern wir im "device"-Objekt die Information zum genutzten Template. Dann muss man das danach nicht nochmals raussuchen.
Das bringt uns schon mal einen großen Schritt weiter: In Adaptern wählt man das "Device" Objekt aus und alle Informationen sind bekannt und ebenso welcher State-Name in dem Device Objekt was bedeutet. So muss kein Adapter mehr raten. Dem Type-Detector können wir auch so beibringen alles viel besser zu erkennen. Der grosse Vorteil ist aber das Adapter wie z.B. iot das ganze dann auch sehr gut zu den relevanten Amazon bzw Google-typen zuordnen können.
Die "Magie" liegt nur darin die Templates sinnvoll zu defineren. (Und natürlich muss iot irgendwie noch Rückwärts-Kompatibel bleiben damit alles noch so funktioniert wie aktuell - aber hier könnte man durchaus einmalig mit einer neuen Version automatisch aus allen zugeordneten Smart-Devices einmalig kompatible ALias Objekte anlegen, sodass iot danach direkt damit arbeiten kann).Weiterhin sind so angelegte Aliasse unabhängig von den originalen Objekten und ein solches Alias-Gerät kann bei einem Gerätewechsel einfach mit einem neuen Objekt-Mapping versehen werden und schon ist das Gerät getauscht - ohne das sich die Objekt-IDs des Alias-Geräts ändern.
Auch könnte man in den Templates (oder auch so generell) Objekte die im Admin nicht für "jedermann" angezeigt werden sollen über "common.expert=true" verstecken. Ein Objekt mit dieser Information wird seit Admin 3.4.8 nur noch im Expertenmodus angezeigt.
Schritt 2: Geräte-Guidance durch Adapter
Wenn das alles mal implementiert ist kann man Adapter-Entwicklen anbieten Ihre "device"/"channel"-Objekte um Meta-Daten zu erweitern. So könnte man zB seinen Geräten mitgeben was Sie für ein Gerätetype sind und wie die eigenen States zugeordnet sind zu den States die das Geräte-Template bietet. Das ist natürlich optional, aber bietet die Möglichkeit bei der Zuordnung direkt ein sinnvoll passende vorausgefüllte Maske anzubieten.
Zum Beispiel im "common" Bereich des Objekts sowas (am Beispiel einer Daikin-Adapter Objekts, State angaben relativ zum Device-Objekt):
"deviceMapping": { "template": "thermostat", "fields": { "SET": "control.targetTemperature", "ACTUAL": "sensorInfo.indoorTemperature", "HUMIDITY": "sensorInfo.indoorHumidity", "BOOST": "control.specialPowerful", "POWER": "control.power" } }Mit so einer Definition könnte müsste ein User sogar nicht einmal Alias-Geräte nutzen, weil auch hier alle Informationen für Visualisierungs- oder Assistenten-Adapter vorhanden wären. Dann könne auch das State direkt genutzt werden.
Schritt 3: Der "Geräte-Posteingang"
Aktuell haben wir 40k ioBroker Installationen, die alle noch keine solchen Gerätedefinitionen und Aliasse haben. Ebenso neue User kenne sich mit der Idee noch nicht so aus.
Die Idee wäre also hier, dass der Geräte Adapter mittelfristig standardmäßig mit installiert wird. Und wir ändern die UI: Die Standard-Ansicht zeigt nur Aliasse an und alles was keine Aliasse sind landet in einer zweiten Ansicht ... einer Liste wie ein Posteingang. Alle neuen "Device Objekte" von Adaptern werden dort aufgelistet und können zu einem Alias-Gerät gemacht werden. Am Ende ist das natürlich kein "muss" sondern ein Kann ... vllt finden wir auch einen neutraleren Namen als "Posteingang" ;-) Aber alles was hier drin ist kann man auf Klick und mit Wahn eines Gerätetyps und dann zuordnen von States in ein neues Alias-Gerät überführen. Ja die UI wird etwas Tricky das das sinnvoll bedienbar wird, da muss etwas Gehirnschmalz rein. Für einen neuen User kann man das in den Standardprozess mit einbauen: Adapter findet neues Gerät, gehe zu "Geräte" und ordne es zu (wenn er will). :-)
Schlussworte
So, das wäre die große Idee. Jetzt kommt Ihr? Macht das sinn? Ist das eine sinnvolle Richtung?
Bevor wir jetzt aber beginnen über Namen von States o.ä. zu diskutieren, lasst mal mit dem generellen Konzept beginnen. :-) Also bitte diskutiert (noch) nicht zu "Kleinteilig" ...
Nächste Schritte
Sinnvolle nächste Schritte wären genau das erste Set von Gerätetypen und deren States, Pflicht oder Optional und Bezeichnungen zu diskutieren. In meinen Augen sollten wir hier, auch in Richtung des grossen Amazon-v3-Skill-Vorhabens, mit den Geräte-Definitionen von Amazon und Google starten. Im Devices Adapter können wir ein Projekt anlegen. Pro Gerätetype ein Issue und dort einzeln finalisieren. Danach kann man die Implementieren.
Danach würde man die nächsten Schritte finalisieren.
So, jetzt... viel Spass beim (konstruktiven) Feedback geben und mitdiskutieren!
Ingo
@apollon77 said in Devices, Alias, Assistenten + Visualisierungen + die Zukunft:
Schritt 1: Gerätetypen und "Objekt-Templates"
Wie oben schon erwähnt, definiert Amazon für die Alexa Welt aktuell über 60 Gerätetypen, die alle unterschiedliche Werte als nötige bzw. optionale Felder haben. Bei Google gibt es ähnliches. Viele davon sind auch für Visualisierungen interessant, weil man am "Typ" eines Geräts sehr gut entscheiden kann wie man es anzeigen und bedienen sollte - und das viel besser als zu raten
Daher ist die Idee das wir, angefangen mit den Amazon- und Google Objekttypen den Devices Adapter um diese erweitern und in diesem Zuge für ioBroker Standardisieren - Standard bezüglich Pflicht und Standard-optionalen States(z.B. SET, ACTIUAL, COLOR, STATE ...). Gern kann man überlegen dazu weitere States "nutzerdefiniert" hinzufügen zu lassen, die aber dann von den ganzen nutzenden Adaptern ignoriert werden!
Das ganze wird dann als alias angelegt. Zusätzlich speichern wir im "device"-Objekt die Information zum genutzten Template. Dann muss man das danach nicht nochmals raussuchen.
Das bringt uns schon mal einen großen Schritt weiter: In Adaptern wählt man das "Device" Objekt aus und alle Informationen sind bekannt und ebenso welcher State-Name in dem Device Objekt was bedeutet. So muss kein Adapter mehr raten. Dem Type-Detector können wir auch so beibringen alles viel besser zu erkennen. Der grosse Vorteil ist aber das Adapter wie z.B. iot das ganze dann auch sehr gut zu den relevanten Amazon bzw Google-typen zuordnen können.
Die "Magie" liegt nur darin die Templates sinnvoll zu defineren. (Und natürlich muss iot irgendwie noch Rückwärts-Kompatibel bleiben damit alles noch so funktioniert wie aktuell - aber hier könnte man durchaus einmalig mit einer neuen Version automatisch aus allen zugeordneten Smart-Devices einmalig kompatible ALias Objekte anlegen, sodass iot danach direkt damit arbeiten kann).
Weiterhin sind so angelegte Aliasse unabhängig von den originalen Objekten und ein solches Alias-Gerät kann bei einem Gerätewechsel einfach mit einem neuen Objekt-Mapping versehen werden und schon ist das Gerät getauscht - ohne das sich die Objekt-IDs des Alias-Geräts ändern.
Auch könnte man in den Templates (oder auch so generell) Objekte die im Admin nicht für "jedermann" angezeigt werden sollen über "common.expert=true" verstecken. Ein Objekt mit dieser Information wird seit Admin 3.4.8 nur noch im Expertenmodus angezeigt.Also ich habe noch nicht wirklich verstanden, wo die "Objekt Templates" sich von den "Types" unterscheiden, die wir aktuell im type-detector haben (außer, dass es viel mehr sind, wenn man Google/Alexa als Grundlage nimmt). Oder gibt es da gar keinen fundamentalen Unterschied?
Wäre dann das Neue dann "einfach" viel mehr Types zu haben und den Typ statisch im Device zu speichern? grübel
Beim aktuellen System muss man ja darauf achten, dass es keine Mehrdeutigkeiten gibt bzw. wenn es die gibt, dass die Erkennung in der richtigen Reihenfolge passiert. Das erscheint mir, wenn man das deutlich erweitert, als üble Fehlerquelle. Die wird entschärft durch den fixen Typ, der dann durch Devices-Adapter oder, wenn Schritt 2 kommt, vom original Adapter definiert wird. Gibt es dann keine automatisierte Erkennung mehr?
Grundsätzlich gefällt mir das Konzept von alias & type-detector ganz gut. Das fix im Device zu speichern finde ich sehr sinnvoll. Das sollte man ganz sicher weiter entwickeln und eine Geräteansicht als zentralen Bestandteil für die User platzieren.
-
@apollon77 Ich wollte eben einen Eintrag mit dem Typ Instanz erstellen, seit dem kann ich kein Gerät mehr hinzufügen weil ich nur noch eine weiße Seite bekomme - Reboot brachte auch nichts und im Log steht auch nichts
-
@apollon77 Ich wollte eben einen Eintrag mit dem Typ Instanz erstellen, seit dem kann ich kein Gerät mehr hinzufügen weil ich nur noch eine weiße Seite bekomme - Reboot brachte auch nichts und im Log steht auch nichts
@Stephan-Schleich Typ Instanz??? Was wolltest Du damit ... ds ist reserviert für Adapter Instanzen!
Brower Konsole irgendein Fehler?
ggf an der Kommandozeile das Objekt wieder löschen -
@Stephan-Schleich Typ Instanz??? Was wolltest Du damit ... ds ist reserviert für Adapter Instanzen!
Brower Konsole irgendein Fehler?
ggf an der Kommandozeile das Objekt wieder löschen@apollon77 hab mich verklickt, es wurde kein Objekt angelegt zumindest seh ich keins.
Wenn ich den Adapter lösch sind alle aliase weg, kann ich die davor sichern? -
@apollon77 hab mich verklickt, es wurde kein Objekt angelegt zumindest seh ich keins.
Wenn ich den Adapter lösch sind alle aliase weg, kann ich die davor sichern?@Stephan-Schleich Aliasse sind nicht weg wenn DU Devices löschst. Wie kommst Du darauf?
-
@Stephan-Schleich Aliasse sind nicht weg wenn DU Devices löschst. Wie kommst Du darauf?
@apollon77 in den Objekten verschwindet doch immer alles was mit dem Adapter zu tun hatte, den man deinstalliert.
Edit: Das Problem lag am Browser, Chache gelöscht und jetzt gehts wieder, so sah es aus

-
@apollon77 in den Objekten verschwindet doch immer alles was mit dem Adapter zu tun hatte, den man deinstalliert.
Edit: Das Problem lag am Browser, Chache gelöscht und jetzt gehts wieder, so sah es aus

@Stephan-Schleich Nur states die unter den Instanzobjekten des Adaters abgelegt sind. deviecs hat da nichts. Was sagt die Browser Konsole?
-
@Stephan-Schleich Nur states die unter den Instanzobjekten des Adaters abgelegt sind. deviecs hat da nichts. Was sagt die Browser Konsole?
@apollon77 sagte in Devices, Alias, Assistenten + Visualisierungen + die Zukunft:
Browser Konsole
@apollon77 Achso okay - danke, wusste nicht das diese nicht zusammen hängen.
In der Browser Konsole hatte ich nicht nachgesehen als ich das Problem hatte, aber es lag am Browser Cache nun läufts wieder.Eine Frage noch sofern es hier rein gehört:
Ich hab meine Klimaanlage via Alias angebunden nun würde ich im selben Objekt gerne noch die IP mit dazu nehmen ohne extra ein neues Objekt anzulegen, theoretisch müsste es doch mit z.b. working gehen da der typ any ist oder? es kommt aber nur true als value und nicht die IP

-
@apollon77 sagte in Devices, Alias, Assistenten + Visualisierungen + die Zukunft:
Browser Konsole
@apollon77 Achso okay - danke, wusste nicht das diese nicht zusammen hängen.
In der Browser Konsole hatte ich nicht nachgesehen als ich das Problem hatte, aber es lag am Browser Cache nun läufts wieder.Eine Frage noch sofern es hier rein gehört:
Ich hab meine Klimaanlage via Alias angebunden nun würde ich im selben Objekt gerne noch die IP mit dazu nehmen ohne extra ein neues Objekt anzulegen, theoretisch müsste es doch mit z.b. working gehen da der typ any ist oder? es kommt aber nur true als value und nicht die IP

@Stephan-Schleich Bitte nicht anfangen irgendwelche States zweck-zu-entfremden :-) WORKIGN hat eine semantische Bedeutung
-
@Stephan-Schleich Bitte nicht anfangen irgendwelche States zweck-zu-entfremden :-) WORKIGN hat eine semantische Bedeutung
@apollon77 okay, könnte man ne Möglichkeit bieten selber weitere Felder mit hinzuzufügen bzw ein paar freie?
-
@apollon77 okay, könnte man ne Möglichkeit bieten selber weitere Felder mit hinzuzufügen bzw ein paar freie?
@Stephan-Schleich Feature Request bitte im Github beim Devices Adapter :-)
-
@Stephan-Schleich Feature Request bitte im Github beim Devices Adapter :-)
@apollon77 Wollt ich gerade machen, gibt es bereits :) - https://github.com/ioBroker/ioBroker.devices/issues/18
-
@apollon77 Wollt ich gerade machen, gibt es bereits :) - https://github.com/ioBroker/ioBroker.devices/issues/18
@Stephan-Schleich Dann hinterlass ein "Daumen hoch" im ersten post
-
@Stephan-Schleich Dann hinterlass ein "Daumen hoch" im ersten post
@apollon77 Es ist hier so still geworden. Geht es hier noch weiter oder ist dieser Weg eine Sackgasse?
-
@apollon77 Es ist hier so still geworden. Geht es hier noch weiter oder ist dieser Weg eine Sackgasse?
-
@apollon77 Es ist hier so still geworden. Geht es hier noch weiter oder ist dieser Weg eine Sackgasse?
-
Devices, Aliasses, Assistenten und Visualisierungen und die Zukunft
Die Einführung von Aliasses in den js-controller und die ersten Versionen des "Devices"-Adapters waren nur der Anfang. WIr haben einiges damit vor.
Dieser Beitrag soll einige der Ideen und Gründe darstellen und zur Diskussion einladen. Noch ist nichts in Stein gemeisselt und das alles umzusetzen wird auch nicht wenig Aufwand, aber gemeinsam können wir in diese Richtung arbeiten.
Aktuelle Realität und die Probleme ...
Ein grosser Vorteil von ioBroker ist seine Flexibilität. Jeder Adapter kann seine Objekte und Zustände frei strukturieren. Das wird auch fleissig angewendet :)
Die Große Herausforderung ist allerdings, das Visualisierungs-Adapter und auch die Assistenzsystem-Adapter - iot vor allem für Amazon Alexa und Google/Next Home, aber auch yahka für Homekit - Informationen brauchen was einzelne Zustände darstellen und ob/wie mehrere Zustände zusammengehören. Ziel ist ja, dass diese Adapter mit wenig zusätzlichem Aufwand für den User Ihr Arbeit verrichten und die Geräte bedienbar machen.
Über Objekttypen wie "device" und "channel" oder im Notfall "folder" kann ein Adapter Zustände gruppieren und do dem User und auch anderen Adaptern mehr Informationen zu den Zuständen geben. Die Idee von "device" und "channel" kommt aus der Homematic Ecke und funktioniert dort recht gut. Ob ein Adapter das nutzen kann hängt aber stark von den Geräten und Kommunikationsprotokollen ab. Auch Adapter wo eine Instanz nur ein Gerät anbindet hat üblicherweise dann kein "device" Objekt.
Die Rollenangabe bei den Zuständen sind ein weiterer Weg Informationen darüber bereitzustellen was ein Zustand darstellt und bedeutet. Wir ersuchen bei allen Adaptern darauf zu achten das die Rollen Sinn machen. Ob aber eine Rolleninformation zur Verfügung steht ist auch eine Frage des Kommunikationsprotokolls. Der mqtt Adapter könnte gar keine Rollen für die Zustände bereitstellen, weil er es selbst nicht weiss.
Die aktuellen Visualisierungs- bzw. Assistenten-Adapter benötigen daher aktuell entweder umfangreiche Konfiguration oder können immer nur einen einzelnen State steuern oder müssen "Zusammenhänge erraten". Material als Beispiel nutz eine sog. "type detector" Library die versucht anhang von Rollen UND Device/Channel Strukturen zu erkennen was zusammen gehört und wie man es sinnvoll darstellen kann. Damit das aber immer funktioniert müssen die Zustände auch eine entsprechenden Aufbau haben - im Zweifel müssen also Adapter aufwändig angepasst werden.
Bei Amazon Alexa gibt es inzwischen für die Smart-Home-Skills die Version 3 (ioBroker nutzt noch Version 2) - hier sind es anstelle der ca. 10 Gerätetypen von v2 plötzlich ca. 60! Das ganze auf die gleiche Weise zu Mappen wir aktuell ist unmöglich. Daher müsste man die ganze Arbeit auf den user abwälzen.Weiterhin war es bisher auch beim Tausch von Geräten (z.B. wegen Defekten) immer schwierig in Bezug auf eigene Skripte oder z.B. Szenen. Meist ändert sich mit der Seriennummer des Geräts auch die Objekt-ID - oder Sie ändert sich beim Wechsel des Protokolls ganz. Dann muss man alle Skripte und auch die Visualisierungen bzw. andere betoffenen Adapter raussuchen und anpassen. Das ist recht aufwändig.
Erste Schritte: Aliasses und der Basis-Devices Adapter
Bei der Einführung der Aliasse haben wir bisher primär den einfachen Gerätetausch und weniger nötige Anpassungen an Skripten oder Visualisierungs-Adaptern propagiert. Und ja, diese Themen können damit bereits umgangen werden.
Unter dem reservierten Namensbereich alias.0 können Objekte angelegt werden, die auf ein anderes Objekt vom Type "state" verweisen. Dabei kann das neue Objekt auch einen anderen Datentyp o.ä. anbieten und auch Werte in beide Richtungen umrechnen. Der Zustand dieses Alias-Objekts hängt immer an dem Zustand des entsprechenden Quell-Objekts.
So weit so gut.
Um das wenigstens rudimentär zu bearbeiten wurde der Devices-Adapter programmiert, der versucht Geräte im System zu finden. Er beachtet dabei "device" Objekte und unterstützt auch Quasi-Aliasse vom "linkeddevices"-Adapter. Das ganze wirkt etwas Chaotisch und da muss garantiert noch viel dran getan werden.Beim Anlegen eines neuen Geräts wird dieses in alias.0 angelegt und man kann den Gerätetyp wählen. Passed zu diesem werden dann eine Liste von "Standard"-Objekten/Zuständen angezeigt die man mit den verlinkten IDs füllt. Diese Standard-Objekte haben das Ziel das am Ende alle über Devices angelegten "Schalter" bzw. "Lampen" o.ä. identisch aussehen, die korrekten Rollen und Datentypen haben. Somit kann man auch ein Licht welches zB per mqtt angebunden ist eine Definition verpassen, sodass Visualisierungs- bzw. Assistenz-Adapter wissen was es ist und wie es dann angezeigt werden muss.
Aktuell ist die Anzahl der Gerätetypen noch eher überschaubar, aber es ist ja auch nur der Anfang. Es gibt auch Helfer-Skripte im Forum die in alias.0 einfach Erlauben verknüpfte Objekte anzulegen.
Aber ja, so richtig gross ist der Mehrwert aktuell noch nicht, das ist uns bewusst.... aber die Zukunft wird besser
In den nächsten Abschnitten möchte ich Euch so ein bisschen über die Pläne und Ideen erzählen die wir auf dieser Basis angehen wollen.
Schritt 1: Gerätetypen und "Objekt-Templates"
Wie oben schon erwähnt, definiert Amazon für die Alexa Welt aktuell über 60 Gerätetypen, die alle unterschiedliche Werte als nötige bzw. optionale Felder haben. Bei Google gibt es ähnliches. Viele davon sind auch für Visualisierungen interessant, weil man am "Typ" eines Geräts sehr gut entscheiden kann wie man es anzeigen und bedienen sollte - und das viel besser als zu raten :-)
Daher ist die Idee das wir, angefangen mit den Amazon- und Google Objekttypen den Devices Adapter um diese erweitern und in diesem Zuge für ioBroker Standardisieren - Standard bezüglich Pflicht und Standard-optionalen States(z.B. SET, ACTIUAL, COLOR, STATE ...). Gern kann man überlegen dazu weitere States "nutzerdefiniert" hinzufügen zu lassen, die aber dann von den ganzen nutzenden Adaptern ignoriert werden!
Das ganze wird dann als alias angelegt. Zusätzlich speichern wir im "device"-Objekt die Information zum genutzten Template. Dann muss man das danach nicht nochmals raussuchen.
Das bringt uns schon mal einen großen Schritt weiter: In Adaptern wählt man das "Device" Objekt aus und alle Informationen sind bekannt und ebenso welcher State-Name in dem Device Objekt was bedeutet. So muss kein Adapter mehr raten. Dem Type-Detector können wir auch so beibringen alles viel besser zu erkennen. Der grosse Vorteil ist aber das Adapter wie z.B. iot das ganze dann auch sehr gut zu den relevanten Amazon bzw Google-typen zuordnen können.
Die "Magie" liegt nur darin die Templates sinnvoll zu defineren. (Und natürlich muss iot irgendwie noch Rückwärts-Kompatibel bleiben damit alles noch so funktioniert wie aktuell - aber hier könnte man durchaus einmalig mit einer neuen Version automatisch aus allen zugeordneten Smart-Devices einmalig kompatible ALias Objekte anlegen, sodass iot danach direkt damit arbeiten kann).Weiterhin sind so angelegte Aliasse unabhängig von den originalen Objekten und ein solches Alias-Gerät kann bei einem Gerätewechsel einfach mit einem neuen Objekt-Mapping versehen werden und schon ist das Gerät getauscht - ohne das sich die Objekt-IDs des Alias-Geräts ändern.
Auch könnte man in den Templates (oder auch so generell) Objekte die im Admin nicht für "jedermann" angezeigt werden sollen über "common.expert=true" verstecken. Ein Objekt mit dieser Information wird seit Admin 3.4.8 nur noch im Expertenmodus angezeigt.
Schritt 2: Geräte-Guidance durch Adapter
Wenn das alles mal implementiert ist kann man Adapter-Entwicklen anbieten Ihre "device"/"channel"-Objekte um Meta-Daten zu erweitern. So könnte man zB seinen Geräten mitgeben was Sie für ein Gerätetype sind und wie die eigenen States zugeordnet sind zu den States die das Geräte-Template bietet. Das ist natürlich optional, aber bietet die Möglichkeit bei der Zuordnung direkt ein sinnvoll passende vorausgefüllte Maske anzubieten.
Zum Beispiel im "common" Bereich des Objekts sowas (am Beispiel einer Daikin-Adapter Objekts, State angaben relativ zum Device-Objekt):
"deviceMapping": { "template": "thermostat", "fields": { "SET": "control.targetTemperature", "ACTUAL": "sensorInfo.indoorTemperature", "HUMIDITY": "sensorInfo.indoorHumidity", "BOOST": "control.specialPowerful", "POWER": "control.power" } }Mit so einer Definition könnte müsste ein User sogar nicht einmal Alias-Geräte nutzen, weil auch hier alle Informationen für Visualisierungs- oder Assistenten-Adapter vorhanden wären. Dann könne auch das State direkt genutzt werden.
Schritt 3: Der "Geräte-Posteingang"
Aktuell haben wir 40k ioBroker Installationen, die alle noch keine solchen Gerätedefinitionen und Aliasse haben. Ebenso neue User kenne sich mit der Idee noch nicht so aus.
Die Idee wäre also hier, dass der Geräte Adapter mittelfristig standardmäßig mit installiert wird. Und wir ändern die UI: Die Standard-Ansicht zeigt nur Aliasse an und alles was keine Aliasse sind landet in einer zweiten Ansicht ... einer Liste wie ein Posteingang. Alle neuen "Device Objekte" von Adaptern werden dort aufgelistet und können zu einem Alias-Gerät gemacht werden. Am Ende ist das natürlich kein "muss" sondern ein Kann ... vllt finden wir auch einen neutraleren Namen als "Posteingang" ;-) Aber alles was hier drin ist kann man auf Klick und mit Wahn eines Gerätetyps und dann zuordnen von States in ein neues Alias-Gerät überführen. Ja die UI wird etwas Tricky das das sinnvoll bedienbar wird, da muss etwas Gehirnschmalz rein. Für einen neuen User kann man das in den Standardprozess mit einbauen: Adapter findet neues Gerät, gehe zu "Geräte" und ordne es zu (wenn er will). :-)
Schlussworte
So, das wäre die große Idee. Jetzt kommt Ihr? Macht das sinn? Ist das eine sinnvolle Richtung?
Bevor wir jetzt aber beginnen über Namen von States o.ä. zu diskutieren, lasst mal mit dem generellen Konzept beginnen. :-) Also bitte diskutiert (noch) nicht zu "Kleinteilig" ...
Nächste Schritte
Sinnvolle nächste Schritte wären genau das erste Set von Gerätetypen und deren States, Pflicht oder Optional und Bezeichnungen zu diskutieren. In meinen Augen sollten wir hier, auch in Richtung des grossen Amazon-v3-Skill-Vorhabens, mit den Geräte-Definitionen von Amazon und Google starten. Im Devices Adapter können wir ein Projekt anlegen. Pro Gerätetype ein Issue und dort einzeln finalisieren. Danach kann man die Implementieren.
Danach würde man die nächsten Schritte finalisieren.
So, jetzt... viel Spass beim (konstruktiven) Feedback geben und mitdiskutieren!
Ingo
Sorry for late feedback but I just found this thread. I hope it's okey that I write in english as mein deutch ist leider nicht sehr gut (ich kann aber deutch gut lesen).
I'm thrilled to read about the enhancements in this area! This enables ioBroker to become smart :-)
However, I would not use the Alexa Skills as a great Taxonomy for how to implement the metadata in ioBroker. Alexa is great and very flexible, but it lacks a good structure. For example, it only specifies 15 different Device types (Skill Device Templates). Google Assistant is much better; they have currently 78 Devices types for smart home area. Apple HomeKit has 23 (Accessory types).
Have I understood the proposed structure correctly that the Device top level will be called "Alias" and an alias then has a "Function", and below this, it will have one or more "Roles/Types" and these have different "States"?
Could you share how those different levels map to the Taxonomy used by, for example Alexa and Google?
Something else I would suggest is to not focus too much on Alexa and Google but use as much as possible from the already standardized and open framework from OpenConnectivity Foundation, the OCF Specification. The latest release is from July this year. They have already a huge amount of Devices types specified, 54 types for smart home and another 127 for appliances and other IoT devices. For the next level, they call it "Resource Types", they have specified 169 types. Most of the big players are members of OCF. Have you guys already looked at this spec and if so, what is your opinion about it?
For my own benefit, I have put a table together with how I understand the used Taxonomy and how they map. I also counted all the standardized types they currently have officially documented. Please, let me know if I misunderstood something.

Many thanks for the impressive work with ioBroker and all of the adapters!
-
Sorry for late feedback but I just found this thread. I hope it's okey that I write in english as mein deutch ist leider nicht sehr gut (ich kann aber deutch gut lesen).
I'm thrilled to read about the enhancements in this area! This enables ioBroker to become smart :-)
However, I would not use the Alexa Skills as a great Taxonomy for how to implement the metadata in ioBroker. Alexa is great and very flexible, but it lacks a good structure. For example, it only specifies 15 different Device types (Skill Device Templates). Google Assistant is much better; they have currently 78 Devices types for smart home area. Apple HomeKit has 23 (Accessory types).
Have I understood the proposed structure correctly that the Device top level will be called "Alias" and an alias then has a "Function", and below this, it will have one or more "Roles/Types" and these have different "States"?
Could you share how those different levels map to the Taxonomy used by, for example Alexa and Google?
Something else I would suggest is to not focus too much on Alexa and Google but use as much as possible from the already standardized and open framework from OpenConnectivity Foundation, the OCF Specification. The latest release is from July this year. They have already a huge amount of Devices types specified, 54 types for smart home and another 127 for appliances and other IoT devices. For the next level, they call it "Resource Types", they have specified 169 types. Most of the big players are members of OCF. Have you guys already looked at this spec and if so, what is your opinion about it?
For my own benefit, I have put a table together with how I understand the used Taxonomy and how they map. I also counted all the standardized types they currently have officially documented. Please, let me know if I misunderstood something.

Many thanks for the impressive work with ioBroker and all of the adapters!
EDIT: I found an online tool showing all the device and resource types as well as enumerations: https://openconnectivityfoundation.github.io/devicemodels/docs/index.html
Here is the list of OCF Universal Device types (Source: OCF spec Annex A)
Device Category / Device Type / Normative Space Conditioning Air Conditioner oic.d.airconditioner Water Heater oic.d.waterheater Furnace oic.d.furnace Pump oic.d.pump Fan oic.d.fan Condensing Unit oic.d.condensingunit Condenser oic.d.condenser Humidifier oic.d.humidifier Dehumidifier oic.d.dehumidifier Thermostat oic.d.thermostat HVAC oic.d.hvac Air Purifier oic.d.airpurifier Air Quality Monitor oic.d.airqualitymonitor Lighting Lighting Controls oic.d.lightingcontrol Light oic.d.light Appliance Airer oic.d.airer Dryer (Laundry) oic.d.dryer "Washer (Laundry)" oic.d.washer Clothes Washer Dryer oic.d.washerdryer Dishwasher oic.d.dishwasher Freezer oic.d.freezer Ice Machine oic.d.icemachine Indoor Garden oic.d.indoorgarden Mattress oic.d.mattress Oven oic.d.oven Range oic.d.range Refrigerator oic.d.refrigerator Water Heater oic.d.waterheater Water Purifier oic.d.waterpurifier Cooker Hood oic.d.cookerhood Cooktop oic.d.cooktop Steam Closet oic.d.steamcloset Electronics Audio System oic.d.audiosystem AV Player oic.d.avplayer Camera oic.d.camera Desktop PC oic.d.desktoppc Notebook PC oic.d.notebookpc Server oic.d.server Computer oic.d.pc Data Storage Unit oic.d.datastorageunit Display oic.d.display Portable Electronics oic.d.portableelectronics Game Console oic.d.gameconsole 3D Printer oic.d.3dprinter Printer oic.d.printer Printer Multi- Function oic.d.multifunctionprinter Scanner oic.d.scanner Musical Instrument oic.d.musicalinstrument Networking Equipment oic.d.networking Handset oic.d.handset Receiver oic.d.receiver Set Top Box oic.d.stb Telephony oic.d.telephonydevice Television oic.d.tv Active Speaker oic.d.speaker Electronics oic.d.smallelectrical Miscellaneous Air Compressor oic.d.aircompressor Bathroom General oic.d.bathroomdevice Battery Charger oic.d.batterycharger Business Equipment oic.d.businessequipment Robot Cleaner oic.d.robotcleaner Portable Stove oic.d.portablestove Exercise Machine oic.d.exercisemachine Portable HVAC oic.d.hvacportable Optical augmented RFID Reader oic.d.orfid Coffee Machine oic.d.coffeemachine Food Probe oic.d.foodprobe Grinder oic.d.grinder Kettle oic.d.kettle Decorative Lighting oic.d.lightdecorative Emergency Lighting oic.d.lightemergency Microwave Oven oic.d.microwave Vending Machine oic.d.vendingmachine Water Dispenser oic.d.waterdispenser Battery oic.d.battery Infrastructure Water Valve oic.d.watervalve Blind oic.d.blind Door oic.d.door Garage Door oic.d.garagedoor Smart Lock oic.d.smartlock Window oic.d.window Fireplace oic.d.fireplace Pump oic.d.pump Energy Generator oic.d.energygenerator Smart Plug oic.d.smartplug Arc Fault Circuit Interrupter oic.d.afci Circuit Breaker oic.d.circuitbreaker Ground Fault Circuit Interrupter oic.d.gfci Inverter oic.d.inverter PV Array System oic.d.pvarraysystem Switch oic.d.switch Security Panel oic.d.securitypanel Generic Sensor oic.d.sensor Electric Meter oic.d.electricmeter Energy Monitor oic.d.energymonitor Transportation Electric Vehicle Charger oic.d.electricvehiclecharger Fitness Fitness Device oic.d.fitnessdevice Activity Tracker oic.d.activitytracker Blood Pressure Monitor oic.d.bloodpressuremonitor Body Thermometer oic.d.bodythermometer Cycling Power Meter oic.d.cyclingpowermeter Cycling Speed Sensor oic.d.cyclingspeedsensor Cycling Cadence Sensor oic.d.cyclingcadencesensor Heart Rate Monitor oic.d.heartratemonitor Muscle Oxygen Monitor oic.d.muscleoxygenmonitor Medical Blood Pressure Monitor oic.d.bloodpressuremonitor Body Scale oic.d.bodyscale Body Thermometer oic.d.bodythermometer CGM oic.d.cgm Glucose Meter oic.d.glucosemeter Heart Rate Monitor oic.d.heartratemonitor Medical Device oic.d.medicaldevice Pulse Oximeter oic.d.pulseoximeter Sleep Monitor oic.d.sleepmonitor Personal Health Activity Tracker oic.d.activitytracker Blood Pressure Monitor oic.d.bloodpressuremonitor Body Composition Analyser oic.d.bodycompositionanalys er Body Scale oic.d.bodyscale Body Thermometer oic.d.bodythermometer CGM oic.d.cgm Glucose Meter oic.d.glucosemeter Heart Rate Monitor oic.d.heartratemonitor Personal Health Device oic.d.personalhealthdevice Pulse Oximeter oic.d.pulseoximeter Sleep Monitor oic.d.sleepmonitor Other oic.d.unknown Access Management Service oic.d.ams Credential Management Service oic.d.cms Device Ownership Transfer Service oic.d.dotsAnd a list with the 169 Resource Type definitions
Friendly Name (informative) Resource Type (rt) 3D Printer oic.r.printer.3d Acceleration Sensor oic.r.sensor.acceleration Activity oic.r.activity Activity Count oic.r.sensor.activity.count Activity Tracker Atomic Measurement oic.r.activitytracker-am Air Flow oic.r.airflow Air Flow Control oic.r.airflowcontrol Air Quality oic.r.airquality Air Quality Collection oic.r.airqualitycollection Alarm oic.r.alarm Altimeter oic.r.altimeter Atmospheric Pressure oic.r.sensor.atmosphericpressure Audio Controls oic.r.audio Auto Focus oic.r.autofocus Automatic Document Feeder oic.r.automaticdocumentfeeder Auto White Balance oic.r.colour.autowhitebalance Battery oic.r.energy.battery Battery Material oic.r.batterymaterial Body Composition Analyser Atomic Measurement oic.r.bodycompositionanalyser-am Binary switch oic.r.switch.binary Blood Pressure oic.r.blood.pressure Blood Pressure Monitor Atomic Measurement oic.r.bloodpressuremonitor-am BMI oic.r.bmi Body Fat oic.r.body.fat Body Fat Free Mass oic.r.body.ffm Body Location Temperature oic.r.body.location.temperature Body Scale Atomic Measurement oic.r.body.scale-am Body Soft Lean Mass oic.r.body.slm Body Thermometer Atomic Measurement oic.r.bodythermometer-am Body Water oic.r.body.water Brewing oic.r.brewing Brightness oic.r.light.brightness Button Switch oic.r.button Cadence oic.r.cadence Calibrate for Continuous Glucose Meter (CGM) oic.r.cgm.calibrate Calorific Value oic.r.calorificvalue Carbon Dioxide Sensor oic.r.sensor.carbondioxide Carbon Monoxide Sensor oic.r.sensor.carbonmonoxide Circuit Breaker (IEC 61850) oic.r.circuitbreaker Clock oic.r.clock Colour Chroma oic.r.colour.chroma Colour Hue Saturation oic.r.colour.hs Colour RGB oic.r.colour.rgb Colour Saturation oic.r.colour.saturation Colour Space Coordinates oic.r.colour.csc Colour Temperature oic.r.colour.colourtemperature Consumable oic.r.consumable Consumable Collection oic.r.consumablecollection Contact Sensor oic.r.sensor.contact Continuous Glucose Meter (CGM) Atomic Measurement oic.r.cgm-am Conversion Factor oic.r.conversionfactor Cycling Power oic.r.cyclingpower Delay Defrost oic.r.delaydefrost Demand Response Load Control (DRLC) oic.r.energy.drlc Deodorization oic.r.deodorization Device Settings - Accessibility oic.r.settings.accessibility Device Settings - Broadcasting oic.r.settings.broadcasting Device Settings - Picture oic.r.settings.picture Device Settings - Sound oic.r.settings.sound Device Settings - Support oic.r.settings.support Device Settings - System oic.r.settings.system Dimming oic.r.light.dimming Door oic.r.door Ecomode oic.r.ecomode Electric Vehicle Connector oic.r.vehicle.connector Electrical Energy oic.r.energy.electrical Energy Consumption oic.r.energy.consumption Energy Generation oic.r.energy.generation Energy Overload/Circuit Breaker oic.r.energy.overload Energy Usage oic.r.energy.usage Gas Consumption oic.r.gas.consumption Gas Usage oic.r.gas.usage Fault Interrupter Switch oic.r.switch.fault Foaming oic.r.foaming Generic Sensor oic.r.sensor Geolocation Sensor oic.r.sensor.geolocation Glass Break Sensor oic.r.sensor.glassbreak Glucose oic.r.glucose Glucose Meter Complex Carbohydrates oic.r.glucose.carb Glucose Meter Exercise oic.r.glucose.exercise Glucose Meter HbA1c oic.r.glucose.hba1c Glucose Meter Context Health oic.r.glucose.health Glucose Meter Context Meal oic.r.glucose.meal Glucose Meter Context Medication oic.r.glucose.medication Glucose Meter Atomic Measurement oic.r.glucosemeter-am Glucose Meter Context Sample Location oic.r.glucose.samplelocation Glucose Meter Context Tester oic.r.glucose.tester Grinder oic.r.grinder HVAC Capacity Oic.r.hvac.capacity 6.157 Heart Rate oic.r.heartrate Heart Rate Monitor Atomic Measurement Representation oic.r.heartratemonitor-am Heart Rate Zone Sensor oic.r.sensor.heart.zone Heating Zone oic.r.heatingzone Heating Zone Collection oic.r.heatingzonecollection Height oic.r.height Humidity oic.r.humidity IAS Zone Info oic.r.iaszoneinfo IAS Zone Collection oic.r.iaszone Icemaker oic.r.icemaker Illuminance Sensor oic.r.sensor.illuminance Impact Sensor oic.r.impactsensor Inverter (IEC 61850) oic.r.inverter KeyCard Switch oic.r.keycardswitch Keypad Character oic.r.keypadchar Liquid Level oic.r.liquid.level Lock oic.r.lock.status Lock Code oic.r.lock.code Magnetic Field Direction oic.r.sensor.magneticfielddirection Media oic.r.media Media Audio oic.r.media.audio Media Core oic.r.media.core Media Image oic.r.media.image Media Source oic.r.mediasource Media Source List oic.r.mediasourcelist Media Source Input oic.r.media.input Media Source Output oic.r.media.output Media Text oic.r.media.text Media Video oic.r.media.video Mode oic.r.mode Movement oic.r.movement.linear Motion Sensor oic.r.sensor.motion Muscle Oxygen Saturation oic.r.muscleoxygensaturation Night Mode oic.r.nightmode Opaque Data oic.r.opaquedata Open Level oic.r.openlevel Operational State oic.r.operational.state Optical RFID Station oic.r.orfid.station Optical RFID Tag oic.r.orfid.tag Pan Tilt Zoom Movement oic.r.ptz Power Source oic.r.powersource Presence Sensor oic.r.sensor.presence Print Queue oic.r.printer.queue Pulsatile Characteristic for Pulse Oximeter oic.r.pulsatilecharacteristic Pulsatile Occurrence for Pulse Oximeter oic.r.pulsatileoccurrence Pulse Oximeter Atomic Measurement Representation oic.r.pulseoximeter-am Pulse Rate oic.r.pulserate PV array system connection terminal (IEC 61850) oic.r pvconnectionterminal Ramp Time oic.r.light.ramptime Refrigeration oic.r.refrigeration Restricted Switch oic.r.switch.restricted Sampling Interface for Continuous Glucose Meter (CGM) oic.r.cgm.samplinginterval Selectable Levels oic.r.selectablelevels Sensor for Continuous Glucose Meter (CGM) oic.r.cgm.sensor Sensor Properties oic.r.sensor.props Signal Strength oic.r.signalstrength Sleep oic.r.sleep Sleep Monitor Atomic Measurement Batch Representation oic.r.sleepmonitor-am Sleep Sensor oic.r.sensor.sleep Smoke Sensor oic.r.sensor.smoke Speech Synthesis oic.r.speech.tts Speed oic.r.speed SpO2 for Pulse Oximeter oic.r.spo2 Status for Continuous Glucose Meter (CGM) oic.r.cgm.status Temperature oic.r.temperature Three Axis Sensor oic.r.sensor.threeaxis Threshold for Continuous Glucose Meter (CGM) oic.r.cgm.threshold Time Period oic.r.time.period Time Stamp oic.r.time.stamp Torque oic.r.torque Touch Sensor oic.r.sensor.touch UV Radiation oic.r.sensor.radiation.uv User ID oic.r.userid User Info for Application Layer oic.r.userinfo Value Conditional oic.r.value.conditional Water Info oic.r.waterinfo Water Sensor oic.r.sensor.water Weight oic.r.weight Window Covering oic.r.windowcovering
