Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. SONOFF NSPanel mit Lovelace UI

NEWS

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

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

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

SONOFF NSPanel mit Lovelace UI

SONOFF NSPanel mit Lovelace UI

Scheduled Pinned Locked Moved Hardware
lovelace uinspanelsonoff
7.7k Posts 271 Posters 6.7m Views 253 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • VumerV Offline
    VumerV Offline
    Vumer
    wrote on last edited by Vumer
    #1038

    @armilar sagte in SONOFF NSPanel mit Lovelace UI:

    Manchmal überholen sich die Ereignisse.

    Ich hoffe das ist schon älter 😉
    Abfallkalender


    const idAbfalliCal = 'ical.0'; // iCal Instanz zum Abfallkalender
    const idZeichenLoeschen = 0; // x Zeichen links vom String abziehen, wenn vor dem Eventname noch Text steht z.B. Strassenname; Standard = 0
    const idRestmuellName ='Restabfall'; // Schwarze Tonne
    const idWertstoffName = 'Gelbe Tonne'; // Gelbe Tonne / Sack
    const idPappePapierName = 'Papiertonne'; // Blaue Tonne
    const idBioabfaelleName = 'Komposttonne'; // Braune Tonne

    var i, Muell_JSON, Event2, Color = 0;

    for (i = 1; i <= 4; i++) {
    if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date')) {
    log(i + '.date nicht vorhanden, wurde erstellt');
    createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date', '',
    {
    name: parseFloat(i) + '.date',
    role: 'state',
    type: 'string',
    read: true,
    write: true,
    def: ''
    });
    };
    if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event')) {
    log(i + '.event nicht vorhanden, wurde erstellt');
    createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event', '',
    {
    name: parseFloat(i) + '.event',
    role: 'state',
    type: 'string',
    read: true,
    write: true,
    def: ''
    });
    };
    if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color')) {
    log(i + '.color nicht vorhanden, wurde erstellt');
    createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color', 0,
    {
    name: parseFloat(i) + '.color',
    role: 'state',
    type: 'number',
    read: true,
    write: true,
    def: 0
    });
    };
    }

    function subsequenceFromStartLast(sequence, at1) {
    var start = at1;
    var end = sequence.length;
    return sequence.slice(start, end);
    }

    on({ id: idAbfalliCal + '.data.table', change: "ne" }, async function () {

    for (i = 0; i <= 3; i++) {
    Muell_JSON = getState(idAbfalliCal + '.data.table').val;
    setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.date'].join('')), getAttr(Muell_JSON, (String(i) + '.date')), false, parseInt(((0) || "").toString(), 10), false);
    Event2 = subsequenceFromStartLast(getAttr(Muell_JSON, (String(i) + '.event')), idZeichenLoeschen);
    setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false);
    if (Event2 == idRestmuellName) {
    Color = 33840;
    } else if (Event2 == idBioabfaelleName) {
    Color = 48192;
    } else if (Event2 == idPappePapierName) {
    Color = 2016;
    } else if (Event2 == idWertstoffName) {
    Color = 65504;
    }
    setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false);
    }
    });

    javascript.0 2022-12-05 12:17:07.105	error	at processImmediate (node:internal/timers:466:21)
    javascript.0 2022-12-05 12:17:07.105	error	at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5909:56)
    javascript.0 2022-12-05 12:17:07.105	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:593:29)
    javascript.0 2022-12-05 12:17:07.105	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1244:38)
    javascript.0 2022-12-05 12:17:07.105	error	at Object.<anonymous> (script.js.common.NSPanel.Abfallkalender:61:18)
    javascript.0 2022-12-05 12:17:07.105	error	at subsequenceFromStartLast (script.js.common.NSPanel.Abfallkalender:52:24)
    javascript.0 2022-12-05 12:17:07.104	error	script.js.common.NSPanel.Abfallkalender: TypeError: Cannot read properties of null (reading 'length')
    

    was habe ich wieder falsch gemacht?

    ArmilarA T 2 Replies Last reply
    0
    • ArmilarA Armilar

      @bean sagte in SONOFF NSPanel mit Lovelace UI:

      Noch einfacher gehts, wenn man die Schreibfunktionen des Datenpunkts im Devicemanager bearbeitet:

      Wobei, wenn ich den Ternary richtig interpretiere fragst du folgendes ab:

      Wenn der Wert auf ungleich 0 ist, dann setzte 100 (also hoch) sonst 0 (also runter)

      Warum setzt du nicht val = 100 und val = 0? 🙄

      Weil was ist, wenn der Wert z.B. auf 1, 2 oder 3 steht. Dann fährt das Rollo bei Up runter...

      VumerV Offline
      VumerV Offline
      Vumer
      wrote on last edited by
      #1039

      @armilar sagte in SONOFF NSPanel mit Lovelace UI:

      Warum setzt du nicht val = 100 und val = 0?

      Beim HM funktioniert das so mit 0 und 100

      1 Reply Last reply
      0
      • VumerV Vumer

        @armilar sagte in SONOFF NSPanel mit Lovelace UI:

        Manchmal überholen sich die Ereignisse.

        Ich hoffe das ist schon älter 😉
        Abfallkalender


        const idAbfalliCal = 'ical.0'; // iCal Instanz zum Abfallkalender
        const idZeichenLoeschen = 0; // x Zeichen links vom String abziehen, wenn vor dem Eventname noch Text steht z.B. Strassenname; Standard = 0
        const idRestmuellName ='Restabfall'; // Schwarze Tonne
        const idWertstoffName = 'Gelbe Tonne'; // Gelbe Tonne / Sack
        const idPappePapierName = 'Papiertonne'; // Blaue Tonne
        const idBioabfaelleName = 'Komposttonne'; // Braune Tonne

        var i, Muell_JSON, Event2, Color = 0;

        for (i = 1; i <= 4; i++) {
        if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date')) {
        log(i + '.date nicht vorhanden, wurde erstellt');
        createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date', '',
        {
        name: parseFloat(i) + '.date',
        role: 'state',
        type: 'string',
        read: true,
        write: true,
        def: ''
        });
        };
        if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event')) {
        log(i + '.event nicht vorhanden, wurde erstellt');
        createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event', '',
        {
        name: parseFloat(i) + '.event',
        role: 'state',
        type: 'string',
        read: true,
        write: true,
        def: ''
        });
        };
        if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color')) {
        log(i + '.color nicht vorhanden, wurde erstellt');
        createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color', 0,
        {
        name: parseFloat(i) + '.color',
        role: 'state',
        type: 'number',
        read: true,
        write: true,
        def: 0
        });
        };
        }

        function subsequenceFromStartLast(sequence, at1) {
        var start = at1;
        var end = sequence.length;
        return sequence.slice(start, end);
        }

        on({ id: idAbfalliCal + '.data.table', change: "ne" }, async function () {

        for (i = 0; i <= 3; i++) {
        Muell_JSON = getState(idAbfalliCal + '.data.table').val;
        setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.date'].join('')), getAttr(Muell_JSON, (String(i) + '.date')), false, parseInt(((0) || "").toString(), 10), false);
        Event2 = subsequenceFromStartLast(getAttr(Muell_JSON, (String(i) + '.event')), idZeichenLoeschen);
        setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false);
        if (Event2 == idRestmuellName) {
        Color = 33840;
        } else if (Event2 == idBioabfaelleName) {
        Color = 48192;
        } else if (Event2 == idPappePapierName) {
        Color = 2016;
        } else if (Event2 == idWertstoffName) {
        Color = 65504;
        }
        setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false);
        }
        });

        javascript.0 2022-12-05 12:17:07.105	error	at processImmediate (node:internal/timers:466:21)
        javascript.0 2022-12-05 12:17:07.105	error	at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5909:56)
        javascript.0 2022-12-05 12:17:07.105	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:593:29)
        javascript.0 2022-12-05 12:17:07.105	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1244:38)
        javascript.0 2022-12-05 12:17:07.105	error	at Object.<anonymous> (script.js.common.NSPanel.Abfallkalender:61:18)
        javascript.0 2022-12-05 12:17:07.105	error	at subsequenceFromStartLast (script.js.common.NSPanel.Abfallkalender:52:24)
        javascript.0 2022-12-05 12:17:07.104	error	script.js.common.NSPanel.Abfallkalender: TypeError: Cannot read properties of null (reading 'length')
        

        was habe ich wieder falsch gemacht?

        ArmilarA Offline
        ArmilarA Offline
        Armilar
        Most Active Forum Testing
        wrote on last edited by Armilar
        #1040

        @vumer

        Kann ich dir erst sagen, wenn du mir die zugehörige Seite für das NSPanel mitteilst die 4 Aliase vom Gerätetyp: Warnung aufruft...

        Im Spoiler finde ich nur ein Script, das Datenpunkte aus einem iCal in 0_userdata erstellt und befüllt. 😉

        Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
        https://github.com/joBr99/nspanel-lovelace-ui/wiki

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        VumerV 1 Reply Last reply
        0
        • ArmilarA Armilar

          @bean

          Manchmal überholen sich die Ereignisse. Das Haus-Symbol ist zwar schon zu sehen, bekommt erst mit der nächsten Script-Version eine Funktion.

          Lies dir zu den Hardwaretasten kurz https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Tasmota-FAQ durch.

          Falls das nicht dabei ist, nochmal melden...

          B Offline
          B Offline
          bean
          wrote on last edited by
          #1041

          @armilar said in SONOFF NSPanel mit Lovelace UI:

          Lies dir zu den Hardwaretasten kurz https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Tasmota-FAQ durch.
          Falls das nicht dabei ist, nochmal melden...

          Danke für den Linkt, kannte ich noch nicht. Hatte die Buttons in Tasmota aber einer anderen Infosammlung entsprechend entkoppelt, das funktioniert auch (Keine Relaisbenutzung).
          Im script sind die Buttons auch konfiguriert (zB button2Page: Abfall,), aber trotzdem wechseln die Seiten bei Tastenbetätigung durch...

          ArmilarA 1 Reply Last reply
          0
          • B bean

            @armilar said in SONOFF NSPanel mit Lovelace UI:

            Lies dir zu den Hardwaretasten kurz https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Tasmota-FAQ durch.
            Falls das nicht dabei ist, nochmal melden...

            Danke für den Linkt, kannte ich noch nicht. Hatte die Buttons in Tasmota aber einer anderen Infosammlung entsprechend entkoppelt, das funktioniert auch (Keine Relaisbenutzung).
            Im script sind die Buttons auch konfiguriert (zB button2Page: Abfall,), aber trotzdem wechseln die Seiten bei Tastenbetätigung durch...

            ArmilarA Offline
            ArmilarA Offline
            Armilar
            Most Active Forum Testing
            wrote on last edited by
            #1042

            @bean sagte in SONOFF NSPanel mit Lovelace UI:

            aber trotzdem wechseln die Seiten bei Tastenbetätigung durch...

            Ich kann mit der Aussage nichts anfangen. Was wechselt wann, wie durch?

            Welche Seiten sind wo konfiguriert und wie sehen die aus?

            Was ist konfiguriert, was passiert wenn du was machst (präzise und detailliert) und was wird erwartet? Was hast du z.B. an Rules im Tasmota benutzt und wie sehen die aus? Welche Einstellungen hat Tasmota ggfs. noch bekommen?

            Das ist mir zu wenig Content. Ich wüsste da nicht ansatzweise, wo ich unterstützen kann...

            Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
            https://github.com/joBr99/nspanel-lovelace-ui/wiki

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            B 1 Reply Last reply
            0
            • ArmilarA Armilar

              @vumer

              Kann ich dir erst sagen, wenn du mir die zugehörige Seite für das NSPanel mitteilst die 4 Aliase vom Gerätetyp: Warnung aufruft...

              Im Spoiler finde ich nur ein Script, das Datenpunkte aus einem iCal in 0_userdata erstellt und befüllt. 😉

              VumerV Offline
              VumerV Offline
              Vumer
              wrote on last edited by
              #1043

              @armilar sagte in SONOFF NSPanel mit Lovelace UI:

              Im Spoiler finde ich nur ein Script, das Datenpunkte aus einem iCal in 0_userdata erstellt und befüllt

              das ist auch der script.js.common.NSPanel.Abfallkalender
              Der NSPanelTs.ts lief gar nicht. Und der Fehler tritt auf wenn ich dem script.js.common.NSPanel.Abfallkalender starte

              1 Reply Last reply
              0
              • ArmilarA Armilar

                @bean sagte in SONOFF NSPanel mit Lovelace UI:

                Noch einfacher gehts, wenn man die Schreibfunktionen des Datenpunkts im Devicemanager bearbeitet:

                Wobei, wenn ich den Ternary richtig interpretiere fragst du folgendes ab:

                Wenn der Wert auf ungleich 0 ist, dann setzte 100 (also hoch) sonst 0 (also runter)

                Warum setzt du nicht val = 100 und val = 0? 🙄

                Weil was ist, wenn der Wert z.B. auf 1, 2 oder 3 steht. Dann fährt das Rollo bei Up runter...

                B Offline
                B Offline
                bean
                wrote on last edited by
                #1044

                @armilar said in SONOFF NSPanel mit Lovelace UI:

                @bean sagte in SONOFF NSPanel mit Lovelace UI:

                Noch einfacher gehts, wenn man die Schreibfunktionen des Datenpunkts im Devicemanager bearbeitet:

                Wobei, wenn ich den Ternary richtig interpretiere fragst du folgendes ab:
                Wenn der Wert auf ungleich 0 ist, dann setzte 100 (also hoch) sonst 0 (also runter)
                Warum setzt du nicht val = 100 und val = 0?
                Weil was ist, wenn der Wert z.B. auf 1, 2 oder 3 steht. Dann fährt das Rollo bei Up runter...

                Bin da ja auch noch am experimentieren, aber meiner Erkenntnis nach:
                Der Datenpunkt "Open" ist ja vom Typ Boolean und gleichzeitig ein Trigger/Taster, ist also immer auf "true" und wird nur aktualisiert.
                Ich dachte ich muss bei der Funktion erst den Wert abfragen, dass es einfach so auch gehen könnte hab ich noch nicht bedacht, wird ausprobiert. Zumindest ist ein eigenes Skript nicht notwendig.

                1 Reply Last reply
                0
                • ArmilarA Armilar

                  @bean sagte in SONOFF NSPanel mit Lovelace UI:

                  aber trotzdem wechseln die Seiten bei Tastenbetätigung durch...

                  Ich kann mit der Aussage nichts anfangen. Was wechselt wann, wie durch?

                  Welche Seiten sind wo konfiguriert und wie sehen die aus?

                  Was ist konfiguriert, was passiert wenn du was machst (präzise und detailliert) und was wird erwartet? Was hast du z.B. an Rules im Tasmota benutzt und wie sehen die aus? Welche Einstellungen hat Tasmota ggfs. noch bekommen?

                  Das ist mir zu wenig Content. Ich wüsste da nicht ansatzweise, wo ich unterstützen kann...

                  B Offline
                  B Offline
                  bean
                  wrote on last edited by
                  #1045

                  @armilar said in SONOFF NSPanel mit Lovelace UI:

                  Ich kann mit der Aussage nichts anfangen. Was wechselt wann, wie durch?
                  Welche Seiten sind wo konfiguriert und wie sehen die aus?

                  Ich habe Pages konfiguriert

                     pages: [
                             SzenenLicht,
                             SzenenRollos,
                             Mattelsberg,
                             CardPowerExample,
                             Radio,
                             Alexa,
                             Sonos,
                             Abfall
                     ],
                  

                  und die Buttonpages

                      button1Page: button1cardPage, 
                      button2Page: Abfall 
                  
                  

                  Diese Seiten funktionieren genauso wie erwartet, alles super.

                  Was ist konfiguriert, was passiert wenn du was machst (präzise und detailliert) und was wird erwartet?

                  Wenn ich nun die physischen Tasten am Panel drücke, wechsle ich zwischen den Pages durch, mit der rechten Taste wechsle ich "Vorwärts" (nach unten in der Liste der Pages), mit der linken wechsle ich "rückwärts" (nach oben), so als würde ein Seitenzähler um eins erhöht oder verringert.
                  Erwartet hätte ich, dass mich der Druck auf die linke Taste auf die button1cardPage bringt und ein Druck auf die rechte Taste auf die Abfallseite.

                  Was hast du z.B. an Rules im Tasmota benutzt und wie sehen die aus? Welche Einstellungen hat Tasmota ggfs. noch bekommen?

                  Ich habe Rule2 mit beiden Buttons konfiguriert und an meine MQTT-Struktur angepasst.

                  Rule2 on Button1#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endon
                  

                  Die Button-Events kommen auch im passenden Datenpunkt an. Sonst (glaub ich) habe ich nichts an Tasmota geändert.

                  Das ist mir zu wenig Content. Ich wüsste da nicht ansatzweise, wo ich unterstützen kann...

                  Kein Stress, er funktioniert ja grundsätzlich, nur nicht so wie erwartet. Ich habe nur etwas das Gefühl, hier einem Bug auf der Spur zu sein, aber dass dieses Verhalten nur hier auftritt, ist seltsam.

                  Und falls ich es noch nicht erwähnt habe: Danke für die super Arbeit!!

                  ArmilarA 1 Reply Last reply
                  0
                  • VumerV Offline
                    VumerV Offline
                    Vumer
                    wrote on last edited by
                    #1046

                    @bean sagte in SONOFF NSPanel mit Lovelace UI:

                    Ich dachte ich muss bei der Funktion erst den Wert abfragen

                    Du schreibst die Werte. Shuttercontrol z.B. macht auch nichts anderes
                    So sieht meine mired -> kelvin -> mired umrechnung aus

                    9574e4aa-40bd-48a7-a76f-07466f2ba7d1-grafik.png

                    1 Reply Last reply
                    0
                    • B bean

                      @armilar said in SONOFF NSPanel mit Lovelace UI:

                      Ich kann mit der Aussage nichts anfangen. Was wechselt wann, wie durch?
                      Welche Seiten sind wo konfiguriert und wie sehen die aus?

                      Ich habe Pages konfiguriert

                         pages: [
                                 SzenenLicht,
                                 SzenenRollos,
                                 Mattelsberg,
                                 CardPowerExample,
                                 Radio,
                                 Alexa,
                                 Sonos,
                                 Abfall
                         ],
                      

                      und die Buttonpages

                          button1Page: button1cardPage, 
                          button2Page: Abfall 
                      
                      

                      Diese Seiten funktionieren genauso wie erwartet, alles super.

                      Was ist konfiguriert, was passiert wenn du was machst (präzise und detailliert) und was wird erwartet?

                      Wenn ich nun die physischen Tasten am Panel drücke, wechsle ich zwischen den Pages durch, mit der rechten Taste wechsle ich "Vorwärts" (nach unten in der Liste der Pages), mit der linken wechsle ich "rückwärts" (nach oben), so als würde ein Seitenzähler um eins erhöht oder verringert.
                      Erwartet hätte ich, dass mich der Druck auf die linke Taste auf die button1cardPage bringt und ein Druck auf die rechte Taste auf die Abfallseite.

                      Was hast du z.B. an Rules im Tasmota benutzt und wie sehen die aus? Welche Einstellungen hat Tasmota ggfs. noch bekommen?

                      Ich habe Rule2 mit beiden Buttons konfiguriert und an meine MQTT-Struktur angepasst.

                      Rule2 on Button1#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endon
                      

                      Die Button-Events kommen auch im passenden Datenpunkt an. Sonst (glaub ich) habe ich nichts an Tasmota geändert.

                      Das ist mir zu wenig Content. Ich wüsste da nicht ansatzweise, wo ich unterstützen kann...

                      Kein Stress, er funktioniert ja grundsätzlich, nur nicht so wie erwartet. Ich habe nur etwas das Gefühl, hier einem Bug auf der Spur zu sein, aber dass dieses Verhalten nur hier auftritt, ist seltsam.

                      Und falls ich es noch nicht erwähnt habe: Danke für die super Arbeit!!

                      ArmilarA Offline
                      ArmilarA Offline
                      Armilar
                      Most Active Forum Testing
                      wrote on last edited by Armilar
                      #1047

                      @bean sagte in SONOFF NSPanel mit Lovelace UI:

                      Wenn ich nun die physischen Tasten am Panel drücke, wechsle ich zwischen den Pages durch, mit der rechten Taste wechsle ich "Vorwärts" (nach unten in der Liste der Pages), mit der linken wechsle ich "rückwärts" (nach oben), so als würde ein Seitenzähler um eins erhöht oder verringert.

                      Es gibt da eine Tasmota-Rule, die exakt dieses Verhalten widerspiegelt und die Tasten als Pagezähler nutzt , jedoch wird die separat definiert. Ist da eventuell noch eine andere hinterlegt?

                      Bei mir sind die immer nur als Rule2 eingestellt und die machen auch exakt nur die definierte Seite auf. Selbst wenn ich auf den Button erneut drücke, dann wird die Seite nur neu aúfgebaut, aber nur das - kein Seitenwechsel.

                      Sieh mal nach, ob da noch andere Rules (1, 3) aktiv sind oder gehe mal mit

                      Rule1 0
                      Rule3 0
                      

                      vor, falls wirklich noch andere da sind.

                      Ich vermute, dass der den Fulltopic bei dir nicht interpretieren kann.

                      %topic%/%prefix%/RESULT
                      

                      Sieht der wirklich genauso aus oder ist der wie bei den meisten Anwendern verändert?

                      Bei mir sieht das z.B. so aus:

                      SmartHome/%topic%/tele/RESULT
                      

                      Du kannst auch die erste Zeile, z.B.

                      mqtt.0.SmartHome.NSPanel_1.tele.RESULT
                      

                      in der Config dafür nutzen und das mqtt.0. weglassen. Müsste dann in etwa so aussehen:

                      SmartHome.NSPanel_1.tele.RESULT
                      

                      also analog Deiner MQTT-Einstellungen und kann dann das %topic%/%prefix%/RESULT ersetzten.

                      EDIT: Habe die Rule gerade gefunden, die genau dein Verhalten zeigt.. Sieht ähnlich aus, ist aber was völlig anderes. So in etwa sollte die "nicht" vorhanden sein, wenn du die Button-Pages nutzen möchtest:

                      Rule1 on Button1#state do Publish %topic%/tele/RESULT {"CustomRecv":"event,buttonPress2,hwbtn,bPrev"} endon on Button2#state do Publish %topic%/tele/RESULT {"CustomRecv":"event,buttonPress2,hwbtn,bNext"} endon
                      

                      Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                      https://github.com/joBr99/nspanel-lovelace-ui/wiki

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      B 1 Reply Last reply
                      1
                      • ArmilarA Armilar

                        @bean sagte in SONOFF NSPanel mit Lovelace UI:

                        Wenn ich nun die physischen Tasten am Panel drücke, wechsle ich zwischen den Pages durch, mit der rechten Taste wechsle ich "Vorwärts" (nach unten in der Liste der Pages), mit der linken wechsle ich "rückwärts" (nach oben), so als würde ein Seitenzähler um eins erhöht oder verringert.

                        Es gibt da eine Tasmota-Rule, die exakt dieses Verhalten widerspiegelt und die Tasten als Pagezähler nutzt , jedoch wird die separat definiert. Ist da eventuell noch eine andere hinterlegt?

                        Bei mir sind die immer nur als Rule2 eingestellt und die machen auch exakt nur die definierte Seite auf. Selbst wenn ich auf den Button erneut drücke, dann wird die Seite nur neu aúfgebaut, aber nur das - kein Seitenwechsel.

                        Sieh mal nach, ob da noch andere Rules (1, 3) aktiv sind oder gehe mal mit

                        Rule1 0
                        Rule3 0
                        

                        vor, falls wirklich noch andere da sind.

                        Ich vermute, dass der den Fulltopic bei dir nicht interpretieren kann.

                        %topic%/%prefix%/RESULT
                        

                        Sieht der wirklich genauso aus oder ist der wie bei den meisten Anwendern verändert?

                        Bei mir sieht das z.B. so aus:

                        SmartHome/%topic%/tele/RESULT
                        

                        Du kannst auch die erste Zeile, z.B.

                        mqtt.0.SmartHome.NSPanel_1.tele.RESULT
                        

                        in der Config dafür nutzen und das mqtt.0. weglassen. Müsste dann in etwa so aussehen:

                        SmartHome.NSPanel_1.tele.RESULT
                        

                        also analog Deiner MQTT-Einstellungen und kann dann das %topic%/%prefix%/RESULT ersetzten.

                        EDIT: Habe die Rule gerade gefunden, die genau dein Verhalten zeigt.. Sieht ähnlich aus, ist aber was völlig anderes. So in etwa sollte die "nicht" vorhanden sein, wenn du die Button-Pages nutzen möchtest:

                        Rule1 on Button1#state do Publish %topic%/tele/RESULT {"CustomRecv":"event,buttonPress2,hwbtn,bPrev"} endon on Button2#state do Publish %topic%/tele/RESULT {"CustomRecv":"event,buttonPress2,hwbtn,bNext"} endon
                        
                        B Offline
                        B Offline
                        bean
                        wrote on last edited by
                        #1048

                        @armilar
                        Danke, damit kann ich was anfangen!
                        Tatsächlich ist bei mir bei der Rule2 ein bPrev und BNext hinterlegt 😵 - (Rule1 und Rule2 sind deaktiviert). Keine Ahnung wo ich das falsch C&P'ed habe... Danke, ohne den Hint hätte ich das nicht gefunden 👍

                        1 Reply Last reply
                        0
                        • F froitzheims

                          @armilar

                          also Node -v
                          v12.22.12

                          ist ein Raspi4 mit 64 Bit system

                          PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
                          NAME="Debian GNU/Linux"
                          VERSION_ID="11"
                          VERSION="11 (bullseye)"
                          VERSION_CODENAME=bullseye
                          ID=debian

                          das Script Büro ist:

                          let Buero_Seite_1: PageEntities =
                          {
                          "type": "cardEntities",
                          "heading": "Büro",
                          "useColor": true,
                          "subPage": false,
                          "parent": undefined,
                          "items": [
                          <PageItem>{ id: "alias.0.Lampe Holz", interpolateColor: true},
                          <PageItem>{ id: "alias.0.NSPanel_1.Deckenbeleuchtung", interpolateColor: true},
                          <PageItem>{ id: "alias.0.NSPanel_1.Testlampe2", name: "Filamentlampe", minValueBrightness: 0, maxValueBrightness: 70, interpolateColor: true},
                          <PageItem>{ id: "alias.0.NSPanel_1.Luftreiniger", icon: "power", icon2: "power",offColor: MSRed, onColor: MSGreen}
                          ]
                          };

                          Alias habe ich für die Lampe so angelegt mit dem Alias Manager (Geräte wird bei mir nicht angezeigt obwohl istalliert)

                          Bildschirmfoto vom 2022-12-05 11-17-23.png

                          Die NSPanel_Version steht auf US-p
                          Bildschirmfoto vom 2022-12-05 11-21-00.png

                          K Offline
                          K Offline
                          Kuckuckmann
                          wrote on last edited by
                          #1049

                          @froitzheims

                          Hi,

                          in Bezug auf das was @Armilar schon geschrieben hat, bitte lege die Aliase immer mit dem Geräte Adapter an. Ein manuelles Anlegen hat bisher zu 100% nicht funktioniert.

                          LG

                          NSPanel Dokumentation im GitHub Wiki:

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

                          1 Reply Last reply
                          0
                          • VumerV Vumer

                            @armilar sagte in SONOFF NSPanel mit Lovelace UI:

                            Manchmal überholen sich die Ereignisse.

                            Ich hoffe das ist schon älter 😉
                            Abfallkalender


                            const idAbfalliCal = 'ical.0'; // iCal Instanz zum Abfallkalender
                            const idZeichenLoeschen = 0; // x Zeichen links vom String abziehen, wenn vor dem Eventname noch Text steht z.B. Strassenname; Standard = 0
                            const idRestmuellName ='Restabfall'; // Schwarze Tonne
                            const idWertstoffName = 'Gelbe Tonne'; // Gelbe Tonne / Sack
                            const idPappePapierName = 'Papiertonne'; // Blaue Tonne
                            const idBioabfaelleName = 'Komposttonne'; // Braune Tonne

                            var i, Muell_JSON, Event2, Color = 0;

                            for (i = 1; i <= 4; i++) {
                            if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date')) {
                            log(i + '.date nicht vorhanden, wurde erstellt');
                            createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.date', '',
                            {
                            name: parseFloat(i) + '.date',
                            role: 'state',
                            type: 'string',
                            read: true,
                            write: true,
                            def: ''
                            });
                            };
                            if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event')) {
                            log(i + '.event nicht vorhanden, wurde erstellt');
                            createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.event', '',
                            {
                            name: parseFloat(i) + '.event',
                            role: 'state',
                            type: 'string',
                            read: true,
                            write: true,
                            def: ''
                            });
                            };
                            if (!existsState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color')) {
                            log(i + '.color nicht vorhanden, wurde erstellt');
                            createState('0_userdata.0.Abfallkalender.' + parseFloat(i) + '.color', 0,
                            {
                            name: parseFloat(i) + '.color',
                            role: 'state',
                            type: 'number',
                            read: true,
                            write: true,
                            def: 0
                            });
                            };
                            }

                            function subsequenceFromStartLast(sequence, at1) {
                            var start = at1;
                            var end = sequence.length;
                            return sequence.slice(start, end);
                            }

                            on({ id: idAbfalliCal + '.data.table', change: "ne" }, async function () {

                            for (i = 0; i <= 3; i++) {
                            Muell_JSON = getState(idAbfalliCal + '.data.table').val;
                            setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.date'].join('')), getAttr(Muell_JSON, (String(i) + '.date')), false, parseInt(((0) || "").toString(), 10), false);
                            Event2 = subsequenceFromStartLast(getAttr(Muell_JSON, (String(i) + '.event')), idZeichenLoeschen);
                            setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false);
                            if (Event2 == idRestmuellName) {
                            Color = 33840;
                            } else if (Event2 == idBioabfaelleName) {
                            Color = 48192;
                            } else if (Event2 == idPappePapierName) {
                            Color = 2016;
                            } else if (Event2 == idWertstoffName) {
                            Color = 65504;
                            }
                            setStateDelayed((['0_userdata.0.Abfallkalender.', parseFloat(i) + 1, '.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false);
                            }
                            });

                            javascript.0 2022-12-05 12:17:07.105	error	at processImmediate (node:internal/timers:466:21)
                            javascript.0 2022-12-05 12:17:07.105	error	at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5909:56)
                            javascript.0 2022-12-05 12:17:07.105	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:593:29)
                            javascript.0 2022-12-05 12:17:07.105	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1244:38)
                            javascript.0 2022-12-05 12:17:07.105	error	at Object.<anonymous> (script.js.common.NSPanel.Abfallkalender:61:18)
                            javascript.0 2022-12-05 12:17:07.105	error	at subsequenceFromStartLast (script.js.common.NSPanel.Abfallkalender:52:24)
                            javascript.0 2022-12-05 12:17:07.104	error	script.js.common.NSPanel.Abfallkalender: TypeError: Cannot read properties of null (reading 'length')
                            

                            was habe ich wieder falsch gemacht?

                            T Offline
                            T Offline
                            TT-Tom
                            wrote on last edited by TT-Tom
                            #1050

                            @vumer

                            das Script ist vom mir. Poste bitte mal die Einstellungen von dem Script. Läuft der ical Adapter mit einem Abfallkalender? Hast du im Table-Ordner ein "JSON" mit den Daten?

                            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

                            VumerV 1 Reply Last reply
                            0
                            • VumerV Offline
                              VumerV Offline
                              Vumer
                              wrote on last edited by
                              #1051

                              @tt-tom sagte in SONOFF NSPanel mit Lovelace UI:

                              Poste bitte mal die Einstellungen von dem Script.

                              Gerne, hilf mir bitte was genau.
                              Das Script funktioniert

                              49ae187c-4c78-4163-a58f-6111b54529cc-grafik.png

                              Sobalt ein neuer Event auftaucht kommt diese FM

                              1 Reply Last reply
                              0
                              • T TT-Tom

                                @vumer

                                das Script ist vom mir. Poste bitte mal die Einstellungen von dem Script. Läuft der ical Adapter mit einem Abfallkalender? Hast du im Table-Ordner ein "JSON" mit den Daten?

                                VumerV Offline
                                VumerV Offline
                                Vumer
                                wrote on last edited by Vumer
                                #1052

                                @tt-tom

                                host.iobroker
                                	2022-12-05 22:08:00.330	info	instance system.adapter.ical.0 terminated with code 0 (NO_ERROR)
                                javascript.0
                                	2022-12-05 22:07:54.685	error	at processImmediate (node:internal/timers:466:21)
                                javascript.0
                                	2022-12-05 22:07:54.685	error	at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5909:56)
                                javascript.0
                                	2022-12-05 22:07:54.685	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:593:29)
                                javascript.0
                                	2022-12-05 22:07:54.684	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1244:38)
                                javascript.0
                                	2022-12-05 22:07:54.684	error	at Object.<anonymous> (script.js.common.NSPanel.Abfallkalender:61:18)
                                javascript.0
                                	2022-12-05 22:07:54.684	error	at subsequenceFromStartLast (script.js.common.NSPanel.Abfallkalender:52:24)
                                javascript.0
                                	2022-12-05 22:07:54.684	error	script.js.common.NSPanel.Abfallkalender: TypeError: Cannot read properties of null (reading 'length')
                                host.iobroker
                                	2022-12-05 22:07:51.554	info	instance system.adapter.ical.0 started with pid 14903
                                host.iobroker
                                	2022-12-05 22:07:51.539	info	instance scheduled system.adapter.ical.0 17 */6 * * *
                                host.iobroker
                                	2022-12-05 22:07:48.359	info	stopInstance canceled schedule system.adapter.ical.0
                                host.iobroker
                                	2022-12-05 22:07:48.359	info	stopInstance system.adapter.ical.0 (force=false, process=false)
                                host.iobroker
                                	2022-12-05 22:07:33.750	info	instance system.adapter.ical.0 terminated with code 0 (NO_ERROR)
                                

                                es reich dem iCal Adapter neu zu starten
                                aber nur wenn das Script leuft

                                ArmilarA 1 Reply Last reply
                                0
                                • VumerV Vumer

                                  @tt-tom

                                  host.iobroker
                                  	2022-12-05 22:08:00.330	info	instance system.adapter.ical.0 terminated with code 0 (NO_ERROR)
                                  javascript.0
                                  	2022-12-05 22:07:54.685	error	at processImmediate (node:internal/timers:466:21)
                                  javascript.0
                                  	2022-12-05 22:07:54.685	error	at Immediate.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5909:56)
                                  javascript.0
                                  	2022-12-05 22:07:54.685	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:593:29)
                                  javascript.0
                                  	2022-12-05 22:07:54.684	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1244:38)
                                  javascript.0
                                  	2022-12-05 22:07:54.684	error	at Object.<anonymous> (script.js.common.NSPanel.Abfallkalender:61:18)
                                  javascript.0
                                  	2022-12-05 22:07:54.684	error	at subsequenceFromStartLast (script.js.common.NSPanel.Abfallkalender:52:24)
                                  javascript.0
                                  	2022-12-05 22:07:54.684	error	script.js.common.NSPanel.Abfallkalender: TypeError: Cannot read properties of null (reading 'length')
                                  host.iobroker
                                  	2022-12-05 22:07:51.554	info	instance system.adapter.ical.0 started with pid 14903
                                  host.iobroker
                                  	2022-12-05 22:07:51.539	info	instance scheduled system.adapter.ical.0 17 */6 * * *
                                  host.iobroker
                                  	2022-12-05 22:07:48.359	info	stopInstance canceled schedule system.adapter.ical.0
                                  host.iobroker
                                  	2022-12-05 22:07:48.359	info	stopInstance system.adapter.ical.0 (force=false, process=false)
                                  host.iobroker
                                  	2022-12-05 22:07:33.750	info	instance system.adapter.ical.0 terminated with code 0 (NO_ERROR)
                                  

                                  es reich dem iCal Adapter neu zu starten
                                  aber nur wenn das Script leuft

                                  ArmilarA Offline
                                  ArmilarA Offline
                                  Armilar
                                  Most Active Forum Testing
                                  wrote on last edited by Armilar
                                  #1053

                                  @vumer

                                  ist die Tagesvorschau groß genug?

                                  45771be3-79c9-4281-84b2-a185d0d57d5a-image.png

                                  Es sollten mindestens 4 Events erzeugt werden. Auch wenn die zum Teil über mehrere Wochen stattfinden.

                                  Cannot read properties of null (reading 'length')
                                  

                                  Da die einzige Längenermittlung im Skript ein Problem verursacht, könnte ich mir vorstellen, dass es bei der subsequenceFromStartLast stattfindet, jedoch kein 3. oder 4. Eintrag gefunden wird und dann der Fehler kommt. 🙄

                                  Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                  https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                  VumerV 1 Reply Last reply
                                  1
                                  • ArmilarA Armilar

                                    @vumer

                                    ist die Tagesvorschau groß genug?

                                    45771be3-79c9-4281-84b2-a185d0d57d5a-image.png

                                    Es sollten mindestens 4 Events erzeugt werden. Auch wenn die zum Teil über mehrere Wochen stattfinden.

                                    Cannot read properties of null (reading 'length')
                                    

                                    Da die einzige Längenermittlung im Skript ein Problem verursacht, könnte ich mir vorstellen, dass es bei der subsequenceFromStartLast stattfindet, jedoch kein 3. oder 4. Eintrag gefunden wird und dann der Fehler kommt. 🙄

                                    VumerV Offline
                                    VumerV Offline
                                    Vumer
                                    wrote on last edited by
                                    #1054

                                    @armilar sagte in SONOFF NSPanel mit Lovelace UI:

                                    Es sollten mindestens 4 Events erzeugt werden. Auch wenn die zum Teil über mehrere Wochen stattfinden.

                                    Das war es. Ich hatte 14 Tage

                                    Danke.

                                    ArmilarA T 2 Replies Last reply
                                    0
                                    • VumerV Vumer

                                      @armilar sagte in SONOFF NSPanel mit Lovelace UI:

                                      Es sollten mindestens 4 Events erzeugt werden. Auch wenn die zum Teil über mehrere Wochen stattfinden.

                                      Das war es. Ich hatte 14 Tage

                                      Danke.

                                      ArmilarA Offline
                                      ArmilarA Offline
                                      Armilar
                                      Most Active Forum Testing
                                      wrote on last edited by
                                      #1055

                                      @vumer

                                      Ja, hätte mich auch sonst gewundert 😉

                                      👍

                                      Jetzt noch die Warnungen (Aliase) drauflegen und ab ins Panel

                                      Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                      https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                      VumerV 1 Reply Last reply
                                      0
                                      • ArmilarA Armilar

                                        @vumer

                                        Ja, hätte mich auch sonst gewundert 😉

                                        👍

                                        Jetzt noch die Warnungen (Aliase) drauflegen und ab ins Panel

                                        VumerV Offline
                                        VumerV Offline
                                        Vumer
                                        wrote on last edited by
                                        #1056

                                        @armilar sagte in SONOFF NSPanel mit Lovelace UI:

                                        Jetzt noch die Warnungen (Aliase) drauflegen und ab ins Panel

                                        Was meinst du mit den Warnungen (Aliase)? Termine? Die sind schon lenger im Panel.

                                        ArmilarA 1 Reply Last reply
                                        0
                                        • VumerV Vumer

                                          @armilar sagte in SONOFF NSPanel mit Lovelace UI:

                                          Jetzt noch die Warnungen (Aliase) drauflegen und ab ins Panel

                                          Was meinst du mit den Warnungen (Aliase)? Termine? Die sind schon lenger im Panel.

                                          ArmilarA Offline
                                          ArmilarA Offline
                                          Armilar
                                          Most Active Forum Testing
                                          wrote on last edited by
                                          #1057

                                          @vumer

                                          Ach so, die sind schon drin. Na dann aber jetzt wieder alle 😊

                                          Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                          https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                          VumerV 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          549

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe