Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Betatest NSPanel-lovelace-ui v0.7.x

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.0k

Betatest NSPanel-lovelace-ui v0.7.x

Geplant Angeheftet Gesperrt Verschoben Tester
718 Beiträge 26 Kommentatoren 127.7k Aufrufe 29 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T ticaki

    @bembelstemmer
    Zu 1: Ich hatte schon überlegt sowas zu ermöglichen - zumindest für switch.
    Zu 2: Das mit den Templates ist gedacht gewesen um die komplexe Adapterkonfiguration zu vereinfachen und trotzdem was kompliziertes machen zu können:

    Beispiel wie das Adapter intern aussieht:

    oh was sehe ich da - da gehen ja auch Platzhalter - was man nicht alles in 2 Jahren vergisst, das muß ich dann nochmal rausbekommen wie das geht. :D

    'text.battery.bydhvs': {
            /**
             * entity1 enthält den Füllstand
             * entity2 ebenfalls
             * entity3 ist true für laden und false für entladen. 
             */
            template: 'text.battery',
            role: 'battery',
            adapter: 'bydhvs',
            type: 'text',
            dpInit: '/bydhvs\\.#°^°#\\./',
    
            data: {
                icon: {
                    true: {
                        value: {
                            type: 'triggered',
                            mode: 'auto',
                            role: 'value.battery',
                            dp: '',
                            regexp: /\.State\.SOC$/,
                            read: `const v = Math.round(val / 10)
                            switch (v) {
                                case 0:
                                    return 'battery-charging-outline';
                                case 1:
                                case 2:
                                case 3:
                                case 4:
                                case 5:
                                case 6:
                                case 7:
                                case 8:
                                case 9:
                                    return 'battery-charging-' + v + '0';
                                case 10:
                                default:
                                    return 'battery-charging';}`,
                        },
                        text: {
                            value: {
                                type: 'triggered',
                                mode: 'auto',
                                role: 'value.battery',
                                dp: '',
                                regexp: /\.State\.SOC$/,
                            },
                            unit: {
                                type: 'const',
                                constVal: '%',
                            },
                            textSize: { type: 'const', constVal: 2 },
                        },
                        color: undefined,
                    },
                    false: {
                        value: {
                            type: 'triggered',
                            mode: 'auto',
                            role: 'value.battery',
                            dp: '',
                            regexp: /\.State\.SOC$/,
                            read: `const v = Math.round(val / 10)
                                switch (v) {
                                    case 0:
                                        return 'battery-outline';
                                    case 1:
                                    case 2:
                                    case 3:
                                    case 4:
                                    case 5:
                                    case 6:
                                    case 7:
                                    case 8:
                                    case 9:
                                        return 'battery-' + v + '0';
                                    case 10:
                                    default:
                                        return 'battery';}`,
                        },
                        color: undefined,
                    },
                    scale: { type: 'const', constVal: { val_min: 10, val_max: 50, log10: 'max' } },
                },
                entity1: {
                    value: {
                        type: 'state',
                        mode: 'auto',
                        role: 'value.battery',
                        dp: '',
                        regexp: /\.State\.SOC$/,
                    },
                },
                text: {
                    true: { type: 'const', constVal: 'Battery' },
                    false: undefined,
                },
                entity2: {
                    value: {
                        type: 'triggered',
                        mode: 'auto',
                        role: 'value.battery',
                        dp: '',
                        regexp: /\.State\.SOC$/,
                    },
                    unit: { type: 'const', constVal: '%' },
                },
                entity3: {
                    value: {
                        type: 'triggered',
                        mode: 'auto',
                        role: 'value.power',
                        dp: '',
                        regexp: /\.State\.Power$/,
                        read: 'return val < 0',
                    },
                },
            },
        },
    

    Um das zu nutzen schreibt man dann einfach:

               {
                    type: 'template',
                    template: 'text.battery.bydhvs',
                    dpInit: 'bydhvs.0',
                    modeScr: 'left',
                }
    

    In das Skript und fertig. Mit dem data Zweig wie bei dem Favorit oben überschreibt man einzelne keys im Json

    EDIT:
    Das template macht folgendes:

    • Verwendet ca. 20 icons
    • unterschiedliche Icons für laden und entladen
    • ladestand in 1/10 am icon ablesbar
    • farbe wechselt je nach ladestand mit log10 von rot=10% zu grün= 50% (i.d.R. ist es bei 30 fast grün)

    hm das könnte ich noch auf trigrad umstellen.

    EDIT2:

    Bitte setzte erstmal keine eigenen Rule und lösche vorhandene - der Adapter sollte das alles für die Standardfälle selbst erledigen.

    bembelstemmerB Offline
    bembelstemmerB Offline
    bembelstemmer
    schrieb am zuletzt editiert von
    #703

    @ticaki Jo, alles klar. Wird gemacht.
    Hab den Fehler auch gefunden. Ich hatte nirgends die Info bzgl:
    "jenachdem wie State: nspanel-lovelace-ui.0.panels.A0_B7_65_54_C2_60.cmd.detachLeft / Right aussehen"

    Jetzt weiß ich dass man das dort setzen muss. Oder ist es vorgesehen das irgendwo anders zu konfigurieren und es wird dann automatisch gesetzt?

    T 1 Antwort Letzte Antwort
    0
    • T Nicht stören
      T Nicht stören
      ticaki
      schrieb am zuletzt editiert von ticaki
      #704

      Soll in den states gesetzt werden.

      Oder da wo Tom sagt

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      1 Antwort Letzte Antwort
      0
      • bembelstemmerB bembelstemmer

        @ticaki Jo, alles klar. Wird gemacht.
        Hab den Fehler auch gefunden. Ich hatte nirgends die Info bzgl:
        "jenachdem wie State: nspanel-lovelace-ui.0.panels.A0_B7_65_54_C2_60.cmd.detachLeft / Right aussehen"

        Jetzt weiß ich dass man das dort setzen muss. Oder ist es vorgesehen das irgendwo anders zu konfigurieren und es wird dann automatisch gesetzt?

        T Offline
        T Offline
        TT-Tom
        schrieb am zuletzt editiert von
        #705

        @bembelstemmer
        Wie schon anfangs geschrieben hatte in den Serviceseiten unter Relais. Da kannst du es bequem einstellen

        Gruß Tom
        https://github.com/tt-tom17
        Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

        NSPanel Script Wiki
        https://github.com/joBr99/nspanel-lovelace-ui/wiki

        NSPanel Adapter Wiki
        https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

        1 Antwort Letzte Antwort
        0
        • T Nicht stören
          T Nicht stören
          ticaki
          schrieb am zuletzt editiert von ticaki
          #706

          bitte lesen

          Betrifft nicht Screensaver-Doppelklick

          0.9.0 (2025-11-21)

          • (armilar) HMI: long press added (v5.1.1)
          • (ticaki) Replace double-click with long press
          • (ticaki) pageItem type=button long press added
          • (ticaki) custom pageitem added
          • (ticaki) script ID is found uniquely

          Solle da mal mehr rein schreiben:

          • Doppleklick ist weg - dafür gibts jetzt längers gedrückt halten. In blätterbaren cardGrids usw. springt man so direkt auf die nächste Seite
          • gibt eine neue Scriptoption für Pageitems: targetPageLongPress - die geht bei jedem Pageitem das ein button ist (button, light, socket z.B.) - bei einem langen Druck auf das PageItem springt man auf diese Seite
          • neues PageItem hinzugefügt: type: 'custom' - da kann man eine direkte ID angeben auf einen Datenpunkt. Muß jedoch alles definieren da die defaults alle Mist sind.

          Details - nur bei Interesse lesen

          Die Types für das neue PageItems sind so:

          der type: 'custom' definiert das id kein Channel sondern ein Datenpunkt ist.

              {
                  type: 'custom';
                  id: string; // auf einen boolean datenpunkt
                  navigate?: boolean | null | undefined;
                  targetPage?: string | null | undefined;
                  targetPageLongPress?: string | null | undefined;
                  icon?: string;
                  icon2?: string;
                  name?: string;
                  onColor?: RGB | string;
                  offColor?: RGB | string;
                  colorScale?: IconScaleElement;
                  buttonText?: string;
              };
          

          targetPageLongPress: Ich verwende das um einem start knopf für meinen Saugroboter eine Optionsseite hinzuzufügen mit der ich Saugleistung und Wischleistung einstellen kann - das ändere ich nicht und die Seite wo der Knopf ist hat schon 8 Items und ist damit voll :)

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          1 Antwort Letzte Antwort
          0
          • D Offline
            D Offline
            danny_v1
            schrieb am zuletzt editiert von
            #707

            Hallo, ich bin seit langem mal wieder hier und echt erstaunt was sich alles im Adapter getan hat. Ich habe jetzt ein neues Panel und damit habe ich jetzt gleich mal den Adapter genutzt und bin an Aufbau meiner Seiten muss ja alles etwas angepasst werden wenn man vom "alten" Skript kommt.

            Da habe ich auch schon die ersten Fragen:

            1. ich habe im Skript viel solche Sachen verwendet
            *PageItem*/{ id: "alias.0.Wohnzimmer.Sensoren.BWM", icon: "motion-sensor", icon2: "motion-sensor-off", offColor:  Blue, onColor: Green, prefixName:"Wohnz.: ", name: "getState('alias.0.Wohnzimmer.Sensoren.BWM.SECOND').val", suffixName: " Lux" },
            

            wie kann ich das jetzt hier umsetzen?

            1. gibt es irgendwo eine zusammenhängende Erklärung wie die Navigation funktioniert, bzw was wird im Adapter festgelegt und was im Skript?
            let Obergeschoss: PageType =
            
            {
                "type": "cardGrid",
                "heading": "Obergeschoss",
                "useColor": true,
                "subPage": false,
                'prev': 'AlarmSeite',
                'next': 'Untergeschoss',
                'prevIcon': 'shield-alert',
                'nextIcon': 'home-floor-0',
                "items": [
                        /*PageItem*/{ navigate: true, id: null, targetPage: "Wohnzimmer1", icon: "sofa-outline", onColor: White, name: "Wohnzimmer"},
                        /*PageItem*/{ navigate: true, id: null, targetPage: "Balkon", icon: "balcony", onColor: White, name: "Balkon"},
                        /*PageItem*/{ navigate: true, id: null, targetPage: "Flur_OG", icon: "stairs", onColor: White, name: "Flur"}
                ]
            
            };
            

            so wird es ja nicht mehr funktionieren?!

            1. Gibt es vielleicht sowas wie ein Beispielskript wo mal alle Seiten als Vorlage drin sind?

            2. Gibt es eine Seite für WLED?

            Vielen Lieben dank schon mal

            T 1 Antwort Letzte Antwort
            0
            • D danny_v1

              Hallo, ich bin seit langem mal wieder hier und echt erstaunt was sich alles im Adapter getan hat. Ich habe jetzt ein neues Panel und damit habe ich jetzt gleich mal den Adapter genutzt und bin an Aufbau meiner Seiten muss ja alles etwas angepasst werden wenn man vom "alten" Skript kommt.

              Da habe ich auch schon die ersten Fragen:

              1. ich habe im Skript viel solche Sachen verwendet
              *PageItem*/{ id: "alias.0.Wohnzimmer.Sensoren.BWM", icon: "motion-sensor", icon2: "motion-sensor-off", offColor:  Blue, onColor: Green, prefixName:"Wohnz.: ", name: "getState('alias.0.Wohnzimmer.Sensoren.BWM.SECOND').val", suffixName: " Lux" },
              

              wie kann ich das jetzt hier umsetzen?

              1. gibt es irgendwo eine zusammenhängende Erklärung wie die Navigation funktioniert, bzw was wird im Adapter festgelegt und was im Skript?
              let Obergeschoss: PageType =
              
              {
                  "type": "cardGrid",
                  "heading": "Obergeschoss",
                  "useColor": true,
                  "subPage": false,
                  'prev': 'AlarmSeite',
                  'next': 'Untergeschoss',
                  'prevIcon': 'shield-alert',
                  'nextIcon': 'home-floor-0',
                  "items": [
                          /*PageItem*/{ navigate: true, id: null, targetPage: "Wohnzimmer1", icon: "sofa-outline", onColor: White, name: "Wohnzimmer"},
                          /*PageItem*/{ navigate: true, id: null, targetPage: "Balkon", icon: "balcony", onColor: White, name: "Balkon"},
                          /*PageItem*/{ navigate: true, id: null, targetPage: "Flur_OG", icon: "stairs", onColor: White, name: "Flur"}
                  ]
              
              };
              

              so wird es ja nicht mehr funktionieren?!

              1. Gibt es vielleicht sowas wie ein Beispielskript wo mal alle Seiten als Vorlage drin sind?

              2. Gibt es eine Seite für WLED?

              Vielen Lieben dank schon mal

              T Offline
              T Offline
              TT-Tom
              schrieb am zuletzt editiert von
              #708

              @danny_v1

              es gibt eine Wiki Seite zum Adapter, wo viele Sachen schon erklärt sind. Link siehe meine Signatur. Bitte lese Sie dir durch und gehen wir speziell auf einzelne Problem ein.

              1. getState wird nicht mehr benötigt, einfach den DP einsetzen.
              2. Sie funktioniert wie im Script. Was sich änder sind die Seiten die über PageConfig im Aadmin erstellt werden. Das besprechen wir dann separat.
              3. Der Adapter legt ein Script schon an in einem eigenen Ordner, siehe javascript.
              4. ist auch nur eine cradGrid.

              Also lese mal im Wiki und dann alles weitere

              Gruß Tom
              https://github.com/tt-tom17
              Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

              NSPanel Script Wiki
              https://github.com/joBr99/nspanel-lovelace-ui/wiki

              NSPanel Adapter Wiki
              https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

              1 Antwort Letzte Antwort
              1
              • D Offline
                D Offline
                danny_v1
                schrieb am zuletzt editiert von
                #709

                Ja die Wiki Seite habe ich schon durchgeschaut und damit habe ich auch schon den Anfang umsetzen können.

                zb meine Hauptseite:

                const Hauptseite: PageType = {
                        type: 'cardThermo2',
                        uniqueName:'main',
                        heading: 'egal wird eh nicht angezeigt',
                        thermoItems:[
                            {name: 'Wohnzimmer',
                            set:'alias.0.Wohnzimmer.Temperaturen.Thermostat.Thermostat.SET', // Der Einstellwert der Heizung
                                thermoId1:'alias.0.Wohnzimmer.Temperaturen.Thermostat.Thermostat.ACTUAL', // Aktuelle Raumtemperatur (oberer Wert in der Anzeige)
                                thermoId2:'alias.0.Wohnzimmer.Temperaturen.Thermostat.Thermostat.HUMIDITY',
                                modeId:'alias.0.Wohnzimmer.Temperaturen.Thermostat.Thermostat.MODE', modeList:['OFF', 'AUTO', 'COOL', 'HEAT', 'ECO', 'FAN', 'DRY']}],
                
                        //    {name: 'test2', modeList:['aus','kaputt', 'falsch'], modeId:'0_userdata.0.Einzelne_Geräte.Thermostat.MODE' ,iconHeatCycle:'home', iconHeatCycleOffColor:Red, thermoId1:'alias.0.Wohnzimmer.Temperaturen.Thermostat.ACTUAL', set:'alias.0.Wohnzimmer.Temperaturen.Thermostat.SET', thermoId2:'alias.0.Wohnzimmer.Temperaturen.Thermostat.HUMIDITY'}],
                        items:[
                            {id: 'alias.0.Wohnzimmer.Lampe.Schreibtisch.Schreibtischlampe', name: 'Schreibtisch', icon: 'desk-lamp', interpolateColor: true},
                            {id: 'alias.0.Wohnzimmer.Lampe.Laterne.Laterne', name: 'Laterne', icon: 'lamp', icon2: 'lamp-outline',interpolateColor: true},
                            {id: 'alias.0.Wohnzimmer.Lampe.Stehlampe.Stehlampe', icon: 'floor-lamp-outline', onColor: White, offColor: Gray, interpolateColor: true},
                            {id: 'alias.0.Wohnzimmer.Deckenlampe.Gross.GruppeNSP', icon: 'ceiling-light-multiple'},
                
                            {navigate: true, targetPage: 'WZ_Lampen', icon: 'lamp'},
                            {navigate: true, targetPage: 'WZ_Status', icon: 'state-machine'},
                            {navigate: true, id: null, targetPage: 'WZ_Alexa', icon: 'music', onColor: White, name: 'Alexa'},
                            {id: 'alias.0.Wohnzimmer.Lampe.Schreibtisch.Schreibtischlampe', name: 'Schreibtisch', icon: 'desk-lamp', interpolateColor: true},
                            {id: 'alias.0.Wohnzimmer.Temperaturen.Thermostat.Thermostat.Batterie', name: 'Batterie', icon: 'battery', interpolateColor: true}
                            ]
                    };
                

                Die funktioniert auch soweit, nur die Batterie anzeige Item9 funktioniert noch nicht.

                Die anderen Seiten funktionieren soweit auch. Nur mit der Navigation (next, parent, prev, home) weiß ich noch nicht, macht man das wie im alten Skript oder in den Adapter einstellungen?

                Zu zweitens wie muss das Item denn Aussehen, wenn der Name aus einem String und dann den Wert anzeigen soll, also zB Name: +Wert aus DP +Einheit

                Gibt es irgendwo noch eine Zusammenfassung wann man bei den Items icon, icon2, onColor, offColor und interpolateColor verwenden kann?

                1 Antwort Letzte Antwort
                0
                • T Nicht stören
                  T Nicht stören
                  ticaki
                  schrieb am zuletzt editiert von ticaki
                  #710

                  useColor kannste löschen, wird nicht verwendet.
                  interpolateColor gibts ebenfalls nicht.

                  1. wird wahrscheinlich ein Alias/Channel problem sein
                  2. next und prev icons gibts aktuell nicht. Kann wahrscheinlich bei Bedarf eingebaut werden.
                  3. Navigation für Seiten die im Skript eingerichtet werden ist im Skript, welche die im Admin unter PageConfig sind im Admin.
                  4. Das hab wir nicht drin, name sollte auch als Datenpunkt gehen. Kannst ihn in einem Alias selbst bauen und diesen Alias-dp dann als name angeben
                  5. Ich glaube die ist nur in unseren Köpfen.

                  EDIT: Ich weiß das meiste was drin ist, ist natürlich möglich das es bei einzelnen channels fehlt, dann reporten.

                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                  Spenden

                  1 Antwort Letzte Antwort
                  0
                  • D Offline
                    D Offline
                    danny_v1
                    schrieb am zuletzt editiert von danny_v1
                    #711

                    Ok vielen Dank schon mal, mit der Navigation komm ich nun schon mal klar.

                    Ich habe viele Sachen drin, mit denen ich ein paar Einstellungen mit dem LightControl Adapter über die Panel mache. In der Skript Version lief das alles sehr gut. Wenn ich jetzt die DP hier einfüge werden sie nicht erkannt. Ich habe da eigentlich nur die Schalter und ein paar Slider in Verwendung.

                    const Wohnzimmer_LC: PageType = {
                        type: 'cardEntities',
                        uniqueName: 'Wohnzimmer_LC',
                        heading: 'Wohnz. Lightcontrol',
                        subPage: true,
                        items: [
                    
                                  { id: 'alias.0.Wohnzimmer.LC.Komplett.AutoOnMotionEnable', name:'BWM', icon: 'lightbulb-off-outline'},
                                  { id: 'alias.0.Wohnzimmer.LC.Komplett.AutoOnMotionMinLux', name:'BWM MinLux"', icon: 'sun-wireless-outline', minValue: 0, maxValue: 25}]
                    }
                    

                    So sieht die Seite aus.

                    {
                      "type": "state",
                      "common": {
                        "name": "SET",
                        "role": "switch",
                        "type": "boolean",
                        "read": true,
                        "write": true,
                        "alias": {
                          "id": "lightcontrol.0.Wohnzimmer.autoOnMotion.enabled"
                        },
                        "custom": {
                          "lovelace.0": {
                            "enabled": true,
                            "entity": "switch",
                            "name": "Wohnzimmer_LC_Komplett_AutoOnMotionEnable_SET",
                            "attr_assumed_state": false,
                            "attr_device_class": "switch"
                          }
                        },
                        "smartName": {
                          "de": "Wohnzimmer Bewegungsmelder",
                          "smartType": "socket"
                        }
                      },
                      "_id": "alias.0.Wohnzimmer.LC.Komplett.AutoOnMotionEnable.SET",
                      "native": {},
                      "acl": {
                        "object": 1636,
                        "state": 1636,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator"
                      },
                      "from": "system.adapter.admin.0",
                      "user": "system.user.admin",
                      "ts": 1764265292669
                    }
                    

                    So der DP für den Schalter.

                    {
                      "type": "state",
                      "common": {
                        "name": "SET",
                        "role": "level",
                        "type": "number",
                        "read": true,
                        "write": true,
                        "alias": {
                          "id": "lightcontrol.0.Wohnzimmer.autoOnMotion.minLux"
                        },
                        "max": 50
                      },
                      "_id": "alias.0.Wohnzimmer.LC.Komplett.AutoOnMotionMinLux.SET",
                      "native": {},
                      "from": "system.adapter.admin.0",
                      "user": "system.user.admin",
                      "ts": 1712775080349,
                      "acl": {
                        "object": 1636,
                        "state": 1636,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator"
                      }
                    }
                    

                    Und so der für den Slider.

                    Und iobroker schmeißt im log folgendes aus

                    [config-manager] Required: SET: alias.0.Wohnzimmer.LC.Komplett.AutoOnMotionMinLux, channel role: slider - missing - searching for dp: alias.0.Wohnzimmer.LC.Komplett.AutoOnMotionMinLux.SET, type: "number", role: "level", common.write: true
                    

                    Was mache ich da nur falsch?

                    Achso, das mit den Namen und Werten aus DPs geht so:

                    prefixName:"BWM: ", name: 'alias.0.Wohnzimmer.Sensoren.BWM.SECOND', suffixName: " Lux"
                    
                    T 1 Antwort Letzte Antwort
                    0
                    • T Nicht stören
                      T Nicht stören
                      ticaki
                      schrieb am zuletzt editiert von ticaki
                      #712

                      Ich hab keinen channel mit role=slider im Einsatz daher weiß ich nicht ob es richtig eingebaut ist, jedoch heißt die Warnmeldung das der channel nicht richtig angelegt ist. Hier findest du die Definitionen dazu https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/blob/main/ALIAS.md

                      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                      Spenden

                      1 Antwort Letzte Antwort
                      0
                      • D Offline
                        D Offline
                        danny_v1
                        schrieb am zuletzt editiert von
                        #713

                        Ja genaulaut der Tabelle sollte das so auch passen, komischerweise geht einer und die anderen nicht, obwohl ich alle auf die gleiche Weiße im Geräte Adapter erstellt habe.

                        Ich habe jetzt auch mal etwas mit dem Slider im Licht PopUp herumgespielt und da stürzt der Adapter ab mit folgenden Einträgen im Log

                        
                        host.iobrokerserver
                        2025-11-27 23:10:05.036	info	instance system.adapter.nspanel-lovelace-ui.0 in version "0.9.0" (non-npm: ticaki/ioBroker.nspanel-lovelace-ui#de12b19c803e62c1a8e4837f1df2afd4de351da7) started with pid 477383
                        
                        host.iobrokerserver
                        2025-11-27 23:09:34.681	info	Restart adapter system.adapter.nspanel-lovelace-ui.0 because enabled
                        
                        host.iobrokerserver
                        2025-11-27 23:09:34.680	error	instance system.adapter.nspanel-lovelace-ui.0 terminated with code 6 (UNCAUGHT_EXCEPTION)
                        
                        nspanel-lovelace-ui.0
                        2025-11-27 23:09:33.864	error	Cannot read properties of undefined (reading 'replaceAll')
                        
                        nspanel-lovelace-ui.0
                        2025-11-27 23:09:33.863	error	TypeError: Cannot read properties of undefined (reading 'replaceAll') at /opt/iobroker/node_modules/iobroker.nspanel-lovelace-ui/src/lib/const/tools.ts:1151:25 at Array.map (<anonymous>) at Object.getPayloadRemoveTilde (/opt/iobroker/node_modules/iobroker.nspanel-lovelace-ui/src/lib/const/tools.ts:1151:14) at PageItem.getDetailPayload (/opt/iobroker/node_modules/iobroker.nspanel-lovelace-ui/src/lib/pages/pageItem.ts:813:30) at PageItem.GeneratePopup (/opt/iobroker/node_modules/iobroker.nspanel-lovelace-ui/src/lib/pages/pageItem.ts:1916:21) at PageItem.onStateTrigger (/opt/iobroker/node_modules/iobroker.nspanel-lovelace-ui/src/lib/pages/pageItem.ts:2761:25) at PageItem.onStateTriggerSuperDoNotOverride (/opt/iobroker/node_modules/iobroker.nspanel-lovelace-ui/src/lib/classes/baseClassPage.ts:171:9) at StatesControler.onStateChange (/opt/iobroker/node_modules/iobroker.nspanel-lovelace-ui/src/lib/controller/states-controller.ts:773:25) at NspanelLovelaceUi.onStateChange (/opt/iobroker/node_modules/iobroker.nspanel-lovelace-ui/src/main.ts:611:17)
                        

                        Ich habe in der ThermoCard2 eine Lampe die nur dimmbar ist und wenn ich diese mit längerem Druck öffne also das PopUp und da den Slider hin und her bewege kommt es zum Absturz.
                        Das ist auch reproduzierbar.

                        1 Antwort Letzte Antwort
                        0
                        • D danny_v1

                          Ok vielen Dank schon mal, mit der Navigation komm ich nun schon mal klar.

                          Ich habe viele Sachen drin, mit denen ich ein paar Einstellungen mit dem LightControl Adapter über die Panel mache. In der Skript Version lief das alles sehr gut. Wenn ich jetzt die DP hier einfüge werden sie nicht erkannt. Ich habe da eigentlich nur die Schalter und ein paar Slider in Verwendung.

                          const Wohnzimmer_LC: PageType = {
                              type: 'cardEntities',
                              uniqueName: 'Wohnzimmer_LC',
                              heading: 'Wohnz. Lightcontrol',
                              subPage: true,
                              items: [
                          
                                        { id: 'alias.0.Wohnzimmer.LC.Komplett.AutoOnMotionEnable', name:'BWM', icon: 'lightbulb-off-outline'},
                                        { id: 'alias.0.Wohnzimmer.LC.Komplett.AutoOnMotionMinLux', name:'BWM MinLux"', icon: 'sun-wireless-outline', minValue: 0, maxValue: 25}]
                          }
                          

                          So sieht die Seite aus.

                          {
                            "type": "state",
                            "common": {
                              "name": "SET",
                              "role": "switch",
                              "type": "boolean",
                              "read": true,
                              "write": true,
                              "alias": {
                                "id": "lightcontrol.0.Wohnzimmer.autoOnMotion.enabled"
                              },
                              "custom": {
                                "lovelace.0": {
                                  "enabled": true,
                                  "entity": "switch",
                                  "name": "Wohnzimmer_LC_Komplett_AutoOnMotionEnable_SET",
                                  "attr_assumed_state": false,
                                  "attr_device_class": "switch"
                                }
                              },
                              "smartName": {
                                "de": "Wohnzimmer Bewegungsmelder",
                                "smartType": "socket"
                              }
                            },
                            "_id": "alias.0.Wohnzimmer.LC.Komplett.AutoOnMotionEnable.SET",
                            "native": {},
                            "acl": {
                              "object": 1636,
                              "state": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator"
                            },
                            "from": "system.adapter.admin.0",
                            "user": "system.user.admin",
                            "ts": 1764265292669
                          }
                          

                          So der DP für den Schalter.

                          {
                            "type": "state",
                            "common": {
                              "name": "SET",
                              "role": "level",
                              "type": "number",
                              "read": true,
                              "write": true,
                              "alias": {
                                "id": "lightcontrol.0.Wohnzimmer.autoOnMotion.minLux"
                              },
                              "max": 50
                            },
                            "_id": "alias.0.Wohnzimmer.LC.Komplett.AutoOnMotionMinLux.SET",
                            "native": {},
                            "from": "system.adapter.admin.0",
                            "user": "system.user.admin",
                            "ts": 1712775080349,
                            "acl": {
                              "object": 1636,
                              "state": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator"
                            }
                          }
                          

                          Und so der für den Slider.

                          Und iobroker schmeißt im log folgendes aus

                          [config-manager] Required: SET: alias.0.Wohnzimmer.LC.Komplett.AutoOnMotionMinLux, channel role: slider - missing - searching for dp: alias.0.Wohnzimmer.LC.Komplett.AutoOnMotionMinLux.SET, type: "number", role: "level", common.write: true
                          

                          Was mache ich da nur falsch?

                          Achso, das mit den Namen und Werten aus DPs geht so:

                          prefixName:"BWM: ", name: 'alias.0.Wohnzimmer.Sensoren.BWM.SECOND', suffixName: " Lux"
                          
                          T Nicht stören
                          T Nicht stören
                          ticaki
                          schrieb am zuletzt editiert von ticaki
                          #714

                          @danny_v1 sagte in Betatest NSPanel-lovelace-ui v0.7.x:

                          Achso, das mit den Namen und Werten aus DPs geht so:

                          prefixName:"BWM: ", name: 'alias.0.Wohnzimmer.Sensoren.BWM.SECOND', suffixName: " Lux"
                          

                          Jetzt wo ich es sehe weiß ich auch wieder das ich es eingebaut habe.

                          Zu dem Crash:
                          Das muß ich mal testen - lt. Fehlermeldung ist das ein popupTimer, da das nicht stimmen kann, ist dort wohl ein eher schwer zufindender Fehler.

                          Zeige bitte mal

                          1. Die Definitionszeile aus dem Script
                          2. den Channel mit Datenpunkten als Screenshot (damit ich die rolen checken kann)

                          EDIT: Ich kann im Moment wegen merkwürdigen Zahn/Kieferschmerzen nicht so richtig schlafen. Denke ich übersehe gerade was - sollte am Dienstag wieder besser sein. (Montag Arzt Termin)
                          @TT-Tom kannst du dir das mal angucken

                          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                          Spenden

                          T 1 Antwort Letzte Antwort
                          0
                          • D Offline
                            D Offline
                            danny_v1
                            schrieb am zuletzt editiert von danny_v1
                            #715
                             {id: 'alias.0.Wohnzimmer.Lampe.Stehlampe.Stehlampe', icon: 'floor-lamp', icon2: 'floor-lamp-outline', onColor: White, offColor: Gray},
                            
                            {
                              "_id": "alias.0.Wohnzimmer.Lampe.Stehlampe.Stehlampe.ACTUAL",
                              "native": {},
                              "type": "state",
                              "common": {
                                "alias": {
                                  "id": "zigbee2mqtt.0.0x7cb03eaa0a04b9cd.brightness"
                                },
                                "name": "ACTUAL",
                                "role": "value.dimmer",
                                "write": false,
                                "type": "number",
                                "unit": "%"
                              },
                              "acl": {
                                "object": 1636,
                                "state": 1636,
                                "owner": "system.user.admin",
                                "ownerGroup": "system.group.administrator"
                              },
                              "from": "system.adapter.admin.0",
                              "user": "system.user.admin",
                              "ts": 1713430455067
                            }
                            

                            Lampe.JPG
                            Hoffe das hilft weiter. Dann erst mal gute Besserung.

                            1 Antwort Letzte Antwort
                            0
                            • T ticaki

                              @danny_v1 sagte in Betatest NSPanel-lovelace-ui v0.7.x:

                              Achso, das mit den Namen und Werten aus DPs geht so:

                              prefixName:"BWM: ", name: 'alias.0.Wohnzimmer.Sensoren.BWM.SECOND', suffixName: " Lux"
                              

                              Jetzt wo ich es sehe weiß ich auch wieder das ich es eingebaut habe.

                              Zu dem Crash:
                              Das muß ich mal testen - lt. Fehlermeldung ist das ein popupTimer, da das nicht stimmen kann, ist dort wohl ein eher schwer zufindender Fehler.

                              Zeige bitte mal

                              1. Die Definitionszeile aus dem Script
                              2. den Channel mit Datenpunkten als Screenshot (damit ich die rolen checken kann)

                              EDIT: Ich kann im Moment wegen merkwürdigen Zahn/Kieferschmerzen nicht so richtig schlafen. Denke ich übersehe gerade was - sollte am Dienstag wieder besser sein. (Montag Arzt Termin)
                              @TT-Tom kannst du dir das mal angucken

                              T Offline
                              T Offline
                              TT-Tom
                              schrieb am zuletzt editiert von TT-Tom
                              #716

                              @ticaki
                              @danny_v1

                              bin am gucken, melde mich

                              EDIT: was ich bis jetzt testen konnte crasht der Adapter bei der Rolle Dimmer und CT, wenn der Adapter den Wert zurückbekommt.
                              Bei Dimmer über Actual und bei CT über Dimmer.
                              Was noch nicht passt ist das Popup von CT, da wird nur der Dimmer, dargestellt kein Temp.

                              Weiteres werde ich mit @ticaki besprechen.

                              Gruß Tom
                              https://github.com/tt-tom17
                              Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                              NSPanel Script Wiki
                              https://github.com/joBr99/nspanel-lovelace-ui/wiki

                              NSPanel Adapter Wiki
                              https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                              1 Antwort Letzte Antwort
                              0
                              • T Nicht stören
                                T Nicht stören
                                ticaki
                                schrieb zuletzt editiert von
                                #717

                                0.9.1 (2025-11-29)

                                • (ticaki) Fixed: Under certain circumstances, the adapter crashes when a pop-up is called.

                                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                Spenden

                                1 Antwort Letzte Antwort
                                1
                                • T Nicht stören
                                  T Nicht stören
                                  ticaki
                                  schrieb zuletzt editiert von ticaki
                                  #718

                                  @danny_v1

                                  Hallo,

                                  Bin etwas wacher als gestern daher gehe ich es nochmal alles durch und versuche alles zu beantworten - für doppelte Antworten sorry :)

                                  1. hast du ja schon rausgefunden (prefixName usw.)

                                  2. (Navigation) Ich weiß nicht ob wir das zusammenhängend erklärt haben. Skriptpages werden im Skript konfiguriert, Adminpages im Admin. Seiten die im array pages werden zirkulär Verlinkt und als letztes werden die Servicepages angehangen. Bedeutet von main ist links immer die ServicePage. Die Hauptseite muß main heißen, wenn im Adapter was in der navigation schief läuft wird auf main gesprungen.(als letzter Rettungsanker) Andernfalls müsste ich im Code einen Crash auslösen.

                                  3. (BeispielSkript) In sehr einfacher Form gibts im Adapterrepo ein Testscript - ich glaube aber Tom hat da nicht viele optionen eingebaut.

                                  4. (wled) Nein die gibt es nicht, kann ich aber einbauen und testen. Ich benutze wled ohne Nutzerinteraktion. Daher benötige ich das nicht. Mache am besten ein Issue auf und schlage mal vor wie du es gerne hättest.

                                  5. (batterie) Dazu fehlen infos - müsste wissen welche channel.role das hat und müsstest mal checken ob der alias richtig ist.

                                  6. Einzelne Optionen
                                    a) das kann bei jedem normalen PageItem benutzt werden.
                                    b) interpolateColor gibts nicht mehr
                                    c) dafür gibt es jetzt colorScale und Erweiterung dazu - siehe unten bei A1

                                  7. Den Fehler für den nicht funktionierenden Slider hab ich noch nicht gefunden, konnte es auch noch nicht reproduzieren.

                                  8. (slider crash) gefixt 0.9.1

                                  9. noch nicht release - slider die als navi benutzt wurden haben nicht ordentlich funktioniert.

                                  A1

                                  https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki/screensaver#iconscaleelement---erweiterte-icon-skalierung

                                  triGrad und quadriGrad ignorieren onColor und offColor. trigrad ist ein normale Ampel, quadri hat noch blau vor dem grün für Kälte zu Hitze

                                  {
                                          val_min: number;
                                          val_max: number;
                                          val_best?: number;
                                          /**
                                           * The 3. color for color best. Only with val_best.
                                           */
                                          color_best?: RGB;/**
                                      /**
                                       * The color mix mode. Default is 'mixed'.
                                       * ‘mixed’: the target colour is achieved by scaling between the two RGB colours. 2 colours are required.
                                       * 'cie': the target colour is achieved by mixing according to the CIE colour table. 2 colours are required.
                                       * 'hue': the target colour is calculated by scaling via colour, saturation and brightness. 2 colours are required.
                                       * 'triGrad': the target colour is interpolated in a three-color gradient from red to green. Colours are ignored
                                       * 'triGradAnchor': the target colour is interpolated in a three-color gradient from red to green, Yellow is anchored to val_best. Colours are ignored
                                       * 'quadriGrad': the target colour is interpolated in a four-color gradient from red to yellow, green and blue. Colours are ignored.
                                       * 'quadriGradAnchor': the target colour is interpolated in a four-color gradient from red to yellow, green and blue. green is anchored to val_best. Colours are ignored.
                                       */
                                          mode?: 'mixed' | 'hue' | 'cie' | 'triGrad' | 'triGradAnchor' | 'quadriGrad' | 'quadriGradAnchor';
                                          /**
                                           * The logarithm scaling to max, min or leave undefined for linear scaling.
                                           */
                                          log10?: 'max' | 'min';
                                          valIcon_min?: number;
                                          valIcon_max?: number
                                      };
                                  

                                  @TT-Tom
                                  Die Infos her stimmen zwar aber es sollte nicht iconScaleElement: { sondern colorScale: { dort stehen damit ein nicht programmierender Nutzer die Beispiele besser versteht.

                                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                  Spenden

                                  1 Antwort Letzte Antwort
                                  0
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  790

                                  Online

                                  32.4k

                                  Benutzer

                                  81.5k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Home
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe