Objekte

Bemerkung

Lies zuerst die Grundlagen zur Daten-Speicherung.

Objekte können beispielsweise über das CLI (Command Line Interface) ausgelesen werden.

_id

Eindeutige ID

Type

string

type

Typ des Objektes. Gültige Werte sind:

  • state - Zustand. Das übergeornete Objekte sollte vom Typ channel, device, instance oder host sein. Siehe States

  • channel - „Kanal“ um mehrere Zustände darunter zu strukturieren. Das übergeornete Objekte sollte vom Typ device sein.

  • device - „Gerät“ um mehrere Zustände oder Kanäle darunter zu strukturieren. Das übergeornete Objekte sollte vom Typ instance sein.

  • enum - „Liste“ mit vordefinierten Werten in common.members. that points to the states, channels, devices or files.

  • host - Ein „Host“, welcher einen js-controller Prozess ausführt. Beispielsweise system.host.raspberrypi-iobroker.

  • adapter - Die Standard-Konfiguration von einem Adaper. Beispielsweise system.adapter.admin.

  • instance - Die Konfiguration der einzelnen Instanz. Beispielsweise system.adapter.admin.0. Das übergeornete Objekte sollte vom Typ adapter sein.

  • meta - Sich selten ändernde Meta-Informationen wie zum Beispiel die System-UUID unter system.meta.uuid.

  • config - Konfigurationen. Beispielsweise system.config oder system.repositories

  • script - Skripte unter script.js.*

  • user - Benutzer des Systems. Beispielsweise system.user.admin

  • group - Benutzer-Gruppen des Sytems. Beispielsweise system.group.administrator

  • chart - Diagramm

  • folder - Verzeichnis. Beispielsweise system.host.raspberrypi-iobroker.notifications

Type

string

common.type

Typ der gespeicherten Daten

  • mixed - Kann einen beliebigen Wert annehmen (nicht empfohlen)

  • number - Numerische Werte

  • string - Zeichenketten

  • boolean - true / false

  • array - Liste von Werten

  • object - Objekt

  • json - ???

  • file - ???

  • multistate - Auswahlmöglichkeiten (Enum)

Eine Ausnahme bilden die Objekte mit type = meta. Diese können hier noch den Type meta.user oder meta.folder bekommen.

Warnung

Falls der Typ array, object oder mixed lautet, muss der Wert als String mit JSON.stringify() gespeichert werden.

Type

string

Default

mixed

common.role

Rolle des zugehörigen State (type = state), welche festlegt, wie der Wert im Frontend (Admin) dargestellt werden soll.

Type

string

common.read

Legt fest, ob der zugehörige State (type = state) gelesen werden darf. Siehe States

Type

boolean

common.write

Legt fest, ob der zugehörige State (type = state) geschrieben werden darf. Siehe States

Type

boolean

common.name

(optional) Name des Objektes - wird im Frontend (wie dem Admin) dargestellt. Es ist empfohlen, diesen Wert zu setzen!

Type

string

common.custom

(optional) Zusatzkonfiguration weiterer Adapter für das Objekt. Wird zum Beispiel für Datenbank-Adapter genutzt. Je Eintrag ist das enabled Attribut erforderlich.

"custom": {
    "influxdb.0": {
        "enabled": true,
        "storageType": "",
        "aliasId": "",
        "changesOnly": true,
        "debounce": "1000",
        "changesRelogInterval": "0",
        "changesMinDelta": "0"
    },
    "history.0": {
        "enabled": true,
        "aliasId": "",
        "changesOnly": true,
        "debounce": 1000,
        "changesRelogInterval": 0,
        "changesMinDelta": 0,
        "maxLength": 960,
        "retention": 31536000
    }
}
Type

object

native

Eigenschaften des Zielsystems (z.B. eine ID eines Gerätes)

Type

object

  • ``common.min (optional)

  • ``common.max (optional)

  • ``common.step (optional) - increase/decrease interval. E.g. 0.5 for thermostat

  • ``common.unit (optional)

  • ``common.def (optional - the default value)

  • ``common.defAck (optional - if common.def is set this value is used as ack flag, js-controller 2.0.0+)

  • ``common.desc (optional, string or object) - description, object for multilingual description

  • ``common.states (optional) attribute of type number with the object of possible states {‚value‘: ‚valueName‘, ‚value2‘: ‚valueName2‘, 0: ‚OFF‘, 1: ‚ON‘} or (supported up from admin5) an states array, like [‚Start‘, ‚Flight‘, ‚Land‘]

  • ``common.workingID (string, optional) - if this state has helper state WORKING. Here must be written the full name or just the last part if the first parts are the same with actual. Used for HM.LEVEL and normally has value „WORKING“

Typ Config (Beispiel)

iobroker object get system.config

Beispiel-Ausgabe:

