Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Lovelace, Devices, etc

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Lovelace, Devices, etc

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

      Hallo zusammen,

      ich habe folgendes Problem: Ich habe ein Teihe von gleichartigen Devices (Rollos/Cover), die ich in mein Lovelace-Dashboard eingebunden haben.
      09b97850-c1de-4a0a-9961-406b75ad8d6c-grafik.png
      Das hat noch einigem hin un her auch funktioniert. Ich möchte aber jetzt noch die einzelnen Rollos in Gruppen zusammenfassen und mit einer Karte steuere.
      Z.B.: Alle Rollos, Rollos oben, Rollos unten. Jeweils eine Karte analog zu den einzel Karten.

      Ich habe versucht mittels Script einen 'channel'mit der Rolle 'blind' anzulegen und darunter 'states', die den States eines Rollos entsprechen. Diese haben auch die entsprechenden Rollen.
      2f9a1ae4-3e8d-4572-9e61-e4adbdf4566c-grafik.png
      Die Idee ist, per Script die Status auf alle zugeordneten Rollos zu mappen.
      Im DeviceManager wird dieses Konstrukt auch als Jalousie erkannt.
      6b08ba4b-3e8c-4b0d-8a98-ddba7214d1f2-grafik.png
      Aber in Lovelace taucht es nicht bei der entsprechenden Auswahlliste auf.
      Kann mir jemand auf die Sprünge helfen. Wo liegt mein Dankfehler?

      Danke

      stephan1827 M Swisslizard 3 Replies Last reply Reply Quote 0
      • stephan1827
        stephan1827 @Milraun last edited by

        @milraun ich kann Dir wahrscheinlich nicht helfen, da ich selbst gerade mit lovelace anfange, aber hast Du die neue Gruppe einem Raum und einer Funktion zugeordnet?

        Kannst Du mir verraten, wie Du die Karten erstellt hast? Welche Elemente hast Du benutzt?

        M 1 Reply Last reply Reply Quote 0
        • M
          Milraun @stephan1827 last edited by Milraun

          @stephan1827 das sind Karten von den Mushroom-Cards, die ich als Custom-Card eingebunden habe.

          Ich habe jeweils drei Karten in einen horizontalen Stack gepackt.

          stephan1827 1 Reply Last reply Reply Quote 0
          • M
            Milraun @Milraun last edited by

            @milraun Ich bin etwas weiter gekommen aber leider noch nicht 'glücklich'. Kann mir jemand sagen ob und wenn ja wie ich ein 'Device' von Javascript aus anlegen kann?

            David G. 1 Reply Last reply Reply Quote 0
            • David G.
              David G. @Milraun last edited by David G.

              @milraun

              Es macht keinen Sinn, ein Device mit einen Script anzulegen.

              Schreib dir dein Script, was den einzelnen DP befüllt für deine Rollogruppe.
              Teste damit, ob alles klappt wie es soll.

              Danach würde ich im Gerätemanager das Rollo anlegen und dort den DP angeben.

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

                @david-g Hab ich jetzt so gemacht (weil es anders nicht funktioniert hat). Aber warum macht es keinen Sinn das aus einem Script raus zu machen?

                David G. 1 Reply Last reply Reply Quote 0
                • David G.
                  David G. @Milraun last edited by

                  @milraun

                  Ich sehe zumindest keinen.
                  Du musst ja vermutlich keine 100 Rollos anlegen. Da hat man es über die gui vermutlich wesentlich schneller erledigt als sich da ein Skript zu schreiben was recht umfangreich wäre (falls es denn geht).

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

                    @david-g Meine Idee war es das Ganze auf Dauer zu verallgemeinern. Man packt gleichartige Geräte in eine 'Gruppen-Enum' (SchalterErdgeschoss) und bekommt automatisch Devices angelegt, mit denen diese dann gesteuert werden können. Aber das Geheimnis, was ein Device ist scheint man nicht so einfach aus den Objektdaten herauslesen zu können.

                    Mein aktuelles Problem habe ich jetzt 'händisch' gelöst.

                    David G. 1 Reply Last reply Reply Quote 0
                    • David G.
                      David G. @Milraun last edited by

                      @milraun sagte in Lovelace, Devices, etc:

                      Aber das Geheimnis, was ein Device ist scheint man nicht so einfach aus den Objektdaten herauslesen zu können.

                      Was für ein Device es ist entscheiden die Rollen der Objekte. Diese müssen korrekt vergeben sein.

                      Für lovelace (ob auch für den iobroker weiß ich nicht) muss eben auch ein Raum zugeordnet sein.

                      1 Reply Last reply Reply Quote 0
                      • stephan1827
                        stephan1827 @Milraun last edited by

                        @milraun Könntest Du den code von Karten posten?

                        1 Reply Last reply Reply Quote 0
                        • M
                          Milraun last edited by

                          @stephan1827

                          type: vertical-stack
                          cards:
                            - type: custom:mushroom-cover-card
                              entity: cover.Kabuff
                              layout: horizontal
                              show_buttons_control: true
                              show_tilt_position_control: false
                              show_position_control: true
                            - type: custom:mushroom-cover-card
                              entity: cover.IngeborgsRaumL
                              name: Ingeborgs Raum links
                              layout: horizontal
                              show_buttons_control: true
                              show_position_control: true
                            - type: custom:mushroom-cover-card
                              entity: cover.IngeborgsRaumR
                              name: Ingeborgs Raum rechts
                              layout: horizontal
                              show_buttons_control: true
                              show_position_control: true
                            - type: custom:mushroom-cover-card
                              entity: cover.RollosErdgeschoss
                              name: Rollos Erdgeschoss
                              layout: horizontal
                              show_buttons_control: true
                              card_mod:
                                style: |
                                  ha-card {
                                    background-color: royalblue;
                                  }
                            - type: custom:mushroom-cover-card
                              entity: cover.RollosHaus
                              show_buttons_control: true
                              layout: horizontal
                              fill_container: true
                              card_mod:
                                style: |
                                  ha-card {
                                    background-color: mediumblue;
                                  }
                          
                          

                          Ich habe noch card-mod für individuelle Farben benutzt. Das kann man natürlich auch weglassen

                          1 Reply Last reply Reply Quote 0
                          • Swisslizard
                            Swisslizard @Milraun last edited by

                            @milraun
                            Stehe irgendwie furchtbar auf dem Schlauch wie ich die Datenpunkte meiner Rollos und Lammelnstoren konfigurieren muss, damit das nachher mit Lovelace und den Mushroom Cards auch funktioniert.

                            Könntest Du die JSON Daten der verschiedenen Datenpunkte die von Deinem Lovelace für 1 Rollo benutzt werden posten?

                            In diesen JSON Strukturen (unter Onject Data zu finden wenn bei den Datenpunkten auf den Stift klickt) müsste eigentlich alles wesentliche drinstehen, ua. unter "custom" auch die Config für Lovelace. Vieleicht begreife ich dann endlich was ich falsch mache.

                            Ähnlich wie Du es in einem Post geschrieben/gefragt hast, möchte ich die Daten für Lovelace per Script anlegen, da auch die Datenpunkte resp. Aliase die ich verwende um Aktorendurcheinander zu bändigen per Script angelegt werden. Mit Deien Daten komme ich da ev einen Schritt weiter.

                            David G. 1 Reply Last reply Reply Quote 0
                            • David G.
                              David G. @Swisslizard last edited by

                              @swisslizard sagte in Lovelace, Devices, etc:

                              ua. unter "custom" auch die Config für Lovelace. Vieleicht begreife ich dann endlich was ich falsch mache.

                              Habe zwar keine Rollos, aber da liegt ggf schon dein Problem.
                              Alle Geräte die mehr als einen Datenpunkt haben, dürfen nicht über custom angelegt werden.
                              Dir DPs müssen sauber mit Raum und Rolle versehen werden, damit sie automatisch und zusammenhörend erkannt werden.

                              Swisslizard 1 Reply Last reply Reply Quote 0
                              • Swisslizard
                                Swisslizard @David G. last edited by Swisslizard

                                @david-g
                                Den Versuch die Geschichte über die Zuweisung von Rollen (u.a. level.blind, level.tilt, value.blind, value.tilt), Raum und zusätzlich auch Funktion (habe da Shutter gewählt) zum laufen zu bringen habe ich bereits gemacht.

                                Leider ohne wirklichen Erfolg. Siehe folgender Screenshot (ich weiss blindsblind in der ID ist deppert, aber es ist ja nur ein Versuch). Unter Custom ist bei allen Datenpunkten nix eingetragen.
                                8e6fa25c-cff3-489f-a87d-2421bd984f4e-grafik.png

                                Im Lovelace Adapter ist anschliessend folgendes sichtbar. Damit kann ich zwar den Lamellenstoren auf und abfahren, aber für den Winkel interessiert sich Lovelace nicht. Warum die Schraubenschlüssel Icons bei den Einträgen grau und nicht blau wie bei den anderen Entities sind habe ich auch noch nicht verstanden.
                                c81b4ea4-5891-419d-9b53-44be34eabb71-grafik.png

                                Habe schon x-Varianten durchprobiert, aber immer ähnliche Resultate im Lovelace Adapter bekommen.

                                Die Datenpunkte sind alles Aliase die per Script generiert werden, d.h. weitere Punkte z.B. für den Stop wären schnell erzeugt. Sie zeigen entweder direkt auf die MQTT Datenpunkte (für die aktuellen Werte) oder sonst auf Userdatenpunkte die zusätzliche Lokik zum Ansteuern des Lamellenstoren triggern. Das geht nicht anders wegen meiner alten, selbst entwickelten Controllerhardware, aber funktioniert problemlos, z.B. wenn ich die Datenpunkte einzeln an Lovelace zuweise und Slider ect. damit verbinde. Nur wenn sie alle zusammen eine Cover Entity sein sollen, kriege ich das nicht hin.

                                David G. 1 Reply Last reply Reply Quote 0
                                • David G.
                                  David G. @Swisslizard last edited by

                                  @swisslizard sagte in Lovelace, Devices, etc:

                                  @david-g
                                  Den Versuch die Geschichte über die Zuweisung von Rollen (u.a. level.blind, level.tilt, value.blind, value.tilt), Raum und zusätzlich auch Funktion (habe da Shutter gewählt) zum laufen zu bringen habe ich bereits gemacht.

                                  Leider ohne wirklichen Erfolg. Siehe folgender Screenshot (ich weiss blindsblind in der ID ist deppert, aber es ist ja nur ein Versuch). Unter Custom ist bei allen Datenpunkten nix eingetragen.
                                  8e6fa25c-cff3-489f-a87d-2421bd984f4e-grafik.png

                                  Im Lovelace Adapter ist anschliessend folgendes sichtbar. Damit kann ich zwar den Lamellenstoren auf und abfahren, aber für den Winkel interessiert sich Lovelace nicht. Warum die Schraubenschlüssel Icons bei den Einträgen grau und nicht blau wie bei den anderen Entities sind habe ich auch noch nicht verstanden.
                                  c81b4ea4-5891-419d-9b53-44be34eabb71-grafik.png

                                  Habe schon x-Varianten durchprobiert, aber immer ähnliche Resultate im Lovelace Adapter bekommen.

                                  Die Datenpunkte sind alles Aliase die per Script generiert werden, d.h. weitere Punkte z.B. für den Stop wären schnell erzeugt. Sie zeigen entweder direkt auf die MQTT Datenpunkte (für die aktuellen Werte) oder sonst auf Userdatenpunkte die zusätzliche Lokik zum Ansteuern des Lamellenstoren triggern. Das geht nicht anders wegen meiner alten, selbst entwickelten Controllerhardware, aber funktioniert problemlos, z.B. wenn ich die Datenpunkte einzeln an Lovelace zuweise und Slider ect. damit verbinde. Nur wenn sie alle zusammen eine Cover Entity sein sollen, kriege ich das nicht hin.

                                  Die Frage ist, ob lovelace selber den Winkel überhaupt unterstützt. Evtl könntest du das mal im HA Forum erfragen.
                                  Falls es dort bestätigt wird, kann @garfonso da evtl was machen.

                                  P. S.
                                  Ich würde Umlaute und Leerstellen in den DPs und dessen Optionen vermeiden.

                                  J 1 Reply Last reply Reply Quote 0
                                  • J
                                    JohannesF @David G. last edited by

                                    Hallo zusammen,

                                    Lovelace unterstützt den Winkel der Lamellen. Bei mir sieht das als Datenpunkt so aus:

                                    52725bc4-152a-4dc1-af47-678d39f335d9-image.png

                                    In Lovelace so:

                                    4f5dd6ef-e2dc-4030-9560-d2e06970bfdd-image.png

                                    Anlegen bzw korrigieren tue ich die mit einem script:

                                    /*************************************************************************************
                                    * Setzt die Common Section eines Rolladen so dass Lovelace dies verarbeiten kann
                                    */
                                    function correctRolladen(mg){
                                        //console.log(mg)
                                        let selector = $('channel[state.id='+mg+'.*]');  //Alle States unter diesem Channel suchen
                                        selector.each(function (id, i) {  //Über alle States iterieren
                                            let o = getObject(id)
                                            if (o.common.name =='Position'){
                                                //console.log(id)
                                                let c = {
                                                    "name": "Position",
                                                    "type": "number",
                                                    "role": "level.blind",
                                                    "read": false,
                                                    "write": true,
                                                    "update": false,
                                                    "unit": "%",
                                                    "max": 100,
                                                    "min": 0
                                                }
                                                o.common = c;
                                                setObject(id,o)
                                            }
                                            if (o.common.name =='Lamellenstellung'){
                                                //console.log(id)
                                                let c = {
                                                    "name": "Lamellenstellung",
                                                    "type": "number",
                                                    "role": "level.tilt",
                                                    "read": false,
                                                    "write": true,
                                                    "update": false,
                                                    "unit": "%",
                                                    "max": 100,
                                                    "min": 0
                                                }
                                                o.common = c;
                                                setObject(id,o)
                                            }
                                            if (o.common.name =='Stop'){
                                                //console.log(id)
                                                let c = {
                                                    "name": "Stop",
                                                    "role": "button.stop",
                                                    "type": "boolean",
                                                    "read": false,
                                                    "write": true,
                                                    "desc": "Manuell erzeugt",
                                                    //"max": true,
                                                    //"min": false,
                                                    "def": false,
                                                }
                                                o.common = c;
                                                setObject(id,o)
                                            }
                                        }); 
                                    }
                                    
                                    Swisslizard 1 Reply Last reply Reply Quote 1
                                    • Swisslizard
                                      Swisslizard @JohannesF last edited by

                                      @johannesf

                                      Danke für die Antwort und den Code. Damit kann ich mal weiterüben.
                                      👏 👍

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

                                        Mittlerweile bin ich etwas schlauer geworden und habe mich durch viel Code des Lovelace Adapters und the type-detectors des iobrokers gekämpft.
                                        Hier einige Infos, dfamit bei ählichen Fragen das Rätselraten zumindest nicht wieder ganz bei Null beginnen muss.

                                        Die automatische Erkennung von Lovelace läuft über den iobroker.type-detector. Der Type Detector versucht über eine Liste von States (Details dazu in Dokument iobroker device types or natürlich im Code des Type Detectors) die zu einem Gerät gehören können, auf das Device zu schliessen. Bei den einzelnen States werden die Rolle, Type usw. berücksichtigt (steht alles im erwähnten Dokument). Zumindest bei Geräten die mehr als einen State haben, z.B. Lamellenstoren, ist es wichtig, dass der Ordner die die States enthält vom Type Channel oder Device ist (hier muss ich den Code noch etwas genauer studieren).

                                        Aus den von Device Detector erkannten Geräten generiert Lovelace im Anschluss die erkannten Entities. Das funktioniert meistens recht gut, vorausgesetzt die Datenpunkte sind so organisiert wie der Type Detector das erwartet. Zum einen müssen die Datenpunkte mit Rollen usw. gemäss der oben erwähnten Tabelle angelegt sein. Zum anderen sollten wirklich nur Datenpunkte eines einzigen Geräts innerhalb eines Ordners vorhanden sein und der Ordner muss vom Typ Channel oder Device sein. Was ebenfalls zu Problemen führen kann, ist wenn im übergeordneten Ordner neben den Device Ordnern noch weitere lose Datenpunkte (z.b. für Devices die nur 1 Datenpunkt haben) vorhanden sind. Dies wurden zumindest bei mir teilweise mit dem ersten erkannten Gerät in einem Unterordner zusammengemischt (das ergab bei mir z.B. einen Blind mit diversen zusätzlichen Feueralarmattributen), was natürlich ein unbrauchbares Result bewirkt.

                                        Habe bereits einen Teil meines Codes der meine schön organisierten Aliases generiert umgebaut, damit das ganze besser funktioniert. Bei den Lamellenstoren klappt das nun wie gewünscht. Der Rest der Geräte ist in Arbeit und wird wenn sie nach dem erwähnten Schema angelegt werden wohl kaum weitere Probleme machen.

                                        Last but not least, ein grosser Freund der automatischen Deviceerkennung werde ich kaum werden. Eine Variante bei der ich explizit Angeben könnte, was wie zusammengehört, würde zumindest für mich ein vorhersehbareres Result bringen (insbesondere mit der Namensgeneierung für die Lovelaceentities kann ich mich schlecht anfreunden).

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

                                          @swisslizard

                                          Aber das ist doch alles nichts neues und schon echt oft beschrieben worden.

                                          Auch sehr ausführlich im Leitfaden
                                          https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          505
                                          Online

                                          31.7k
                                          Users

                                          79.7k
                                          Topics

                                          1.3m
                                          Posts

                                          vis
                                          5
                                          19
                                          895
                                          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