IoT Export
Generic IoT Datenmodell
8 min
einleitung das bsc iot core datenmodell nutzt einen generischen ansatz um die datenbeschreibung einzelner kanäle von der modellspezifikation zu entkoppeln dafür sind "primitive" datentypen definiert, welche zusammen mit weiteren informationen die eigentliche datenbeschreibung liefern datenmodell thing die repräsentation eines gerätes feld beschreibung id die eindeutige thingid um das gerät in unserem system zu identifizieren name der vom nutzer vergebene name des gerätes channelgroups ein array von channel groups parametergroups ein array von channel groups welches für konfigurations parameter vorgesehen ist state der aktuelle zustand des gerätes mögliche zustände unknown uninitialized initializing online offline removing removed metainfos angehängte meta informationen als map objekt channel group eine gruppe von channels, hauptsächlich dazu genutzt um channels logisch zu gruppieren feld beschreibung channelgroupid auf dieses gerät bezogen eindeutige channelgroupid channeldescriptiondata die beschreibungsdaten für diese kanal gruppe channels ein array von channels channel repräsentation der eigenschaft eines gerätes das kann z b ein temperatursensor sein ein gerät kann mehrere channels besitzen z b temperatur und batteriespannung etc feld beschreibung channelid auf dieses gerät bezogene eindeutige channelid channeldescriptiondata die datenbeschreibung des kanals value der aktuelle wert des kanals valuedescriptiondata die datenbeschreibung des im kanal verwendeten wertes writeable gibt an ob der wert des kanals verändert werden kann metainfos optionale meta informationen channel description eine kanalbeschreibungen dienen dazu typ informationen eines kanals zu definieren dies wird hauptsächlich genutzt um innerhalb von uis die visuelle darstellung zu beeinflussen feld beschreibung channeltypeenum type information mögliche werte default color contact detection heating lighting numeric security setpoint shading state string switch temporal label anzeigename value description die wertebeschreibung stellt konkrete typ informationen bereit und bietet ggf eine auswahl an möglichen werten die auswertung des feld "value" eines channels hängt von der gesetzen beschreibung ab z b werden farbwerte in einem string kodiert und in das feld value geschrieben die korrekte interpretation ist dann nur durch auswertung des types möglich feld beschreibung valuetype type information mögliche werte color srgb geographic position number long number double state state number long text possiblevalues optional die möglichen werte wird hauptsächlich genutzt um mögliche states anzugeben enthält eine map mit den möglichen states sowie deren vorgesehene übersetzung unit falls vorhanden, die einheit des wertes min minimum wert max maximum wert stepping schritte um welche werte geändert werden können decimalpartdigits kommastellen meta informationen meta informationen werden als key(string)→value(string) paar übertragen diese können sowohl an things als auch an channels angehängt werden beispiel bsc iot thing { "id" "b9f09ef8 3c3f 459e 841f 66bdaedff183", "name" "fsb14", "channelgroups" \[{ "channelgroupid" "sensor group", "channeldescriptiondata" null, "channels" \[{ "channelid" "jalousie", "channeldescriptiondata" { "channeltypeenum" "shading", "label" { "de de" "jalousie", "en us" "shutters" } }, "value" "29 0", "valuedescriptiondata" { "valuetype" "number double", "unit" "%", "min" 0 0, "max" 100 0, "stepping" 1 0, "decimalpartdigits" 1, "possiblevalues" null }, "writeable" false, "metainfos" { "metainfo >id" "asensor#b9f09ef8 3c3f 459e 841f 66bdaedff183#jalousie", "message >count" "0", "eoap >changeable" "true", "message >enabled" "false", "sensor name" "jalousie", "tsystems >type" "value" } }, { "channelid" "jalousiestate", "channeldescriptiondata" { "channeltypeenum" "shading", "label" { "de de" "jalousie", "en us" "shutters" } }, "value" "unknown", "valuedescriptiondata" { "valuetype" "state", "unit" null, "min" null, "max" null, "stepping" null, "decimalpartdigits" null, "possiblevalues" { "unknown" { "de de" "unbekannt", "en us" "unknown" }, "up" { "de de" "herauf", "en us" "up" }, "down" { "de de" "herunter", "en us" "down" } } }, "writeable" false, "metainfos" { "metainfo >id" "asensor#b9f09ef8 3c3f 459e 841f 66bdaedff183#jalousiestate", "message >count" "0", "eoap >changeable" "false", "message >enabled" "false", "sensor name" "direction", "tsystems >type" "state" } }, { "channelid" "priority", "channeldescriptiondata" { "channeltypeenum" "switch", "label" { "de de" "priorität", "en us" "priority" } }, "value" "off", "valuedescriptiondata" { "valuetype" "state", "unit" null, "min" null, "max" null, "stepping" null, "decimalpartdigits" null, "possiblevalues" { "unknown" { "de de" "unbekannt", "en us" "unknown" }, "on" { "de de" "an", "en us" "on" }, "off" { "de de" "aus", "en us" "off" } } }, "writeable" false, "metainfos" { "metainfo >id" "asensor#b9f09ef8 3c3f 459e 841f 66bdaedff183#priority", "message >count" "0", "eoap >changeable" "true", "message >enabled" "false", "sensor name" "priority", "tsystems >type" "state" } }, { "channelid" "jalousieslat", "channeldescriptiondata" { "channeltypeenum" "shading", "label" { "de de" "jalousie (lamellen)", "en us" "shutters (slats)" } }, "value" "unknown", "valuedescriptiondata" { "valuetype" "state", "unit" null, "min" null, "max" null, "stepping" null, "decimalpartdigits" null, "possiblevalues" { "unknown" { "de de" "unbekannt", "en us" "unknown" }, "up" { "de de" "herauf", "en us" "up" }, "down" { "de de" "herunter", "en us" "down" } } }, "writeable" false, "metainfos" { "metainfo >id" "asensor#b9f09ef8 3c3f 459e 841f 66bdaedff183#jalousieslat", "message >count" "0", "eoap >changeable" "true", "message >enabled" "false", "sensor name" "jalousieslat", "tsystems >type" "state" } }] }], "state" "online", "parametergroups" null, "metainfos" { "alexa >alexa live updates" "false", "monitoring >monitorable" "true", "teachin >group displayname" "test", "bsc >short info" "fsb14", "metainfo >id" "adevice#b9f09ef8 3c3f 459e 841f 66bdaedff183", "teachin >reference id" "enocean eltako fsb14", "eoap >activated" "true", "teachin >transmission id" "default=4291820288", "lastmodified" "1636543466499", "eoap >alarm" "false" } }