Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Denon Skript

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    [Vorlage] Denon Skript

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      HomeChristian last edited by

      HI Zusammen,

      möchte kurz mein Skript für einen Denon AVR 1100 vorstellen.

      Ich bin kein Programmierer habe es mir nur zusammenkopiert. Darum entschuldigt evtl. unsaubere stellen im Quellcode. Es funktioniert bei mir aber gut! Für Verbesserungsvorschläge freue ich mich aber.

      Was für mich wichtig war sind die Steuerung meiner Internetfavoriten.

      ! ````
      createState('Denon.DenonMainV', 25); // Main Volume
      createState('Denon.DenonZoneV', 35); // Zone 2 Volume
      createState('Denon.DenonCommand', 0); // Sontige Commandos
      createState('Denon.DenonFav', 0); // mein Comando
      ! var DenonLink = 'http://192.168.2.2/goform/formiPhoneAppDirect.xml?'; // IP des AVR
      var DenonDown = 'http://192.168.2.2/goform/formiPhoneAppDirect.xml?NS91'; // Curser Down
      var DenonFav = 'http://192.168.2.2/goform/formiPhoneAppDirect.xml?SIFAVORITES'; // Favorites
      var DenonEnter= 'http://192.168.2.2/goform/formiPhoneAppDirect.xml?NS94'; // Enter
      ! function warten(Wartezeit)
      {
      Wartezeit *= 1000; // Umrechnung in Millisekunden
      var eDate = null;
      var MilliSekZeit = 0;
      var SysDatumJetzt = new Date();
      var SysDatumJetztMilli = SysDatumJetzt.getTime();
      ! do {
      eDate = new Date();
      MilliSekZeit = eDate.getTime();
      }
      while ((MilliSekZeit-SysDatumJetztMilli) < Wartezeit);
      }
      ! on({id: "javascript.0.Denon.DenonMainV", valNe: true}, function(obj) {
      var Volume = getState("javascript.0.Denon.DenonMainV").val; // Wert aus Slider
      var url = DenonLink +"MV" + Volume;
      exec('wget -q -O /dev/null ' + url);
      // log("URL Aufruf: " + url); // dient nur zur Kontrolle im Log bei Bedarf
      });
      ! on({id: "javascript.0.Denon.DenonZoneV", valNe: true}, function(obj) {
      var Volume = getState("javascript.0.Denon.DenonZoneV").val; // Wert aus Slider
      var url = DenonLink +"Z2" + Volume;
      exec('wget -q -O /dev/null ' + url);
      // log("URL Aufruf: " + url); // dient nur zur Kontrolle im Log bei Bedarf
      });

      on({id: "javascript.0.Denon.DenonCommand", valNe: true}, function(obj) {
      var Command = getState("javascript.0.Denon.DenonCommand").val; // Commando übernehmen
      var url = DenonLink + Command;
      exec('wget -q -O /dev/null ' + url);
      // log("URL Aufruf: " + url); // dient nur zur Kontrolle im Log bei Bedarf
      });

      on({id: "javascript.0.Denon.DenonFav", valNe: true}, function(obj) {
      var Command = getState("javascript.0.Denon.DenonFav").val; // Commando übernehmen
      exec('wget -q -O /dev/null ' + DenonFav);
      for (var i = 0; i <= Command; i++){
      exec('wget -q -O /dev/null ' + DenonDown);
      warten(1);
      }
      exec('wget -q -O /dev/null ' + DenonEnter);
      });

      ! ````

      So sieht es dann aus.
      1287_denon.jpg

      Gruß

      Christian

      1 Reply Last reply Reply Quote 0
      • A
        akamia last edited by

        Hallo Christian,

        danke für das Script. Weis jemand, wer diesen Adapter begonnen hat?

        https://github.com/khst60/iobroker.denon

        Helle

        1 Reply Last reply Reply Quote 0
        • B
          BlueEssi last edited by

          Oh, es wäre schön, wenn es mit einem Denon-Adapter losgeht. Ich hatte seinerzeit den Adapter im CCU.IO geschrieben. Ich hatte dort auf den Onkyo-Adapter für die Verbindung zum Receiver aufgebaut. Leider ist der iobroker-Onkyo-Adapter ganz anders aufgebaut und ich weiß deshalb nicht, wie ich die Verbindung herstellen kann. Wenn hier jemand den Anfang macht kann ich gerne bei der Umsetzung (Variablenarten und -typen) unterstützen.

          1 Reply Last reply Reply Quote 0
          • H
            HomeChristian last edited by

            Ja das wäre cool wenn es den bald gibt. Im Quellcode steht schon eine email Adresse aber ich kann ausser testen nicht helfen. Ich wüsste nicht mal wie ich den Adapter installieren sollte.

            Gesendet von meinem SM-G920F mit Tapatalk

            1 Reply Last reply Reply Quote 0
            • A
              akamia last edited by

              Hallo DENON-Freunde,

              habe manuell den Inhalt von GIT nach "C:\ioBroker\node_modules\iobroker.denon" kopiert und anschließend "iobroker upload denon" gestartet. Leider läuft das auf den folgenden Fehler.

              C:\ioBroker>node node_modules/iobroker.js-controller/iobroker.js upload denon
              got C:/ioBroker/node_modules/iobroker.denon/admin
              upload [0] denon.admin C:/ioBroker/node_modules/iobroker.denon/admin/index.html index.html text/html
              Cannot find io-package.json in C:/ioBroker/node_modules/iobroker.denon
              module.js:427
                  throw err;
                  ^
              
              SyntaxError: C:\ioBroker\node_modules\iobroker.denon\io-package.json: Unexpected token :
                  at Object.parse (native)
                  at Object.Module._extensions..json (module.js:424:27)
                  at Module.load (module.js:343:32)
                  at Function.Module._load (module.js:300:12)
                  at Module.require (module.js:353:17)
                  at require (internal/module.js:12:17)
                  at Upload.uploadAdapter (C:\ioBroker\node_modules\iobroker.js-controller\lib\setup\setupUpload.js:186:23)
                  at C:\ioBroker\node_modules\iobroker.js-controller\lib\setup.js:740:48
                  at Upload.upgradeAdapterObjects (C:\ioBroker\node_modules\iobroker.js-controller\lib\setup\setupUpload.js:403:13)
                  at C:\ioBroker\node_modules\iobroker.js-controller\lib\setup.js:739:44
              
              

              Die io-package.json liegt an der richtigen Stelle. Hat jemande eine Idee?

              Gruß Helle

              1 Reply Last reply Reply Quote 0
              • J
                jonnyb last edited by

                Hallo,

                genau das gleiche suche ich für auch.

                Habe IO Broker am laufen und den gleichen Deneon AV Receiver.

                Wie kann ich das jetzt am einfachsten das ganze bei mir einbinden - sorry bin in dem Gebiet noch nicht so erfahren - aber würde mich über Untersützung freuen.

                1 Reply Last reply Reply Quote 0
                • A
                  akamia last edited by

                  Hallo jonnyb,

                  drei Möglichkeiten hast Du:

                  1. Das Javascript Script von Christian verwenden und Deine Daten eintragen

                  2. Auf den ioBroker DENON-Adapter warten. Es auf Trello schon eingetragen mit vier Likes

                  3. FHEM-Adapter nutzen, wenn FHEM-Installation vorhanden ist (nicht für Anfänger geeignet)

                  Nutze noch Variante drei und warte auf zwei.

                  Gruß

                  Helle

                  1 Reply Last reply Reply Quote 0
                  • J
                    jonnyb last edited by

                    Hallo akamia,

                    danke für Deine schnelle Antwort.

                    Variante 2 scheidet aus, warten kann ich nicht mehr 😉 Aber ich hoffe es kommt trotzdem bald.

                    Variante 3 lasse ich auch mal sein, FHEM ist nicht installiert

                    Variante 1 hört sich "einfach" an, meine Daten habe ich natürlich schon eingetragen aber jetzt fehlt noch der entscheidende Schritt. Wie geht es weiter? :roll:

                    Ich habe das Script im ioBroker.admin unter Skripte hinzugefügt und abgespeichert.

                    Wie kann ich das jetzt am Beispiel mit dem Lautstärke Slider am besten ansprechen?

                    Ich führe im VIS den Slider hinzu und wähle dann bei der ObjectID das Script aus? Aber dann fehlt doch noch was?

                    Danke.

                    1 Reply Last reply Reply Quote 0
                    • F
                      foxthefox Developer last edited by

                      @akamia:

                      Hallo DENON-Freunde,

                      habe manuell den Inhalt von GIT nach "C:\ioBroker\node_modules\iobroker.denon" kopiert und anschließend "iobroker upload denon" gestartet. Leider läuft das auf den folgenden Fehler.

                      C:\ioBroker>node node_modules/iobroker.js-controller/iobroker.js upload denon
                      got C:/ioBroker/node_modules/iobroker.denon/admin
                      upload [0] denon.admin C:/ioBroker/node_modules/iobroker.denon/admin/index.html index.html text/html
                      Cannot find io-package.json in C:/ioBroker/node_modules/iobroker.denon
                      module.js:427
                          throw err;
                          ^
                      
                      SyntaxError: C:\ioBroker\node_modules\iobroker.denon\io-package.json: Unexpected token :
                          at Object.parse (native)
                          at Object.Module._extensions..json (module.js:424:27)
                          at Module.load (module.js:343:32)
                          at Function.Module._load (module.js:300:12)
                          at Module.require (module.js:353:17)
                          at require (internal/module.js:12:17)
                          at Upload.uploadAdapter (C:\ioBroker\node_modules\iobroker.js-controller\lib\setup\setupUpload.js:186:23)
                          at C:\ioBroker\node_modules\iobroker.js-controller\lib\setup.js:740:48
                          at Upload.upgradeAdapterObjects (C:\ioBroker\node_modules\iobroker.js-controller\lib\setup\setupUpload.js:403:13)
                          at C:\ioBroker\node_modules\iobroker.js-controller\lib\setup.js:739:44
                      
                      

                      Die io-package.json liegt an der richtigen Stelle. Hat jemande eine Idee?

                      Gruß Helle `

                      Die io-package.json ist nicht richtig, es fehlt eine {. (vor "_id":"mute")

                      Hiermit sollte es gehen, wenn alles überkopiert wird.

                      ! ````
                      {
                      ! "common": {
                      ! "name": "denon",
                      ! "version": "0.0.1",
                      ! "title": "Denon Adapter",
                      ! "desc": "Javascript/Node.js based Denon adapter",
                      ! "platform": "Javascript/Node.js",
                      ! "mode": "daemon",
                      ! "icon": "denon.png",
                      ! "loglevel": "debug",
                      ! "keywords": ["denon"],
                      ! "main": "denon.js",
                      ! "nondeletable": true,
                      ! "type": "hardware",
                      ! "authors": ["karl-heinz steffens karl-heinz.steffens@web.de"],
                      ! "license": "MIT",
                      ! "readme": "",
                      ! "extIcon": ""
                      ! },
                      !
                      ! "native": {
                      ! "host": "192.168.178.99"
                      ! },
                      !
                      ! "objects": [
                      ! ],
                      !
                      ! "instanceObjects": [
                      ! {
                      ! "_id": "power",
                      ! "type": "state",
                      ! "common": {
                      ! "name": "Power state",
                      ! "type": "boolean",
                      ! "role": "message",
                      ! "read": true,
                      ! "write": true,
                      ! "desc": "Denon-AVR power state boolean"
                      ! },
                      ! "native": {}
                      ! },
                      ! {
                      ! "_id": "power2",
                      ! "type": "state",
                      ! "common": {
                      ! "name": "Power state zone 2",
                      ! "type": "boolean",
                      ! "role": "message",
                      ! "read": true,
                      ! "write": true,
                      ! "desc": "Denon-AVR power state zone 2 boolean"
                      ! },
                      ! "native": {}
                      ! },
                      {
                      "_id": "mute",
                      ! "type": "state",
                      ! "common": {
                      ! "name": "Mute",
                      ! "type": "boolean",
                      ! "role": "message",
                      ! "read": true,
                      ! "write": true,
                      ! "desc": "Denon-AVR mute state boolean"
                      ! },
                      ! "native": {}
                      ! },
                      ! {
                      ! "_id": "mute2",
                      ! "type": "state",
                      ! "common": {
                      ! "name": "Mute zone 2",
                      ! "type": "boolean",
                      ! "role": "message",
                      ! "read": true,
                      ! "write": true,
                      ! "desc": "Denon-AVR mute state zone 2 boolean"
                      ! },
                      ! "native": {}
                      ! },
                      ! {
                      ! "_id": "denonPower",
                      ! "type": "state",
                      ! "common": {
                      ! "name": "Denon-AVR power state",
                      ! "type": "string",
                      ! "role": "message",
                      ! "read": true,
                      ! "write": true,
                      ! "desc": "Denon-AVR power state"
                      ! },
                      ! "native": {}
                      ! },
                      ! {
                      ! "_id": "denonPower2",
                      ! "type": "state",
                      ! "common": {
                      ! "name": "Denon-AVR power state zone 2",
                      ! "type": "string",
                      ! "role": "message",
                      ! "read": true,
                      ! "write": true,
                      ! "desc": "Denon-AVR power state zone 2"
                      ! },
                      ! "native": {}
                      ! },
                      ! {
                      ! "_id": "denonInput",
                      ! "type": "state",
                      ! "common": {
                      ! "name": "Denon-AVR input select",
                      ! "type": "string",
                      ! "role": "message",
                      ! "read": true,
                      ! "write": true,
                      ! "desc": "Denon-AVR input select"
                      ! },
                      ! "native": {}
                      ! },
                      ! {
                      ! "_id": "denonInput2",
                      ! "type": "state",
                      ! "common": {
                      ! "name": "Denon-AVR input select zone 2",
                      ! "type": "string",
                      ! "role": "message",
                      ! "read": true,
                      ! "write": true,
                      ! "desc": "Denon-AVR input select zone 2"
                      ! },
                      ! "native": {}
                      ! },
                      ! {
                      ! "_id": "denonMute",
                      ! "type": "state",
                      ! "common": {
                      ! "name": "Denon-AVR mute",
                      ! "type": "string",
                      ! "role": "message",
                      ! "read": true,
                      ! "write": true,
                      ! "desc": "Denon-AVR mute"
                      ! },
                      ! "native": {}
                      ! },
                      ! {
                      ! "_id": "denonMute2",
                      ! "type": "state",
                      ! "common": {
                      ! "name": "Denon-AVR mute zone 2",
                      ! "type": "string",
                      ! "role": "message",
                      ! "read": true,
                      ! "write": true,
                      ! "desc": "Denon-AVR mute zone 2"
                      ! },
                      ! "native": {}
                      ! },
                      ! {
                      ! "_id": "denonVolume",
                      ! "type": "state",
                      ! "common": {
                      ! "name": "Denon-AVR volume",
                      ! "type": "string",
                      ! "role": "message",
                      ! "read": true,
                      ! "write": true,
                      ! "desc": "Denon-AVR volume"
                      ! },
                      ! "native": {}
                      ! },
                      ! {
                      ! "_id": "denonVolume2",
                      ! "type": "state",
                      ! "common": {
                      ! "name": "Denon-AVR volume zone 2",
                      ! "type": "string",
                      ! "role": "message",
                      ! "read": true,
                      ! "write": true,
                      ! "desc": "Denon-AVR volume zone 2"
                      ! },
                      ! "native": {}
                      ! },
                      ! {
                      ! "_id": "denonSound",
                      ! "type": "state",
                      ! "common": {
                      ! "name": "Denon-AVR sound mode",
                      ! "type": "string",
                      ! "role": "message",
                      ! "read": true,
                      ! "write": true,
                      ! "desc": "Denon-AVR sound mode"
                      ! },
                      ! "native": {}
                      ! },
                      ! {
                      ! "_id": "denonSound2",
                      ! "type": "state",
                      ! "common": {
                      ! "name": "Denon-AVR sound mode zone 2",
                      ! "type": "string",
                      ! "role": "message",
                      ! "read": true,
                      ! "write": true,
                      ! "desc": "Denon-AVR sound mode zone 2"
                      ! },
                      ! "native": {}
                      ! }
                      ! ]
                      ! }/karl-heinz.steffens@web.de

                      
                      am besten den Adapter über:
                      
                      

                      (sudo) npm install https://github.com/khst60/iobroker.denon/tarball/master --production

                      im iobroker Verzeichnis installieren, dann werden auch eingebundene nodjs Module mit installiert.
                      
                      Gruß
                      
                      Klaus
                      1 Reply Last reply Reply Quote 0
                      • B
                        BlueEssi last edited by

                        Ich hatte seinerzeit den Denon-Adapter für CCU.IO geschrieben. Leider fehlt mir immer noch die Unterstützung, wie ich bei iobroker eine Verbindung zum Denon aufbaue. Ich habe mir aber inzwischen über den UPNP-Adapter geholfen. Wenn mein Telefon klingelt setzte ich hierüber den Denon auf Mute und nachher wieder zurück. Klappt zuverlässig.

                        Gesendet von iPhone mit Tapatalk

                        1 Reply Last reply Reply Quote 0
                        • A
                          akamia last edited by

                          Hallo Klaus,

                          Du Adlerauge. Danke für den Hinweis. Lässt sich jetzt einwandfrei installieren. Testen werde ich am Wochenende. Meine Familie schläft schon.

                          Gruß

                          Helle

                          1 Reply Last reply Reply Quote 0
                          • A
                            akamia last edited by

                            Hallo DENON-Freunde,

                            der DENON-Adapter funktioniert mit seinen Grundfunktionen. Auch die Volume-Slider für Main und Zone2 arbeiten gut. Power 2 geht, allerdings werden bei Main Power alle drei Zonen ein bzw. ausgeschaltet.

                            Da Telnet nur eine Verbindung akzeptiert, musste ich die FHEM DENON "defines" deaktivieren. Sonst kommt keine Verbindung zustande und das LOG wird zugespamt.

                            Muss mich jetzt bei diesem Adapter zwischen IOB und FHEM entscheiden. Der FHEM-Adapter von RAMAN unterstützt fast alle >1.000 Befehle über alle vier Zonen. So fällt die Entscheidung wohl jetzt erst einmal leicht.

                            @jonnyb: Vielleicht reichen Dir die Grundfunktionen für den Anfang?

                            @BlueEssi: Ich habe Deinen CCU.IO Adapter sehr gerne benutzt. Hat gut funktioniert. Ldittmar hat in Trello geschrieben "Wurde vor einem Jahr begonnen… Scheint ein "Waisenkind" zu sein. 😞 - Vielleicht kann es einer übernehmen und weiterentwickeln?" Momentan sehe ich nur Dich. Mein JavaScript steht noch in den Kinderschuhen "Hello World". Würde Dich aber gerne unterstützen. Vielleicht nutzen uns auch die Perl-Scripte etwas.

                            Da fällt mir noch eine vierte Variante ein:

                            http://blue-pc.net/2013/12/28/denon-av- … p-steuern/

                            Über das Web-Interface ab den X-Geräten. Z.B.: "http://192.168.xxx.yyy/goform/formiPhon … ?Z2SAT/CBL" schaltet den Eingang in Zone2 auf den Sat-Receiver um.

                            Gruß

                            akamia

                            1 Reply Last reply Reply Quote 0
                            • J
                              jonnyb last edited by

                              Hallo akamia,

                              ich habe mich fleißig mit dem Skript von HomeChristian auseinander gesetzt und das mehr oder weniger nachgestellt.

                              Nutze dafür fleißig die "'http://192.168.2.2/goform/formiPhoneAppDirect.xml?" Aufrufe und es funktionioert (Logo, Volume Slider, …) wunderbar.

                              Was jetzt noch fehlt sind die Rückinfo´s wie:

                              • Status Main Zone an/aus

                              • Status Zone1 an/aus

                              • Source Main Zone

                              • Soruce Zone1

                              • ...

                              Steht als XML zur Verfügung, aber da scheitert es gerade einen Wert aus dem XML abzugreifen. Aber ist ja langes Wochenende....

                              Gruß

                              JonnyB

                              1 Reply Last reply Reply Quote 0
                              • ldittmar
                                ldittmar Developer last edited by

                                Hi,

                                ich habe es bei mir korrigiert und ein Pull-Request an den Entwickler gestellt. Es wurde schon 1 Jahr nicht dran gearbeitet. Die Installation funktioniert jetzt über diesen Link: https://github.com/ldittmar81/iobroker.denon

                                Grüße,

                                ldittmar

                                1 Reply Last reply Reply Quote 0
                                • L
                                  Lucky last edited by

                                  Moin, ich habe ein eigenes Skript für Denon AVRs geschrieben,das ich AVR X4000er X6000er und X7000er getestet habe. Unterstützt Request Response und Evets vom AVR. Implementiert sind alle gängigen Funktion für alle Zonen, sowie Quellenwahl OSD Informationen,allgemeine Steuerung

                                  und Lautstärken.

                                  Ich werde es morgen Abend hier Posten

                                  1 Reply Last reply Reply Quote 0
                                  • J
                                    jonnyb last edited by

                                    Hi Lucky,

                                    ich bin schon sehr gespannt was da kommt!

                                    VG JonnyB

                                    1 Reply Last reply Reply Quote 0
                                    • L
                                      Lucky last edited by

                                      so, bisschen spät geworden..

                                      kurze Beschreibung:

                                      1. bitte die IP eures AVR oben eintragen (ja das mach ich irgendwann noch schöner)

                                      2. beim AVR muss die Netzwerksteuerung aktiv sein, und auf statische IP einstellen

                                      3. ein kontinuirliches pollen ist nicht erforderlich da der AVR selbst Events sendet sobald sich etwas ändert

                                      4. mit den State "UPDATE" können die aktuellen zustände beim AVR abgefragt werden

                                      5. die Tuner_Control ist noch nicht ganz fertig, kommt aber die tage

                                      6. das Skript sollte bei allen Geräten der X Serie funktionieren, Protokol Refferenz ist von 2015

                                      6. wer Fehler findet darf sie behalten, mich aber drauf hinweisen 😉

                                      EDIT: kleine Erweiterungen und Bugfix gemacht

                                      !!!!!!!!Aktuelle Version im Post vom 29.08.2017, 19:54 !!!!!!

                                      1 Reply Last reply Reply Quote 0
                                      • L
                                        Lucky last edited by

                                        hat schon jemand mein Skript getestet ?

                                        mich würde mal interssieren ob es ansatzweise auch mit Geräten die nicht aus der X Serie sind funktioniert. z.b. AVR3313 usw

                                        1 Reply Last reply Reply Quote 0
                                        • A
                                          akamia last edited by

                                          Kommt am WE.

                                          1 Reply Last reply Reply Quote 0
                                          • H
                                            holson last edited by

                                            Hi Lucky,

                                            ich habe Dein Script mit meinem Denon AVR-X4200W getestet!

                                            In ioBroker werden unter der Registerkarte Objekte die aktuellen Zustände des Receivers angezeit! 😄

                                            Es ist leider NICHT möglich Zustände zu ändern, wie z.B. Mute. 😞

                                            Im Log zum Skrip ist folgendes sichtbar:

                                            javascript.0 script.js.common.Denon: MUON

                                            javascript.0 script.js.common.Denon: error: Error: write after end

                                            <u>Hinweis:</u>

                                            Ich habe gemäß Hinweis von akamia die Ansteuerung über http probiert und das funktioniert, wie z.B.:

                                            http://<av ip-adresse="">/goform/formiPhoneAppMute.xml?1+MuteOn

                                            http://<av ip-adresse="">/goform/formiPhoneAppMute.xml?1+MuteOff

                                            http://<av ip-adresse="">/goform/formiPhoneAppVolume.xml?1+ <db wert/meist/negativ/z.b./-30="">VG

                                            HolSon</db></av></av></av>

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            576
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            35
                                            141
                                            27455
                                            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