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.5k

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

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

Betatest NSPanel-lovelace-ui v0.7.x

Geplant Angeheftet Gesperrt Verschoben Tester
706 Beiträge 26 Kommentatoren 125.6k 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.
  • S Snigga

    @ticaki bist der Wahnsinn. Leider bekomme ich es nicht zum laufen. Was muss ich im Script hinterlegen?

    const Nachricht: ScriptConfig.PagePopup = {
        card: 'popupNotify',
        dpInit: '',
        alwaysOn: 'none',
        uniqueID: 'Nachritcht',
        config: {
            card: 'popupNotify',
            data: {
                entity1: { value: { type: 'triggered', dp: '0_userdata.0.example_state' } },
                headline: { type: 'const', constVal: 'welcomeHToken' },
                colorHeadline: { true: { color: { type: 'const', constVal: Green } } },
                buttonLeft: { type: 'const', constVal: '' },
                colorButtonLeft: { true: { color: { type: 'const', constVal: White } } },
                buttonRight: { type: 'const', constVal: '' },
                colorButtonRight: { true: { color: { type: 'const', constVal: White } } },
                text: { type: 'const', constVal: 'welcomeTToken' }, // text: { type: 'const', constVal: 'Text Test ${pl}' },
                colorText: { true: { color: { type: 'const', constVal: White } } },
                timeout: { type: 'const', constVal: 3 },
                // {placeholder: {text: '' oder dp: ''}} im Text muss dann ${dieserKeyStehtImText} stehen
                // optionalValue: { type: 'const', constVal: { dieserKeyStehtImText: { text: 'das ist ein placeholder' } } },
                //setValue1: { type: 'const', constVal: true }, // alleine ist es ein switch
                //setValue2: { type: 'const', constVal: true }, // mit setValue2 wird 1, bei yes und 2 bei no auf true gesetzt
                closingBehaviour: { type: 'const', constVal: 'both' }, // 'both' | 'yes' | 'no' | 'none'
            },
        },
        pageItems: [],
        items: undefined,
    };
    
    const Nachricht1: any = {
        dpInit: '',
        alwaysOn: 'ignore',
        uniqueID: '///popupNotification',
        config: {
            card: 'popupNotify',
            data: {
                entity1: { value: { type: 'internal', dp: 'cmd/popupNotification', read: 'return true' } },
                headline: { type: 'internal', dp: 'cmd/popupNotification', read: 'return JSON.parse(val).headline' },
                colorHeadline: { true: { color: { type: 'const', constVal: Green } } },
                buttonLeft: { type: 'const', constVal: 'nextF' },
                colorButtonLeft: { true: { color: { type: 'const', constVal: White } } },
                buttonRight: { type: 'const', constVal: 'ok' },
                colorButtonRight: { true: { color: { type: 'const', constVal: White } } },
                text: { type: 'internal', dp: 'cmd/popupNotification', read: 'return JSON.parse(val).text' }, // text: { type: 'const', constVal: 'Text Test ${pl}' },
                colorText: { true: { color: { type: 'const', constVal: White } } },
                timeout: { type: 'const', constVal: 0 },
                // {placeholder: {text: '' oder dp: ''}}
                // optionalValue: { type: 'const', constVal: { pl: { text: 'das ist ein placeholder' } } },
                setValue1: { type: 'internalState', dp: 'cmd/NotificationCleared' },
                setValue2: { type: 'internalState', dp: 'cmd/NotificationNext' },
                closingBehaviour: { type: 'const', constVal: 'none' },
            },
        },
        pageItems: [],
        items: undefined,
    };
    
    

    Bzw. habe ich es auch über die Datenpunkte probiert.

    Screenshot 2025-11-08 203430.png

    T Offline
    T Offline
    ticaki
    schrieb am zuletzt editiert von ticaki
    #684

    @snigga

    POPUP ist in der main branch

    Wie es über States geht steht ja oben.

    zum Skriptversand folgendes:

    Simpel:

    sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', {id: 'test3', headline:'test3', buttonLeft:'weiter', buttonRight: 'oki',  text:'Es lebt!!!'})
    

    oder in kompliziert: :)

    type PagePopupDataDetails = {
                 headline: string;
                 text: string;
                 panel?: string;
                 priority?: number;
                 type?: 'information' | 'acknowledge';
                 id?: string;
                 colorHeadline?: {r:number,g:number,b:number} | string;
                 buttonLeft?: string;
                 colorButtonLeft?: {r:number,g:number,b:number} | string;
                 buttonRight?: string;
                 colorButtonRight?: {r:number,g:number,b:number} | string;
                 colorText?: {r:number,g:number,b:number} | string;
                 textSize?: string;
                 icon?: string;
                 iconColor?: {r:number,g:number,b:number};
                 alwaysOn?: boolean;
             };
    
    const message: PagePopupDataDetails = {
        id: 'test3', 
        priority: 49,
        headline:'test3', 
        buttonLeft:'weiter', 
        buttonRight: 'oki',  
        text:'Es lebt!!!',
        type: 'information',
    }
    
    sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', message)
    

    Popups sind grundsätzlich erstmal dauerhaft
    yes ist der rechte button - no der linke - no hat die funktion weiter - yes löschen

    id: zur Wiedererkennung - beliebige Zeichenkette - wenn leer werden alle gespeicherten Popups gelöscht
    type: information - wenn aufs X gedrückt wird oder auf den yes Button wird das gelöscht / acknowledge - drücken auf X startet wiedervorlage Timer (5 Minuten)
    priority: 1: höchste Prio - 0 bzw. <= 0 löscht das popup mit der id
    panel: nix popup ist global - mit angabe nur das benannte panel
    alwaysOn: das gleiche wie bei Seiten
    icon: wenn da wird icon iconcolor und textsize hingeschickt, sonst nicht

    text - headline muß angegeben sein sonst steht im Panel missing text/headline

    acknowledge ohne Angabe von buttonRight wird umgetypt in information

    das sind auswertungsstates für die popups

    Bildschirmfoto_2025-11-11_um_10.52.46.png

    in id steht die ID die du hingeschickt ist - auf globaler ebene steht noch das panel davor also panel.id
    lokal im panel steht nur die ID
    wenn yes oder no angeklickt wird, wird der entsprechende State mit der ID aktualisiert.

    global wird nur von globalen popups beschrieben. lokal von allen die auf dem panel angezeigt werden.

    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

    Spenden

    T 1 Antwort Letzte Antwort
    1
    • T ticaki

      @snigga

      POPUP ist in der main branch

      Wie es über States geht steht ja oben.

      zum Skriptversand folgendes:

      Simpel:

      sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', {id: 'test3', headline:'test3', buttonLeft:'weiter', buttonRight: 'oki',  text:'Es lebt!!!'})
      

      oder in kompliziert: :)

      type PagePopupDataDetails = {
                   headline: string;
                   text: string;
                   panel?: string;
                   priority?: number;
                   type?: 'information' | 'acknowledge';
                   id?: string;
                   colorHeadline?: {r:number,g:number,b:number} | string;
                   buttonLeft?: string;
                   colorButtonLeft?: {r:number,g:number,b:number} | string;
                   buttonRight?: string;
                   colorButtonRight?: {r:number,g:number,b:number} | string;
                   colorText?: {r:number,g:number,b:number} | string;
                   textSize?: string;
                   icon?: string;
                   iconColor?: {r:number,g:number,b:number};
                   alwaysOn?: boolean;
               };
      
      const message: PagePopupDataDetails = {
          id: 'test3', 
          priority: 49,
          headline:'test3', 
          buttonLeft:'weiter', 
          buttonRight: 'oki',  
          text:'Es lebt!!!',
          type: 'information',
      }
      
      sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', message)
      

      Popups sind grundsätzlich erstmal dauerhaft
      yes ist der rechte button - no der linke - no hat die funktion weiter - yes löschen

      id: zur Wiedererkennung - beliebige Zeichenkette - wenn leer werden alle gespeicherten Popups gelöscht
      type: information - wenn aufs X gedrückt wird oder auf den yes Button wird das gelöscht / acknowledge - drücken auf X startet wiedervorlage Timer (5 Minuten)
      priority: 1: höchste Prio - 0 bzw. <= 0 löscht das popup mit der id
      panel: nix popup ist global - mit angabe nur das benannte panel
      alwaysOn: das gleiche wie bei Seiten
      icon: wenn da wird icon iconcolor und textsize hingeschickt, sonst nicht

      text - headline muß angegeben sein sonst steht im Panel missing text/headline

      acknowledge ohne Angabe von buttonRight wird umgetypt in information

      das sind auswertungsstates für die popups

      Bildschirmfoto_2025-11-11_um_10.52.46.png

      in id steht die ID die du hingeschickt ist - auf globaler ebene steht noch das panel davor also panel.id
      lokal im panel steht nur die ID
      wenn yes oder no angeklickt wird, wird der entsprechende State mit der ID aktualisiert.

      global wird nur von globalen popups beschrieben. lokal von allen die auf dem panel angezeigt werden.

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

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

      type: information - wenn aufs X gedrückt wird oder auf den yes Button wird das gelöscht / acknowledge - drücken auf X startet wiedervorlage Timer (5 Minuten)

      kleine Ergänzung:

      Beim Type acknowledge, wird bei "yes" das Popup auch gelöscht -> ist als Lesebestätigung zu werten

      mit dem no / linken Button wird durch die Popups geblättert

      AlwaysOn ist Standard auf true, bei false läuft der Timeout vom Screensaver ab, wenn das Popup eingeblendet wird.
      Mit aufwecken des Panels erscheinen wieder die Popups, die noch nicht bestätigt wurden.

      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 Offline
        T Offline
        ticaki
        schrieb am zuletzt editiert von ticaki
        #686

        hab noch buzzer hinzugefügt

        • über States geht das nur mit true/false
        • per Skript kann man auch nen eigenen Buzzerstring mit schicken

        im Skript wird der type dann um dieses hier erweitert:

        buzzer?: boolean | string;
        

        Wird genau 1 mal beim ersten Anzeigen des entsprechenden Popup ausgelöst.

        @TT-Tom

        Ist natürlich auch für den Rest - anzumerken wäre zu yes und X noch:
        X schließt auf dem Panel wo es gedrückt wird das popup egal ob es ein globales oder lokales war.
        yes schließt/löscht/bestätigt bei einem globalen Popup dieses für alle Panels.

        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

        Spenden

        1 Antwort Letzte Antwort
        0
        • T Offline
          T Offline
          ticaki
          schrieb am zuletzt editiert von ticaki
          #687

          oft editiert:
          Ich benenne die States doch um - in buttonLeft und buttonRight - damit man weiß was es ist. Das Panel sendet halt yes oder no daher die states - aber das ist quark und verwirrt nur.

          States umbenannt

          isBuzzerAllowed hinzugefügt - das betrifft Notifications (screensaver) und pagePopups - wenn deaktiviert beept da nix. Gilt nicht für das explizierte Buzzern über State oder sendTo - wenn ihr absichtlich auf dem Schlafzimmerpanel um 4:00 nen buzzer hinsendet dann machts einfach nicht :D

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          1 Antwort Letzte Antwort
          0
          • T Offline
            T Offline
            ticaki
            schrieb am zuletzt editiert von ticaki
            #688

            Hier ne Anwendung für die pagePopup:

            macht ein Infopopup auf das anzeigt obs Adapterupdates gibt - alwaysOn: false - kein buzzer

            on({ id: 'admin.0.info.updatesJson', change: 'ne' }, main);
            
            type PagePopupDataDetails = {
                headline: string;
                text: string;
                panel?: string;
                priority?: number;
                type?: 'information' | 'acknowledge';
                id?: string;
                colorHeadline?: { r: number, g: number, b: number } | string;
                buttonLeft?: string;
                colorButtonLeft?: { r: number, g: number, b: number } | string;
                buttonRight?: string;
                colorButtonRight?: { r: number, g: number, b: number } | string;
                colorText?: { r: number, g: number, b: number } | string;
                textSize?: string;
                icon?: string;
                iconColor?: { r: number, g: number, b: number };
                alwaysOn?: boolean;
                buzzer?: boolean | string;
            };
            
            function main(obj) {
                let text = ''
                let headline = ''
                const id = 'AdapterUpdates'
                try {
                    const data = JSON.parse(obj.state.val);
                    const keys = Object.keys(data);
            
                    if (keys && keys.length > 0) {
                        for (const key of keys) {
                            text += `${key}: ${data[key].availableVersion}(${data[key].installedVersion})\n`
                        }
                        headline = 'Adapterupdates verfügbar'
                    }
                } catch {
                    //nothing
                }
                if (headline) {
                    const message: PagePopupDataDetails = {
                        headline,
                        text,
                        id,
                        buttonRight: 'Ok',
                        alwaysOn: false,
                    }
                    sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', message)
                } else {
                    sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', { id, text, headline, priority: -1 })
                }
            }
            
            main({ state: { val: getState('admin.0.info.updatesJson').val } })
            

            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

            Spenden

            1 Antwort Letzte Antwort
            0
            • T Offline
              T Offline
              ticaki
              schrieb am zuletzt editiert von ticaki
              #689

              In der Wiki: https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki/PagePopup

              0.8.0 (2025-11-13)

              • (Armilar) IMPORTANT: update to TFT Version 5.1.0
              • (ticaki) pagePopup added
              • (ticaki) color for brightsky favorit/bottom day fixed
              • (ticaki) unlock pin failtimeout - fixed

              TFT update ist wichtig, sonst läuft die pagePopup nicht ordentlich.

              yes und no States kann man löschen, falls ihr schon mal zwischendurch probiert habt - auf keinen Fall nspanel-lovelace-ui.0 löschen und nspanel-lovelace-ui.0.panels.A0_B7_65_54_C2_60 usw. nur löschen wenn ihr in der NavigationsView nix gemacht habt.

              Nochmal neu die Beschreibung da sich ein paar Sachen geändert haben und mir das zu verwirrend ist @TT-Tom lese nochmal gegen das editiere ich - oder guck im repo da ist es auch.

              Bildschirmfoto 2025-11-07 um 11.05.45.png

              Es werden immer alle Datenpunkte übertragen:

              activate sendet die Daten an den Adapter

              Erklärung zu den States ist unten zu finden - einzig global bedeutet an alle Panels senden

              buttonLeft hat nächstes als Standardfunktion (unendlicher Kreisverkehr) - wird automatische eingeblendet bei Bedarf
              buttonMid schließt nur die pagePopup
              buttonRight hat löschen als Standardfunktion

              buttonLeft die nächste Funktion, schließt global/lokal ein überblättertes information Popup
              X schließt auf dem Panel wo es gedrückt wird das popup. Ein information Popup wird dabei entfernt.
              buttonRight schließt/löscht/bestätigt bei einem globalen Popup dieses für alle Panels.

              Empfohlen: Versand mit Hilfe eines Skriptes

              Simpel:

              sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', {id: 'test3', headline:'test3', buttonLeft:'weiter', buttonRight: 'oki',  text:'Es lebt!!!'})
              

              oder in kompliziert: :)

              type PagePopupDataDetails = {
                           id?: string;
                           headline: string;
                           text: string;
                           panel?: string;
                           priority?: number;
                           type?: 'information' | 'acknowledge';
                           colorHeadline?: {r:number,g:number,b:number} | string;
                           buttonLeft?: string;
                           colorButtonLeft?: {r:number,g:number,b:number} | string;
                           buttonMid?: string;
                           colorButtonMid?: {r:number,g:number,b:number} | string;
                           buttonRight?: string;
                           colorButtonRight?: {r:number,g:number,b:number} | string;
                           colorText?: {r:number,g:number,b:number} | string;
                           textSize?: string;
                           icon?: string;
                           iconColor?: {r:number,g:number,b:number};
                           alwaysOn?: boolean;
                           buzzer: boolean | string
                       };
              
              const message: PagePopupDataDetails = {
                  id: 'test3', 
                  priority: 49,
                  headline:'test3', 
                  buttonLeft:'weiter', 
                  buttonRight: 'oki',  
                  text:'Es lebt!!!',
                  type: 'information',
              }
              
              sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', message)
              

              Popups sind grundsätzlich erstmal dauerhaft
              buttonLeft - buttonMid - buttonRight wurde ja oben schon erklärt

              Global: Wenn kein Panel angegeben ist gilt alles als global auch das löschen.

              id: zur Wiedererkennung - beliebige Zeichenkette - wenn leer werden alle gespeicherten Popups gelöscht
              type: information - wenn aufs X gedrückt wird oder auf den buttonRight/buttonLeft wird das gelöscht / acknowledge - drücken auf X startet wiedervorlage Timer (5 Minuten) drücken auf buttonRight löscht es.
              priority: 1: höchste Prio | <= 0 löscht das popup mit der id <= -100 löscht die Popups die mit der id anfangen
              panel: leer oder nicht da -> popup ist global | mit Angabe nur das benannte Panel
              alwaysOn: das gleiche wie bei Seiten
              textSize: unterschiedliche Textgrößen 0-5
              buzzer: true/false oder ein Tasmota Buzzer string. Wird 1 mal beim anzeigen ausgelöst.

              text - headline muß angegeben sein sonst steht im Panel missing text/headline

              acknowledge ohne Angabe von buttonRight bekommt nen 'Ok' button

              Auswertungsstates für die Popups

              Bildschirmfoto 2025-11-13 um 22.10.38.png

              in id steht die ID die du hingeschickt ist - auf globaler ebene steht noch das panel davor also panel.id
              lokal im panel steht nur die ID

              global wird nur von globalen popups beschrieben. lokal von allen die auf dem panel angezeigt werden.

              Beim Drücken eines Buttons wird der entsprechende Button mit der ID aktualisiert. Bei globalen Popups auch auf der globalen Ebene

              EDIT: weather-warnings unterstützt das popup hier

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              1 Antwort Letzte Antwort
              0
              • T Offline
                T Offline
                ticaki
                schrieb am zuletzt editiert von ticaki
                #690

                Ich glaube wir haben jetzt alles an Grundfunktionen im Adapter, mal abgesehen von dem leidigen Thema Adminkonfiguration.

                Wenn was fehlt bitte Issue eröffnen.

                EDIT: passend dazu hat @apollon77 gerade sein ok gegeben das wir ins latest repo dürfen :fireworks:

                0.8.1 (2025-11-15)

                • (ticaki) first Version at latest
                • (ticaki) New attempt to get MQTT TLS keys into the backup

                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                Spenden

                M 1 Antwort Letzte Antwort
                2
                • T ticaki

                  Ich glaube wir haben jetzt alles an Grundfunktionen im Adapter, mal abgesehen von dem leidigen Thema Adminkonfiguration.

                  Wenn was fehlt bitte Issue eröffnen.

                  EDIT: passend dazu hat @apollon77 gerade sein ok gegeben das wir ins latest repo dürfen :fireworks:

                  0.8.1 (2025-11-15)

                  • (ticaki) first Version at latest
                  • (ticaki) New attempt to get MQTT TLS keys into the backup
                  M Offline
                  M Offline
                  muuulle
                  schrieb am zuletzt editiert von
                  #691

                  @ticaki
                  Moin,
                  kann man eigentlich im Screensaver die Icons variabel gestalten (so wie bei der Farbe)? 🤔

                  Schöne Grüße

                  T 1 Antwort Letzte Antwort
                  0
                  • M muuulle

                    @ticaki
                    Moin,
                    kann man eigentlich im Screensaver die Icons variabel gestalten (so wie bei der Farbe)? 🤔

                    Schöne Grüße

                    T Offline
                    T Offline
                    ticaki
                    schrieb am zuletzt editiert von ticaki
                    #692

                    @muuulle

                    Verstehe die Frage nicht so richtig. Du kannst den screensaver komplett selbst konfigurieren. Wenn dir also ein Icon nicht zu sagt kannst du ein eigenes item anlegen. Die Standard ist nur ums einfacher zu machen.

                    Aber ernsthaft sage genauer was du ändern willst. Man kann sovieles machen das ich nicht erkenne wo du hinwillst

                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                    Spenden

                    1 Antwort Letzte Antwort
                    0
                    • bembelstemmerB Offline
                      bembelstemmerB Offline
                      bembelstemmer
                      schrieb am zuletzt editiert von
                      #693

                      Hi, ich bin heute endlich mal ein paar Minuten zum weiter machen gekommen.

                      Ich habe mal die ersten drei Themen gesammelt als Fragen und Feedback.


                      Leider habe ich hier im Forum nichts dazu gefunden aber irgenwie scheitere ich gerade an den aller einfachsten Dingen. peinlich
                      Ich wollte als ersten Test einfach nur einen Schalter auf die Hauptseite cardGrid legen.
                      Aber egal welche Rolle der Datenpunkt hat, das Script gibt mir immer aus "Channel role ... not supported".
                      Laut Doku bedeutet das ja, dass es nicht implementiert werden soll.

                          const Hauptseite: ScriptConfig.PageGrid = {
                              type: 'cardGrid',
                              uniqueName: 'main',
                              heading: 'Menü',
                              items: [
                                  { id: '0_userdata.0.testswitch', icon: 'power' },
                              ]
                          };
                      

                      Der State ist boolean und ich habe state und switch mit den Untertypen ausprobiert. Ein Button hilft mir nicht, da es toggeln soll.

                      Ich schätze mal, ich hab nur einfach irgendwas noch nicht richtig verstanden.


                      Und noch eine zweite Frage bzw. Vorschlag: Bei der klassischen Script Variante wurde das Wetter aus einem Alias gezogen. Das hatte den Vorteil, dass ich die aktuelle Temperatur die z.B. der Screensaver beim Wettericon angezeigt wurde einfach auf mein richtiges Außenthermometer umbiegen konnte.
                      Jetzt, wo direkt der Wetteradapter angegeben ist habe ich noch nicht gesehen dass das aktuell möglich ist außer wenn ich mir einen fake-proxy für z.b. den pirate-weather baue.
                      Wäre das was für die Zukunft, denn den geschätzen Wert brauche ich ja nicht wenn ich auf einem zusätzlichen Icon dann noch den echten Wert anzeige.


                      Thema Nr. 3 betrifft die MQTT Settings die automatisch konfiguriert werden.
                      Wenn man "wie früher" die Rule2 konfiguriert um die Tasten von den Relais zu entkoppeln, wird im MQTT Pfad der Rule %topic% verwendet.
                      Aktuell wird (bzw. wurde bei mir durch die Initialisierung) nichts für den %topic% Wert konfiguriert. Default ist dann "Tasmota_XXXX".
                      Dadurch schickt der Panel dann den Tastendruck ohne Fehler an die falsche Stelle und nichts passiert.
                      Nachdem ich das %topic% dann auf den Panelnamen gesetzt hatte, ging dann alles perfekt.


                      Ansonsten vielen Dank für die ganze Arbeit, die Performance macht echt nen richtig guten Eindruck bisher.

                      T T 2 Antworten Letzte Antwort
                      0
                      • teletapiT Online
                        teletapiT Online
                        teletapi
                        schrieb am zuletzt editiert von teletapi
                        #694

                        Also Rule2 müsste bei mir off sein. Das entkopplen kannst du im Menue am NSPanel selbst machen. Service Menue, Relais, beide auf decoupled stellen.
                        Sieht im script dann so aus:

                        //-------DE: Anfang Einstellungen für Hardware Button, wenn Sie softwareseitig genutzt werden (Rule2) -------------
                                //-------EN: Start Settings for Hardware Button, if used in software (Rule2) --------------------------------------
                                // DE: Konfiguration des linken Schalters des NSPanels
                                // EN: Configuration of the left switch of the NSPanel
                                buttonLeft: {
                                mode: 'switch',
                                state: 'alias.0.Flur.Flur_unten_Haustuer.ON' // Datenpunkt vom Type boolean z.B. ein Schalter 
                            },
                        
                            
                        
                                // DE: Konfiguration des rechten Schalters des NSPanels
                                // EN: Configuration of the right switch of the NSPanel
                                buttonRight: {
                            mode: 'switch',
                            state: 'alias.0.Flur.Flur_Mitte.ON' // Datenpunkt vom Type boolean z.B. ein Schalter 
                            },
                        
                                //--------- DE: Ende - Einstellungen für Hardware Button, wenn Sie softwareseitig genutzt werden (Rule2) -------------
                                //--------- EN: End - settings for hardware button if they are used in software (Rule2) ------------------------------
                        
                        

                        Rule2 in tasmota so:

                        23:54:10.219 CMD: Rule2
                        23:54:10.226 MQT: SmartHome/NSPanel_Schlafzimmer/stat/RESULT = {"Rule2":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":189,"Free":322,"Rules":"on Button1#state do Publish SmartHome/%topic%/tele/RESULT {\"CustomRecv\":\"event,button1\"} endon on Button2#state do Publish SmartHome/%topic%/tele/RESULT {\"CustomRecv\":\"event,button2\"} endon"}}
                        
                        1 Antwort Letzte Antwort
                        0
                        • bembelstemmerB bembelstemmer

                          Hi, ich bin heute endlich mal ein paar Minuten zum weiter machen gekommen.

                          Ich habe mal die ersten drei Themen gesammelt als Fragen und Feedback.


                          Leider habe ich hier im Forum nichts dazu gefunden aber irgenwie scheitere ich gerade an den aller einfachsten Dingen. peinlich
                          Ich wollte als ersten Test einfach nur einen Schalter auf die Hauptseite cardGrid legen.
                          Aber egal welche Rolle der Datenpunkt hat, das Script gibt mir immer aus "Channel role ... not supported".
                          Laut Doku bedeutet das ja, dass es nicht implementiert werden soll.

                              const Hauptseite: ScriptConfig.PageGrid = {
                                  type: 'cardGrid',
                                  uniqueName: 'main',
                                  heading: 'Menü',
                                  items: [
                                      { id: '0_userdata.0.testswitch', icon: 'power' },
                                  ]
                              };
                          

                          Der State ist boolean und ich habe state und switch mit den Untertypen ausprobiert. Ein Button hilft mir nicht, da es toggeln soll.

                          Ich schätze mal, ich hab nur einfach irgendwas noch nicht richtig verstanden.


                          Und noch eine zweite Frage bzw. Vorschlag: Bei der klassischen Script Variante wurde das Wetter aus einem Alias gezogen. Das hatte den Vorteil, dass ich die aktuelle Temperatur die z.B. der Screensaver beim Wettericon angezeigt wurde einfach auf mein richtiges Außenthermometer umbiegen konnte.
                          Jetzt, wo direkt der Wetteradapter angegeben ist habe ich noch nicht gesehen dass das aktuell möglich ist außer wenn ich mir einen fake-proxy für z.b. den pirate-weather baue.
                          Wäre das was für die Zukunft, denn den geschätzen Wert brauche ich ja nicht wenn ich auf einem zusätzlichen Icon dann noch den echten Wert anzeige.


                          Thema Nr. 3 betrifft die MQTT Settings die automatisch konfiguriert werden.
                          Wenn man "wie früher" die Rule2 konfiguriert um die Tasten von den Relais zu entkoppeln, wird im MQTT Pfad der Rule %topic% verwendet.
                          Aktuell wird (bzw. wurde bei mir durch die Initialisierung) nichts für den %topic% Wert konfiguriert. Default ist dann "Tasmota_XXXX".
                          Dadurch schickt der Panel dann den Tastendruck ohne Fehler an die falsche Stelle und nichts passiert.
                          Nachdem ich das %topic% dann auf den Panelnamen gesetzt hatte, ging dann alles perfekt.


                          Ansonsten vielen Dank für die ganze Arbeit, die Performance macht echt nen richtig guten Eindruck bisher.

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

                          @bembelstemmer

                          wenn du etwas schalten willst, wäre die Rolle für den Channel entweder socket oder light.
                          Das ist die selbe Einstellung wie beim Script inkl. Datenpunkte.

                          zeige doch mal deine Datenpunkte inkl. Channel .

                          für Thema zwei gibt es noch kein Template, bitte lege dazu ein issue an. ich kann dir aus dem Stegreif jetzt keine kompetente Lösung anbieten.

                          Thema 3
                          Im Adapter werden die Rules automatisch gesetzt, wie auch die MQTT-Einstellungen.
                          Um die Tasten / Relais umzustellen, kannst über das Servicemenü unter Relais einstellen oder per State unter

                          cmd/detachLeft
                          cmd/detachRight
                          

                          mit

                          cmd/power1
                          cmd7power2
                          

                          kannst du die Relais schalten.

                          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

                          T 1 Antwort Letzte Antwort
                          0
                          • teletapiT Online
                            teletapiT Online
                            teletapi
                            schrieb am zuletzt editiert von teletapi
                            #696

                            Was die Schalter oder Steckdosen angeht sieht das bei mir mit einem Beispiel so aus.

                            als erstes.
                            "Alle_Steckdosen" unter "Pages" eintragen

                                 const Alle_Steckdosen: ScriptConfig.PageGrid = {    
                                    type: 'cardGrid',
                                    uniqueName: 'Alle_Steckdosen',
                                    heading: 'Steckdosen',
                                    useColor: true,
                                    items: [
                                    { navigate: true, id: null, targetPage: 'Steckdosen', offColor: Red, onColor: Green, name: 'Alle Steckdosen'},
                                ],
                            };
                            

                            Als nächstes die Steckdosen : Dier erste Steckdose funktioniert, die letzte ist hier ausgeblendet. Alle anderen dazwischen hab ich gelöscht damit es nicht zu unübersichtlich wird.
                            "Steckdosen" dann unter "subPages" eintragen

                                 const Steckdosen: ScriptConfig.PageEntities = {    
                                    type: 'cardEntities',
                                    uniqueName: 'Steckdosen',
                                    heading: 'Steckdosen',
                                    subPage: true,
                                    useColor: true,
                                    prev: 'Alle_Steckdosen',
                                    home: 'Alle_Steckdosen',
                                    items: [
                                    { id: 'alias.0.Steckdosen.Steckdose_Waschkueche',
                                           targetPage: 'Steckdosen', 
                                           icon: 'power-socket-de', 
                                           icon2: 'power-plug-off-outline', 
                                           offColor: Red, 
                                           onColor: Green, 
                                           name: '3D Drucker'
                                           },
                                    { id: 'alias.0.Steckdosen.Büro_DTU', 
                                           targetPage: 'Steckdosen', 
                                           icon: 'power-socket-de', 
                                           icon2: 'power-plug-off-outline', 
                                           offColor: Red, 
                                           onColor: Green, 
                                           name: 'Buero Ahoy-DTU'
                                           },
                                    /*{ id: 'alias.0.Steckdosen.Steckdose_ueber_Schreibtisch', 
                                           targetPage: 'Steckdosen', 
                                           icon: 'power-socket-de', 
                                           icon2: 'power-plug-off-outline', 
                                           offColor: Red, 
                                           onColor: Green, 
                                           name: 'PC Netzwerk'
                                           },*/
                                ],
                            };
                            
                            T 1 Antwort Letzte Antwort
                            0
                            • teletapiT teletapi

                              Was die Schalter oder Steckdosen angeht sieht das bei mir mit einem Beispiel so aus.

                              als erstes.
                              "Alle_Steckdosen" unter "Pages" eintragen

                                   const Alle_Steckdosen: ScriptConfig.PageGrid = {    
                                      type: 'cardGrid',
                                      uniqueName: 'Alle_Steckdosen',
                                      heading: 'Steckdosen',
                                      useColor: true,
                                      items: [
                                      { navigate: true, id: null, targetPage: 'Steckdosen', offColor: Red, onColor: Green, name: 'Alle Steckdosen'},
                                  ],
                              };
                              

                              Als nächstes die Steckdosen : Dier erste Steckdose funktioniert, die letzte ist hier ausgeblendet. Alle anderen dazwischen hab ich gelöscht damit es nicht zu unübersichtlich wird.
                              "Steckdosen" dann unter "subPages" eintragen

                                   const Steckdosen: ScriptConfig.PageEntities = {    
                                      type: 'cardEntities',
                                      uniqueName: 'Steckdosen',
                                      heading: 'Steckdosen',
                                      subPage: true,
                                      useColor: true,
                                      prev: 'Alle_Steckdosen',
                                      home: 'Alle_Steckdosen',
                                      items: [
                                      { id: 'alias.0.Steckdosen.Steckdose_Waschkueche',
                                             targetPage: 'Steckdosen', 
                                             icon: 'power-socket-de', 
                                             icon2: 'power-plug-off-outline', 
                                             offColor: Red, 
                                             onColor: Green, 
                                             name: '3D Drucker'
                                             },
                                      { id: 'alias.0.Steckdosen.Büro_DTU', 
                                             targetPage: 'Steckdosen', 
                                             icon: 'power-socket-de', 
                                             icon2: 'power-plug-off-outline', 
                                             offColor: Red, 
                                             onColor: Green, 
                                             name: 'Buero Ahoy-DTU'
                                             },
                                      /*{ id: 'alias.0.Steckdosen.Steckdose_ueber_Schreibtisch', 
                                             targetPage: 'Steckdosen', 
                                             icon: 'power-socket-de', 
                                             icon2: 'power-plug-off-outline', 
                                             offColor: Red, 
                                             onColor: Green, 
                                             name: 'PC Netzwerk'
                                             },*/
                                  ],
                              };
                              
                              T Offline
                              T Offline
                              TT-Tom
                              schrieb am zuletzt editiert von
                              #697

                              @teletapi

                              sein Problem wird die Rolle des Channel sein.

                              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 TT-Tom

                                @bembelstemmer

                                wenn du etwas schalten willst, wäre die Rolle für den Channel entweder socket oder light.
                                Das ist die selbe Einstellung wie beim Script inkl. Datenpunkte.

                                zeige doch mal deine Datenpunkte inkl. Channel .

                                für Thema zwei gibt es noch kein Template, bitte lege dazu ein issue an. ich kann dir aus dem Stegreif jetzt keine kompetente Lösung anbieten.

                                Thema 3
                                Im Adapter werden die Rules automatisch gesetzt, wie auch die MQTT-Einstellungen.
                                Um die Tasten / Relais umzustellen, kannst über das Servicemenü unter Relais einstellen oder per State unter

                                cmd/detachLeft
                                cmd/detachRight
                                

                                mit

                                cmd/power1
                                cmd7power2
                                

                                kannst du die Relais schalten.

                                T Offline
                                T Offline
                                ticaki
                                schrieb am zuletzt editiert von ticaki
                                #698

                                @TT-Tom

                                Thema 2 dürfte durch umbiegen von entity1 gehen - müsste man mal testen
                                also damit meine ich:

                                // das hier ist falsch
                                {
                                type: 'native'
                                native: {
                                template: 'keineAhnung'
                                dp: 'x.y.z'
                                data: {
                                entity1: {
                                value: {
                                type: 'triggered', dp: 'eigenes.wetter'
                                }}}}
                                }
                                

                                müssten man mal ausprobieren. Keine Ahnung ob native überhaupt in screensaver geht

                                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                Spenden

                                T 1 Antwort Letzte Antwort
                                0
                                • T ticaki

                                  @TT-Tom

                                  Thema 2 dürfte durch umbiegen von entity1 gehen - müsste man mal testen
                                  also damit meine ich:

                                  // das hier ist falsch
                                  {
                                  type: 'native'
                                  native: {
                                  template: 'keineAhnung'
                                  dp: 'x.y.z'
                                  data: {
                                  entity1: {
                                  value: {
                                  type: 'triggered', dp: 'eigenes.wetter'
                                  }}}}
                                  }
                                  

                                  müssten man mal ausprobieren. Keine Ahnung ob native überhaupt in screensaver geht

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

                                  @ticaki

                                  So in der Art dachte ich auch, muss man mal testen.

                                  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
                                  • bembelstemmerB bembelstemmer

                                    Hi, ich bin heute endlich mal ein paar Minuten zum weiter machen gekommen.

                                    Ich habe mal die ersten drei Themen gesammelt als Fragen und Feedback.


                                    Leider habe ich hier im Forum nichts dazu gefunden aber irgenwie scheitere ich gerade an den aller einfachsten Dingen. peinlich
                                    Ich wollte als ersten Test einfach nur einen Schalter auf die Hauptseite cardGrid legen.
                                    Aber egal welche Rolle der Datenpunkt hat, das Script gibt mir immer aus "Channel role ... not supported".
                                    Laut Doku bedeutet das ja, dass es nicht implementiert werden soll.

                                        const Hauptseite: ScriptConfig.PageGrid = {
                                            type: 'cardGrid',
                                            uniqueName: 'main',
                                            heading: 'Menü',
                                            items: [
                                                { id: '0_userdata.0.testswitch', icon: 'power' },
                                            ]
                                        };
                                    

                                    Der State ist boolean und ich habe state und switch mit den Untertypen ausprobiert. Ein Button hilft mir nicht, da es toggeln soll.

                                    Ich schätze mal, ich hab nur einfach irgendwas noch nicht richtig verstanden.


                                    Und noch eine zweite Frage bzw. Vorschlag: Bei der klassischen Script Variante wurde das Wetter aus einem Alias gezogen. Das hatte den Vorteil, dass ich die aktuelle Temperatur die z.B. der Screensaver beim Wettericon angezeigt wurde einfach auf mein richtiges Außenthermometer umbiegen konnte.
                                    Jetzt, wo direkt der Wetteradapter angegeben ist habe ich noch nicht gesehen dass das aktuell möglich ist außer wenn ich mir einen fake-proxy für z.b. den pirate-weather baue.
                                    Wäre das was für die Zukunft, denn den geschätzen Wert brauche ich ja nicht wenn ich auf einem zusätzlichen Icon dann noch den echten Wert anzeige.


                                    Thema Nr. 3 betrifft die MQTT Settings die automatisch konfiguriert werden.
                                    Wenn man "wie früher" die Rule2 konfiguriert um die Tasten von den Relais zu entkoppeln, wird im MQTT Pfad der Rule %topic% verwendet.
                                    Aktuell wird (bzw. wurde bei mir durch die Initialisierung) nichts für den %topic% Wert konfiguriert. Default ist dann "Tasmota_XXXX".
                                    Dadurch schickt der Panel dann den Tastendruck ohne Fehler an die falsche Stelle und nichts passiert.
                                    Nachdem ich das %topic% dann auf den Panelnamen gesetzt hatte, ging dann alles perfekt.


                                    Ansonsten vielen Dank für die ganze Arbeit, die Performance macht echt nen richtig guten Eindruck bisher.

                                    T Offline
                                    T Offline
                                    ticaki
                                    schrieb am zuletzt editiert von ticaki
                                    #700

                                    @bembelstemmer

                                    Zu:

                                    1.
                                    Es wird ein channel mit role 'xyz' erwartet in dem ein State mit type:'x' und role: 'y' ist. Der channel ist die ID.
                                    Um es sich besser zu merken - channel ist welches "Vorlage" verwendet wird und die states darunter sind die dazu gehörenden Daten.

                                    2. eigener State im Favorit

                                    Dafür muß wahrscheinlich das automatische Hinzufügen von Wetterelementen ausgeschaltet werden. Dann definiert man das Favoritenelement selbst. Es kann vielleicht auch gehen wenn die weiter an bleiben, weil Nutzerelemente vor den anderen ins Array geschrieben werden und ohne Rotation werden die ersten zuerst angezeigt.

                                    // Ausschalten des automatischen Hinzufügens. Auch im Admin auf custom = leer umstellen
                                    weatherEntity: '',
                                    //...
                                    
                                    favoritScreensaverEntity:[
                                             {
                                                    type: 'native',
                                                    native:{
                                                        template: 'text.brightsky.favorit',
                                                        dpInit: `/^brightsky\\.0\\.current.+/`,
                                                        modeScr: 'favorit',
                                                        data: {
                                                            entity2: {
                                                                value: {
                                                                    type: 'triggered',
                                                                    dp: 'sainlogic.0.weather.current.outdoortemp'
                                                                }
                                                            }
                                                        }
                                                    }
                                                },
                                         ],
                                    

                                    3.
                                    Der Adapter verwendet Rule3 und macht dann folgendes:

                                    this.sendToTasmota(
                                                `${this.topic}/cmnd/Rule3`,
                                                `ON CustomSend DO RuleTimer3 120 ENDON ON Rules#Timer=3 DO CustomSend pageType~pageStartup ENDON${
                                                    this.detach.left
                                                        ? ` ON Button1#state do Publish ${this.topic}/tele/RESULT {"CustomRecv":"event,button1"} ENDON`
                                                        : ''
                                                }${
                                                    this.detach.right
                                                        ? ` ON Button2#state do Publish ${this.topic}/tele/RESULT {"CustomRecv":"event,button2"} ENDON`
                                                        : ''
                                                }`,
                                            );
                                    

                                    Die erste Abfrage bringt das panel in den startup wenn es länger als 120 Sekunden keine Nachricht vom Adapter bekommen hat. Das zweite und dritte sind für das detachen zuständig, jenachdem wie State: nspanel-lovelace-ui.0.panels.A0_B7_65_54_C2_60.cmd.detachLeft / Right aussehen

                                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                    Spenden

                                    1 Antwort Letzte Antwort
                                    0
                                    • bembelstemmerB Offline
                                      bembelstemmerB Offline
                                      bembelstemmer
                                      schrieb am zuletzt editiert von bembelstemmer
                                      #701

                                      Vielen Dank, ich hab ja gesagt dass ich bestimmt irgendwas verpeilt habe :grin:
                                      Ich habe nen Haufen States die ich für die Steuerung meiner ganzen Scripts verwende für verschiedenste Use-Cases. Das sind alles weder Steckdosen noch Lichter. Hatte verdrängt dass ich für jeden Bool-Wert den ich schalten möchte ein Fake-Gerät-Alias anlegen muss.
                                      Hatte gedacht bzw. gehofft dass man einfach bool Punkte toggeln kann wie es z.B. bei der Belegung der Hardwarebuttons geht über den neuen Mode 'switch'.
                                      Also sorry für die überflüssige Frage.


                                      Zu Thema2: Vielen Dank für den Tipp. Werde ich mir mal anschauen und testen.
                                      Ich muss mir das noch mal genauer durchlesen. Ich habe das Konzept von den Templates noch nicht ganz durchschaut und was ich da dann genau machen muss.
                                      Ich gebe nochmal bescheid ob das so klappt wie vorgeschlagen.


                                      Zu Thema 3: Danke für die Erläuterung. Die ganzen Settings mit der Rule2 und detach sind alle bekannt. Ich benutze das ja schon einige Jahre.
                                      Ich hatte nur übersehen, dass hier die Einstellung für Topic auf dem Defaultwert bleibt bei der Einrichtung.
                                      Wenn dann die Rule2 so gesetzt ist:
                                      ...state do Publish SmartHome/%topic%/tele/RESULT ....
                                      dann landen die Events quasi im Nirvana, da der Pfad dann nicht stimmt.
                                      7a655f9a-d3f2-4c04-ab9e-54531a6456b2-grafik.png
                                      Aber vielleicht ist auch nur bei dem automatischen Setup bei mir was schief gegangen.
                                      Hatte nen reset 4 gemacht und dann alles automatisch über den Adapter laufen lassen.

                                      @ticaki Danke für die Info. Das habe ich nicht gesehen. Trotz komplettem Reset war irgendwie die Rule2 nach dem auto setup gesetzt und das schalten von States über die Buttons hat nicht funtkioniert. Nachdem ichs über die Rule2 wie oben beschrieben selbst gesetzt habe ging es dann.
                                      Werde ich nochmal vom Reset aus durchspielen was da schief gelaufen ist.

                                      T 1 Antwort Letzte Antwort
                                      0
                                      • bembelstemmerB bembelstemmer

                                        Vielen Dank, ich hab ja gesagt dass ich bestimmt irgendwas verpeilt habe :grin:
                                        Ich habe nen Haufen States die ich für die Steuerung meiner ganzen Scripts verwende für verschiedenste Use-Cases. Das sind alles weder Steckdosen noch Lichter. Hatte verdrängt dass ich für jeden Bool-Wert den ich schalten möchte ein Fake-Gerät-Alias anlegen muss.
                                        Hatte gedacht bzw. gehofft dass man einfach bool Punkte toggeln kann wie es z.B. bei der Belegung der Hardwarebuttons geht über den neuen Mode 'switch'.
                                        Also sorry für die überflüssige Frage.


                                        Zu Thema2: Vielen Dank für den Tipp. Werde ich mir mal anschauen und testen.
                                        Ich muss mir das noch mal genauer durchlesen. Ich habe das Konzept von den Templates noch nicht ganz durchschaut und was ich da dann genau machen muss.
                                        Ich gebe nochmal bescheid ob das so klappt wie vorgeschlagen.


                                        Zu Thema 3: Danke für die Erläuterung. Die ganzen Settings mit der Rule2 und detach sind alle bekannt. Ich benutze das ja schon einige Jahre.
                                        Ich hatte nur übersehen, dass hier die Einstellung für Topic auf dem Defaultwert bleibt bei der Einrichtung.
                                        Wenn dann die Rule2 so gesetzt ist:
                                        ...state do Publish SmartHome/%topic%/tele/RESULT ....
                                        dann landen die Events quasi im Nirvana, da der Pfad dann nicht stimmt.
                                        7a655f9a-d3f2-4c04-ab9e-54531a6456b2-grafik.png
                                        Aber vielleicht ist auch nur bei dem automatischen Setup bei mir was schief gegangen.
                                        Hatte nen reset 4 gemacht und dann alles automatisch über den Adapter laufen lassen.

                                        @ticaki Danke für die Info. Das habe ich nicht gesehen. Trotz komplettem Reset war irgendwie die Rule2 nach dem auto setup gesetzt und das schalten von States über die Buttons hat nicht funtkioniert. Nachdem ichs über die Rule2 wie oben beschrieben selbst gesetzt habe ging es dann.
                                        Werde ich nochmal vom Reset aus durchspielen was da schief gelaufen ist.

                                        T Offline
                                        T Offline
                                        ticaki
                                        schrieb am zuletzt editiert von ticaki
                                        #702

                                        @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.

                                        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                        Spenden

                                        bembelstemmerB 1 Antwort Letzte Antwort
                                        0
                                        • 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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          431

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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