{
    "_id": "system.config",
    "type": "config",
    "common": {
        "name": {
            "en": "System configuration",
            "de": "Systemkonfiguration",
            "ru": "Конфигурация системы",
            "pt": "Configuração do sistema",
            "nl": "Systeem configuratie",
            "fr": "Configuration du système",
            "it": "Configurazione di sistema",
            "es": "Configuración del sistema",
            "pl": "Konfiguracja systemu",
            "zh-cn": "系统配置"
        },
        "city": "Custom City",
        "country": "Germany",
        "longitude": 8.111,
        "latitude": 51.111,
        "language": "de",
        "tempUnit": "°C",
        "currency": "€",
        "dontDelete": true,
        "dateFormat": "DD.MM.YYYY",
        "isFloatComma": true,
        "licenseConfirmed": true,
        "defaultHistory": "",
        "expertMode": false,
        "defaultLogLevel": "info",
        "activeRepo": "stable",
        "diag": "extended",
        "tabs": [
            "tab-intro",
            "tab-info",
            "tab-adapters",
            "tab-instances",
            "tab-objects",
            "tab-log",
            "tab-scenes",
            "tab-javascript",
            "tab-text2command-0",
            "tab-node-red-0"
        ],
        "tabsVisible": [
            {
                "name": "tab-intro",
                "visible": true
            },
            {
                "name": "tab-adapters",
                "visible": true
            },
            {
                "name": "tab-instances",
                "visible": true
            },
            {
                "name": "tab-objects",
                "visible": true
            },
            {
                "name": "tab-enums",
                "visible": true
            },
            {
                "name": "tab-logs",
                "visible": true
            },
            {
                "name": "tab-users",
                "visible": true
            },
            {
                "name": "tab-hosts",
                "visible": true
            },
            {
                "name": "tab-files",
                "visible": true
            },
            {
                "name": "tab-backitup-0",
                "visible": true
            }
        ],
        "defaultNewAcl": {
            "object": 1636,
            "state": 1636,
            "file": 1632,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.administrator"
        }
    },
    "acl": {
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator",
        "object": 1604
    },
    "native": {
        "secret": "971640e8df0885faf7d49c90e38423fc65425b2b861d5e7b"
    },
    "from": "system.adapter.admin.0",
    "user": "system.user.admin",
    "ts": 1633096344214
}

Typ State (Beispiel)

iobroker object get hue.0.Deckenlampe.bri
{
    "_id": "hue.0.Deckenlampe.bri",
    "type": "state",
    "common": {
        "name": "Deckenlampe.bri",
        "read": true,
        "write": true,
        "type": "number",
        "role": "level.dimmer",
        "min": 0,
        "max": 254,
        "def": 254
    },
    "native": {
        "id": "3"
    },
    "from": "system.adapter.hue.0",
    "user": "system.user.admin",
    "ts": 1604080553077,
    "acl": {
        "object": 1636,
        "state": 1636,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator"
    }
}

Typ Host (Beispiel)

iobroker object get system.host.raspberrypi-iobroker
{
    "_id": "system.host.raspberrypi-iobroker",
    "type": "host",
    "common": {
        "name": "raspberrypi-iobroker",
        "title": "JS controller",
        "installedVersion": "3.3.18",
        "platform": "Javascript/Node.js",
        "cmd": "/usr/bin/node  /opt/iobroker/node_modules/iobroker.js-controller/controller.js",
        "hostname": "raspberrypi-iobroker",
        "address": [
            "172.16.0.120",
            "fe80::46f4:a0bb:45c7:6fd7"
        ],
        "type": "js-controller"
    },
    "native": {
        "process": {
            "title": "iobroker.js-controller",
            "versions": {
                "node": "12.22.6",
                "v8": "7.8.279.23-node.56",
                "uv": "1.40.0",
                "zlib": "1.2.11",
                "brotli": "1.0.9",
                "ares": "1.17.2",
                "modules": "72",
                "nghttp2": "1.41.0",
                "napi": "8",
                "llhttp": "2.1.3",
                "http_parser": "2.9.4",
                "openssl": "1.1.1l",
                "cldr": "37.0",
                "icu": "67.1",
                "tz": "2019c",
                "unicode": "13.0"
            },
            "env": {
                "NODE": "$(which node)",
                "PWD": "/",
                "LOGNAME": "iobroker",
                "HOME": "/home/iobroker",
                "LANG": "de_DE.UTF-8",
                "INVOCATION_ID": "82481d3eabae4b618e7be1b24552c984",
                "USER": "iobroker",
                "SHLVL": "0",
                "JOURNAL_STREAM": "8:21058",
                "PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "_": "/usr/bin/node"
            }
        },
        "os": {
            "hostname": "raspberrypi-iobroker",
            "type": "Linux",
            "platform": "linux",
            "arch": "arm",
            "release": "5.10.63-v7l+",
            "endianness": "LE",
            "tmpdir": "/tmp"
        },
        "hardware": {
            "cpus": [
                {
                    "model": "ARMv7 Processor rev 3 (v7l)",
                    "speed": 1500
                },
                {
                    "model": "ARMv7 Processor rev 3 (v7l)",
                    "speed": 1500
                },
                {
                    "model": "ARMv7 Processor rev 3 (v7l)",
                    "speed": 1500
                },
                {
                    "model": "ARMv7 Processor rev 3 (v7l)",
                    "speed": 1500
                }
            ],
            "totalmem": 4025200640,
            "networkInterfaces": {
                "lo": [
                    {
                        "address": "127.0.0.1",
                        "netmask": "255.0.0.0",
                        "family": "IPv4",
                        "mac": "00:00:00:00:00:00",
                        "internal": true,
                        "cidr": "127.0.0.1/8"
                    },
                    {
                        "address": "::1",
                        "netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
                        "family": "IPv6",
                        "mac": "00:00:00:00:00:00",
                        "internal": true,
                        "cidr": "::1/128",
                        "scopeid": 0
                    }
                ],
                "eth0": [
                    {
                        "address": "172.16.0.120",
                        "netmask": "255.255.0.0",
                        "family": "IPv4",
                        "mac": "e4:5f:01:5d:01:31",
                        "internal": false,
                        "cidr": "172.16.0.120/16"
                    },
                    {
                        "address": "fe80::46f4:a0bb:45c7:6fd7",
                        "netmask": "ffff:ffff:ffff:ffff::",
                        "family": "IPv6",
                        "mac": "e4:5f:01:5d:01:31",
                        "internal": false,
                        "cidr": "fe80::46f4:a0bb:45c7:6fd7/64",
                        "scopeid": 2
                    }
                ]
            }
        }
    },
    "from": "system.host.raspberrypi-iobroker",
    "ts": 1633374149865,
    "acl": {
        "object": 1636,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator"
    }
}

