Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test Adapter lovelace v1.2.x

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

      @gyle
      das müsste mit Markdown + Bindings gehen, glaube ich... Versuch mal in einer Markdown Karte das hier als "Inhalt": {kompletteObjektID;date(hh:mm)} ... oh... moment, das wird nicht gehen... hm. Gibt es einen Datenpunkt mit dem ausgerechneten Zeitpunkt, wann das Programm fertig ist? Dann den nehmen. Sonst musst du selber rechnen... so ca.:
      {kompletteObjektID;/(3600);floor}:{kompletteObjektID;%(3600);/(60);round}
      Alles ungetestet... Doku gibt es hier: https://github.com/iobroker/ioBroker.vis#bindings-of-objects

      Ein Alias (und dann in das erste binding packen) würde helfen, wenn du read auf Date.now() + val setzt. -> also damit den absoluten Zeitpunkt ausrechnest, wann das Programm fertig ist.
      Vielleicht geht damit dann auch ein Sensor? Bin mir aber nicht sicher...

      G 1 Reply Last reply Reply Quote 0
      • nukleuz
        nukleuz last edited by

        Hallo mal wieder,

        ich habe einen Datenpunkt, der variabel 1 - x Einträge haben kann.
        Diese sind mit Komma (,) getrennt. (Geburtstagskind 01, Geburtstagskind 02) usw...

        Wenn kein Eintrag vorhanden wird eine 0 in den DP geschrieben.

        Was ist nun der beste Weg diese Liste in Lovelace darzustellen?
        Schön wäre es eine Liste zu haben, wenn Einträge vorhanden sind.

        Wie habt ihr sowas gelöst?

        Danke.

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

          @nukleuz

          Ich würde mir glaube in Blockly eine Liste im HTML Format erstellen und diese als Markdown einbinden.

          Habe ich zumindest schon oft so gemacht für verschiedene Sachen ^^.

          Ggf kannst du ja noch einen anderen Datenpunkt auf true und false schalten, jenachdem ob ein Geburtstag ansteht und die Karte ausblenden lassen wenn er false ist.

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

            @david-g

            Danke für den Tip - da wäre ich nicht drauf gekommen.
            Werde das mal versuchen…

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

              @nukleuz

              Ich lasse mir eine Tabelle aus dem Geburtstage Adapter erstellen.

              JPEG_20210901_204834_6610803640105247284.jpg

              EDIT:
              Mache das mit einer Schleife. Man kann also auch bestimmen, wie viele Geburtstage er anzeigen soll oder in welchem Zeitraum.
              Wenn keine Geburtstage anstehen, könnte man sich ja auch das anzeigen lassen.

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

                @david-g

                Die Idee ist gut - wo kommen die Daten her?
                Muss man das pflegen?

                Bei mir kommen die Daten aus dem iPhone (iCloud) und werden per Kurzbefehl über den iot.service gesendet.
                Wollte mir zusätzliche Arbeit ersparen 🙂

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

                  @nukleuz

                  Der Geburtstage Adapter bekommt die Daten aus dem ical Adapter. Dort kann man auch Kalender aus icloud einbinden meine ich (ich hab einen von google). Die Geburtstage müssen als ganztägige Termine angelegt sein und das Geburtsjahr in der Beschreibung vom Termin stehen.
                  Ich hab mir einen extra Kalender dafür angelegt.

                  Die Daten stehen in einer json die man in Blockly schön verarbeiten kann.
                  Der Adapter liefert auch eine Tabelle, die fand ich aber nicnt sonderlich schön ^^.

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

                    @david-g

                    Den Geburtstagskalender gibt es leider nicht in der iCloud und kann somit auch nicht freigegeben werden...
                    Ich versuche mal was zu basteln in Blockly.

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

                      @nukleuz

                      Oh, stimmt. Der holt seine Termine selber aus einer ical.

                      Ich meine aber, man kann den Kalender auch bei Apple als ical freigeben oder?
                      Meine das man gemacht zu haben.

                      Oder einfach dafür grad einen Google Kalender erstellen 😅

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

                        @david-g

                        OK, das wird wohl nicht mehr heute - gebe morgen mal Rückmeldung.
                        Danke für die Tips... 👍

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

                          Hi,

                          habe mich mal etwas näher mit lovelace beschäftigt und finde die Visualisierung sehr ansprechend und die ersten Entitäten liefern schon gute Ergebnisse.

                          Was ich bis jetzt nicht geschafft habe, ist eine media player steuerung einzufügen.

                          Habe einen Yamaha Musiccast receiver und mehrere Musiccast devices.
                          Gibt es eine Anleitung wie Musiccast devices angelegt werden müssen damit sie als Entität erkannt werden?

                          Vielen Dank schon mal
                          Schöne Grüße
                          Christian

                          nukleuz 1 Reply Last reply Reply Quote 0
                          • nukleuz
                            nukleuz @bullrandle last edited by

                            @bullrandle

                            Gib dem Gerät in den Objekten mal einen Raum und eine Funktion (also der kompletten Struktur (Verzeichnis oder Channel) und schau danach mal bei den Entitäten, ob es als Media Player erkannt wird.

                            Um das ganze besser beurteilen zu können zeig doch bitte mal den Objektbaum - ggf. sind die States nicht richtig vergeben vom Adapter bzw. nicht so wie Lovelace das braucht zu Erkennung...

                            Dazu kann dann aber auch nur @Garfonso was sagen 🙂

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

                              @nukleuz
                              @Garfonso

                              Nachdem ich dem AVR im Objektbaum einen Raum und eine Funktion zugeordnet habe, taucht er zumindest mal als natives Gerät auf.
                              d350b1c5-cfd1-4af0-a440-2a7702addf85-image.png

                              Als Entität wird er dann auch erkannt, aber leider als switch:
                              1093f1b6-18f5-4325-bafc-1bfd6e084c98-image.png

                              Habe auch schon versucht über alias die Rolle als media zu definieren und die einzelnen States händisch anzulegen, mit dem Minimalerfolg, dass der AVR als Lautstärke Regler erkannt wurde 🤦

                              Der Objektbaum passt nicht auf ein Bild, aber auf der Adapterseite auf Github sind die Objekte beschrieben
                              https://github.com/foxthefox/ioBroker.musiccast

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

                                @bullrandle
                                Also das Ergebnis ist so leider erstmal ernüchternd -> es wird kein media player gefunden... 😞

                                Kannst du mir einen JSON-Export von dem ganzen Objektbaum zukommen lassen? Dann probiere ich damit mal rum und baue am Ende auch einen Test ein (damit ich das nicht ausversehen wieder kaputt mache 😉 ).

                                bullrandle N 2 Replies Last reply Reply Quote 0
                                • G
                                  gyle @Garfonso last edited by

                                  @garfonso said in Test Adapter lovelace v1.2.x:

                                  @gyle
                                  das müsste mit Markdown + Bindings gehen, glaube ich... Versuch mal in einer Markdown Karte das hier als "Inhalt": {kompletteObjektID;date(hh:mm)} ... oh... moment, das wird nicht gehen... hm. Gibt es einen Datenpunkt mit dem ausgerechneten Zeitpunkt, wann das Programm fertig ist? Dann den nehmen. Sonst musst du selber rechnen... so ca.:
                                  {kompletteObjektID;/(3600);floor}:{kompletteObjektID;%(3600);/(60);round}
                                  Alles ungetestet... Doku gibt es hier: https://github.com/iobroker/ioBroker.vis#bindings-of-objects

                                  Ein Alias (und dann in das erste binding packen) würde helfen, wenn du read auf Date.now() + val setzt. -> also damit den absoluten Zeitpunkt ausrechnest, wann das Programm fertig ist.
                                  Vielleicht geht damit dann auch ein Sensor? Bin mir aber nicht sicher...

                                  danke.
                                  ich würde den ansatz "selbst rechnen" verfolgen - dabei kommt bei mir folgendes raus:
                                  Echt: 1:10 h >>> ergibt nach deiner Formel: 1:70 h
                                  ich konnte den fehler leider bisher nicht nachvollziehen....

                                  DANKE

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

                                    @gyle
                                    lol... ja... modulo (das %) war einfach nicht richtig implementiert im Adapter. 😉

                                    Wenn du testen magst, installiere bitte mal von https://Garfonso/iobroker.lovelace. Dann sollte die Rechnung so gehen.

                                    N 1 Reply Last reply Reply Quote 0
                                    • N
                                      nachon @Garfonso last edited by nachon

                                      @garfonso
                                      Sorry, mein Fehler. Hat sich erledigt. Reboot tut gut. 🙂

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

                                        @garfonso

                                        hier der json export vom RX-V585:

                                        musiccast.0.RX-V585_06CBF7D3.json

                                        Danke schon mal ...
                                        Schöne Grüße
                                        Christian

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

                                          @garfonso said in Test Adapter lovelace v1.2.x:

                                          @erstam

                                          Ok, hab mal einen Vorschlag in dev eingebaut.

                                          Ist jetzt wie folgt:

                                          Es gibt
                                          control.alarm -> bleibt alles wie gehabt, true/false. Code muss hier eingestellt werden
                                          control.alarm_arm_state -> number, 0-9, übersetzt lovelace mögliche alarm states. Hier wird der volle status gesetzt. Bzw. ioBroker kann hier auch den status setzen -> arming/disarming wird als blinkendes icon angezeigt und triggered macht eine Alarmglocke ins UI. Hübsch. 🙂

                                          -> man kann auch selber ein entity anlegen. Da entscheidet der Code über den type ob "nur" die Boolean-Funktion (type = boolean) oder nicht. Man kann statt Number+States auch ein Objekt mit type string nehmen, dann landet da einfach direkt der string drinnen bzw. kann reingeschrieben werden (allerdings ohne checks -> falsche Werte wird das UI dann nicht mögen) (oder man kann, was nicht offiziell unterstützt wird, auch das states-Feld für das String-Objekt füllen).

                                          Ich habe mich mal weiter an den Aufbau meiner Alarmanlage gemacht, nachdem jetzt alle Komponenten soweit installiert sind. Leider schaffe ich es nicht, eine eigene Entity anzulegen, die auf die unterschiedlichen alarm_arm_states darstellt. Ich habe die Einstellungen des Datenpunkts exakt wie bei lovelace.0.control.alarm_arm_state gewählt und dann das Objekt als Alarm-Entität angelegt. Unter Entities taucht er in der Lovelace-Instanz auf, Fehlermeldungen im Log sehe ich auch keine, allerdings bleibt die Alarm Panel Card leer, wenn ich die selbst erstellte Entität auswähle. Ich habe unter Native den Alarm Code ergänzt, der ja bisher nur im Bool-Objekt steht.

                                          {
                                            "_id": "0_userdata.0.lovelace.alarm_arm_state",
                                            "type": "state",
                                            "common": {
                                              "name": "arm status",
                                              "type": "number",
                                              "read": true,
                                              "write": true,
                                              "desc": "Alarm arm status",
                                              "def": 0,
                                              "states": {
                                                "0": "disarmed",
                                                "1": "armed",
                                                "2": "armed_home",
                                                "3": "armed_away",
                                                "4": "armed_night",
                                                "5": "armed_custom_bypass",
                                                "6": "pending",
                                                "7": "arming",
                                                "8": "disarming",
                                                "9": "triggered"
                                              },
                                              "custom": {
                                                "lovelace.0": {
                                                  "enabled": true,
                                                  "entity": "alarm_control_panel",
                                                  "name": "central"
                                                }
                                              }
                                            },
                                            "native": {
                                              "alarm_code": 2704
                                            },
                                            "from": "system.adapter.admin.0",
                                            "user": "system.user.admin",
                                            "ts": 1632048858446,
                                            "acl": {
                                              "object": 1636,
                                              "state": 1636,
                                              "owner": "system.user.admin",
                                              "ownerGroup": "system.group.administrator"
                                            }
                                          }
                                          

                                          Bei der Default Entity habe ich das Problem, dass nach jedem Neustart der Lovelace Instanz der Aktivierungscode wieder auf 1234 steht. Kannst du das mal prüfen? Ich schlage vor, den Code nicht neu zu setzen bei Neustart.

                                          Viele Grüße!

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

                                            Ich habe gestern auf die letzte DEV-Version des Adapters aktualisiert. Seitdem hängt sich der Adapter auf, wenn ich eine bestimmte Seite in meinem Dashboard aufrufe. [EDIT]Ich habe das Verhalten auch in der letzten Beta 2.0.6 getestet, es passiert das gleiche.[/EDIT]

                                            Hier der Log-Auszug:

                                            lovelace.0	2021-09-20 08:37:26.240	error	(9117) this.getSpecialValues is not a function
                                            lovelace.0	2021-09-20 08:37:26.240	error	at processImmediate (internal/timers.js:434:9)
                                            lovelace.0	2021-09-20 08:37:26.240	error	at runNextTicks (internal/process/task_queues.js:62:5)
                                            lovelace.0	2021-09-20 08:37:26.240	error	at runMicrotasks (<anonymous>)
                                            lovelace.0	2021-09-20 08:37:26.240	error	at /opt/iobroker/node_modules/iobroker.lovelace/lib/server.js:2582:50
                                            lovelace.0	2021-09-20 08:37:26.240	error	at Object.formatBinding (/opt/iobroker/node_modules/iobroker.lovelace/lib/bindings.js:168:42)
                                            lovelace.0	2021-09-20 08:37:26.240	error	(9117) TypeError: this.getSpecialValues is not a function
                                            lovelace.0	2021-09-20 08:37:26.233	error	(9117) unhandled promise rejection: this.getSpecialValues is not a function
                                            lovelace.0	2021-09-20 08:37:26.233	error	(9117) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
                                            

                                            Ich habe im RAW-Editor die einzelnen Karten der entsprechenden Seite einzeln geprüft, das Problem liegt an einer (von mehreren) Markdown-Cards, die folgenden Content haben:

                                            {a:linkeddevices.0.Erdgeschoss.Rolllade.Alle.timeOpen;b = new Date(parseInt(a)); 
                                            b.toLocaleTimeString('de-DE')}&nbsp;{a:linkeddevices.0.Erdgeschoss.Rolllade.Alle.timeOpen;
                                            b = new Date(parseInt(a)); c = new Date(); c.setDate(c.getDate()+1); 
                                            c.setHours(0); c.setMinutes(0); c.setSeconds(0); b > c ? "*(+1)*" : ""}
                                            

                                            Allerdings stürzt Lovelace bereits ab, wenn ich eine Markdown-Karte anlege und nur {} eingebe. Dann erscheint folgende Fehlermeldung im Log:

                                            lovelace.0	2021-09-20 08:55:44.399	error	(10330) Cannot read property 'val' of undefined
                                            lovelace.0	2021-09-20 08:55:44.399	error	(10330) TypeError: Cannot read property 'val' of undefined at getSpecialValues (/opt/iobroker/node_modules/iobroker.lovelace/lib/bindings.js:143:17) at Object.formatBinding (/opt/iobroker/node
                                            lovelace.0	2021-09-20 08:55:44.397	error	(10330) unhandled promise rejection: Cannot read property 'val' of undefined
                                            lovelace.0	2021-09-20 08:55:44.396	error	(10330) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().```
                                            G Garfonso 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            702
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            lovelace visualization
                                            78
                                            1514
                                            515811
                                            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