Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Adapter "smartmeter"

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Adapter "smartmeter"

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

      @wendy2702:

      OK.

      Netzwerk ist da, WLAN ist da. Allerdings noch ein Rechner mehr zu betreuen.

      Muss ich mir mal überlegen wie ich das Löse. `

      Ein Raspi läuft und läuft und läuft. Dein Aufwand wird nicht so groß sein.

      Dafür kannst du sowas erzeugen: 😄 😄 😄
      1597_bild_3.jpg
      1597_bild_2.jpg

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

        Denke darauf wird es hinaus laufen.

        Gesendet von iPhone mit Tapatalk Pro

        1 Reply Last reply Reply Quote 1
        • S
          simpixo last edited by

          Kannst du deine Statistik Scripte veröffentlichen!? Wäre super [emoji1360]

          Gruß

          Adrian

          Gesendet von iPhone mit Tapatalk Pro

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

            Serieller Tastkopf geht doch auch, oder?

            Eventuell mit Adapter am Pi zum testen ob der Zähler die Schnittstelle aktiv hat.

            Gesendet von iPhone mit Tapatalk Pro

            1 Reply Last reply Reply Quote 0
            • S
              simpixo last edited by

              Was soll ich denn sagen, Adapter installiert, Lesekopf innerhalb der ESXi durch geschliefen und die Daten werden sofort eingelesen! Dafür einfach Daumen hoch [emoji1303][emoji1303][emoji1303][emoji1303]

              Welcher Lesekopf ist mit der bidirektionalen Schnittstelle gemeint!? Oder kann der Lesekopf von Udo auch Daten senden?

              Tolle Arbeit [emoji6]

              Gruß

              Adrian

              Gesendet von iPad mit Tapatalk Pro

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

                Der Kopf von Udo kann Lesen und Schreiben.

                Mein Wärmezähler sendet beispielsweise nicht von sich aus Daten raus. Er ist über dieses "D0-Protokoll" Ansprechbar. Man weckt Ihn zuerst auf, dann kommt eine SignOn-Message die gesendet wird, dann Antwortet er, dann muss pot.die Baudrate angepasst werden bevor er seine Daten sendet.

                1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators last edited by

                  Hallo apollon,

                  Jetzt hast du es geschafft und mich neugierig gemacht.

                  Nachdem der homematic zählersensor nicht für meinen Zähler geeignet sind hatte ich das thema eigentlich abgeschrieben, da man dort angeblich nur über einen rückseitigen bus an dievDaten rankommt.

                  Ich bin jetzt schon im bett und gehe nicht nochmal in den keller zum Nachsehen, aber das müsste mein zähler sein:

                  https://www.hager.de/zaehlerplatzsystem … Properties

                  Besteht die Hoffnung dass der mit deinem Adapter funktioniert?

                  Was kostet denn der Kopf?

                  Was mich noch stutzig macht, bei dem zähler stand etwas, dass er 24h nur noch blinkt wenn er durch ein magnetfeld gestört wurde, und bei dem Kopf stand eine Warnung vor dem Magnetfeld :?

                  Gruß

                  Rainer

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

                    Kopf bei Udo 25 EUR + Versand.

                    Was "magnetische Störung "bei Deinem Zähler angeht kann ich nix sagen. Bei mir alles super. Der Lesekopf kommt oben rechts hin da wo diese zwei "rechteckigen Löcher" sind.

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

                      Update 0.2.0 available …

                      Removed Debugging, Enhanced Adapter Config

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

                        @Homoran:

                        Hallo apollon,

                        Jetzt hast du es geschafft und mich neugierig gemacht.

                        Nachdem der homematic zählersensor nicht für meinen Zähler geeignet sind hatte ich das thema eigentlich abgeschrieben, da man dort angeblich nur über einen rückseitigen bus an dievDaten rankommt.

                        Ich bin jetzt schon im bett und gehe nicht nochmal in den keller zum Nachsehen, aber das müsste mein zähler sein:

                        https://www.hager.de/zaehlerplatzsystem … Properties

                        Besteht die Hoffnung dass der mit deinem Adapter funktioniert?

                        Was kostet denn der Kopf?

                        Was mich noch stutzig macht, bei dem zähler stand etwas, dass er 24h nur noch blinkt wenn er durch ein magnetfeld gestört wurde, und bei dem Kopf stand eine Warnung vor dem Magnetfeld :?

                        Gruß

                        Rainer `
                        ich habe den Hager ehz363W5

                        https://www.hager.de/sonderprodukte/ehz … Properties und lese ihn im Moment noch über den Lesekopf von Udo (volkszaehler). Gestern habe ich den hinteren Anschluss angeschlossen aber ich bekam nur Nullen rein. Da muss ich mich noch informieren.

                        In der Beschreibung von deinem Zähler steht:

                        "Datenschnittstellen

                        Die Datenschnittstellen des Zählers sind Infrarot-Kommunikationsschnittstellen nach DIN EN 62056-21. Alle Telegramme sind mit SML-Transportprotokoll (Version 1) kodiert.

                        Der Zähler sendet alle 1s - 4s einen Datensatz, welcher neben den Inhalten des/der Energieregister(s) weitere Informationen enthält..:"

                        Die gleiche Beschreibung steht bei mir. Also kannst du den Kopf benutzen.

                        1 Reply Last reply Reply Quote 0
                        • S
                          simpixo last edited by

                          @a200:

                          Ich habe ein paar Scripte geschrieben, die ein paar einfache Statistiken erstellen. Ich werde Sie auf deine Datenpunkte anpassen und sie dann hier posten.

                          Danke dir und nen schönen Abend noch! `

                          Wäre es möglich das du diese postest!? Wäre nämlich an diesen sehr interessiert

                          Danke schon mal

                          Gruß

                          Adrian

                          Gesendet von iPhone mit Tapatalk Pro

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

                            Mach ich heute Abend! Aber erwartet nicht zu viel. Ich erstelle einfach regelmäßig neue Datenpunkte mit den Verbrauch Minute/Stunde/Tag/Woche/Monat. Delta zu Vorwert. Diese können in der DB gespeichert werden. An Durchschnittswerten bin ich dran.

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

                              Mal ne Frage zu ner Featureidee für den Adapter die ich noch hatte:

                              Wenn man beim Stromzähler als "Request Timeout" die 0 nimmt liesst er jedes Telegram was reinkommt - also eins alle 1-4s. Das heisst aktuell werden alle sich ändernden Werte 8also alles was Zähler bzw aktueller Verbrauch ist) gespeichert weil haben sich ja geändert. Wer da sein System nicht per Redis betreibt sondern das states-File nimmt (wie Standard) hat einen Haufen I/O. Im History/SQL/Influxd-Adapter kann man je nach Datenpunkt eine "minimale abweichung" festlegen zum Logging der historischen Daten … das ist super - ändert aber nix an der Grundlast.

                              Wäre es in Eurer Augen sinnvoll hier im Adapter noch ein "erst bei minimaler Abweichung von X Datenpunkt updaten" einzubauen?

                              Wenn ja müsste man aber die Werte "normalisieren" weil hier pot. "W", "kW" und "MW" gemischt vorkommen können (und 1MW ist ne andere Nummer als 1W :-)) ) und auf Adapterebene einfacherhalber nur eine Einstellung sinn macht 🙂

                              Meine Idee wäre da zu sagen das man mit dem ersten Buchstaben der Einheit eine Umrechnung vornimmt und damit alle Werte auf die gleiche Einheit und dann dort eine Mindest-Änderung angeben zu können.

                              Oder muss jeder der dauerhaft lesen will einfach mit der Last Leben und ggf per History-dapter dann die geloggten Historischen Werte selbst auf Datenpunktebene aussortieren?

                              Sagt mal Eure Meinung?

                              Macht das Feature Sinn oder nicht?

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

                                Hi,

                                wie kann ich den Adapter in einer Multihost Umgebung installieren?

                                Ich habe mir einen Testrechner mit iobroker aufgesetzt, diesen sehe ich auf meinem Hauptsystem auch unter "Hosts"

                                999_multihost.jpg

                                Dann habe ich auf der Adapter Seite den neuen "Host" ausgewählt:

                                999_multihost_inst.jpg

                                Und über eigene URL versucht den Adapter zu installieren:

                                999_multihost_inst_error.jpg

                                Hauptsystem: 192.168.178.18

                                Weiterer Host: 192.168.178.66

                                Passt das hier überhaupt oder besser ein neues Thema aufmachen?

                                Kann ich den Adapter auf dem neuen Host auch per commandline installieren?

                                Egal wie und wo ich es aus dem Admin Adapter versuche stürzt der Admin immer ab.

                                Gruß

                                Mirko

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

                                  Kannst Du andere Adapter auf dem anderen Host installieren?

                                  Ich wollte genau das in den nächsten 2-3 Tagen machen (Multihost und so) … aktuell hab ich mein Entwicklungs-Cubietruck im Keller stehen ... jetzt sollen die Daten an Live dran ...

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

                                    @wendy2702:

                                    wie kann ich den Adapter in einer Multihost Umgebung installieren? `

                                    Ich benutzte multihost (Anleitung: http://www.iobroker.net/?page_id=3068&lang=de)

                                    Ich hatte etwas Probleme mit den unterschiedlichen IPs, aber im Grunde läuft das.

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

                                      hm,

                                      gerade mal deinen Adapter aus der Konsole installiert:

                                      root@debian:~# cd /opt/iobroker/
                                      root@debian:/opt/iobroker# npm install iobroker.smartmeter
                                      /
                                      > serialport@4.0.7 install /opt/iobroker/node_modules/iobroker.smartmeter/node_modules/smartmeter-obis/node_modules/serialport
                                      > node-pre-gyp install --fallback-to-build
                                      
                                      [serialport] Success: "/opt/iobroker/node_modules/iobroker.smartmeter/node_modules/smartmeter-obis/node_modules/serialport/build/Release/serialport.node" is installed via remote
                                      iobroker.smartmeter@0.2.0 node_modules/iobroker.smartmeter
                                      └── smartmeter-obis@0.2.5 (open-sml@0.3.1, request@2.79.0, serialport@4.0.7)
                                      root@debian:/opt/iobroker#
                                      
                                      

                                      Sieht jetzt nicht so schlecht aus….

                                      aber der Admin ist wieder weg.

                                      Könnte auch an der "alten" HW liegen.

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

                                        Hier die Sammlung meiner Scripte

                                        Ich gehe davon aus, dass der Smartmeter den Gesamtverbrauch in dem Datenpunkt: "smartmeter.0.1-0:1_8_0*255.value" ablegt. Sollte das nicht der Fall sein, so müsst Ihr die Variable idHAGTotal in allen Skripten anpassen.

                                        ******* ALT ******* - Unten steht die neue Version.

                                        01-Hour - Stündlich wird der Verbrauch der vergangenen Stunde im Datenpunkt Stromzähler.Hager.Verbrauch.Hour gespeichert.

                                        ! // NEU - Zählerstand vom Anfang der akt. Stunde wird ermittelt // ! var cronStr = "0 * * * *"; ! var idHAGVorwert = "javascript.0.Stromzähler.Hager.tmp.Total-h"; var idHAGTotal = "smartmeter.0.1-0:1_8_0*255.value"; /*Stromverbrauch insgesamt*/ var idHAGZiel = "javascript.0.Stromzähler.Hager.Verbrauch.Hour"; var debug = false; ! createState(idHAGZiel, 0, { name: 'Stromverbrauch Stündlich', desc: 'Stromverbrauch Stündlich', type: 'number', unit: 'Wh', role: 'value' }); ! createState(idHAGVorwert, 0, { name: 'Stromverbrauch Gesamt Stündlich', desc: 'Stromverbrauch Gesamt Stündlich', type: 'number', unit: 'kWh', role: 'value' }); ! function haupt () { var nVorwert = getState(idHAGVorwert).val; var nAktuell = getState(idHAGTotal).val; var nDiff = ((nAktuell * 10) - (nVorwert * 10)) * 100; setState(idHAGZiel, nDiff, true); if(debug) log("Aus: " + nAktuell +" - "+ nVorwert + " = " + nDiff); var shandler = on ({id: idHAGZiel, change: 'any'}, function(data) { setState(idHAGVorwert, (nAktuell*10)/10, true); unsubscribe(shandler); }); } ! // regelmässige Wiederholungen // ----------------------------------------------------------------------------- schedule(cronStr, haupt); !

                                        02-Day - Täglich um 23:59 wird der Verbrauch des vergangenen Tages im Datenpunkt Stromzähler.Hager.Verbrauch.Day gespeichert.

                                        ! // NEU - Zählerstand vom Anfang des Tages wird ermittelt // ! var cronStr = "59 23 * * *"; ! var idHAGVorwert = "javascript.0.Stromzähler.Hager.tmp.Total-d"; var idHAGTotal = "smartmeter.0.1-0:1_8_0*255.value"; /*Stromverbrauch insgesamt*/ var idHAGZiel = "javascript.0.Stromzähler.Hager.Verbrauch.Day"; var debug = false; ! createState(idHAGZiel, 0, { name: 'Stromverbrauch Täglich', desc: 'Stromverbrauch Täglich', type: 'number', unit: 'kWh', role: 'value' }); ! createState(idHAGVorwert, 0, { name: 'Stromverbrauch Gesamt Tag', desc: 'Stromverbrauch Gesamt Tag', type: 'number', unit: 'kWh', role: 'value' }); ! function haupt () { var nVorwert = getState(idHAGVorwert).val; var nAktuell = getState(idHAGTotal).val; var nDiff = ((nAktuell * 10) - (nVorwert * 10) ) / 10; setState(idHAGZiel, nDiff, true); if(debug) log("Aus: " + nAktuell +" - "+ nVorwert + " = " + nDiff); var handler = on ({id: idHAGZiel, change: 'any'}, function(data) { setState(idHAGVorwert, (nAktuell*10)/10, true); unsubscribe(handler); }); } ! // regelmässige Wiederholungen // ----------------------------------------------------------------------------- schedule(cronStr, haupt); !

                                        03-Week - Montags um 00:00 wird der Verbrauch der vergangenen Wocheim Datenpunkt Stromzähler.Hager.Verbrauch.Week gespeichert.

                                        ! // NEU - Zählerstand vom Anfang der Woche wird ermittelt // ! var cronStr = "0 0 * * 1"; ! var idHAGVorwert = "javascript.0.Stromzähler.Hager.tmp.Total-w"; var idHAGTotal = "smartmeter.0.1-0:1_8_0*255.value"; /*Stromverbrauch insgesamt*/ var idHAGZiel = "javascript.0.Stromzähler.Hager.Verbrauch.Week"; var debug = false; ! createState(idHAGZiel, 0, { name: 'Stromverbrauch Wöchentlich', desc: 'Stromverbrauch Wöchentlich', type: 'number', unit: 'kWh', role: 'value' }); ! createState(idHAGVorwert, 0, { name: 'Stromverbrauch Gesamt Wöchentlich', desc: 'Stromverbrauch Gesamt Wöchentlich', type: 'number', unit: 'kWh', role: 'value' }); ! function haupt () { var nVorwert = getState(idHAGVorwert).val; var nAktuell = getState(idHAGTotal).val; var nDiff = ((nAktuell * 10) - (nVorwert * 10) ) / 10; setState(idHAGZiel, nDiff, true); if(debug) log("Aus: " + nAktuell +" - "+ nVorwert + " = " + nDiff); var handler = on ({id: idHAGZiel, change: 'any'}, function(data) { setState(idHAGVorwert, (nAktuell*10)/10, true); unsubscribe(handler); }); } ! // regelmässige Wiederholungen // ----------------------------------------------------------------------------- schedule(cronStr, haupt); !

                                        04-Month - am 1. eines Monats wird der Verbrauch des Vormonats im Datenpunkt Stromzähler.Hager.Verbrauch.Month gespeichert.

                                        ! ````
                                        // NEU - Zählerstand vom Anfang des Monats wird ermittelt
                                        //
                                        ! var cronStr = "0 0 1 * ";
                                        ! var idHAGVorwert = "javascript.0.Stromzähler.Hager.Total-m";
                                        var idHAGTotal = "smartmeter.0.1-0:1_8_0
                                        255.value"; /Stromverbrauch insgesamt/
                                        var idHAGZiel = "javascript.0.Stromzähler.Hager.Verbrauch.Month";
                                        var debug = true;
                                        ! createState(idHAGZiel, 0, {
                                        name: 'Stromverbrauch Monatlich',
                                        desc: 'Stromverbrauch Monatlich',
                                        type: 'number',
                                        unit: 'kWh',
                                        role: 'value'
                                        });
                                        ! createState(idHAGVorwert, 0, {
                                        name: 'Stromverbrauch Gesamt Monatlich',
                                        desc: 'Stromverbrauch Gesamt Monatlich',
                                        type: 'number',
                                        unit: 'kWh',
                                        role: 'value'
                                        });
                                        ! function haupt () {
                                        var nVorwert = getState(idHAGVorwert).val;
                                        var nAktuell = getState(idHAGTotal).val;
                                        var nDiff = ((nAktuell * 10) - (nVorwert * 10) ) / 10;
                                        setState(idHAGZiel, nDiff, true);
                                        if(debug) log("Aus: " + nAktuell +" - "+ nVorwert + " = " + nDiff);
                                        var handler = on ({id: idHAGZiel, change: 'any'}, function(data) {
                                        setState(idHAGVorwert, (nAktuell*10)/10, true);
                                        unsubscribe(handler);
                                        });
                                        }
                                        ! // regelmässige Wiederholungen
                                        // -----------------------------------------------------------------------------
                                        schedule(cronStr, haupt);

                                        
                                        ******* NEU *******
                                        
                                        >! ````
                                        // NEU - Zählerstand vom Anfang der akt. Stunde wird ermittelt
                                        //
                                        >! var cronH           = "0 * * * *";
                                        var cronD           = "59 23 * * *";
                                        var cronW           = "0 0 * * 1";
                                        var cronM           = "0 0 1 * *";
                                        >! var idHAGTotH       = "javascript.0.Stromzähler.Hager.tmp.Total-h";
                                        var idHAGTotD       = "javascript.0.Stromzähler.Hager.tmp.Total-d";
                                        var idHAGTotW       = "javascript.0.Stromzähler.Hager.tmp.Total-w";
                                        var idHAGTotM       = "javascript.0.Stromzähler.Hager.tmp.Total-m";
                                        var idHAGTotal      = "smartmeter.0.1-0:1_8_0*255.value";               /*Stromverbrauch insgesammt*/
                                        var idHAGZielH      = "javascript.0.Stromzähler.Hager.Hour";
                                        var idHAGZielD      = "javascript.0.Stromzähler.Hager.Day";
                                        var idHAGZielW      = "javascript.0.Stromzähler.Hager.Week";
                                        var idHAGZielM      = "javascript.0.Stromzähler.Hager.Month";
                                        var debug           = false;
                                        >! var DPArray         = [idHAGTotH, idHAGTotD , idHAGTotW, idHAGTotM, idHAGZielH, idHAGZielD, idHAGZielW, idHAGZielM];
                                        var DPUnit          = "kWh";
                                        >! DPArray.forEach(function(wert, index, array) {
                                            var DPType = wert.split(".");
                                            var DPDescr = "Power consumption of " + (DPType[DPType.length - 1]);
                                        
                                            if(index > 3) DPUnit = "Wh";
                                            createState(wert, 0, {
                                                name: DPDescr,
                                                desc: DPDescr,
                                                type: 'number',
                                                unit: DPUnit,
                                                role: 'value'
                                            });
                                        });
                                        >! function haupt (VorId, ZielId) {
                                            var nVorwert = getState(VorId).val;
                                            var nAktuell = getState(idHAGTotal).val;
                                            var nDiff = ((nAktuell * 10) - (nVorwert * 10)) * 100;
                                            setState(ZielId, nDiff, true);
                                            if(debug) log("Aus: " + nAktuell +" - "+ nVorwert + " = " + nDiff);
                                            var shandler = on ({id: ZielId, change: 'any'}, function(data) {
                                                setState(VorId, (nAktuell*10)/10, true);
                                                unsubscribe(shandler); 
                                            });
                                        }
                                        >! // regelmässige Wiederholungen
                                        // -----------------------------------------------------------------------------
                                        >! schedule(cronH, function () {
                                            haupt(idHAGTotH, idHAGZielH);
                                        });
                                        schedule(cronD, function () {
                                            haupt(idHAGTotD, idHAGZielD);
                                        });
                                        schedule(cronW, function () {
                                            haupt(idHAGTotW, idHAGZielW);
                                        });
                                        schedule(cronM, function () {
                                            haupt(idHAGTotM, idHAGZielM);
                                        });
                                        >! ````
                                        
                                        Wie ihr sieht, sind das fast identische Skripte, die zu unterschiedlichen Zeitpunkten aufgerufen werden. Denkt daran, die Werte in der DB zu speichern. Ich empfehle die Option "nur bei Änderung" einzuschalten.
                                        
                                        Die minütlichen Werte werden eh aus dem Datenpunkt des Smartmeters: Momentanwert Gesamtwirkleistung (Total) gespeichert.
                                        
                                        <u>TODO:</u>
                                        
                                        Alles zum einen Skript zusammenfassen. ******* Siehe NEU *******
                                        
                                        Durchschnittswerte berechnen.
                                        
                                        Kommentare und Kritik sind sehr willkommen.
                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          simpixo last edited by

                                          Ich erhielt heute die folgende Meldung. ich habe gerade festgestellt das seit 13 Uhr keine Daten historisiert wurden. Hab die Ubuntu Maschine rebootet und jetzt geht es wieder der restart des Adapters hat nicht geholfen. Die Ampel des Adapters war rot

                                          smartmeter.0	2017-02-02 20:34:37.125	info	SERIALPORT ERROR: Error: Error Resource temporarily unavailable Cannot lock port
                                          smartmeter.0	2017-02-02 20:34:37.084	info	starting. Version 0.2.0 in /opt/iobroker/node_modules/iobroker.smartmeter, node: v4.7.0
                                          

                                          Woran könnte das liegen?

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

                                            sagt syslog irgendwas?

                                            Gibts nen anderen Prozess der ggf den Seriellen port benutzt?

                                            Gabs 13 Uhr irgendwas im Log?

                                            Ingo F

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            981
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            279
                                            3620
                                            1948746
                                            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