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
    438

  • 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.2k 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.
  • 1 Offline
    1 Offline
    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 Offline
        1 Offline
        13patrick37
        schrieb am zuletzt editiert von
        #945

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

        1 Antwort Letzte Antwort
        0
        • 1 Offline
          1 Offline
          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
                                        • T Nicht stören
                                          T Nicht stören
                                          ticaki
                                          schrieb am zuletzt editiert von ticaki
                                          #962

                                          @muuulle
                                          Kann es sein das dein iobroker keinen zugriff auf https://raw.githubusercontent.com hat? Von dort werden die Versionsdaten bzw. das Berryscript geladen?

                                          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                          Spenden

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          422

                                          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