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 Adapter NSPanel-lovelace-ui v0.13.x

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    439

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    5.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

Betatest Adapter NSPanel-lovelace-ui v0.13.x

Geplant Angeheftet Gesperrt Verschoben Tester
981 Beiträge 30 Kommentatoren 169.3k Aufrufe 35 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

    Das hier ist zwar genau genommen Breaking da die Funktion aber erste letztes Patch reingekommen ist, mach ich da keinen Major change draus.

    0.13.4 (2026-03-07)

    • (ticaki) added: buttonOnDelayOff / buttonOffDelayOn / buttonDelayOn / buttonDelayOff modes for HW button actions
    • (ticaki) removed: buttonBackFlip

    Neue HW-Button-Modi für Datenpunkte

    Es gibt vier neue Modi, um einen HW-Button-Datenpunkt zeitgesteuert zu schalten:

    • buttonOnDelayOff – Setzt den Datenpunkt sofort auf true und wechselt nach der eingestellten Verzögerung automatisch zurück auf false.
    • buttonOffDelayOn – Setzt den Datenpunkt sofort auf false und wechselt nach der Verzögerung automatisch zurück auf true.
    • buttonDelayOn – Setzt den Datenpunkt erst nach Ablauf der Verzögerung auf true.
    • buttonDelayOff – Setzt den Datenpunkt erst nach Ablauf der Verzögerung auf false.

    Die Verzögerung (delay) wird in Sekunden angegeben. Der Standardwert beträgt 0,25 s. Gültige Werte liegen zwischen 0,001 s und 2.147.483 s (ca. 24 Tage).

    Über den Parameter state wird der Datenpunkt angegeben, der geschaltet werden soll.

    Beispiel:

            buttonLeft: {
                mode: 'buttonOnDelayOff',
                delay: 3,
                state: '0_userdata.0.example_state',
            },
    
    1 Online
    1 Online
    13patrick37
    schrieb am zuletzt editiert von
    #942

    @ticaki Hi Tim, funktioniert wunderbar. Also wenn ich "delay" weglassen, dann nimmt es automatisch die 0,25?

    1 Antwort Letzte Antwort
    0
    • 1 Online
      1 Online
      13patrick37
      schrieb am zuletzt editiert von
      #943

      b4af192a-2149-4214-b277-cb7c9147d37f-image.png

      Wollte die Zeit bei delay auf 0,3sek setzen.
      Bringt mir allerdings einen Fehler:

      ERROR: Expression expected.
      
                  delay: 0, 3: ,
                            ^
      ERROR: Object literal may only specify known properties, and '3' does not exist in type '{ mode: "buttonOnDelayOff" | "buttonOffDelayOn" | "buttonDelayOn" | "buttonDelayOff"; delay?: number; state: string; }'.
      
      
      T 1 Antwort Letzte Antwort
      0
      • 1 13patrick37

        b4af192a-2149-4214-b277-cb7c9147d37f-image.png

        Wollte die Zeit bei delay auf 0,3sek setzen.
        Bringt mir allerdings einen Fehler:

        ERROR: Expression expected.
        
                    delay: 0, 3: ,
                              ^
        ERROR: Object literal may only specify known properties, and '3' does not exist in type '{ mode: "buttonOnDelayOff" | "buttonOffDelayOn" | "buttonDelayOn" | "buttonDelayOff"; delay?: number; state: string; }'.
        
        
        T Offline
        T Offline
        TT-Tom
        schrieb am zuletzt editiert von
        #944

        @13patrick37

        Englisch, da kommt ein Punkt hin.

        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 1 Antwort Letzte Antwort
        0
        • T TT-Tom

          @13patrick37

          Englisch, da kommt ein Punkt hin.

          1 Online
          1 Online
          13patrick37
          schrieb am zuletzt editiert von
          #945

          @TT-Tom Das war zu einfach. :D Danke

          1 Antwort Letzte Antwort
          0
          • 1 Online
            1 Online
            13patrick37
            schrieb am zuletzt editiert von 13patrick37
            #946

            Hallo zusammen,
            habe gerade ein riesen Problem. Bei uns war zum wiederholten Male Stromausfall.

            Und seitdem zweiten Abschalten vom Strom sind meine Panels alle tot.

            Hatte jemand mal ähnliches Problem?

            Display zeigt nichts mehr an.
            Lt. Tasmota alle im Safeboot.

            T 1 Antwort Letzte Antwort
            0
            • lobomauL Offline
              lobomauL Offline
              lobomau
              schrieb am zuletzt editiert von lobomau
              #947

              Ich habe den Adapter paar Wochen auf einem NSPanel am Laufen.
              Nun wollte ich gerne das zweite NSPanel ebenfalls vom reinen Script zum Adapter wechseln. Der Anfang hat soweit geklappt. Das zweite NSPanel startet und der Standardbildschirm kommt mit dem Wetter und es gibt die andere Seite "Leere". Ebenfalls wurde ein neues Script angelegt für das zweite NSPanel. Nun möchte erstmal das das zweite Panel den gleichen Inhalt zeigt wie das erste Panel. Ich habe den ersten Abschnitt des ersten Scripts (vom NSPanel, das mit dem Adapter läuft) kopiert und in das neue Script des zweiten Panels eingesetzt. Wenn ich das Script starte läuft es ohne nennenswerte Fehler durch, aber beim Panel ändert sich nichts. Habe ich irgendwas dabei vergessen?

              Host: NUC8i3 mit Proxmox:

              • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
              • Slave: Pi4
              T 1 Antwort Letzte Antwort
              0
              • lobomauL lobomau

                Ich habe den Adapter paar Wochen auf einem NSPanel am Laufen.
                Nun wollte ich gerne das zweite NSPanel ebenfalls vom reinen Script zum Adapter wechseln. Der Anfang hat soweit geklappt. Das zweite NSPanel startet und der Standardbildschirm kommt mit dem Wetter und es gibt die andere Seite "Leere". Ebenfalls wurde ein neues Script angelegt für das zweite NSPanel. Nun möchte erstmal das das zweite Panel den gleichen Inhalt zeigt wie das erste Panel. Ich habe den ersten Abschnitt des ersten Scripts (vom NSPanel, das mit dem Adapter läuft) kopiert und in das neue Script des zweiten Panels eingesetzt. Wenn ich das Script starte läuft es ohne nennenswerte Fehler durch, aber beim Panel ändert sich nichts. Habe ich irgendwas dabei vergessen?

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

                @lobomau
                Das Script gestartet? Hast du alles kopiert oder nur die Seiten. Nicht das jetzt das falsche Topic und Panel drin steht.

                Bitte das log vom Script nach dem Start zeigen.

                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

                lobomauL 1 Antwort Letzte Antwort
                0
                • 1 13patrick37

                  Hallo zusammen,
                  habe gerade ein riesen Problem. Bei uns war zum wiederholten Male Stromausfall.

                  Und seitdem zweiten Abschalten vom Strom sind meine Panels alle tot.

                  Hatte jemand mal ähnliches Problem?

                  Display zeigt nichts mehr an.
                  Lt. Tasmota alle im Safeboot.

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

                  @13patrick37
                  Ich würde Tasmota wieder rauf spielen. Hoffentlich hat sich nicht alles zerschossen

                  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

                    @lobomau
                    Das Script gestartet? Hast du alles kopiert oder nur die Seiten. Nicht das jetzt das falsche Topic und Panel drin steht.

                    Bitte das log vom Script nach dem Start zeigen.

                    lobomauL Offline
                    lobomauL Offline
                    lobomau
                    schrieb am zuletzt editiert von
                    #950

                    @TT-Tom sagte in Betatest Adapter NSPanel-lovelace-ui v0.13.x:

                    falsche Topic und Panel drin steh

                    irgendsowas vermute ich auch. Ich habe den Anhaltspunkt nicht im Script gefunden. Zumal ich nur oben den Kopf geändert habe... oder habe ich diese topic übersehen.
                    Aber ok, ich schicke danach das log.

                    Host: NUC8i3 mit Proxmox:

                    • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
                    • Slave: Pi4
                    T 1 Antwort Letzte Antwort
                    0
                    • M Offline
                      M Offline
                      muuulle
                      schrieb am zuletzt editiert von
                      #951

                      Moin,
                      ich bin von einem Raspberry auf eine Synology umgezogen. Ich habe das Panel aus den NSPanel-Einstellungen herausgelöscht und auf dem Panel reset 4 in die Konsole eingegeben.
                      Beim erneuten hinzufügen des Panels wird mir nun diese Fehlermeldung angezeigt. Ich habe in der Dokumentation keinen Hinweis auf die Ursache hierfür gefunden. Kann mir jemand helfen?

                      Bildschirmfoto 2026-03-13 um 15.21.42.png

                      Nach einem verzweifelten Versuch auch die Objekte zu löschen, variiert die Meldung zu sendToRequetFail2.

                      Vielen Dank
                      Christopher

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

                        Die Fehlermeldung aus dem Log hilft mir den Fehler einzugrenzen.

                        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                        Spenden

                        1 Antwort Letzte Antwort
                        0
                        • lobomauL lobomau

                          @TT-Tom sagte in Betatest Adapter NSPanel-lovelace-ui v0.13.x:

                          falsche Topic und Panel drin steh

                          irgendsowas vermute ich auch. Ich habe den Anhaltspunkt nicht im Script gefunden. Zumal ich nur oben den Kopf geändert habe... oder habe ich diese topic übersehen.
                          Aber ok, ich schicke danach das log.

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

                          @lobomau

                          du kannst eigentlich das komplette Script kopieren, du musst nur hier ganz am Anfang die Daten anpassen, ganz wichtig panelTopic richtig setzen. Mit overrideConfig werden die Einstellungen weiter unten überschrieben.

                              const overrideConfig: Partial<ScriptConfig.Config> = {
                                  // hier kann man die Werte von unten überschreiben bzw nicht ewig im Skript suchen wo nochmal die Farbe steht :)
                                  // pages und subpages geht hier nicht, weil die Seiten ja erst später angelegt werden. Bei const gehts nach Reihenfolge.
                                  panelTopic: 'nspanel/ns_panel4',
                                  weatherEntity: 'pirate-weather.0.',
                                  defaultOffColor: Off,
                                  defaultOnColor: On,
                          
                                  // weatherAddDefaultItems:
                                  // - true  => alle Standard-Wetterelemente hinzufügen
                                  // - false => keine hinzufügen
                                  // - { ... } => selektiv per Schlüssel aktivieren:
                                  //   sunriseSet, forecastDay1, forecastDay2, forecastDay3, forecastDay4, forecastDay5, forecastDay6,
                                  //   windSpeed, windGust, windDirection, uvIndex, solar
                                  // Hinweis: Die einzelnen Schlüssel funktionieren nur, wenn der gewählte Wetteranbieter
                                  // die entsprechenden Daten liefert und diese im Adapter vorbereitet wurden
                                  "weatherAddDefaultItems": false
                          
                              }
                          

                          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

                          lobomauL 1 Antwort Letzte Antwort
                          0
                          • M muuulle

                            Moin,
                            ich bin von einem Raspberry auf eine Synology umgezogen. Ich habe das Panel aus den NSPanel-Einstellungen herausgelöscht und auf dem Panel reset 4 in die Konsole eingegeben.
                            Beim erneuten hinzufügen des Panels wird mir nun diese Fehlermeldung angezeigt. Ich habe in der Dokumentation keinen Hinweis auf die Ursache hierfür gefunden. Kann mir jemand helfen?

                            Bildschirmfoto 2026-03-13 um 15.21.42.png

                            Nach einem verzweifelten Versuch auch die Objekte zu löschen, variiert die Meldung zu sendToRequetFail2.

                            Vielen Dank
                            Christopher

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

                            @muuulle

                            welche Version hast du im Einsatz?

                            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
                              #955

                              0.14.0 (2026-03-14)

                              • (tt-tom17) refactored: timezone selection code moved from adapter to admin handler (internal, no UI changes)
                              • (ticaki) added: TempOffset configurable in objects and admin tab (#629)
                              • (ticaki) added: "Update scripts for all panels" button in Maintain tab

                              Anmerkung

                              Vorab ist nicht vollständig getestet - zumindest der Kram den ich gerade eben eingebaut habe :)

                              Um die Temperatur zu verwenden müssen die Panels per Aktualisieren auf den neuesten Konfigurationsstand gebracht werden:

                              Bildschirmfoto 2026-03-14 um 06.41.01.png

                              Auf den Stift klicken und dann oben auf nspanelkonfiguration aktualisieren - dann dauerts 30 Sekunden und dann das nächste.

                              Alternativ auf der Tasmota Konsole folgendes eingeben

                              AdcParam 2,14600,10000,3950
                              

                              Bei der Alternative am Ende den Adapter neustarten - sicher ist sicher.

                              Temperatur einstellen

                              Das geht dann am einfachsten hier:

                              Bildschirmfoto_2026-03-14_um_06.22.49.png Bildschirmfoto 2026-03-14 um 07.11.54.png

                              Bei 4k wird wirklich alles riesig :D


                              @muuulle
                              Ich hab ein hoffentlich besseres error log eingefügt für dein Problem - Die Adminfehlermeldungen werden aber nie genug infos enthalten, dass es mehr als ein "da läuft was schief" geben kann. Daher bitte IMMER im Protokoll gucken.

                              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                              Spenden

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

                                Mein aktuelles Dauerprojekt

                                Roborock-Adapter (Saugroboter)

                                Ich bastel da immer wieder dran rum, weil der Roborock Adapter nicht so will wie ich, oder ich schnell was rein baue, was aber nicht optimal ist.

                                Übersichtsseite:

                                IMG_1262.jpeg
                                Favoriten: Sind die gespeicherten Programme
                                Raumreinigung: Multiselekt-Seite für die Räume s.u.
                                Lädt: Status - adapter interne Funktion - angepasste icons und text zu dem jeweiligen Status
                                Mop: hab ich vergessen :D
                                Im Dock: ist er unterwegs oder im dock
                                Alles: Ist eine Funktion für mein Automatikscript ob nur saugen oder halt alles

                                    const Saugroboter: PageType = {
                                        'type': 'cardGrid',
                                        uniqueName: 'Saugroboter',
                                        'heading': 'Saugroboter',
                                        parent: 'main',
                                        'items': [
                                            { id: 'alias.0.zuhause.og.Technik.Saugroboter.Favorite', name: 'Favoriten', onColor: MSGreen, icon: 'select-multiple-marker' },
                                            { navigate: true, name: 'Raumreinigung', icon: 'play-speed', targetPage: 'Saugroboter-Rooms' },
                                            {
                                                native: {
                                                    dpInit: 'roborock.0.Devices.2LF69GkMA1fMm7kfa4Grr',
                                                    template: 'text.roborock.status',
                                                }
                                            },
                                            { id: 'alias.0.zuhause.og.Technik.Saugroboter.Trocken', icon: 'hair-dryer-outline', icon2: 'check-outline', name: 'Mop', onColor: Red, offColor: Blue , enabled:'alias.0.zuhause.og.Technik.Saugroboter.Trocken'},
                                            {id: 'alias.0.zuhause.og.Technik.Saugroboter.Home', icon: 'home', icon2: 'home-export-outline', onColor: Green, offColor: Red},
                                            {id: 'alias.0.zuhause.og.Technik.Saugroboter.nextRunWipeState', icon: 'water', icon2: 'water-off', buttonText: 'Alles', buttonTextOff: 'Nur Saugen'}
                                        ]
                                    };
                                


                                Favoriten:
                                Bildschirmfoto 2026-03-14 um 07.37.09.png

                                "common": {
                                    "name": "select",
                                    "desc": "Manuell erzeugt",
                                    "role": "level.mode.select",
                                    "type": "string",
                                    "read": true,
                                    "write": true,
                                    "def": "",
                                    "states": null,
                                    "alias": {
                                      "id": "roborock.0.Devices.2LF69GkMA1fMm7kfa4Grr.programs.startProgram"
                                    }
                                

                                Raumreinigung:

                                IMG_1263.jpeg

                                Reinigung s: Multifuktionaler Button mit short und longpress

                                    const Saugroboter2: PageType = {
                                        'type': 'cardGrid2',
                                        uniqueName: 'Saugroboter-Rooms',
                                        'heading': 'Raumreinigung',
                                        parent: 'Saugroboter',
                                        'items': [
                                            { id: 'alias.0.zuhause.og.Technik.Saugroboter.Raeme.Reinigung', icon: 'restart', targetPageLongPress: 'Saugroboter-CleanDetails', offColor: Gray, targetPage:'Saugroboter' },
                                            { id: 'alias.0.zuhause.og.Technik.Saugroboter.Raeme.Kueche', icon: 'cookie-outline' },
                                            { id: 'alias.0.zuhause.og.Technik.Saugroboter.Raeme.Badezimmer', icon: 'bathtub-outline' },
                                            { id: 'alias.0.zuhause.og.Technik.Saugroboter.Raeme.Flur', icon: 'floor-plan' },
                                            { id: 'alias.0.zuhause.og.Technik.Saugroboter.Raeme.Sarah', icon: 'teddy-bear' },
                                            { id: 'alias.0.zuhause.og.Technik.Saugroboter.Raeme.Schlafzimmer', icon: 'sleep' },
                                            { id: 'alias.0.zuhause.og.Technik.Saugroboter.Raeme.Wohnzimmer', icon: 'youtube-tv' },
                                            { id: 'alias.0.zuhause.og.Technik.Saugroboter.Raeme.Ankleidezimmer', icon: 'tshirt-v-outline' },
                                        ]
                                    };
                                
                                    const SaugroboterCleanDetails: PageType = {
                                        'type': 'cardGrid2',
                                        uniqueName: 'Saugroboter-CleanDetails',
                                        'heading': 'Reinigungsoptionen',
                                        parent: 'Saugroboter-Rooms',
                                        'items': [
                                            { id: 'alias.0.zuhause.og.Technik.Saugroboter.customModeWaterBox', icon: 'water', name: 'wischen', onColor: Blue, offColor: Gray},
                                            { id: 'alias.0.zuhause.og.Technik.Saugroboter.customMode', icon: 'broom', name: 'saugen' , onColor: Green, offColor: Gray},
                                        ]
                                    };
                                

                                SaugroboterCleanDetails ist das was erscheint wenn man auf Reinigung s lange drückt.

                                So schauen die Alias aus:
                                Bildschirmfoto 2026-03-14 um 07.43.40.png

                                und so die für die CleanDetails:
                                Bildschirmfoto 2026-03-14 um 07.50.57.png

                                Und hier das aussehen von CleanDetails also wenn man auf Reinigung s lange drückt
                                IMG_1264.jpeg

                                und hier wenn man auf saugen klickt:
                                IMG_1265.jpeg

                                Mein persönliches Automatikscript (für leutz die es sehen wollen)

                                Mein Automatik-, Nachricht- und alles mögliche was mit Saugroboter zu tun hat Skript
                                Bei Verwendung müssen die Datenpunkte angepasst werden und die raumsteuerung gelöscht oder auf verhandene Datenpunkte gelegt werden.

                                export { };
                                
                                // ── Datenpunkte – Gerätestatus ────────────────────────────────────────────────
                                // Datenpunkt: aktueller Gerätestatus des Saugroboters (Zahlenwert)
                                const currentStateDP = 'roborock.0.Devices.2LF69GkMA1fMm7kfa4Grr.deviceStatus.state';
                                // Datenpunkt: Reinigungsstatus (0 = inaktiv, sonst aktiv)
                                const cleaningState = 'roborock.0.Devices.2LF69GkMA1fMm7kfa4Grr.deviceStatus.in_cleaning';
                                // Datenpunkt: Frischzustand (Roboter auf der Basis und einsatzbereit)
                                const freshState = 'roborock.0.Devices.2LF69GkMA1fMm7kfa4Grr.deviceStatus.in_fresh_state';
                                // Datenpunkt: Akkustand des Saugroboters in Prozent
                                const batteryState = 'roborock.0.Devices.2LF69GkMA1fMm7kfa4Grr.deviceStatus.battery';
                                // Datenpunkt: Fehlercode des Saugroboters
                                const errorCodeDP = 'roborock.0.Devices.2LF69GkMA1fMm7kfa4Grr.deviceStatus.error_code';
                                
                                // ── Datenpunkte – Befehle & Programme ────────────────────────────────────────
                                // Datenpunkt: Reinigungsprogramm starten
                                const startProgramDP = 'roborock.0.Devices.2LF69GkMA1fMm7kfa4Grr.programs.startProgram';
                                // Datenpunkt: Reinigung stoppen und zur Basis zurückkehren
                                const stopCommandDP = 'roborock.0.Devices.2LF69GkMA1fMm7kfa4Grr.commands.app_stop';
                                
                                // ── Datenpunkte – Dockingstation ─────────────────────────────────────────────
                                // Datenpunkt: Status des Frischwassertanks (1 = leer, nachfüllen)
                                const clearWaterBoxDP = 'roborock.0.Devices.2LF69GkMA1fMm7kfa4Grr.dockingStationStatus.clearWaterBoxStatus';
                                // Datenpunkt: Status des Schmutzwassertanks (1 = voll, leeren)
                                const dirtyWaterBoxDP = 'roborock.0.Devices.2LF69GkMA1fMm7kfa4Grr.dockingStationStatus.dirtyWaterBoxStatus';
                                // Datenpunkt: Status des Staubbeutels (1 = voll, wechseln)
                                const dustBagDP = 'roborock.0.Devices.2LF69GkMA1fMm7kfa4Grr.dockingStationStatus.dustBagStatus';
                                
                                // ── Datenpunkte – Automation & Anwesenheit ────────────────────────────────────
                                // Datenpunkt: Soll beim nächsten Durchlauf auch gewischt werden?
                                const nextRunWipeState = '0_userdata.0.Automation.Saugroboter.nextRunWipe';
                                // Datenpunkt: Automatische Reinigung aktiviert/deaktiviert
                                const automaticDP = '0_userdata.0.Automation.Saugroboter.automatic';
                                // Datenpunkt: Aktueller Reinigungsauftrag (0 = kein Auftrag)
                                const currentWorkDP = '0_userdata.0.Automation.Saugroboter.CurrentWork';
                                // Datenpunkt: Ist jemand zu Hause?
                                const anyoneDP = '0_userdata.0.Sensoren.Anwesenheit.Anyone';
                                // Datenpunkt: Ist der Besuchermodus aktiv?
                                const besuchermodusDP = '0_userdata.0.Kontrollzentrum.Anwesenheit.Besuchermodus';
                                
                                // ── Datenpunkte – NsPanel ─────────────────────────────────────────────────────
                                // Basispfad des NsPanel-Screensaver-Datenpunkts
                                const panelScreensaverDP = 'nspanel-lovelace-ui.0.panels.C0_49_EF_FA_69_38.cmd.screenSaver';
                                
                                // ── Programm-IDs (Roborock) ───────────────────────────────────────────────────
                                // Programm-ID: Küche reinigen
                                const programmKueche = '8580588';
                                // Programm-ID: Bad reinigen
                                const programmBad = '8580579';
                                // Programm-ID: Wohnung saugen und wischen
                                const programmWohnungSaugenWischen = '8580560';
                                // Programm-ID: Wohnung nur saugen (ohne Wischen)
                                const programmWohnungSaugen = '8580573';
                                
                                // ── Zeitkonstanten ────────────────────────────────────────────────────────────
                                // Pausezeit in Millisekunden (3 Stunden) – reserviert für spätere Nutzung
                                const pauseTime = 180 * 60 * 1000;
                                // Cron-Ausdruck: täglich um 01:00:10 – setzt den Tagesauftrag
                                const zeitplanTagesreset = '10 0 1 * * *';
                                // Cron-Ausdruck: alle 15 Minuten zwischen 9 und 19 Uhr – prüft auf Reinigungsbedarf
                                const zeitplanReinigungscheck = '10 */15 9-19 * * *';
                                
                                // ── Reinigungsparameter ───────────────────────────────────────────────────────
                                // Wochentage, an denen zusätzlich gewischt wird (0=So, 1=Mo, ..., 6=Sa)
                                const wischTage = [0, 3, 5, 6];
                                // Mindestakkustand in Prozent, ab dem die automatische Reinigung startet
                                const minAkkustand = 80;
                                
                                // ── Laufzeitvariablen ─────────────────────────────────────────────────────────
                                let autoStart = false;
                                // Merker: soll der Roboter nach Beendigung erneut automatisch starten?
                                let targetAutoStart = autoStart;
                                // Zähler für aufeinanderfolgende Prüfintervalle ohne Anwesenheit
                                let counter = 0;
                                // Aktuell gemeldeter Gerätestatus
                                let currentState = getState(currentStateDP).val
                                // Letzter bekannter Zustand war ein Fehler
                                let lastError = false;
                                // Ist der Roboter gerade in Betrieb?
                                let isCleaning = getState(cleaningState).val != 0;
                                // Ist der Roboter auf der Basis und frisch bereit?
                                let isFresh = getState(freshState).val != 0;
                                // Aktueller Akkustand
                                let battery = getState(batteryState).val;
                                // Ist die automatische Reinigung aktiviert?
                                let automaticOn = getState(automaticDP).val;
                                // Ist jemand da?
                                let anyone = getState(anyoneDP).val;
                                
                                // ── Raumsteuerung ─────────────────────────────────────────────────────────────
                                
                                on({ id: '0_userdata.0.Automation.Saugroboter.Wohnzimmer', val: true, ack: false }, function (obj) {
                                   //    _helper('mihome-vacuum.0.rooms.414001031069.roomClean', true, obj);
                                })
                                on({ id: '0_userdata.0.Automation.Saugroboter.Küche', val: true, ack: false }, function (obj) {
                                   _helper(startProgramDP, programmKueche, obj);
                                })
                                on({ id: '0_userdata.0.Automation.Saugroboter.Flur', val: true, ack: false }, function (obj) {
                                   //    _helper('mihome-vacuum.0.rooms.414001031075.roomClean', true, obj);
                                })
                                on({ id: '0_userdata.0.Automation.Saugroboter.Schlafzimmer', val: true, ack: false }, function (obj) {
                                   log('sauge Schlafzimmer');
                                   //    _helper('mihome-vacuum.0.rooms.414001031074.roomClean', true, obj);
                                })
                                on({ id: '0_userdata.0.Automation.Saugroboter.Bad', val: true, ack: false }, function (obj) {
                                   _helper(startProgramDP, programmBad, obj);
                                })
                                
                                //Wohnung saugen
                                on({ id: '0_userdata.0.Automation.Saugroboter.Wohnung_saugen', val: true, ack: false }, function (obj) {
                                   _helper(startProgramDP, programmWohnungSaugenWischen, obj);
                                })
                                
                                // nach Hause
                                on({ id: '0_userdata.0.Automation.Saugroboter.home', val: true, ack: false }, function (obj) {
                                   targetAutoStart = true;
                                   _helper(stopCommandDP, true, obj);
                                })
                                
                                /** 
                                * Ab hier sollte alles passen
                                */
                                
                                on({ id: currentStateDP, change: 'ne' }, function (obj) {
                                   currentState = obj.state.val;
                                   // Error
                                   if (currentState === 12) {
                                       lastError = true;
                                   }
                                   // ignore sleeping and idle
                                   else if (currentState != 2 && currentState != 3) {
                                       lastError = false;
                                   }
                                })
                                
                                on({ id: clearWaterBoxDP, change: 'ne' }, function (dp) {
                                   alert()
                                })
                                
                                
                                on({ id: dirtyWaterBoxDP, change: 'ne' }, function (dp) {
                                   alert()
                                })
                                
                                on({ id: dustBagDP, change: 'ne' }, function (dp) {
                                   alert()
                                })
                                function alert() {
                                   let itemAlert = getState(clearWaterBoxDP).val === 1
                                   let alert = itemAlert
                                   if (itemAlert) sendToPanel(itemAlert, 'Saugroboter-Service', 'Wasser nachfüllen');
                                
                                   itemAlert = getState(dustBagDP).val === 1
                                   if (itemAlert && !alert) sendToPanel(itemAlert, 'Saugroboter-Service', 'Staubsaugerbeutel wechseln');
                                   alert = alert || itemAlert
                                
                                   itemAlert = getState(dirtyWaterBoxDP).val === 1
                                   if (itemAlert && !alert) sendToPanel(itemAlert, 'Saugroboter-Service', 'Schutzwasser entleeren');
                                   alert = alert || itemAlert
                                
                                   if (!alert) sendToPanel(false, '', '');
                                }
                                alert()
                                
                                function sendToPanel(val: boolean, headline: string, text: string): void {
                                   if (val) {
                                       sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', { id: 'RoboterService', headline, text })
                                
                                       setState(`${panelScreensaverDP}.headingNotification`, headline)
                                       setState(`${panelScreensaverDP}.textNotification`, text)
                                       setState(`${panelScreensaverDP}.activateNotification`, true);
                                   } else {
                                       sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', { id: 'RoboterService', priority: -1 })
                                       setState(`${panelScreensaverDP}.activateNotification`, false);
                                   }
                                }
                                
                                
                                on({ id: cleaningState, change: 'ne' }, (obj) => {
                                   isCleaning = obj.state.val != 0;
                                })
                                on({ id: freshState, change: 'ne' }, (obj) => {
                                   isFresh = obj.state.val != 0;
                                   if (isFresh && targetAutoStart) {
                                       setState(currentWorkDP, 0, true);
                                       setState(nextRunWipeState, false, true);
                                       targetAutoStart = false;
                                   }
                                })
                                on({ id: batteryState, change: 'ne' }, (obj) => {
                                   battery = obj.state.val;
                                })
                                
                                function _helper(id, value, obj) {
                                   setState(id, value);
                                   setState(obj.id, true, true);
                                   setStateDelayed(obj.id, false, true, 3000);
                                }
                                
                                on({ id: errorCodeDP, change: 'ne' }, (obj) => {
                                   errorMsg(obj.state.val);
                                })
                                errorMsg(getState(errorCodeDP).val)
                                
                                function errorMsg(code: number): void {
                                   const messages = {
                                       "0": "Kein Fehler",
                                       "1": "Lasersensorfehler",
                                       "2": "Kollisionssensorfehler",
                                       "3": "Rad schwebt",
                                       "4": "Abgrundsensorfehler",
                                       "5": "Hauptbürste blockiert",
                                       "6": "Seitenbürste blockiert",
                                       "7": "Rad blockiert",
                                       "8": "Gerät festgefahren",
                                       "9": "Staubbehälter fehlt",
                                       "10": "Filter blockiert",
                                       "11": "Magnetfeld erkannt",
                                       "12": "Niedriger Akkustand",
                                       "13": "Ladeproblem",
                                       "14": "Batteriefehler",
                                       "15": "Wandsensorfehler",
                                       "16": "Unebene Oberfläche",
                                       "17": "Seitenbürstenfehler",
                                       "18": "Sauggebläsefehler",
                                       "19": "Ladestation ohne Strom",
                                       "20": "Unbekannter Fehler",
                                       "21": "Laser-Drucksensorproblem",
                                       "22": "Ladesensorproblem",
                                       "23": "Dockproblem",
                                       "24": "No-Go-Zone oder unsichtbare Wand erkannt",
                                       "254": "Behälter voll",
                                       "255": "Interner Fehler",
                                       "-1": "Unbekannter Fehler"
                                   }
                                   if (code > 0) sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', { id: 'RoboterFehler', headline: 'Saugroboterfehler', text: messages[String(code)], priority: 40, colorHeadline: '#FF0000', textSize: 3, type: 'acknowledge', buttonRight: 'Ok' })
                                   else sendTo('nspanel-lovelace-ui.0', 'setPopupNotification', { id: 'RoboterFehler', headline: 'Saugroboterfehler', text: messages[String(code)], priority: -1 })
                                }
                                
                                schedule(zeitplanTagesreset, setCurrentWork);
                                
                                schedule(zeitplanReinigungscheck, startCurrentWork);
                                
                                
                                function checkAndSendMsg() {
                                   let msg = 'Saugroboterservice nötig: - Staubbehälter leeren ';
                                   if (getState('mihome-vacuum.0.consumable.filter').val <= 0) msg += '- Filter austauschen '
                                   if (getState('mihome-vacuum.0.consumable.main_brush').val <= 0) msg += '- Bodenbürste austauschen '
                                   if (getState('mihome-vacuum.0.consumable.sensors').val <= 0) msg += '- Sensoren reinigen '
                                   if (getState('mihome-vacuum.0.consumable.side_brush').val <= 0) msg += '- Seitenbürste austauschen '
                                   //sendTo('telegram', {user: 'Tim', text: msg }); 
                                }
                                
                                function setCurrentWork() {
                                   setState(currentWorkDP, 1, true);
                                   setState(nextRunWipeState, getState(nextRunWipeState).val || wischTage.includes(new Date().getDay()), true)
                                }
                                
                                function isReady(): boolean {
                                   if (isCleaning) return false;
                                   if (battery < minAkkustand) return false
                                   if (lastError) return false;
                                   return true;
                                }
                                
                                function startCurrentWork(anyone?: boolean) {
                                   if (!automaticOn) return;
                                   if ((anyone === undefined ? getState(anyoneDP).val : anyone)) {
                                       counter = 0;
                                       return;
                                   }
                                   if (getState(currentWorkDP).val <= 0) return;
                                   if (getState(besuchermodusDP).val) return;
                                   //log('targetAutoStart: ' + targetAutoStart + ' - isReady(): ' + isReady()) + ' - dontStartNewWork: ' + dontStartNewWork;
                                   if ( !isReady() || targetAutoStart) return;
                                   if (counter++ < 2) return;
                                   targetAutoStart = true;
                                   log('Starte automatische Reinigung')
                                   setState(startProgramDP, (getState(nextRunWipeState).val ? programmWohnungSaugenWischen : programmWohnungSaugen));
                                   setState(currentWorkDP, 0, true);
                                }
                                
                                on({ id: anyoneDP, change: 'ne' }, function (obj) {
                                   anyone = obj.state.val
                                   if (!automaticOn) return;
                                   if (obj.state.val) {
                                       if ( targetAutoStart && !isReady && isCleaning) {
                                           setState(stopCommandDP, true);
                                           targetAutoStart = false;
                                           autoStart = false;
                                       }
                                   }
                                });
                                on({ id: automaticDP, change: 'ne' }, function (obj) {
                                   automaticOn = obj.state.val;
                                   setState(obj.id, obj.state.val, true);
                                })
                                
                                
                                

                                Zur Funktionsweise:

                                Automatikkram:
                                Das Skript prüft alle 15 Minuten zwischen 9-19 Uhr ob die Bedingungen erfüllt sind. Bei 2 mal hinter einander wird die Reinigung gestartet

                                Bedingungen:

                                • ist es aktiviert
                                • ist keiner da
                                • ist es noch nicht heute gelaufen
                                • ist der besuchermodus aus
                                • ist der roboter bereit (läuft nicht, batterie voll genug, kein fehler) und soll er lt. Skript gerade nicht laufen.
                                • sind alle bedingungen 2 mal erfüllt wärend niemand da war.

                                Rücksetzen:
                                Um 01:00 täglich wird das "heute nicht gelaufen" zurück gesetzt und ermittelt ob heute wischen auf true gesetzt werden soll. Wischen wird nach erfolgreichem durchführen vom automatikteil auf false gesetzt. Heißt wenn Montag gewischt werden soll, aber keine autoreinigung surchgeführt wurde, wird am Dienstag gewischt.

                                Vorbeitungen:
                                Es müssen 2 Programme angelegt werden ich hab dafür 1 mal nur saugen und 1 mal saugen dann wischen in der app angelegt - alle States die oben im Skript stehen müssen angepasst oder angelegt werden.

                                Nachrichten:
                                Ich hab für Probleme mit Schmutzwasser, Wischwasser und Staubbeutel eine Benachrichtigung fürs panel drin - das wird sowohl als Popup und als Screensaver Benachrichtigung angezeigt - denke das ist doppelgemoppelt aber wurscht. :D

                                Raumsteuerung:
                                Hab auf 2 shellys den longpress verwendet fürs aktivieren der Raumreinigung - das muß dann natürlich angepasst werden und entsprechende Programme müssen eingerichtet werden.

                                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                Spenden

                                1 Antwort Letzte Antwort
                                2
                                • T TT-Tom

                                  @lobomau

                                  du kannst eigentlich das komplette Script kopieren, du musst nur hier ganz am Anfang die Daten anpassen, ganz wichtig panelTopic richtig setzen. Mit overrideConfig werden die Einstellungen weiter unten überschrieben.

                                      const overrideConfig: Partial<ScriptConfig.Config> = {
                                          // hier kann man die Werte von unten überschreiben bzw nicht ewig im Skript suchen wo nochmal die Farbe steht :)
                                          // pages und subpages geht hier nicht, weil die Seiten ja erst später angelegt werden. Bei const gehts nach Reihenfolge.
                                          panelTopic: 'nspanel/ns_panel4',
                                          weatherEntity: 'pirate-weather.0.',
                                          defaultOffColor: Off,
                                          defaultOnColor: On,
                                  
                                          // weatherAddDefaultItems:
                                          // - true  => alle Standard-Wetterelemente hinzufügen
                                          // - false => keine hinzufügen
                                          // - { ... } => selektiv per Schlüssel aktivieren:
                                          //   sunriseSet, forecastDay1, forecastDay2, forecastDay3, forecastDay4, forecastDay5, forecastDay6,
                                          //   windSpeed, windGust, windDirection, uvIndex, solar
                                          // Hinweis: Die einzelnen Schlüssel funktionieren nur, wenn der gewählte Wetteranbieter
                                          // die entsprechenden Daten liefert und diese im Adapter vorbereitet wurden
                                          "weatherAddDefaultItems": false
                                  
                                      }
                                  
                                  lobomauL Offline
                                  lobomauL Offline
                                  lobomau
                                  schrieb am zuletzt editiert von lobomau
                                  #957

                                  @TT-Tom ja, so hat es funktioniert. Bei dem ersten Script und auch beim zweiten Script ist jeweils standarmäßig auskommentiert. Habe da nie hingeschaut.
                                  Warum funktioniert es beim ersten Script obwohl es auskommentiert ist?

                                  //panelTopic: 'nspanel/ns_panel4',

                                  Host: NUC8i3 mit Proxmox:

                                  • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
                                  • Slave: Pi4
                                  T 1 Antwort Letzte Antwort
                                  0
                                  • T ticaki

                                    0.14.0 (2026-03-14)

                                    • (tt-tom17) refactored: timezone selection code moved from adapter to admin handler (internal, no UI changes)
                                    • (ticaki) added: TempOffset configurable in objects and admin tab (#629)
                                    • (ticaki) added: "Update scripts for all panels" button in Maintain tab

                                    Anmerkung

                                    Vorab ist nicht vollständig getestet - zumindest der Kram den ich gerade eben eingebaut habe :)

                                    Um die Temperatur zu verwenden müssen die Panels per Aktualisieren auf den neuesten Konfigurationsstand gebracht werden:

                                    Bildschirmfoto 2026-03-14 um 06.41.01.png

                                    Auf den Stift klicken und dann oben auf nspanelkonfiguration aktualisieren - dann dauerts 30 Sekunden und dann das nächste.

                                    Alternativ auf der Tasmota Konsole folgendes eingeben

                                    AdcParam 2,14600,10000,3950
                                    

                                    Bei der Alternative am Ende den Adapter neustarten - sicher ist sicher.

                                    Temperatur einstellen

                                    Das geht dann am einfachsten hier:

                                    Bildschirmfoto_2026-03-14_um_06.22.49.png Bildschirmfoto 2026-03-14 um 07.11.54.png

                                    Bei 4k wird wirklich alles riesig :D


                                    @muuulle
                                    Ich hab ein hoffentlich besseres error log eingefügt für dein Problem - Die Adminfehlermeldungen werden aber nie genug infos enthalten, dass es mehr als ein "da läuft was schief" geben kann. Daher bitte IMMER im Protokoll gucken.

                                    M Offline
                                    M Offline
                                    muuulle
                                    schrieb am zuletzt editiert von muuulle
                                    #958

                                    @muuulle
                                    Ich hab ein hoffentlich besseres error log eingefügt für dein Problem - Die Adminfehlermeldungen werden aber nie genug infos enthalten, dass es mehr als ein "da läuft was schief" geben kann. Daher bitte IMMER im Protokoll gucken.

                                    Hallo,
                                    ich habe Version 0.14 installiert; hier ist der entsprechende Auszug als Bildschirmfoto:

                                    Bildschirmfoto 2026-03-14 um 14.02.29.png

                                    Vielen Dank für eure Arbeit!

                                    Edit:
                                    Es wird mit sendToRequestFail2 quittiert.

                                    T 1 Antwort Letzte Antwort
                                    0
                                    • lobomauL lobomau

                                      @TT-Tom ja, so hat es funktioniert. Bei dem ersten Script und auch beim zweiten Script ist jeweils standarmäßig auskommentiert. Habe da nie hingeschaut.
                                      Warum funktioniert es beim ersten Script obwohl es auskommentiert ist?

                                      //panelTopic: 'nspanel/ns_panel4',

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

                                      @lobomau

                                      Die original Einstellung wird in const config bei der Panel Initialisierung gemacht. Zu finden am Ende der Seiten Konfiguration. Mit der „overrideConfig“ kann man das Script auch dann für andere Panels nutzen und muss nicht die Parameter im Script suchen.

                                      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
                                      • M muuulle

                                        @muuulle
                                        Ich hab ein hoffentlich besseres error log eingefügt für dein Problem - Die Adminfehlermeldungen werden aber nie genug infos enthalten, dass es mehr als ein "da läuft was schief" geben kann. Daher bitte IMMER im Protokoll gucken.

                                        Hallo,
                                        ich habe Version 0.14 installiert; hier ist der entsprechende Auszug als Bildschirmfoto:

                                        Bildschirmfoto 2026-03-14 um 14.02.29.png

                                        Vielen Dank für eure Arbeit!

                                        Edit:
                                        Es wird mit sendToRequestFail2 quittiert.

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

                                        @muuulle
                                        Muss @ticaki nachsehen.

                                        Bitte keine Screenshot machen vom log, sonder kopieren. Am besten das Log runterladen und den Auszug hier in die CodeTags </> packen.

                                        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

                                        M 1 Antwort Letzte Antwort
                                        0
                                        • T TT-Tom

                                          @muuulle
                                          Muss @ticaki nachsehen.

                                          Bitte keine Screenshot machen vom log, sonder kopieren. Am besten das Log runterladen und den Auszug hier in die CodeTags </> packen.

                                          M Offline
                                          M Offline
                                          muuulle
                                          schrieb am zuletzt editiert von muuulle
                                          #961

                                          @TT-Tom
                                          Moin,

                                          alles klar, hier der entsprechende Auszug:

                                          2026-03-14 13:59:38.195  - silly: nspanel-lovelace-ui.0 (17162) States system redis pmessage io.messagebox.system.adapter.nspanel-lovelace-ui.0/io.messagebox.system.adapter.nspanel-lovelace-ui.0:{"command":"nsPanelInit","message":{"tasmotaName":"PanelAnbau","tasmotaIP":"192.168.178.57","tasmotaTopic":"PanelAnbau","mqttServer":true,"mqttIp":"","mqttPort":8883,"mqttUsername":"RZwmuFYrCeRKKtr","mqttPassword":"1ZS-aFU0[Z1vM9>m]4ZOv0>(tYbQlk:U*MWeoTUgAJeAQ+H-Z:","internalServerIp":"192.168.178.116","useBetaTFT":false,"model":"eu"},"from":"system.adapter.admin.0","callback":{"message":{"tasmotaName":"PanelAnbau","tasmotaIP":"192.168.178.57","tasmotaTopic":"PanelAnbau","mqttServer":true,"mqttIp":"","mqttPort":8883,"mqttUsername":"RZwmuFYrCeRKKtr","mqttPassword":"1ZS-aFU0[Z1vM9>m]4ZOv0>(tYbQlk:U*MWeoTUgAJeAQ+H-Z:","internalServerIp":"192.168.178.116","useBetaTFT":false,"model":"eu"},"id":643,"ack":false,"time":1773493178194},"_id":60922512}
                                          false2026-03-14 13:59:38.196  - debug: nspanel-lovelace-ui.0 (17162) {"command":"nsPanelInit","message":{"tasmotaName":"PanelAnbau","tasmotaIP":"192.168.178.57","tasmotaTopic":"PanelAnbau","mqttServer":true,"mqttIp":"","mqttPort":8883,"mqttUsername":"RZwmuFYrCeRKKtr","mqttPassword":"1ZS-aFU0[Z1vM9>m]4ZOv0>(tYbQlk:U*MWeoTUgAJeAQ+H-Z:","internalServerIp":"192.168.178.116","useBetaTFT":false,"model":"eu"},"from":"system.adapter.admin.0","callback":{"message":{"tasmotaName":"PanelAnbau","tasmotaIP":"192.168.178.57","tasmotaTopic":"PanelAnbau","mqttServer":true,"mqttIp":"","mqttPort":8883,"mqttUsername":"RZwmuFYrCeRKKtr","mqttPassword":"1ZS-aFU0[Z1vM9>m]4ZOv0>(tYbQlk:U*MWeoTUgAJeAQ+H-Z:","internalServerIp":"192.168.178.116","useBetaTFT":false,"model":"eu"},"id":643,"ack":false,"time":1773493178194},"_id":60922512}
                                          false2026-03-14 13:59:38.196  - info: nspanel-lovelace-ui.0 (17162) Sending mqtt config & base config to tasmota: 192.168.178.57 with user RZwmuFYrCeRKKtr && ***
                                          false2026-03-14 13:59:38.196  - debug: nspanel-lovelace-ui.0 (17162) Requesting tasmota status 5 with url: http://192.168.178.57/cm?&cmnd=status%205
                                          false2026-03-14 13:59:38.391  - debug: nspanel-lovelace-ui.0 (17162) Response from tasmota status 5: {"StatusNET":{"Hostname":"tasmota-0BF3E8-5096","IPAddress":"192.168.178.57","Gateway":"192.168.178.1","Subnetmask":"255.255.255.0","DNSServer1":"192.168.178.1","DNSServer2":"0.0.0.0","Mac":"E0:E2:E6:0B:F3:E8","IP6Global":"fd9a:b998:ff69:481f:e2e2:e6ff:fe0b:f3e8","IP6Local":"fe80::e2e2:e6ff:fe0b:f3e8%st1","Ethernet":{"Hostname":"","IPAddress":"0.0.0.0","Gateway":"0.0.0.0","Subnetmask":"0.0.0.0","DNSServer1":"192.168.178.1","DNSServer2":"0.0.0.0","Mac":"00:00:00:00:00:00","IP6Global":"","IP6Local":""},"Webserver":2,"HTTP_API":1,"WifiConfig":4,"WifiPower":16}}
                                          false2026-03-14 13:59:38.391  - debug: nspanel-lovelace-ui.0 (17162) Sending mqtt config & base config to tasmota with IP 192.168.178.57 and name PanelAnbau.
                                          false2026-03-14 13:59:38.476  - debug: nspanel-lovelace-ui.0 (17162) [mqttClient] Wait for panel connect on: PanelAnbau/tele/INFO1
                                          false2026-03-14 13:59:38.476  - debug: nspanel-lovelace-ui.0 (17162) [mqttClient] subscribe to: PanelAnbau/tele/INFO12026-03-14 13:59:51.068  - silly: nspanel-lovelace-ui.0 (17162) Objects system redis pmessage system.config/cfg.o.system.config:{"_id":"system.config","type":"config","common":{"name":{"en":"System configuration","de":"Systemkonfiguration","ru":"Конфигурация системы","pt":"Configuração do sistema","nl":"Systeem configuratie","fr":"Configuration du système","it":"Configurazione di sistema","es":"Configuración del sistema","pl":"Konfiguracja systemu","zh-cn":"系统配置"},"city":"","country":"Germany","longitude":7.484436035156251,"latitude":53.462708023859555,"language":"de","tempUnit":"°C","currency":"€","dontDelete":true,"dateFormat":"DD.MM.YYYY","isFloatComma":true,"licenseConfirmed":true,"defaultHistory":"history.0","activeRepo":["Stable (default)"],"diag":"none","tabs":["tab-intro","tab-adapters","tab-objects","tab-logs","tab-scenes","tab-javascript","tab-text2command-0","tab-node-red-0","tab-logs","tab-devices","tab-iqontrol","tab-instances","tab-hosts","tab-enums","tab-terminal-0","tab-iqontrol-0"],"wizard":true,"infoAdapterInstall":true,"defaultNewAcl":{"object":1636,"state":1636,"file":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"intro":["admin.0_8081","alexa2.0_alexa.amazon.com","deconz.0_80","energiefluss-erweitert.0 pro_8082/energiefluss-erweitert/","simple-api.0_8087/get/system.adapter.simple-api.0.uptime?prettyPrint"],"tabsVisible":[{"name":"tab-intro","visible":true},{"name":"tab-adapters","visible":true},{"name":"tab-instances","visible":true},{"name":"tab-objects","visible":true},{"name":"tab-enums","visible":true},{"name":"tab-logs","visible":true},{"name":"tab-users","visible":false},{"name":"tab-hosts","visible":true},{"name":"tab-files","visible":true},{"name":"tab-devices","visible":true},{"name":"tab-backitup-0","visible":false},{"name":"tab-javascript","visible":true},{"name":"tab-iqontrol-0","visible":true},{"name":"tab-echarts","visible":true},{"name":"tab-alias-manager","visible":true}],"expertMode":false,"firstDayOfWeek":"monday","adapterAutoUpgrade":{"repositories":{},"defaultPolicy":"minor"}},"acl":{"owner":"system.user.admin","ownerGroup":"system.group.administrator","object":1604},"native":{"secret":"d56a14684e44fe5ae44ca75eb8a91008f7009b7b1a61eae4","introLinks":[]},"from":"system.adapter.admin.0","user":"system.user.admin","ts":1773493190553}
                                          2026-03-14 13:59:51.122  - debug: nspanel-lovelace-ui.0 (17162) [mqttServer] Client "PanelAnbau-0BF3E8" login successful (user="RZwmuFYrCeRKKtr").
                                          2026-03-14 13:59:51.367  - debug: nspanel-lovelace-ui.0 (17162) [mqttClient] Panel connect detected: PanelAnbau/tele/INFO1
                                          2026-03-14 13:59:51.425  - debug: nspanel-lovelace-ui.0 (17162) [mqttClient] Wait for panel connect on: PanelAnbau/tele/INFO1
                                          2026-03-14 13:59:51.425  - debug: nspanel-lovelace-ui.0 (17162) [mqttClient] subscribe to: PanelAnbau/tele/INFO1
                                          2026-03-14 14:00:04.432  - debug: nspanel-lovelace-ui.0 (17162) [mqttServer] Client "PanelAnbau-0BF3E8" login successful (user="RZwmuFYrCeRKKtr").
                                          2026-03-14 14:00:04.488  - debug: nspanel-lovelace-ui.0 (17162) [mqttClient] Panel connect detected: PanelAnbau/tele/INFO1
                                          2026-03-14 14:00:06.593  - error: nspanel-lovelace-ui.0 (17162) Error: while installing berry - TypeError: fetch failed
                                          2026-03-14 14:00:08.094  - error: nspanel-lovelace-ui.0 (17162) No version entry for key "tft".
                                          2026-03-14 14:00:08.095  - error: nspanel-lovelace-ui.0 (17162) No version found!
                                          
                                          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

                                          621

                                          Online

                                          32.7k

                                          Benutzer

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