Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] Könnte mir bitte jemand bei dem Script helfen?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Könnte mir bitte jemand bei dem Script helfen?

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @w00dy last edited by paul53

      @Hicks Ein Versuch schadet nicht. Wenn es dann nicht funktioniert, mache ein Downgrade auf Version 3.6.4 (3.6.5), denn damit habe ich es gerade erfolgreich getestet.Test_miFenster.JPG

      W 2 Replies Last reply Reply Quote 1
      • W
        w00dy @paul53 last edited by

        @paul53

        OK, danke! Melde mich dann wieder...😏

        1 Reply Last reply Reply Quote 0
        • W
          w00dy @paul53 last edited by w00dy

          Hallo @paul53,

          du hattest den richtigen Riecher, die Javascript-Version war das Problem!

          Mit der Version 4.1.8 ging's auch nicht, bin jetzt wieder zurück auf Version 3.6.4. und damit läuft auch mein oben geändertes Skript.

          Schade, die neue Version hatte schon ihre Vorteile - ok, dann muss ich noch etwas warten.

          Vielen Dank für deine Hilfe, ohne die wäre ich aufgemschissen gewesen.👍 ☺

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            Habe gerade mit Version 4.1.10 getestet und bei mir funktioniert es.
            Test_miFenster.JPG

            @Hicks Kannst Du bitte testen, ob es auch bei Dir funktioniert. Dann kann ich das Issue auf Github schließen.

            W 1 Reply Last reply Reply Quote 0
            • W
              w00dy @paul53 last edited by

              @paul53

              so, ich bin jetzt auf Version 4.1.10. Leider läuft das Skript hier auch nicht.

              P1.jpeg

              Zudem habe ich einige Warnungen im Log vom Javascript-Adapter:

              Javascript.0 2019-03-05 20:54:09.582 warn at TCP.onread (net.js:601:20)
              javascript.0 2019-03-05 20:54:09.582 warn at Socket.Readable.push (_stream_readable.js:208:10)
              javascript.0 2019-03-05 20:54:09.582 warn at readableAddChunk (_stream_readable.js:250:11)
              javascript.0 2019-03-05 20:54:09.581 warn at addChunk (_stream_readable.js:263:12)
              javascript.0 2019-03-05 20:54:09.581 warn at Socket.emit (events.js:211:7)
              javascript.0 2019-03-05 20:54:09.581 warn at emitOne (events.js:116:13)
              javascript.0 2019-03-05 20:54:09.581 warn at Socket._ultron.on (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/WebSocket.js:138:22)
              javascript.0 2019-03-05 20:54:09.581 warn at Receiver.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:139:10)
              javascript.0 2019-03-05 20:54:09.581 warn at Receiver.startLoop (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:165:16)
              javascript.0 2019-03-05 20:54:09.581 warn at Receiver.getData (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:330:12)
              javascript.0 2019-03-05 20:54:09.581 warn at Receiver.dataMessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:389:14)
              javascript.0 2019-03-05 20:54:09.581 warn at Receiver.receiver.onmessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/WebSocket.js:141:47)
              javascript.0 2019-03-05 20:54:09.580 warn at WebSocket.emit (events.js:211:7)
              javascript.0 2019-03-05 20:54:09.580 warn at emitOne (events.js:116:13)
              javascript.0 2019-03-05 20:54:09.580 warn at WebSocket.onMessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/EventTarget.js:99:16)
              javascript.0 2019-03-05 20:54:09.580 warn at WebSocket.ws.onmessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transports/websocket.js:147:10)
              javascript.0 2019-03-05 20:54:09.580 warn at WS.Transport.onData (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transport.js:137:8)
              javascript.0 2019-03-05 20:54:09.580 warn at WS.Transport.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transport.js:145:8)
              javascript.0 2019-03-05 20:54:09.579 warn at WS.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
              javascript.0 2019-03-05 20:54:09.579 warn at WS.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/socket.js:273:10)
              javascript.0 2019-03-05 20:54:09.579 warn at Socket.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/socket.js:456:14)
              javascript.0 2019-03-05 20:54:09.579 warn at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
              javascript.0 2019-03-05 20:54:09.579 warn at Socket.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
              javascript.0 2019-03-05 20:54:09.579 warn at Manager.ondata (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:335:16)
              javascript.0 2019-03-05 20:54:09.578 warn at Decoder.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-parser/index.js:251:12)
              javascript.0 2019-03-05 20:54:09.578 warn at Decoder.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
              javascript.0 2019-03-05 20:54:09.578 warn at Decoder.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
              javascript.0 2019-03-05 20:54:09.578 warn at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:345:8)
              javascript.0 2019-03-05 20:54:09.578 warn at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
              javascript.0 2019-03-05 20:54:09.577 warn at Manager.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
              javascript.0 2019-03-05 20:54:09.577 warn at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:236:12)
              javascript.0 2019-03-05 20:54:09.577 warn at Socket.onevent (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:278:10)
              javascript.0 2019-03-05 20:54:09.576 warn at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
              javascript.0 2019-03-05 20:54:09.576 warn at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:52:30)
              javascript.0 2019-03-05 20:54:09.576 warn at Object.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3425:37)
              javascript.0 2019-03-05 20:54:09.575 warn at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:364:25)
              javascript.0 2019-03-05 20:54:09.575 warn at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:963:38)
              javascript.0 2019-03-05 20:54:09.575 warn at Object.<anonymous> (script.js.Meldungen.Meldung
              -offene_Fenster+_Türen_unterdrücken:24:76)
              javascript.0 2019-03-05 20:54:09.574 warn getState "javascript.0.scriptEnabled.sayit-ansagen.sayit_Fenster_vergessen_zu_schließen" not found (3)
              javascript.0 2019-03-05 20:53:53.255 error In file included from /home/iobroker/.node-gyp/8.15.0/include/node/v8.h:26:0, from /home/iobroker/.node-gyp/8.15.0/include/node/node.h:63, from /home/iobroker/.node-g
              javascript.0 2019-03-05 20:53:53.254 error ../src/BluetoothHciSocket.cpp: In member function ‘void BluetoothHciSocket::emitErrnoError()’: ../src/BluetoothHciSocket.cpp:275:72: warning: ‘v8::Localv8::Object v8::Function::NewInstance(int, v8::
              javascript.0 2019-03-05 20:53:53.236 error In file included from ../src/BluetoothHciSocket.cpp:8:0: ../../nan/nan.h:980:46: note: declared here NAN_DEPRECATED inline v8::Localv8::Value MakeCallback(
              javascript.0 2019-03-05 20:53:53.235 error ../src/BluetoothHciSocket.cpp: In member function ‘void BluetoothHciSocket::poll()’: ../src/BluetoothHciSocket.cpp:251:95: warning: ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, v8::L
              javascript.0 2019-03-05 20:53:44.640 error ^~~~~~~~~~~~
              javascript.0 2019-03-05 20:53:44.640 error NAN_DEPRECATED inline v8::Localv8::Value MakeCallback(
              javascript.0 2019-03-05 20:53:44.640 error ../../nan/nan.h:959:46: note: declared here
              javascript.0 2019-03-05 20:53:44.640 error from ../src/transfer.cc:1:
              javascript.0 2019-03-05 20:53:44.640 error from ../src/node_usb.h:21,
              javascript.0 2019-03-05 20:53:44.640 error In file included from ../src/helpers.h:3:0,
              javascript.0 2019-03-05 20:53:44.639 error ^
              javascript.0 2019-03-05 20:53:44.639 error Nan::MakeCallback(self->handle(), Nan::New(self->v8callback), 3, argv);
              javascript.0 2019-03-05 20:53:44.639 error ../src/transfer.cc:126:72: warning: ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value)’ is deprecated [-Wdeprecated-declarations]
              javascript.0 2019-03-05 20:53:44.639 error ../src/transfer.cc: In function ‘void handleCompletion(Transfer
              )’:
              javascript.0 2019-03-05 20:53:33.915 error ^~~~~~~~~~~~
              javascript.0 2019-03-05 20:53:33.915 error NAN_DEPRECATED inline v8::Localv8::Value MakeCallback(
              javascript.0 2019-03-05 20:53:33.915 error ../../nan/nan.h:959:46: note: declared here
              javascript.0 2019-03-05 20:53:33.915 error from ../src/device.cc:1:
              javascript.0 2019-03-05 20:53:33.915 error from ../src/node_usb.h:21,
              javascript.0 2019-03-05 20:53:33.915 error In file included from ../src/helpers.h:3:0,
              javascript.0 2019-03-05 20:53:33.914 error ^
              javascript.0 2019-03-05 20:53:33.914 error Nan::MakeCallback(device, Nan::New(baton->callback), 1, argv);
              javascript.0 2019-03-05 20:53:33.914 error ../src/device.cc:237:64: warning: ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value)’ is deprecated [-Wdeprecated-declarations]
              javascript.0 2019-03-05 20:53:33.914 error ../src/device.cc: In static member function ‘static void Req::default_after(uv_work_t
              )’:
              javascript.0 2019-03-05 20:53:18.574 error ^~~~~~~~~~~~
              javascript.0 2019-03-05 20:53:18.574 error NAN_DEPRECATED inline v8::Localv8::Value MakeCallback(
              javascript.0 2019-03-05 20:53:18.574 error ../../nan/nan.h:1001:46: note: declared here
              javascript.0 2019-03-05 20:53:18.574 error from ../src/node_usb.cc:1:
              javascript.0 2019-03-05 20:53:18.574 error from ../src/node_usb.h:21,
              javascript.0 2019-03-05 20:53:18.574 error In file included from ../src/helpers.h:3:0,
              javascript.0 2019-03-05 20:53:18.573 error ^
              javascript.0 2019-03-05 20:53:18.573 error Nan::MakeCallback(Nan::New(hotplugThis), "emit", 2, argv);
              javascript.0 2019-03-05 20:53:18.573 error ../src/node_usb.cc:151:58: warning: ‘v8::Localv8::Value Nan::MakeCallback(v8::Localv8::Object, const char*, int, v8::Localv8::Value)’ is deprecated [-Wdeprecated-declarations]
              javascript.0 2019-03-05 20:53:18.573 error ../src/node_usb.cc: In function ‘void handleHotplug(std::pair<libusb_device
              , libusb_hotplug_event>)’:
              javascript.0 2019-03-05 20:52:58.078 error
              javascript.0 2019-03-05 20:52:58.077 error node-pre-gyp WARN Pre-built binaries not found for usb@1.5.0 and node@8.15.0 (node-v57 ABI, glibc) (falling back to source compile with node-gyp)
              javascript.0 2019-03-05 20:52:58.077 error WARN Tried to download(404): https://github.com/tessel/node-usb/releases/download/1.5.0/usb_bindings-v1.5.0-node-v57-linux-arm64.tar.gz
              javascript.0 2019-03-05 20:52:58.076 error node-pre-gyp
              javascript.0 2019-03-05 20:52:57.223 error Using request for node-pre-gyp https download
              javascript.0 2019-03-05 20:52:57.221 error WARN
              javascript.0 2019-03-05 20:52:57.218 error node-pre-gyp

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 last edited by paul53

                Sehr eigenartig 😮
                Die Datenpunkte sind tatsächlich enum.functions.Fenster zugeordnet ?
                Enum_functions_Fenster.JPG
                Unter members im Objekt ?

                {
                  "_id": "enum.functions.Fenster",
                  "common": {
                    "name": "Fenster",
                    "members": [
                      "alias.0.geraet_1.opened",
                      "alias.0.Geraet_2.opened"
                    ],
                    "icon": "",
                    "color": false
                  },
                  "type": "enum",
                  "from": "system.adapter.admin.1",
                  "ts": 1551716287358,
                  "acl": {
                    "object": 1636,
                    "owner": "system.user.admin",
                    "ownerGroup": "system.group.administrator"
                  },
                  "native": {}
                }
                
                W 4 Replies Last reply Reply Quote 0
                • W
                  w00dy @paul53 last edited by

                  @paul53

                  ja klar:

                  P2.jpeg

                  Das Skript läuft ja unter V. 3.4.6 einwandfrei - merkwürdig?!?

                  1 Reply Last reply Reply Quote 0
                  • W
                    w00dy @paul53 last edited by

                    @paul53 sagte in

                    Unter members im Objekt ?

                    ...suche mir gerade nen Wolf, wo finde ich das?

                    1 Reply Last reply Reply Quote 0
                    • W
                      w00dy @paul53 last edited by

                      @paul53

                      ...habe gerade festgestellt, dass dieses Skript mit der Version 4.1.10 auch Probleme macht.
                      Wenn es klingelt, schickt mir das Skript normalerweise drei Fotos von der Cam an Telegram.
                      Jetzt, scheint hier eine Endlosschleife vorzuliegen, dass Skript schickt ständig Fotos, Ruhe ist erst, wenn ich das Skript stoppe.

                      // Telegram Bild senden durch Klingel oder Text to command
                       var source_url = 'http://192.168.xxx.xx/tmpfs/snap.jpg?usr=xxxxx&pwd=xxxxx', //IP Adresse der Instar mit user und password
                           dest_path = '/tmp/'; //Speicherort für das Bild
                        
                       var Nachricht = "Jemand klingelt"; // Nachricht, welche mit dem Bild gesendet wird
                        
                       var request = require('request');
                       var fs      = require('fs');
                        
                       //var timer = null;
                       var count = 0;
                        
                       // Bild an telegram schicken
                       function sendImage (pfad) {
                               sendTo('telegram.0', pfad);
                               //log('Webcam Bild per telegram verschickt');
                               sendTo("telegram.0", Nachricht);    // <-- nach der Timeout funktion ausführen
                       }
                        
                       // Bild speichern
                       function saveImage() {
                           request.get({url: source_url, encoding: 'binary'}, function (err, response, body) {
                               fs.writeFile(dest_path + 'image2.jpg', body, 'binary', function(err) {
                        
                               if (err) {
                                   //log('Fehler beim Bild speichern: ' + err, 'warn');
                               } else {
                                   //log('Webcam Bild gespeichert');
                                   sendImage(dest_path + 'image2.jpg');
                               }
                             }); 
                           });
                       }
                        
                       //Trigger
                       // 3 Bilder senden wenn Bewegung erkannt und keiner zu Hause ist
                       on({id: "mqtt.0.xxxxxxx"/*xxx*/, val: true}, function () {
                       //    if (getState("javascript.0.Unifi.Anwesenheit.UAP.Chef"/*WLAN Anwesenheit (UAP) - Chef*/).val === false) {
                           count = 3;
                           counter();
                           timer = setInterval(counter, 3000);
                           }
                       );
                        
                       function counter() {
                           saveImage();
                           count--;
                           if(count === 0 && timer) clearInterval(timer);
                       } 
                      
                      1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 last edited by

                        Entferne den Kommentar von

                        //var timer = null;
                        

                        Die Variable timer muss global deklariert werden.

                        W 1 Reply Last reply Reply Quote 1
                        • W
                          w00dy @paul53 last edited by

                          @paul53

                          Super, so läufts. Danke👍

                          1 Reply Last reply Reply Quote 0
                          • W
                            w00dy @paul53 last edited by w00dy

                            @paul53 sagte in [gelöst] Könnte mir bitte jemand bei dem Script helfen?:

                            Sehr eigenartig 😮
                            Die Datenpunkte sind tatsächlich enum.functions.Fenster zugeordnet ?
                            Enum_functions_Fenster.JPG
                            Unter members im Objekt ?

                            {
                              "_id": "enum.functions.Fenster",
                              "common": {
                                "name": "Fenster",
                                "members": [
                                  "alias.0.geraet_1.opened",
                                  "alias.0.Geraet_2.opened"
                                ],
                                "icon": "",
                                "color": false
                              },
                              "type": "enum",
                              "from": "system.adapter.admin.1",
                              "ts": 1551716287358,
                              "acl": {
                                "object": 1636,
                                "owner": "system.user.admin",
                                "ownerGroup": "system.group.administrator"
                              },
                              "native": {}
                            }
                            

                            @paul53
                            Sorry, dass ich den Thread nochmal ausgrabe.

                            Wo finde ich diese Auflistung der sensoren in der "enum.functions.Fenster"? Ich finde die einfach nicht.

                            Da der Javascript-Adapter mit der 4.1.12 nun default/stable ist und auch hier das Script nicht die Xiaomi-Sensoren findet, muss ich eine Lösung finden.

                            Merkwürdig ist, als ich den Eintrag "enum.functions.Fenster" in den Aufzählungen überprüft und erneut gespeichert habe, wurde komischerweise ein Xiaomi-TFK-Sensor gefunden, aber eben auch nur dieser eine?!?😤

                            Es ist zum verrückt werden😒

                            paul53 1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @w00dy last edited by paul53

                              @Hicks sagte:

                              Wo finde ich diese Auflistung der sensoren in der "enum.functions.Fenster"?

                              Im Reiter "Objekte" die Eigenschaften des Objektes enum.functions.Fenster (Bleistift rechts) und dann auf Reiter "RAW (NUR EXPERTEN)".

                              W 1 Reply Last reply Reply Quote 0
                              • W
                                w00dy @paul53 last edited by w00dy

                                @paul53
                                hmm, unter Objekte finde ich die Eigenschaften des Objektes enum.functions.Fenster nicht?

                                P1.jpeg

                                Und wenn ich unter dem Reiter "Aufzählungen" die Eigenschaften des Objektes enum.functions.Fenster mit dem Bleistift öffne, wird mir das angezeigt:

                                P2.jpeg

                                Und in einem der betroffenen Sensoren nur das:

                                {
                                  "type": "state",
                                  "common": {
                                    "name": "Test-TFK",
                                    "type": "boolean",
                                    "read": true,
                                    "write": false,
                                    "role": "state"
                                  },
                                  "from": "system.adapter.zigbee.0",
                                  "ts": 1552228078774,
                                  "_id": "zigbee.0.00158d0002d4382e.opened",
                                  "acl": {
                                    "object": 1636,
                                    "state": 1636,
                                    "owner": "system.user.admin",
                                    "ownerGroup": "system.group.administrator"
                                  },
                                  "native": {}
                                }
                                

                                Verwirrend😬

                                paul53 1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @w00dy last edited by

                                  @Hicks sagte:

                                  unter Objekte finde ich die Eigenschaften des Objektes enum.functions.Fenster nicht?

                                  Im Reiter "Objekte" den Expertenmodus einschalten (oben 6. Button).

                                  W 1 Reply Last reply Reply Quote 1
                                  • W
                                    w00dy @paul53 last edited by w00dy

                                    @paul53

                                    Ok, bin im Expertenmode die ganzen Einträge nun fünf mal durchgegangen, aber dort ist kein einziger enum.functions.xxxxxxx-Eintrag zu finden.

                                    Liegt hier evtl. schon der Fehler?

                                    Obwohl das System erst vor etwa zwei Wochen neu aufgesetzt wurde

                                    1 Reply Last reply Reply Quote 0
                                    • paul53
                                      paul53 last edited by paul53

                                      Im Expertenmodus sollte es etwa so aussehen (abhängig von den vorhandenen Instanzen):
                                      Objekte_Expert.JPG

                                      W 1 Reply Last reply Reply Quote 0
                                      • W
                                        w00dy @paul53 last edited by w00dy

                                        @paul53
                                        Verrückt, davon ist kein einziger Eintrag vorhanden! Wie kann das sein? Komisch, dass es überhaupt funktioniert...

                                        Homoran paul53 2 Replies Last reply Reply Quote 0
                                        • Homoran
                                          Homoran Global Moderator Administrators @w00dy last edited by

                                          @Hicks
                                          wenn du keine Räume, Gewerke usw. in der Homematic-CCU angelegt hast, oder überhaupt keine CCU besitzt, musst du diese Punkte selber anlegen und befüllen

                                          W 1 Reply Last reply Reply Quote 0
                                          • paul53
                                            paul53 @w00dy last edited by

                                            @Hicks sagte:

                                            davon ist kein einziger Eintrag vorhanden

                                            In Deinem Screenshot ist der Expertenmodus inaktiv !
                                            6. Button oben muss orange statt blau sein.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            925
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            36
                                            1634
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo