Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test lovelace 4.x

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test lovelace 4.x

    This topic has been deleted. Only users with topic management privileges can see it.
    • Garfonso
      Garfonso Developer @Armilar last edited by

      @armilar said in Test lovelace 4.x:

      Sobald man wider die Funktion oder den Raum je Device neu setzt, legt sich die Entität wieder an und wird auch sofort korrekt visualisiert.

      Puh...
      Spontane Idee dazu:
      irgendwas ist in deinen Objekten, was den type-detector oder adapter bei der automatischen Erkennung aller Geräte beim start aussteigen lässt. Da bitte mal ins log gucken! Gerne ein debug log von einem Adapterstart mir zukommen lassen (wenn es geht Version 4.1.11). Da muss ich vermutlich was reparieren.

      Wenn du an Objekten was änderst (z.B. raum & funktion, aber auch der Name oder was anderes), dann bekommt der Adapter das mit und legt ausschließlich für die veränderten Objekte neue Entities an (falls notwendig). Daher funktioniert es bei dir trotzdem noch auf dem Weg. Aber das ist natürlich nicht so gedacht. 😄

      @armilar said in Test lovelace 4.x:

      Hat sich erledigt. Eine Gruppierung (Raum/Funktion) auf einem Media Alias hat einen Error erzeugt... Im alexa.0...player Verzeichnis funktioniert es und die automatische Suche der Entitäten somit auch...

      Zeig mir doch bitte trotzdem mal ein Log von dem Fehler.

      1 Reply Last reply Reply Quote 1
      • Garfonso
        Garfonso Developer @Erstam last edited by

        @erstam

        Hast du eine Idee dazu, wie der entity aussieht bzw. die ioBroker Objekte? Irgendwas ist da merkwürdig...

        bei mir scheint es auch zu funktionieren. 😕

        Armilar E 2 Replies Last reply Reply Quote 0
        • Armilar
          Armilar Most Active Forum Testing @Garfonso last edited by

          @garfonso

          Bin heute zeitlich etwas sehr gebunden. Werde das heute Abend mal alles (LOG's/Retest) zusammenbringen.

          1 Reply Last reply Reply Quote 1
          • M
            manrum1 @David G. last edited by

            @garfonso Danke für die Antwort.
            @david-g Ich würde das Verhalten halt gerne verstehen. Liegt es an Lovelace oder an der Implementierung der Karte? Grundsätzlich würde ich gerne selbst entscheiden, wie es sein soll.

            Garfonso 1 Reply Last reply Reply Quote 0
            • J
              jpakusch @Garfonso last edited by

              @garfonso Erstmal Danke für die Antwort!
              ON_Actuual hatte ich befüllt, irgendwie wurde das aber immer wieder entfernt.
              Ich musste dann auch manuell noch die Rolle auf light.Switch setzen, das hat der "Assistent" bei der GEräteerstellung irgendwie nicht gemacht. als mir das aufgefallen war klappte auch alles.

              (da du KNX nutzt, solltest du das Konzept ja kennen, oder? 😉 )
              

              ...Kenn' ick! 😉

              1 Reply Last reply Reply Quote 0
              • E
                Erstam Developer @Garfonso last edited by Erstam

                @garfonso

                Danke erstmal für deine Mühe! Ich weiß es echt zu schätzen, dass du dir immer wieder die Zeit nimmst, selbst die absurdesten Fehler zu prüfen. Es handelt sich dabei um eine neue Lampe, die ich über den govee-local-Adapter ansteuere und die über alias gemappt ist. Ich habe aktuell den folgenden Fix (die beiden Initialisierungsblöcke in der rgbGetParser-Funktion unten) in den Converter eingebaut, der die Abstürze bisher zuverlässig verhindert. Wenn ich jetzt noch rausgefunden hätte, wie ich Push-Requests bei Github erstelle, hätte ich das gleich dort eingestellt.

                Hier erstmal der Ausschnitt der rgbGetParser-Funktion aus /lib/converters/light.json. Unten auch die Objektstruktur.

                const rgbGetParser = (index, entity, attr, state) => {
                    let targetAttributes = entity.attributes;
                    if (entity.state !== 'on') {
                        targetAttributes = entity.context.STATE.storedValues;
                    }
                
                    // Fix Erstam - Ensure rgb_color is initialized
                    targetAttributes.rgb_color = targetAttributes.rgb_color || [0, 0, 0];
                
                    // Fix Erstam - Ensure rgbw_color is initialized if white state is present
                    if (states.white) {
                        targetAttributes.rgbw_color = targetAttributes.rgbw_color || [0, 0, 0, 0];
                    }
                
                    let val = state ? state.val || 0 : 0;
                    val = val / attr.max * 255;
                    targetAttributes.rgb_color[index] = val;
                
                    // ... //
                }
                
                [
                    {
                        "_id": "alias.0.RoomX.Licht.Decke",
                        "type": "device",
                        "common": {
                            "name": "RoomX Licht Decke"
                        },
                        "native": {},
                        "user": "system.user.admin",
                        "ts": 1610277952286,
                        "acl": {
                            "object": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator"
                        },
                        "from": "system.adapter.javascript.0"
                    },
                    {
                        "common": {
                            "name": "RoomX Licht Decke",
                            "type": "boolean",
                            "role": "switch.light",
                            "read": true,
                            "write": true,
                            "custom": {},
                            "alias": {
                                "id": "govee-local.0.11:F4:D0:C9:07:68:77:38.devStatus.onOff",
                                "name": "RoomX Licht Decke"
                            }
                        },
                        "native": {},
                        "type": "state",
                        "from": "system.adapter.javascript.0",
                        "user": "system.user.admin",
                        "ts": 1733225567992,
                        "_id": "alias.0.RoomX.Licht.Decke.Switch",
                        "acl": {
                            "object": 1636,
                            "state": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator"
                        }
                    },
                    {
                        "common": {
                            "name": "RoomX Licht Decke",
                            "role": "level.brightness",
                            "type": "number",
                            "unit": "%",
                            "read": true,
                            "write": true,
                            "alias": {
                                "id": "govee-local.0.11:F4:D0:C9:07:68:77:38.devStatus.brightness"
                            },
                            "custom": {}
                        },
                        "native": {},
                        "type": "state",
                        "from": "system.adapter.javascript.0",
                        "user": "system.user.admin",
                        "ts": 1733225567992,
                        "_id": "alias.0.RoomX.Licht.Decke.brightness",
                        "acl": {
                            "object": 1636,
                            "state": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator"
                        }
                    },
                    {
                        "common": {
                            "name": "RoomX Licht Decke",
                            "type": "string",
                            "role": "level.color.rgb",
                            "read": true,
                            "write": true,
                            "custom": {},
                            "alias": {
                                "id": "govee-local.0.11:F4:D0:C9:07:68:77:38.devStatus.color",
                                "name": "RoomX Licht Decke"
                            }
                        },
                        "native": {},
                        "type": "state",
                        "from": "system.adapter.javascript.0",
                        "user": "system.user.admin",
                        "ts": 1733225567992,
                        "_id": "alias.0.RoomX.Licht.Decke.color",
                        "acl": {
                            "object": 1636,
                            "state": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator"
                        }
                    },
                    {
                        "common": {
                            "name": "RoomX Licht Decke",
                            "type": "number",
                            "role": "level.color.temperature",
                            "read": true,
                            "write": true,
                            "unit": "K",
                            "alias": {
                                "id": "govee-local.0.11:F4:D0:C9:07:68:77:38.devStatus.colorTemInKelvin",
                                "name": "RoomX Licht Decke",
                                "read": "(val < 2200) ? 2200 : val",
                                "write": "val"
                            },
                            "min": 2200,
                            "max": 7000
                        },
                        "native": {},
                        "type": "state",
                        "from": "system.adapter.javascript.0",
                        "user": "system.user.admin",
                        "ts": 1733225567993,
                        "_id": "alias.0.RoomX.Licht.Decke.colortemp",
                        "acl": {
                            "object": 1636,
                            "state": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator"
                        }
                    },
                    {
                        "type": "state",
                        "common": {
                            "name": "RoomX Licht Decke",
                            "role": "boolean",
                            "type": "boolean",
                            "read": true,
                            "write": true,
                            "alias": {
                                "id": "govee-app.0.11:F4:D0:C9:07:68:77:38.snapshots.1887829"
                            }
                        },
                        "_id": "alias.0.RoomX.Licht.Decke.scene_bright",
                        "native": {},
                        "acl": {
                            "object": 1636,
                            "state": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator"
                        },
                        "from": "system.adapter.admin.0",
                        "user": "system.user.admin",
                        "ts": 1733585675075
                    },
                    {
                        "type": "state",
                        "common": {
                            "name": "RoomX Licht Decke",
                            "role": "boolean",
                            "type": "boolean",
                            "read": true,
                            "write": true,
                            "alias": {
                                "id": "govee-app.0.11:F4:D0:C9:07:68:77:38.snapshots.1887825"
                            },
                            "custom": {
                                "lovelace.0": {
                                    "enabled": true,
                                    "attr_has_time": false,
                                    "attr_has_date": true,
                                    "entity": "scene",
                                    "name": "RoomX_Licht_Decke_scene_evening"
                                }
                            }
                        },
                        "_id": "alias.0.RoomX.Licht.Decke.scene_evening",
                        "native": {},
                        "acl": {
                            "object": 1636,
                            "state": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator"
                        },
                        "from": "system.adapter.admin.0",
                        "user": "system.user.admin",
                        "ts": 1733242474201
                    },
                    {
                        "type": "state",
                        "common": {
                            "name": "RoomX Licht Decke",
                            "role": "boolean",
                            "type": "boolean",
                            "read": true,
                            "write": true,
                            "alias": {
                                "id": "govee-app.0.11:F4:D0:C9:07:68:77:38.snapshots.1876469"
                            },
                            "custom": {
                                "lovelace.0": {
                                    "enabled": true,
                                    "attr_has_time": false,
                                    "attr_has_date": true,
                                    "entity": "scene",
                                    "name": "RoomX_Licht_Decke_scene_night"
                                }
                            }
                        },
                        "_id": "alias.0.RoomX.Licht.Decke.scene_night",
                        "native": {},
                        "acl": {
                            "object": 1636,
                            "state": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator"
                        },
                        "from": "system.adapter.admin.0",
                        "user": "system.user.admin",
                        "ts": 1733242461619
                    }
                ]
                
                Garfonso 1 Reply Last reply Reply Quote 0
                • Garfonso
                  Garfonso Developer @manrum1 last edited by Garfonso

                  @manrum1 said in Test lovelace 4.x:

                  Ich würde das Verhalten halt gerne verstehen. Liegt es an Lovelace oder an der Implementierung der Karte

                  Das Verhalten liegt daran, dass in HomeAssistant mit der Karte cover entities gesteuert werden. Die haben einen state, der kann sein open, closed, opening, closing, unknown. Danach entscheidet die Karte, welche Knöpfe sie anzeigt.
                  Nun haben wir in ioBroker diesen state nicht. Der Adapter mapped daher das level (wenn vorhanden) auf offen/zu und setzt den State entsprechend. Ein möglicher "Hack" wäre da immer unknown anzugeben. Da weiß ich ehrlich gesagt nicht, wie sich die Karte dann verhält.

                  @manrum1 said in Test lovelace 4.x:

                  Grundsätzlich würde ich gerne selbst entscheiden, wie es sein soll.

                  Um ehrlich zu sein: Dann ist lovelace vielleicht nicht die richtige Visualisierung für dich (und HomeAssistant als Plattform auch nicht, falls dir das mal jemand sagen sollte 😉 ). Da ist vieles festgegeben und da kommt man relativ schwer drum herum. Wenn du eine feste Vorstellung hast und die basteln möchtest, guck lieber eine der vielen anderen Möglichkeiten (z.B. vis2, was langsam aus der beta kommt oder so) an.
                  In dem konkreten Fall besteht natürlich die Möglichkeit eine Custom-Karte zu verwenden oder selbst das verhalten mit Knöpfen zusammen zu basteln oder so (indem du entsprechende Service_calls verwendest als tab-action). Aber wenn du da ständig auf Punkte stößt, die du umschiffen musst, macht es irgendwann auch keinen Spaß mehr (besonders wenn ein update des frontends das dann alles zerschießen sollte). Auch wenn ich natürlich froh bin für jeden User von lovelace. 🙂

                  Persönlich hab ich hier eh hauptsächlich für alle Räume Knöpfe gebaut mit "offen", "zu" und "schatten" (also so fahren, dass der Rolladen unten ist, aber die Ritzen noch auf sind). Da mit slidern rumfummeln will ich nicht. 😉

                  Aber da ist ja jeder anders.

                  1 Reply Last reply Reply Quote 0
                  • Garfonso
                    Garfonso Developer @Erstam last edited by

                    @erstam said in Test lovelace 4.x:

                    folgenden Fix (die beiden Initialisierungsblöcke in der rgbGetParser-Funktion unten) in den Converter eingebaut, der die Abstürze bisher zuverlässig verhindert.

                    Ok, gut zu wissen. 🙂
                    Irgendwie hab ich beim letzten mal falsch gedacht und dachte attributes im Ganzen ist null. Aber so ist das schon deutlich sinnvoller.

                    Das sagend, werde ich den Fix (erstmal) nicht übernehmen. Denn eigentlich (tm) sollten auch rgb_color bzw. rgbw_color nicht null sein. Wenn du etwas weiter unten im Code guckst, siehst du, wie es initialisiert wird.
                    Da möchte ich erstmal ergründen, warum diese Initialisierung irgendwo mit null überschrieben wird. Hm.

                    Kann es sein, dass die Lampe den RGB (oder auch andere) states in bestimmten Situationen "löscht" (also auf null stellt, sollte im admin auch als null auftauchen). Das wäre eine erste Vermutung, wo das herkommen könnte.

                    E 1 Reply Last reply Reply Quote 0
                    • E
                      Erstam Developer @Garfonso last edited by

                      @garfonso

                      Hi Garfonso!

                      Das kann durchaus sein. Die Lampen können zwischen einem Weiß-Betriebsmodus, der über die Lichttemperatur gesteuert wird, und einem Farb-Betriebsmodus umschalten. Vom Weiß-Modus in den Farbmodus wird die Lichttemperatur auf 0 gesetzt. Anders herum sehe ich allerdings nicht, dass die Farbwerte auf null gesetzt würden (oder auf 0), insofern weiß ich nicht, warum ich immer wieder Crashes hatte.

                      Ausgestiegen ist er bei der Zeile targetAttributes.rgb_color[index] = val;. Daher sah es für mich so aus, dass rgb_color nicht initialisiert war.

                      1 Reply Last reply Reply Quote 1
                      • E
                        Erstam Developer last edited by

                        Ich habe aktuell ein Problem mit der Aktivierung meiner Alarmanlage über die Lovelace-Oberfläche. Da ich diese jetzt eine ganze Zeit wegen technischer Probleme nicht mehr genutzt habe, weiß ich nicht, wann es zuerst aufgetreten ist. Leider lässt sich die Alarmanlage aktuell nicht aktivieren, der Service Call schlägt fehl. Im Log erhalte ich die folgende Fehlermeldung:

                        lovelace.0
                        2024-12-15 17:09:12.351	warn	Unknown entity: alarm_control_panel.defaultAlarm for service call {"type":"call_service","domain":"alarm_control_panel","service":"alarm_arm_away","service_data":{"code":"1234"},"id":88}
                        

                        Vorher stand da mein eigener Alarm-State. Ich hab es testweise mal auf den defaultAlarm umgestellt, erhalte aber die selbe Warnung. Hier die YAML für die Karte, ist absolut Standard.

                        type: alarm-panel
                        entity: alarm_control_panel.defaultAlarm
                        name: Alarmanlage
                        states:
                          - arm_home
                          - arm_away
                        
                        Garfonso 1 Reply Last reply Reply Quote 0
                        • Garfonso
                          Garfonso Developer @Erstam last edited by

                          @erstam
                          Ja, wie heißt denn dein alarm_control_panel entity? Trag da doch mal eins ein, was es auch gibt.

                          Ich habe im Kopf, dass sich da tatsächlich was verändert hat. kopfkratz

                          Hab gerade im Code geguckt und getestet, eigentlich (tm) sollte es dsa entity alarm_control_panel.defaultAlarm geben und es zeigt per default auf lovelace.0.control.alarm. Damit geht bei mir scharf schalten und deaktivieren (nur "states" konnte ich im UI nicht klicken, da könnte ich mal gucken, warum nicht).

                          Kannst du mal gucken, ob bei dir ein alarm_control_panel entity existiert? Z.B. in den Instanzeinstellungen bei "entitäten" oder gucken, was die Karte so als optionen bei den entities anzeigt?

                          E 1 Reply Last reply Reply Quote 0
                          • E
                            Erstam Developer @Garfonso last edited by

                            Hi @garfonso,

                            Entschuldige die späte Antwort, ich war beruflich eingespannt. Ich habe jetzt mal Diverses ausprobiert und es läuft mit dem Standard-Alarm-Panel wieder. Der Fehler scheint bei mir gelegen zu haben. Das Mushroom Card Alarm Panel klappt nicht, aber das kann an einer Versionsinkompatibilität liegen.

                            Ein anderes nerviges Verhalten habe ich aber leider feststellen müssen. Ich benutze ein paar Seiten in meinem Dashboard für smarte Schalter mit Display (NSPanel Pro). Für diese verstecke ich den Header und habe bei den entsprechenden Browser-Objekten, z.B. "lovelace.0.instances.8e7570cc-fae9c9a6" den "hideHeader" State jeweils auf true gesetzt. Bei allen anderen Browser-Objekten habe ich die entsprechenden States auf false gesetzt, ebenso den Default-Wert "lovelace.0.instances.hideHeader".

                            Nur leider "vergisst" Lovelace immer wieder, in den Browsern den Header zu zeigen, in denen er das soll. Ich muss teilweise mehrmals Reload drücken, bis die Headerbar angezeigt wird.

                            Könntest du prüfen, warum dies so ist? Es wäre wirklich toll, wenn die Anzeige des Headers zuverlässig über die States steuerbar wäre.

                            Viele Grüße!

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

                              Hallo,

                              ich nutze Lovelace zur Virtualisierung. Allerdings gibt es und Home Assistant eine PV Karte und man kann die Kacheln per Drag&Drop versetzen. Wird es ein Update für iobroker geben? Auch die Berechnung der Stromwerte finde ich klasse, dann müsste ich nicht alle Formeln selber ausdenken.
                              Weiß jemand, wie es mit dem Adapter weitergeht, oder besser alles iobroker steuern und dann mit Home Assistant visualisieren?

                              VG
                              srkonus

                              Armilar Garfonso 2 Replies Last reply Reply Quote 0
                              • Armilar
                                Armilar Most Active Forum Testing @srkonus last edited by Armilar

                                @srkonus

                                Die Sections (Drag and Drop) ist ja bei HA auch noch experimentiell... - würde mich jedoch auch interessieren...

                                Durch das Hinzufügen diverser Cards kannst du aber sehr nah an HA rankommen

                                Nur mal ein Beispiel mit Masonry:

                                1761fc64-9015-4ed5-a581-c715f7940ac5-image.png

                                Welche Berechnung der Stromwerte meinst du?

                                die?:
                                66f783d0-e716-4191-8e84-583c56f2d1f7-image.png

                                oder die?:
                                163ee9ac-f625-4a5e-b108-dd30436cdca5-image.png

                                Ist alles nur im ioBroker Lovelace Adapter... Mein HA ist jetzt "für immer" deaktiviert 😉

                                Man kann auch super den Energiefluss-Erweitert als Frame einbinden und bearbeiten 😉

                                S 1 Reply Last reply Reply Quote 1
                                • S
                                  srkonus @Armilar last edited by

                                  @armilar Ich meine z.B. Eigenverbrauch, Eigenverbrauch in %, Gesamtmengen...
                                  Einiges habe ich schon, anderes nocht nicht

                                  Armilar 1 Reply Last reply Reply Quote 0
                                  • Armilar
                                    Armilar Most Active Forum Testing @srkonus last edited by

                                    @srkonus

                                    okay, solche Visualisierungen sind bei mir in Grafana... Wäre aber hier ebenso möglich...

                                    S 1 Reply Last reply Reply Quote 0
                                    • S
                                      srkonus @Armilar last edited by

                                      @armilar Mir würde es ja schon reichen, die Werte zu haben und als Text anzuzeigen

                                      1 Reply Last reply Reply Quote 0
                                      • Armilar
                                        Armilar Most Active Forum Testing @StephanH last edited by Armilar

                                        @stephanh

                                        Ist das Thema noch aktuell?

                                        9917bf65-01f1-4e91-8bb3-a7a4a2f69d07-image.png

                                        Ich hatte da irgendwann mal ein kurzes TypeSkript geschrieben:

                                        Unter:
                                        https://www.electricitymaps.com/pricing
                                        kannst du einen kostenlosen API-Token bekommen

                                        const token_Auth: string = 'tJCojBgXXXXXXX';
                                        
                                        schedule("*/15 * * * *", async () => {
                                            exec('curl \'https://api.electricitymap.org/v3/power-breakdown/latest?lat=53.4181&lon=7.2199\' \\   -H \'auth-token: tJCojBgXXXXXXX\'', async (error, result, stderr) => {
                                                //console.info(result);
                                                let dataObj = JSON.parse(result) 
                                                //console.log("fossilFreePercentage: " + dataObj.fossilFreePercentage);
                                                setStateAsync('0_userdata.0.electricitymap.fossilFreePercentage', 100 - dataObj.fossilFreePercentage);
                                                //console.log("renewablePercentage: " + dataObj.renewablePercentage);
                                                setStateAsync('0_userdata.0.electricitymap.renewablePercentage', dataObj.renewablePercentage);
                                        
                                            });
                                        
                                            exec('curl \'https://api.electricitymap.org/v3/carbon-intensity/latest?zone=DE\' \\   -H \'auth-token: tJCojBgXXXXXXX\'', async (error, result, stderr) => {
                                                console.info(result);
                                                let dataObj = JSON.parse(result) 
                                                //console.log("carbonIntensity: " + dataObj.carbonIntensity);
                                                setStateAsync('0_userdata.0.electricitymap.carbonIntensity', dataObj.carbonIntensity);
                                            });
                                        });
                                        

                                        Die Datenpunkte für:

                                        0_userdata.0.electricitymap.fossilFreePercentage
                                        0_userdata.0.electricitymap.renewablePercentage
                                        0_userdata.0.electricitymap.carbonIntensity

                                        müsstest du dir selbst anlegen und wie in diesem Fall die fossilFreePercentage als Entität definieren und eintragen

                                        ce32c8f9-3dd1-403f-ad6a-eb10b2540b81-image.png

                                        S 1 Reply Last reply Reply Quote 0
                                        • S
                                          srkonus @Armilar last edited by

                                          @armilar Was ist denn electricitymaps.com?

                                          Armilar 1 Reply Last reply Reply Quote 0
                                          • Armilar
                                            Armilar Most Active Forum Testing @srkonus last edited by

                                            @srkonus

                                            Eine API, die den non-fossilen Anteil der Energie ermittelt...

                                            ist aber ein anderes Thema... nicht das von eben 😊

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            783
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            85
                                            856
                                            210233
                                            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