Typ Script (Beispiel)

iobroker object get script.js.Büro.Licht_einschalten
{
    "common": {
        "name": "Licht einschalten",
        "expert": true,
        "engineType": "Blockly",
        "engine": "system.adapter.javascript.0",
        "source": "on({id: \"zigbee.0.00158d00020f4ab5.click\"...",
        "debug": false,
        "verbose": false,
        "enabled": true
    },
    "type": "script",
    "from": "system.adapter.admin.0",
    "user": "system.user.admin",
    "ts": 1628941638315,
    "_id": "script.js.Büro.Licht_einschalten",
    "acl": {
        "object": 1636,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator"
    }
}

Typ User (Beispiel)

iobroker object get system.user.admin
{
    "type": "user",
    "common": {
        "name": "Matthias Kleine",
        "password": "pbkdf2$10000$021943a847a4e2c20b...",
        "dontDelete": true,
        "enabled": true
    },
    "native": {},
    "_id": "system.user.admin",
    "acl": {
        "object": 1636,
        "state": 1636,
        "file": 1632,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator"
    },
    "enums": {},
    "from": "system.adapter.admin.0",
    "user": "system.user.admin",
    "ts": 1633095538813
}

Typ Group (Beispiel)

iobroker object get system.group.administrator
{
    "_id": "system.group.administrator",
    "type": "group",
    "common": {
        "icon": "data:image/svg+xml;base64,PHN2...",
        "name": {
            "en": "Administrator",
            "de": "Administrator"
        },
        "description": {
            "en": "Can do everything with System",
            "de": "Darf alles mit dem System machen"
        },
        "members": [
            "system.user.admin"
        ],
        "dontDelete": true,
        "acl": {
            "object": {
                "list": true,
                "read": true,
                "write": true,
                "delete": true
            },
            "state": {
                "list": true,
                "read": true,
                "write": true,
                "create": true,
                "delete": true
            },
            "users": {
                "list": true,
                "read": true,
                "write": true,
                "create": true,
                "delete": true
            },
            "other": {
                "execute": true,
                "http": true,
                "sendto": true
            },
            "file": {
                "list": true,
                "read": true,
                "write": true,
                "create": true,
                "delete": true
            }
        }
    },
    "acl": {
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator",
        "object": 1604
    },
    "from": "system.host.raspberrypi-iobroker.cli",
    "ts": 1633092016342
}

Typ Folder (Beispiel)

iobroker object get system.host.raspberrypi-iobroker.notifications
{
    "type": "folder",
    "common": {
        "name": {
            "en": "Notifications",
            "de": "Benachrichtigungen"
        }
    },
    "native": {},
    "_id": "system.host.raspberrypi-iobroker.notifications",
    "acl": {
        "object": 1636,
        "state": 1636,
        "file": 1632,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator"
    }
}

Typ Meta (Beispiel)

iobroker object get system.meta.uuid
{
    "type": "meta",
    "common": {
        "name": "uuid",
        "type": "uuid"
    },
    "ts": 1633092016485,
    "from": "system.host.raspberrypi-iobroker.tools",
    "native": {
        "uuid": "23b1992b-8d91-a4fc-b201-2bd851bdc807"
    },
    "_id": "system.meta.uuid",
    "acl": {
        "object": 1636,
        "state": 1636,
        "file": 1632,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator"
    }
}