Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Sonoff NSPanel

NEWS

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

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

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

Sonoff NSPanel

Geplant Angeheftet Gesperrt Verschoben Hardware
1.5k Beiträge 78 Kommentatoren 637.2k Aufrufe 80 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.
  • K Kuckuckmann

    @armilar said in Sonoff NSPanel:

    @Armilar Du hast hier geschrieben "darüber liegt jeweils ein Alias vom Typ "warning"". Kannst Du mal beschreiben, welche Felder du mit welchen Daten befüllst?
    Egal was ich mache, ich bekomme entweder eine blaue Tonne (Symbol) mit dem Datum als Beschreibung und Wert, oder eine schwarze Tonne (Symbol) mit null als Beschreibung und Wert.

    Ich nutze den Trashschedul Adapter von @haus-automatisierung und beziehe mich dort auf den Datumswert nextdateformat.

    Danke vorab
    LG

    @kuckuckmann sagte in Sonoff NSPanel:

    @Armilar

    Beim Abfallkalender hast Du in Deinem Beispiel keine Farben bei der Definition mit angegeben. Dennoch sind auf dem Bsp. Screenshot die typischen Mülltonnenfarben zu sehen. Wo kommen die Farben denn her?

    //Subpage 1 von Subpages_1
    var Abfall: PageEntities =
    {
        "type": "cardEntities",
        "heading": "Abfallkalender",
        "useColor": true,
        "subPage": true,
        "parent": Subpages_1,
        "items": [
            <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event1",icon: "trash-can"},
            <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event2",icon: "trash-can"},
            <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event3",icon: "trash-can"},
            <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event4",icon: "trash-can"}
        ]
    };
    

    Unsere Stadt stellt einen ical Kalender zur Verfügung.

    var i, Muell_JSON, Event2, Color;
    
    function subsequenceFromStartLast(sequence, at1) {
      var start = at1;
      var end = sequence.length - 1 + 1;
      return sequence.slice(start, end);
    }
    
    
    on({id: 'ical.1.data.table', change: "ne"}, async function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      for (i = 0; i <= 3; i++) {
        Muell_JSON = getState("ical.1.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')), 8);
        setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false);
        if (Event2 == 'Reststoff') {
          Color = 33840;
        } else if (Event2 == 'Biotonne') {
          Color = 2016;
        } else if (Event2 == 'Blaue Tonne') {
          Color = 31;
        } else if (Event2 == 'Gelbe Tonne') {
          Color = 65504;
        }
        setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false);
      }
    });
    

    Das Script erstellt mir die entsprechenden Datenpunkte unter 0_userdata und dort schreibe ich auch die Farben rein, darüber liegt jeweils ein Alias vom Typ "warning"

    Somit ist die Sortierung der nächsten Leerung dynamisch nach Datum und nicht statisch nach Tonnenfarbe.

    Statisch lässt dich das als Alias "info" abbilden

    ArmilarA Offline
    ArmilarA Offline
    Armilar
    Most Active Forum Testing
    schrieb am zuletzt editiert von
    #1091

    @kuckuckmann sagte in Sonoff NSPanel:

    @armilar said in Sonoff NSPanel:

    @Armilar Du hast hier geschrieben "darüber liegt jeweils ein Alias vom Typ "warning"". Kannst Du mal beschreiben, welche Felder du mit welchen Daten befüllst?
    Egal was ich mache, ich bekomme entweder eine blaue Tonne (Symbol) mit dem Datum als Beschreibung und Wert, oder eine schwarze Tonne (Symbol) mit null als Beschreibung und Wert.

    Danke vorab
    LG

    @kuckuckmann sagte in Sonoff NSPanel:

    @Armilar

    Beim Abfallkalender hast Du in Deinem Beispiel keine Farben bei der Definition mit angegeben. Dennoch sind auf dem Bsp. Screenshot die typischen Mülltonnenfarben zu sehen. Wo kommen die Farben denn her?

    //Subpage 1 von Subpages_1
    var Abfall: PageEntities =
    {
        "type": "cardEntities",
        "heading": "Abfallkalender",
        "useColor": true,
        "subPage": true,
        "parent": Subpages_1,
        "items": [
            <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event1",icon: "trash-can"},
            <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event2",icon: "trash-can"},
            <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event3",icon: "trash-can"},
            <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event4",icon: "trash-can"}
        ]
    };
    

    Unsere Stadt stellt einen ical Kalender zur Verfügung.

    var i, Muell_JSON, Event2, Color;
    
    function subsequenceFromStartLast(sequence, at1) {
      var start = at1;
      var end = sequence.length - 1 + 1;
      return sequence.slice(start, end);
    }
    
    
    on({id: 'ical.1.data.table', change: "ne"}, async function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      for (i = 0; i <= 3; i++) {
        Muell_JSON = getState("ical.1.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')), 8);
        setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false);
        if (Event2 == 'Reststoff') {
          Color = 33840;
        } else if (Event2 == 'Biotonne') {
          Color = 2016;
        } else if (Event2 == 'Blaue Tonne') {
          Color = 31;
        } else if (Event2 == 'Gelbe Tonne') {
          Color = 65504;
        }
        setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false);
      }
    });
    

    Das Script erstellt mir die entsprechenden Datenpunkte unter 0_userdata und dort schreibe ich auch die Farben rein, darüber liegt jeweils ein Alias vom Typ "warning"

    Somit ist die Sortierung der nächsten Leerung dynamisch nach Datum und nicht statisch nach Tonnenfarbe.

    Statisch lässt dich das als Alias "info" abbilden

    ff5c7e62-f840-44de-9c7d-ab9d8317587d-image.png

    also jeweils für event 1 bis event 4

    fca79a75-9585-462b-bb9e-c9ffc31159bb-image.png

    und das sind die Datenpunkte
    6b9e0fb1-c84d-4d55-9569-59b2ceb7a65a-image.png

    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.

    K 1 Antwort Letzte Antwort
    0
    • K Kuckuckmann

      Ich mal wieder 🙂

      Ich versuche mich gerade daran den Button2 als meinen Home Button zu deklarieren.

      Ich habe den Button vom Relay getrennt:

      Rule2 on Button2#state do Publish SmartHome/nspanel_7C14FC/cmnd/RESULT {"CustomRecv":"event,button2"} endon
      

      und die dann aktiviert mit

      Rule2 1 (Rule aktivieren)
      

      Nun habe ich im ioBroker

      mqtt.0.SmartHome.nspanel_7C14FC.cmnd.RESULT
      

      mit dem Wert

      {"CustomRecv":"event,button2"}
      

      Im Skript habe ich eine PageGrid mit dem Namen "Home".
      Also habe ich in er Page Definition gesagt:

      button2Page: Home
      

      Wenn ich den Button nun drücke schaltet kein Relay mehr (was so sein soll) ,aber meine Seite "Home" wird nicht geladen.

      In der Tasmota Konsole sehe ich das:

      15:14:28.355 APP: Knopf2 Mehrfachdruck 1
      15:14:28.875 RUL: BUTTON2#STATE performs "Publish SmartHome/nspanel_7C14FC/cmnd/RESULT {"CustomRecv":"event,button2"}"
      15:14:28.878 SRC: Rule
      15:14:28.881 CMD: Grp 0, Cmd 'PUBLISH', Idx 1, Len 71, Pld -99, Data 'SmartHome/nspanel_7C14FC/cmnd/RESULT {"CustomRecv":"event,button2"}'
      15:14:28.891 MQT: SmartHome/nspanel_7C14FC/cmnd/RESULT = {"CustomRecv":"event,button2"}
      15:15:00.039 SRC: MQTT
      15:15:00.043 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 10, Pld -99, Data 'time~16:15'
      15:15:00.063 NXP: payload sent = bytes('55BB0A0074696D657E31363A3135BC35')
      15:15:00.072 MQT: SmartHome/nspanel_7C14FC/stat/RESULT = {"CustomSend":"Done"}
      

      Wo ist mein Fehler?

      Danke vorab.

      LG

      ArmilarA Offline
      ArmilarA Offline
      Armilar
      Most Active Forum Testing
      schrieb am zuletzt editiert von
      #1092

      @kuckuckmann sagte in Sonoff NSPanel:

      Ich mal wieder 🙂

      Ich versuche mich gerade daran den Button2 als meinen Home Button zu deklarieren.

      Ich habe den Button vom Relay getrennt:

      Rule2 on Button2#state do Publish SmartHome/nspanel_7C14FC/cmnd/RESULT {"CustomRecv":"event,button2"} endon
      

      und die dann aktiviert mit

      Rule2 1 (Rule aktivieren)
      

      Nun habe ich im ioBroker

      mqtt.0.SmartHome.nspanel_7C14FC.cmnd.RESULT
      

      mit dem Wert

      {"CustomRecv":"event,button2"}
      

      Im Skript habe ich eine PageGrid mit dem Namen "Home".
      Also habe ich in er Page Definition gesagt:

      button2Page: Home
      

      Wenn ich den Button nun drücke schaltet kein Relay mehr (was so sein soll) ,aber meine Seite "Home" wird nicht geladen.

      In der Tasmota Konsole sehe ich das:

      15:14:28.355 APP: Knopf2 Mehrfachdruck 1
      15:14:28.875 RUL: BUTTON2#STATE performs "Publish SmartHome/nspanel_7C14FC/cmnd/RESULT {"CustomRecv":"event,button2"}"
      15:14:28.878 SRC: Rule
      15:14:28.881 CMD: Grp 0, Cmd 'PUBLISH', Idx 1, Len 71, Pld -99, Data 'SmartHome/nspanel_7C14FC/cmnd/RESULT {"CustomRecv":"event,button2"}'
      15:14:28.891 MQT: SmartHome/nspanel_7C14FC/cmnd/RESULT = {"CustomRecv":"event,button2"}
      15:15:00.039 SRC: MQTT
      15:15:00.043 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 10, Pld -99, Data 'time~16:15'
      15:15:00.063 NXP: payload sent = bytes('55BB0A0074696D657E31363A3135BC35')
      15:15:00.072 MQT: SmartHome/nspanel_7C14FC/stat/RESULT = {"CustomSend":"Done"}
      

      Wo ist mein Fehler?

      Danke vorab.

      LG

      Bei mir funktioniert das auch...

      Das wichtigste ist eigentlich
      52d7357f-8fec-41cf-9bc3-792cce957505-image.png

      Was mich jedoch irritiert ist der Rest. Den habe ich bei mir nicht. Also Zeile 1, 3-9

      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.

      K 1 Antwort Letzte Antwort
      0
      • Jens WoznyJ Jens Wozny

        @armilar ja genau den, ohne den Hinweis gestern hätte ich ihn auch erst nicht gefunden da die Anzahl der Posts doch ziemlich angewachsen ist und auch wenn man sich bemüht irgendwann doch die Übersicht verliert 🙂

        ArmilarA Offline
        ArmilarA Offline
        Armilar
        Most Active Forum Testing
        schrieb am zuletzt editiert von
        #1093

        @jens-wozny sagte in Sonoff NSPanel:

        @armilar ja genau den, ohne den Hinweis gestern hätte ich ihn auch erst nicht gefunden da die Anzahl der Posts doch ziemlich angewachsen ist und auch wenn man sich bemüht irgendwann doch die Übersicht verliert 🙂

        Habe ich erweitert

        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.

        1 Antwort Letzte Antwort
        0
        • haus-automatisierungH haus-automatisierung

          Hallo zusammen,

          da dieser Thread (und damit auch die einzige Dokumentation) ziemlich verteilt Infos liefert, habe ich probiert das Vorgehen mal in einem Video zusammen zu fassen: https://youtu.be/ZPLJk2ZLo_8

          Danke für die tolle Arbeit @Armilar ! Ich hoffe, dass ich mit meinen letzten Änderungen am Script ein wenig helfen konnte. Keine neuen Features - nur Aufräumarbeiten. Insbesondere wenn das Script erstmalig ausgeführt wurde, gab es sehr viele Warnungen.

          ArmilarA Offline
          ArmilarA Offline
          Armilar
          Most Active Forum Testing
          schrieb am zuletzt editiert von
          #1094

          @haus-automatisierung sagte in Sonoff NSPanel:

          Hallo zusammen,

          da dieser Thread (und damit auch die einzige Dokumentation) ziemlich verteilt Infos liefert, habe ich probiert das Vorgehen mal in einem Video zusammen zu fassen: https://youtu.be/ZPLJk2ZLo_8

          Danke für die tolle Arbeit @Armilar ! Ich hoffe, dass ich mit meinen letzten Änderungen am Script ein wenig helfen konnte. Keine neuen Features - nur Aufräumarbeiten. Insbesondere wenn das Script erstmalig ausgeführt wurde, gab es sehr viele Warnungen.

          Wie immer ein gutes Video 👍 - Danke fürs aufräumen - gefällt mir 😉

          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.

          1 Antwort Letzte Antwort
          1
          • haus-automatisierungH haus-automatisierung

            Hallo zusammen,

            da dieser Thread (und damit auch die einzige Dokumentation) ziemlich verteilt Infos liefert, habe ich probiert das Vorgehen mal in einem Video zusammen zu fassen: https://youtu.be/ZPLJk2ZLo_8

            Danke für die tolle Arbeit @Armilar ! Ich hoffe, dass ich mit meinen letzten Änderungen am Script ein wenig helfen konnte. Keine neuen Features - nur Aufräumarbeiten. Insbesondere wenn das Script erstmalig ausgeführt wurde, gab es sehr viele Warnungen.

            ArmilarA Offline
            ArmilarA Offline
            Armilar
            Most Active Forum Testing
            schrieb am zuletzt editiert von Armilar
            #1095

            @haus-automatisierung sagte in Sonoff NSPanel:

            Hallo zusammen,

            da dieser Thread (und damit auch die einzige Dokumentation) ziemlich verteilt Infos liefert, habe ich probiert das Vorgehen mal in einem Video zusammen zu fassen: https://youtu.be/ZPLJk2ZLo_8

            Danke für die tolle Arbeit @Armilar ! Ich hoffe, dass ich mit meinen letzten Änderungen am Script ein wenig helfen konnte. Keine neuen Features - nur Aufräumarbeiten. Insbesondere wenn das Script erstmalig ausgeführt wurde, gab es sehr viele Warnungen.

            Allerdings hätte ich noch eine Frage - Ich habe natürlich versucht (auch vorher schon) per Expertenmodus den CustomSend anzulegen (ist ja im Prinzip auch das einfachste 😉 ) . Hat damals nicht geklappt und nach dem ich das im Video mal nachgespielt habe, ebenfalls nicht. In der Listenebene cmnd bekomme ich das "+" nicht aktiviert. Hast du dazu mal irgendwelche Einstellungen vorgenommen oder etwas anderes verändert?

            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.

            haus-automatisierungH 1 Antwort Letzte Antwort
            0
            • ArmilarA Armilar

              @kuckuckmann sagte in Sonoff NSPanel:

              @armilar said in Sonoff NSPanel:

              @Armilar Du hast hier geschrieben "darüber liegt jeweils ein Alias vom Typ "warning"". Kannst Du mal beschreiben, welche Felder du mit welchen Daten befüllst?
              Egal was ich mache, ich bekomme entweder eine blaue Tonne (Symbol) mit dem Datum als Beschreibung und Wert, oder eine schwarze Tonne (Symbol) mit null als Beschreibung und Wert.

              Danke vorab
              LG

              @kuckuckmann sagte in Sonoff NSPanel:

              @Armilar

              Beim Abfallkalender hast Du in Deinem Beispiel keine Farben bei der Definition mit angegeben. Dennoch sind auf dem Bsp. Screenshot die typischen Mülltonnenfarben zu sehen. Wo kommen die Farben denn her?

              //Subpage 1 von Subpages_1
              var Abfall: PageEntities =
              {
                  "type": "cardEntities",
                  "heading": "Abfallkalender",
                  "useColor": true,
                  "subPage": true,
                  "parent": Subpages_1,
                  "items": [
                      <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event1",icon: "trash-can"},
                      <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event2",icon: "trash-can"},
                      <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event3",icon: "trash-can"},
                      <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event4",icon: "trash-can"}
                  ]
              };
              

              Unsere Stadt stellt einen ical Kalender zur Verfügung.

              var i, Muell_JSON, Event2, Color;
              
              function subsequenceFromStartLast(sequence, at1) {
                var start = at1;
                var end = sequence.length - 1 + 1;
                return sequence.slice(start, end);
              }
              
              
              on({id: 'ical.1.data.table', change: "ne"}, async function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                for (i = 0; i <= 3; i++) {
                  Muell_JSON = getState("ical.1.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')), 8);
                  setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false);
                  if (Event2 == 'Reststoff') {
                    Color = 33840;
                  } else if (Event2 == 'Biotonne') {
                    Color = 2016;
                  } else if (Event2 == 'Blaue Tonne') {
                    Color = 31;
                  } else if (Event2 == 'Gelbe Tonne') {
                    Color = 65504;
                  }
                  setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false);
                }
              });
              

              Das Script erstellt mir die entsprechenden Datenpunkte unter 0_userdata und dort schreibe ich auch die Farben rein, darüber liegt jeweils ein Alias vom Typ "warning"

              Somit ist die Sortierung der nächsten Leerung dynamisch nach Datum und nicht statisch nach Tonnenfarbe.

              Statisch lässt dich das als Alias "info" abbilden

              ff5c7e62-f840-44de-9c7d-ab9d8317587d-image.png

              also jeweils für event 1 bis event 4

              fca79a75-9585-462b-bb9e-c9ffc31159bb-image.png

              und das sind die Datenpunkte
              6b9e0fb1-c84d-4d55-9569-59b2ceb7a65a-image.png

              K Offline
              K Offline
              Kuckuckmann
              schrieb am zuletzt editiert von
              #1096

              @armilar said in Sonoff NSPanel:

              Super, vielen Dank 🙂
              Wenn ich nun Dein Skript nutzen möchte, wie ist das anzulegen?
              Einfach nur als JS hinzufügen?
              Muss das noch irgendwie angesteuert werden, damit es was macht?

              Ich habe es bei mir als JS in einem unterordner angelegt und den ical Adapter auf ical.0 geändert.
              Außerdem habe ich unter 0_userdata den Abfallkalender Ordner angelgt.

              Das Skript ist gestartet, aber da kommen keine Datenpunkte im Abfallkalender Ordner.

              @kuckuckmann sagte in Sonoff NSPanel:

              @armilar said in Sonoff NSPanel:

              @Armilar Du hast hier geschrieben "darüber liegt jeweils ein Alias vom Typ "warning"". Kannst Du mal beschreiben, welche Felder du mit welchen Daten befüllst?
              Egal was ich mache, ich bekomme entweder eine blaue Tonne (Symbol) mit dem Datum als Beschreibung und Wert, oder eine schwarze Tonne (Symbol) mit null als Beschreibung und Wert.

              Danke vorab
              LG

              @kuckuckmann sagte in Sonoff NSPanel:

              @Armilar

              Beim Abfallkalender hast Du in Deinem Beispiel keine Farben bei der Definition mit angegeben. Dennoch sind auf dem Bsp. Screenshot die typischen Mülltonnenfarben zu sehen. Wo kommen die Farben denn her?

              //Subpage 1 von Subpages_1
              var Abfall: PageEntities =
              {
                  "type": "cardEntities",
                  "heading": "Abfallkalender",
                  "useColor": true,
                  "subPage": true,
                  "parent": Subpages_1,
                  "items": [
                      <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event1",icon: "trash-can"},
                      <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event2",icon: "trash-can"},
                      <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event3",icon: "trash-can"},
                      <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event4",icon: "trash-can"}
                  ]
              };
              

              Unsere Stadt stellt einen ical Kalender zur Verfügung.

              var i, Muell_JSON, Event2, Color;
              
              function subsequenceFromStartLast(sequence, at1) {
                var start = at1;
                var end = sequence.length - 1 + 1;
                return sequence.slice(start, end);
              }
              
              
              on({id: 'ical.1.data.table', change: "ne"}, async function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                for (i = 0; i <= 3; i++) {
                  Muell_JSON = getState("ical.1.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')), 8);
                  setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false);
                  if (Event2 == 'Reststoff') {
                    Color = 33840;
                  } else if (Event2 == 'Biotonne') {
                    Color = 2016;
                  } else if (Event2 == 'Blaue Tonne') {
                    Color = 31;
                  } else if (Event2 == 'Gelbe Tonne') {
                    Color = 65504;
                  }
                  setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false);
                }
              });
              

              Das Script erstellt mir die entsprechenden Datenpunkte unter 0_userdata und dort schreibe ich auch die Farben rein, darüber liegt jeweils ein Alias vom Typ "warning"

              Somit ist die Sortierung der nächsten Leerung dynamisch nach Datum und nicht statisch nach Tonnenfarbe.

              Statisch lässt dich das als Alias "info" abbilden

              ff5c7e62-f840-44de-9c7d-ab9d8317587d-image.png

              also jeweils für event 1 bis event 4

              fca79a75-9585-462b-bb9e-c9ffc31159bb-image.png

              und das sind die Datenpunkte
              6b9e0fb1-c84d-4d55-9569-59b2ceb7a65a-image.png

              NSPanel Dokumentation im GitHub Wiki:

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

              ArmilarA T 2 Antworten Letzte Antwort
              0
              • K Kuckuckmann

                @armilar said in Sonoff NSPanel:

                Super, vielen Dank 🙂
                Wenn ich nun Dein Skript nutzen möchte, wie ist das anzulegen?
                Einfach nur als JS hinzufügen?
                Muss das noch irgendwie angesteuert werden, damit es was macht?

                Ich habe es bei mir als JS in einem unterordner angelegt und den ical Adapter auf ical.0 geändert.
                Außerdem habe ich unter 0_userdata den Abfallkalender Ordner angelgt.

                Das Skript ist gestartet, aber da kommen keine Datenpunkte im Abfallkalender Ordner.

                @kuckuckmann sagte in Sonoff NSPanel:

                @armilar said in Sonoff NSPanel:

                @Armilar Du hast hier geschrieben "darüber liegt jeweils ein Alias vom Typ "warning"". Kannst Du mal beschreiben, welche Felder du mit welchen Daten befüllst?
                Egal was ich mache, ich bekomme entweder eine blaue Tonne (Symbol) mit dem Datum als Beschreibung und Wert, oder eine schwarze Tonne (Symbol) mit null als Beschreibung und Wert.

                Danke vorab
                LG

                @kuckuckmann sagte in Sonoff NSPanel:

                @Armilar

                Beim Abfallkalender hast Du in Deinem Beispiel keine Farben bei der Definition mit angegeben. Dennoch sind auf dem Bsp. Screenshot die typischen Mülltonnenfarben zu sehen. Wo kommen die Farben denn her?

                //Subpage 1 von Subpages_1
                var Abfall: PageEntities =
                {
                    "type": "cardEntities",
                    "heading": "Abfallkalender",
                    "useColor": true,
                    "subPage": true,
                    "parent": Subpages_1,
                    "items": [
                        <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event1",icon: "trash-can"},
                        <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event2",icon: "trash-can"},
                        <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event3",icon: "trash-can"},
                        <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event4",icon: "trash-can"}
                    ]
                };
                

                Unsere Stadt stellt einen ical Kalender zur Verfügung.

                var i, Muell_JSON, Event2, Color;
                
                function subsequenceFromStartLast(sequence, at1) {
                  var start = at1;
                  var end = sequence.length - 1 + 1;
                  return sequence.slice(start, end);
                }
                
                
                on({id: 'ical.1.data.table', change: "ne"}, async function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  for (i = 0; i <= 3; i++) {
                    Muell_JSON = getState("ical.1.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')), 8);
                    setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false);
                    if (Event2 == 'Reststoff') {
                      Color = 33840;
                    } else if (Event2 == 'Biotonne') {
                      Color = 2016;
                    } else if (Event2 == 'Blaue Tonne') {
                      Color = 31;
                    } else if (Event2 == 'Gelbe Tonne') {
                      Color = 65504;
                    }
                    setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false);
                  }
                });
                

                Das Script erstellt mir die entsprechenden Datenpunkte unter 0_userdata und dort schreibe ich auch die Farben rein, darüber liegt jeweils ein Alias vom Typ "warning"

                Somit ist die Sortierung der nächsten Leerung dynamisch nach Datum und nicht statisch nach Tonnenfarbe.

                Statisch lässt dich das als Alias "info" abbilden

                ff5c7e62-f840-44de-9c7d-ab9d8317587d-image.png

                also jeweils für event 1 bis event 4

                fca79a75-9585-462b-bb9e-c9ffc31159bb-image.png

                und das sind die Datenpunkte
                6b9e0fb1-c84d-4d55-9569-59b2ceb7a65a-image.png

                ArmilarA Offline
                ArmilarA Offline
                Armilar
                Most Active Forum Testing
                schrieb am zuletzt editiert von Armilar
                #1097

                @kuckuckmann sagte in Sonoff NSPanel:

                @armilar said in Sonoff NSPanel:

                Super, vielen Dank 🙂
                Wenn ich nun Dein Skript nutzen möchte, wie ist das anzulegen?
                Einfach nur als JS hinzufügen?
                Muss das noch irgendwie angesteuert werden, damit es was macht?

                Ich habe es bei mir als JS in einem unterordner angelegt und den ical Adapter auf ical.0 geändert.
                Außerdem habe ich unter 0_userdata den Abfallkalender Ordner angelgt.

                Das Skript ist gestartet, aber da kommen keine Datenpunkte im Abfallkalender Ordner.

                @kuckuckmann sagte in Sonoff NSPanel:

                @armilar said in Sonoff NSPanel:

                @Armilar Du hast hier geschrieben "darüber liegt jeweils ein Alias vom Typ "warning"". Kannst Du mal beschreiben, welche Felder du mit welchen Daten befüllst?
                Egal was ich mache, ich bekomme entweder eine blaue Tonne (Symbol) mit dem Datum als Beschreibung und Wert, oder eine schwarze Tonne (Symbol) mit null als Beschreibung und Wert.

                Danke vorab
                LG

                @kuckuckmann sagte in Sonoff NSPanel:

                @Armilar

                Beim Abfallkalender hast Du in Deinem Beispiel keine Farben bei der Definition mit angegeben. Dennoch sind auf dem Bsp. Screenshot die typischen Mülltonnenfarben zu sehen. Wo kommen die Farben denn her?

                //Subpage 1 von Subpages_1
                var Abfall: PageEntities =
                {
                    "type": "cardEntities",
                    "heading": "Abfallkalender",
                    "useColor": true,
                    "subPage": true,
                    "parent": Subpages_1,
                    "items": [
                        <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event1",icon: "trash-can"},
                        <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event2",icon: "trash-can"},
                        <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event3",icon: "trash-can"},
                        <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event4",icon: "trash-can"}
                    ]
                };
                

                Unsere Stadt stellt einen ical Kalender zur Verfügung.

                var i, Muell_JSON, Event2, Color;
                
                function subsequenceFromStartLast(sequence, at1) {
                  var start = at1;
                  var end = sequence.length - 1 + 1;
                  return sequence.slice(start, end);
                }
                
                
                on({id: 'ical.1.data.table', change: "ne"}, async function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  for (i = 0; i <= 3; i++) {
                    Muell_JSON = getState("ical.1.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')), 8);
                    setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false);
                    if (Event2 == 'Reststoff') {
                      Color = 33840;
                    } else if (Event2 == 'Biotonne') {
                      Color = 2016;
                    } else if (Event2 == 'Blaue Tonne') {
                      Color = 31;
                    } else if (Event2 == 'Gelbe Tonne') {
                      Color = 65504;
                    }
                    setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false);
                  }
                });
                

                Das Script erstellt mir die entsprechenden Datenpunkte unter 0_userdata und dort schreibe ich auch die Farben rein, darüber liegt jeweils ein Alias vom Typ "warning"

                Somit ist die Sortierung der nächsten Leerung dynamisch nach Datum und nicht statisch nach Tonnenfarbe.

                Statisch lässt dich das als Alias "info" abbilden

                ff5c7e62-f840-44de-9c7d-ab9d8317587d-image.png

                also jeweils für event 1 bis event 4

                fca79a75-9585-462b-bb9e-c9ffc31159bb-image.png

                und das sind die Datenpunkte
                6b9e0fb1-c84d-4d55-9569-59b2ceb7a65a-image.png

                Ist egal, ob Javascript oder TypeScript - sollte das gleiche sein.

                oder als Blockly

                <xml xmlns="https://developers.google.com/blockly/xml">
                  <variables>
                    <variable id="h}CE-n1l`S|gRf(0K%./">i</variable>
                    <variable id="j5C=K+Z.E:im1#q:;A=6">Muell_JSON</variable>
                    <variable id="^:v=Yb?;aM;Z[}4jCF3-">Event</variable>
                    <variable id="9^)S?J=tLkC7cUWc-u9w">Color</variable>
                  </variables>
                  <block type="on_ext" id="aFeZac36,?)=rfMg%3T|" x="38" y="-287">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                    <field name="CONDITION">ne</field>
                    <field name="ACK_CONDITION"></field>
                    <value name="OID0">
                      <shadow type="field_oid" id="GSzQ}epUa))me3m8yyuD">
                        <field name="oid">ical.1.data.table</field>
                      </shadow>
                    </value>
                    <statement name="STATEMENT">
                      <block type="controls_for" id="wduAM(OBPzLJ@bfYAK5%">
                        <field name="VAR" id="h}CE-n1l`S|gRf(0K%./">i</field>
                        <value name="FROM">
                          <shadow type="math_number" id="HK~R2U|`xb$U5W+tsHpN">
                            <field name="NUM">0</field>
                          </shadow>
                        </value>
                        <value name="TO">
                          <shadow type="math_number" id="Ed[L/:1e9-cwxrRaZiIv">
                            <field name="NUM">3</field>
                          </shadow>
                        </value>
                        <value name="BY">
                          <shadow type="math_number" id="o@5kngFiPpvl5dGo@Q$9">
                            <field name="NUM">1</field>
                          </shadow>
                        </value>
                        <statement name="DO">
                          <block type="variables_set" id="0T)vK0k8aikvg7mF6XHo">
                            <field name="VAR" id="j5C=K+Z.E:im1#q:;A=6">Muell_JSON</field>
                            <value name="VALUE">
                              <block type="get_value" id="1~kG;UHn$nw2zzbfOIT]">
                                <field name="ATTR">val</field>
                                <field name="OID">ical.1.data.table</field>
                              </block>
                            </value>
                            <next>
                              <block type="control_ex" id="UAu,2OBRJp9~Nzyxouyu">
                                <field name="TYPE">false</field>
                                <field name="CLEAR_RUNNING">FALSE</field>
                                <value name="OID">
                                  <shadow type="field_oid" id="J_|uu;{e44n5Z-;qE+hP">
                                    <field name="oid">Object ID</field>
                                  </shadow>
                                  <block type="text_join" id="8/|eHqk))j9Po-O*mK`e">
                                    <mutation items="3"></mutation>
                                    <value name="ADD0">
                                      <block type="text" id="Zp8GRfdfXujkeM41=PeZ">
                                        <field name="TEXT">0_userdata.0.Abfallkalender.</field>
                                      </block>
                                    </value>
                                    <value name="ADD1">
                                      <block type="math_arithmetic" id="$!!l@[eJ~4Kdb5/Imo.X">
                                        <field name="OP">ADD</field>
                                        <value name="A">
                                          <shadow type="math_number" id="zaU15{yD43xkuY@?)RY(">
                                            <field name="NUM">1</field>
                                          </shadow>
                                          <block type="variables_get" id="o3pJ(+3KE~Co%u-dy.:W">
                                            <field name="VAR" id="h}CE-n1l`S|gRf(0K%./">i</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <shadow type="math_number" id="_LBb[#z%M$n0~1Y}~8w+">
                                            <field name="NUM">1</field>
                                          </shadow>
                                        </value>
                                      </block>
                                    </value>
                                    <value name="ADD2">
                                      <block type="text" id="Vt#-b{iDzusQQx]#0%0,">
                                        <field name="TEXT">.date</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <value name="VALUE">
                                  <shadow type="logic_boolean" id="/y1w}eely@o.gl$]#)o=">
                                    <field name="BOOL">TRUE</field>
                                  </shadow>
                                  <block type="get_attr" id="p~0A1{eb$lD~.9`9R4K)">
                                    <value name="PATH">
                                      <shadow type="text">
                                        <field name="TEXT">0.date</field>
                                      </shadow>
                                      <block type="text_join" id="DDs!.^n(V7=A_TK}DFQt">
                                        <mutation items="2"></mutation>
                                        <value name="ADD0">
                                          <block type="variables_get" id="k1+Dybgb:u2y9v57OrCg">
                                            <field name="VAR" id="h}CE-n1l`S|gRf(0K%./">i</field>
                                          </block>
                                        </value>
                                        <value name="ADD1">
                                          <block type="text" id="EXgB=?B}IKiUdQ.2tKoa">
                                            <field name="TEXT">.date</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <value name="OBJECT">
                                      <block type="variables_get" id="dzLb1f^T!(MM,d=cYU9y">
                                        <field name="VAR" id="j5C=K+Z.E:im1#q:;A=6">Muell_JSON</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <value name="DELAY_MS">
                                  <shadow type="math_number" id="f8q~r@+q|8Kov#3EufsI">
                                    <field name="NUM">0</field>
                                  </shadow>
                                </value>
                                <next>
                                  <block type="variables_set" id="E[W-)N[vKeufX{v$B[]p">
                                    <field name="VAR" id="^:v=Yb?;aM;Z[}4jCF3-">Event</field>
                                    <value name="VALUE">
                                      <block type="text_getSubstring" id="YU_Q05y^+I.IzV[c9h9B" inline="false">
                                        <mutation at1="true" at2="false"></mutation>
                                        <field name="WHERE1">FROM_START</field>
                                        <field name="WHERE2">LAST</field>
                                        <value name="STRING">
                                          <block type="get_attr" id=":/^m9o]3:=L%$4[9$f]7">
                                            <value name="PATH">
                                              <shadow type="text">
                                                <field name="TEXT">0.event</field>
                                              </shadow>
                                              <block type="text_join" id="*MaT-W83R/Y5`?QCQNec">
                                                <mutation items="2"></mutation>
                                                <value name="ADD0">
                                                  <block type="variables_get" id="l5d$/glqMm3~+YA`5]wg">
                                                    <field name="VAR" id="h}CE-n1l`S|gRf(0K%./">i</field>
                                                  </block>
                                                </value>
                                                <value name="ADD1">
                                                  <block type="text" id="$+g0XH}$`2`+{B}s3ID@">
                                                    <field name="TEXT">.event</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <value name="OBJECT">
                                              <block type="variables_get" id="nSDdx_!gO45lc4.$`wI`">
                                                <field name="VAR" id="j5C=K+Z.E:im1#q:;A=6">Muell_JSON</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                        <value name="AT1">
                                          <block type="math_number" id="ic:P:#_w68q^w]#/;w+K">
                                            <field name="NUM">9</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="control_ex" id="^[032{A//-EpUE6lh7ml">
                                        <field name="TYPE">false</field>
                                        <field name="CLEAR_RUNNING">FALSE</field>
                                        <value name="OID">
                                          <shadow type="field_oid">
                                            <field name="oid">Object ID</field>
                                          </shadow>
                                          <block type="text_join" id="`@U%x4KdNV~Y0I`#+,BB">
                                            <mutation items="3"></mutation>
                                            <value name="ADD0">
                                              <block type="text" id="Rk[N`gae|lr/9FXmY!no">
                                                <field name="TEXT">0_userdata.0.Abfallkalender.</field>
                                              </block>
                                            </value>
                                            <value name="ADD1">
                                              <block type="math_arithmetic" id="=RY5pU%/0M!J;{^z81qr">
                                                <field name="OP">ADD</field>
                                                <value name="A">
                                                  <shadow type="math_number">
                                                    <field name="NUM">1</field>
                                                  </shadow>
                                                  <block type="variables_get" id="TbkkwM2BKh^+;KTQY3C]">
                                                    <field name="VAR" id="h}CE-n1l`S|gRf(0K%./">i</field>
                                                  </block>
                                                </value>
                                                <value name="B">
                                                  <shadow type="math_number" id="e,-Pz1Hy!V:=8S,tHo`:">
                                                    <field name="NUM">1</field>
                                                  </shadow>
                                                </value>
                                              </block>
                                            </value>
                                            <value name="ADD2">
                                              <block type="text" id="SApnes6}k9wDi243W2xp">
                                                <field name="TEXT">.event</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                        <value name="VALUE">
                                          <shadow type="logic_boolean" id="70uxCt~?y`hOTCs:tJ^~">
                                            <field name="BOOL">TRUE</field>
                                          </shadow>
                                          <block type="variables_get" id="}@7(YP=fmA0l@:FJS$v#">
                                            <field name="VAR" id="^:v=Yb?;aM;Z[}4jCF3-">Event</field>
                                          </block>
                                        </value>
                                        <value name="DELAY_MS">
                                          <shadow type="math_number" id="@JEhP_3fysDQ6a_x:ILm">
                                            <field name="NUM">0</field>
                                          </shadow>
                                        </value>
                                        <next>
                                          <block type="controls_if" id="r,.`4GPI|(([[.76Cft~">
                                            <mutation elseif="3"></mutation>
                                            <value name="IF0">
                                              <block type="logic_compare" id="d4g.Ts.`^;_R!bu)T_~|">
                                                <field name="OP">EQ</field>
                                                <value name="A">
                                                  <block type="variables_get" id="tC!eDI_BV-hGgDc@kuPc">
                                                    <field name="VAR" id="^:v=Yb?;aM;Z[}4jCF3-">Event</field>
                                                  </block>
                                                </value>
                                                <value name="B">
                                                  <block type="text" id="?3tZotX[hHq9HGFsA(x|">
                                                    <field name="TEXT">Reststoff</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <statement name="DO0">
                                              <block type="variables_set" id="FXPSk]#;ZliNOBw7bVC8">
                                                <field name="VAR" id="9^)S?J=tLkC7cUWc-u9w">Color</field>
                                                <value name="VALUE">
                                                  <block type="math_number" id="-6AJ8U932(j5LuWN@Sp,">
                                                    <field name="NUM">33840</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </statement>
                                            <value name="IF1">
                                              <block type="logic_compare" id=":{8uXg8tzuFNCxedDJ:F">
                                                <field name="OP">EQ</field>
                                                <value name="A">
                                                  <block type="variables_get" id="0A}m@W~711B2u){_B8uP">
                                                    <field name="VAR" id="^:v=Yb?;aM;Z[}4jCF3-">Event</field>
                                                  </block>
                                                </value>
                                                <value name="B">
                                                  <block type="text" id="x,Cz(O2e|co^a7rJEdO7">
                                                    <field name="TEXT">Biotonne</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <statement name="DO1">
                                              <block type="variables_set" id="Y#|WXlt|w+`5h3B`VI]*">
                                                <field name="VAR" id="9^)S?J=tLkC7cUWc-u9w">Color</field>
                                                <value name="VALUE">
                                                  <block type="math_number" id="BVnWo|iSfirB?Vw*M7;o">
                                                    <field name="NUM">2016</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </statement>
                                            <value name="IF2">
                                              <block type="logic_compare" id="Q0ejJ+ovU#35l7SaPd`7">
                                                <field name="OP">EQ</field>
                                                <value name="A">
                                                  <block type="variables_get" id="/EhoIt{trOOc3*+k5m4C">
                                                    <field name="VAR" id="^:v=Yb?;aM;Z[}4jCF3-">Event</field>
                                                  </block>
                                                </value>
                                                <value name="B">
                                                  <block type="text" id="BVzI8#S#S*Yqk5v;$?kD">
                                                    <field name="TEXT">Blaue Tonne</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <statement name="DO2">
                                              <block type="variables_set" id="R7DF(c~|*~pR_D]JqW7c">
                                                <field name="VAR" id="9^)S?J=tLkC7cUWc-u9w">Color</field>
                                                <value name="VALUE">
                                                  <block type="math_number" id="#A]b|UX(@QPk*SM_q)RZ">
                                                    <field name="NUM">31</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </statement>
                                            <value name="IF3">
                                              <block type="logic_compare" id="MjEHt,7LG#}DST*Iuc.R">
                                                <field name="OP">EQ</field>
                                                <value name="A">
                                                  <block type="variables_get" id="(WzO?43I0:YSK;VgFmnX">
                                                    <field name="VAR" id="^:v=Yb?;aM;Z[}4jCF3-">Event</field>
                                                  </block>
                                                </value>
                                                <value name="B">
                                                  <block type="text" id="![3nA.95iLG[3]m5%GYS">
                                                    <field name="TEXT">Gelbe Tonne</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <statement name="DO3">
                                              <block type="variables_set" id="959t9eG^*uj2c;pF^HGP">
                                                <field name="VAR" id="9^)S?J=tLkC7cUWc-u9w">Color</field>
                                                <value name="VALUE">
                                                  <block type="math_number" id="{*68t/i/Q7}6cb+0$`6Y">
                                                    <field name="NUM">65504</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </statement>
                                            <next>
                                              <block type="control_ex" id="^c0LOh0WChe-1QNTGVAy">
                                                <field name="TYPE">false</field>
                                                <field name="CLEAR_RUNNING">FALSE</field>
                                                <value name="OID">
                                                  <shadow type="field_oid" id="7gi,zaI;54L/Ek{e9,I@">
                                                    <field name="oid">Object ID</field>
                                                  </shadow>
                                                  <block type="text_join" id="J|nD$KZ,I6q=mt,xW@:X">
                                                    <mutation items="3"></mutation>
                                                    <value name="ADD0">
                                                      <block type="text" id="kwm[DP}25YD]Te=}p`S0">
                                                        <field name="TEXT">0_userdata.0.Abfallkalender.</field>
                                                      </block>
                                                    </value>
                                                    <value name="ADD1">
                                                      <block type="math_arithmetic" id="pj~|`_~%6}=?B^fK4@;L">
                                                        <field name="OP">ADD</field>
                                                        <value name="A">
                                                          <shadow type="math_number">
                                                            <field name="NUM">1</field>
                                                          </shadow>
                                                          <block type="variables_get" id="To0?Cg*f2pZ(Z`zK|=?M">
                                                            <field name="VAR" id="h}CE-n1l`S|gRf(0K%./">i</field>
                                                          </block>
                                                        </value>
                                                        <value name="B">
                                                          <shadow type="math_number" id="=Q|k5qeOIy1ya}{CVNF@">
                                                            <field name="NUM">1</field>
                                                          </shadow>
                                                        </value>
                                                      </block>
                                                    </value>
                                                    <value name="ADD2">
                                                      <block type="text" id="If6$$63npGW3OazEE^46">
                                                        <field name="TEXT">.color</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <value name="VALUE">
                                                  <shadow type="logic_boolean" id=")+b01E8B2-c#vcsGmA+Y">
                                                    <field name="BOOL">TRUE</field>
                                                  </shadow>
                                                  <block type="variables_get" id="/5*6z@-R5w^1i2*XphN|">
                                                    <field name="VAR" id="9^)S?J=tLkC7cUWc-u9w">Color</field>
                                                  </block>
                                                </value>
                                                <value name="DELAY_MS">
                                                  <shadow type="math_number" id="79qt?j;aoK%i)roQkfoE">
                                                    <field name="NUM">0</field>
                                                  </shadow>
                                                </value>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </statement>
                      </block>
                    </statement>
                  </block>
                </xml>
                

                Wichtig ist, dass ein Abfallkalender über den ical abgegriffen wird. Dann kannst du die events im Skript entsprechend deiner Gemeinde/Lankreis/Stadt anpassen. Ich denke die verwenden da überall unterschiedliche Namen für die Tonnen. Manchmal auch andere Farben per Region. Wir haben z.B. kein braun.

                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.

                1 Antwort Letzte Antwort
                0
                • K Kuckuckmann

                  @armilar said in Sonoff NSPanel:

                  Super, vielen Dank 🙂
                  Wenn ich nun Dein Skript nutzen möchte, wie ist das anzulegen?
                  Einfach nur als JS hinzufügen?
                  Muss das noch irgendwie angesteuert werden, damit es was macht?

                  Ich habe es bei mir als JS in einem unterordner angelegt und den ical Adapter auf ical.0 geändert.
                  Außerdem habe ich unter 0_userdata den Abfallkalender Ordner angelgt.

                  Das Skript ist gestartet, aber da kommen keine Datenpunkte im Abfallkalender Ordner.

                  @kuckuckmann sagte in Sonoff NSPanel:

                  @armilar said in Sonoff NSPanel:

                  @Armilar Du hast hier geschrieben "darüber liegt jeweils ein Alias vom Typ "warning"". Kannst Du mal beschreiben, welche Felder du mit welchen Daten befüllst?
                  Egal was ich mache, ich bekomme entweder eine blaue Tonne (Symbol) mit dem Datum als Beschreibung und Wert, oder eine schwarze Tonne (Symbol) mit null als Beschreibung und Wert.

                  Danke vorab
                  LG

                  @kuckuckmann sagte in Sonoff NSPanel:

                  @Armilar

                  Beim Abfallkalender hast Du in Deinem Beispiel keine Farben bei der Definition mit angegeben. Dennoch sind auf dem Bsp. Screenshot die typischen Mülltonnenfarben zu sehen. Wo kommen die Farben denn her?

                  //Subpage 1 von Subpages_1
                  var Abfall: PageEntities =
                  {
                      "type": "cardEntities",
                      "heading": "Abfallkalender",
                      "useColor": true,
                      "subPage": true,
                      "parent": Subpages_1,
                      "items": [
                          <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event1",icon: "trash-can"},
                          <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event2",icon: "trash-can"},
                          <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event3",icon: "trash-can"},
                          <PageItem>{ id: "alias.0.NSPanel_1.Abfall.event4",icon: "trash-can"}
                      ]
                  };
                  

                  Unsere Stadt stellt einen ical Kalender zur Verfügung.

                  var i, Muell_JSON, Event2, Color;
                  
                  function subsequenceFromStartLast(sequence, at1) {
                    var start = at1;
                    var end = sequence.length - 1 + 1;
                    return sequence.slice(start, end);
                  }
                  
                  
                  on({id: 'ical.1.data.table', change: "ne"}, async function (obj) {
                    var value = obj.state.val;
                    var oldValue = obj.oldState.val;
                    for (i = 0; i <= 3; i++) {
                      Muell_JSON = getState("ical.1.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')), 8);
                      setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false);
                      if (Event2 == 'Reststoff') {
                        Color = 33840;
                      } else if (Event2 == 'Biotonne') {
                        Color = 2016;
                      } else if (Event2 == 'Blaue Tonne') {
                        Color = 31;
                      } else if (Event2 == 'Gelbe Tonne') {
                        Color = 65504;
                      }
                      setStateDelayed((['0_userdata.0.Abfallkalender.',parseFloat(i) + 1,'.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false);
                    }
                  });
                  

                  Das Script erstellt mir die entsprechenden Datenpunkte unter 0_userdata und dort schreibe ich auch die Farben rein, darüber liegt jeweils ein Alias vom Typ "warning"

                  Somit ist die Sortierung der nächsten Leerung dynamisch nach Datum und nicht statisch nach Tonnenfarbe.

                  Statisch lässt dich das als Alias "info" abbilden

                  ff5c7e62-f840-44de-9c7d-ab9d8317587d-image.png

                  also jeweils für event 1 bis event 4

                  fca79a75-9585-462b-bb9e-c9ffc31159bb-image.png

                  und das sind die Datenpunkte
                  6b9e0fb1-c84d-4d55-9569-59b2ceb7a65a-image.png

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

                  @kuckuckmann

                  hast du eine URL zum Kalender oder eine Datei ?

                  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

                  ArmilarA 1 Antwort Letzte Antwort
                  0
                  • T TT-Tom

                    @kuckuckmann

                    hast du eine URL zum Kalender oder eine Datei ?

                    ArmilarA Offline
                    ArmilarA Offline
                    Armilar
                    Most Active Forum Testing
                    schrieb am zuletzt editiert von
                    #1099

                    @tt-tom sagte in Sonoff NSPanel:

                    @kuckuckmann

                    hast du eine URL zum Kalender oder eine Datei ?

                    ist ne URL

                    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.

                    T 1 Antwort Letzte Antwort
                    0
                    • ArmilarA Armilar

                      @tt-tom sagte in Sonoff NSPanel:

                      @kuckuckmann

                      hast du eine URL zum Kalender oder eine Datei ?

                      ist ne URL

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

                      @armilar @Kuckuckmann

                      wie lautet die den? mal reinsehen wie sie die JSON aufgebaut haben

                      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

                      ArmilarA 1 Antwort Letzte Antwort
                      0
                      • T TT-Tom

                        @armilar @Kuckuckmann

                        wie lautet die den? mal reinsehen wie sie die JSON aufgebaut haben

                        ArmilarA Offline
                        ArmilarA Offline
                        Armilar
                        Most Active Forum Testing
                        schrieb am zuletzt editiert von Armilar
                        #1101

                        @tt-tom sagte in Sonoff NSPanel:

                        @armilar @Kuckuckmann

                        wie lautet die den? mal reinsehen wie sie die JSON aufgebaut haben

                        Nee, ist doch eine ical-Datei hinter der URL.

                        Ich komme aus dem Landkreis Aurich.
                        https://mkw-grossefehn.de/service-information/abfuhrkalender.html
                        Der Link unter ical ist faktisch das Ziel.

                        Hab mal eine fiktive Adresse in Ostfriesland rausgesucht

                        https://apps.c-trace.de/web.aurich-abfallkalender/(S(gb01nqhuxwx2kms52l5qrc33))/abfallkalender/cal?Gemeinde=Aurich&Ort=Aurich-Stadt&Strasse=Marktplatz&Hausnr=1-2
                        

                        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.

                        1 Antwort Letzte Antwort
                        0
                        • K Offline
                          K Offline
                          Kuckuckmann
                          schrieb am zuletzt editiert von Kuckuckmann
                          #1102

                          Hier hab ich den ical für Euch. Adressdaten und ein paar andere persönliche Daten habe ich durch das Wort "ausgetauscht" ersetzt.

                          [{"date":"In 3 Tagen  ","event":"Restabfalltonne","_class":"ical_Abfallkalender ical_3days","_date":"2022-08-30T22:00:00.000Z","_end":"2022-08-31T22:00:00.000Z","_section":"ausgetauscht","_IDID":"ausgetauscht","_allDay":true,"_private":false,"_rule":" ","location":"ausgetauscht","_calName":"Abfallkalender","_calColor":"#0080ff","_object":{"type":"VEVENT","params":[],"start":"2022-08-30T22:00:00.000Z","datetype":"date","end":"2022-08-31T22:00:00.000Z","dtstamp":"2022-08-28T15:30:06.000Z","uid":"ausgetauscht","url":"ausgetauscht","class":"PUBLIC","created":"2021-12-28T23:22:14.000Z","description":"ausgetauscht","lastmodified":"2021-12-28T23:23:20.000Z","location":"ausgetauscht","sequence":"0","status":"CONFIRMED","summary":"Restabfalltonne","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"In 4 Tagen  ","event":"Gelbe Tonne","_class":"ical_Abfallkalender ical_4days","_date":"2022-08-31T22:00:00.000Z","_end":"2022-09-01T22:00:00.000Z","_section":"ausgetauscht","_IDID":"ausgetauscht","_allDay":true,"_private":false,"_rule":" ","location":"ausgetauscht","_calName":"Abfallkalender","_calColor":"#0080ff","_object":{"type":"VEVENT","params":[],"start":"2022-08-31T22:00:00.000Z","datetype":"date","end":"2022-09-01T22:00:00.000Z","dtstamp":"2022-08-28T15:30:06.000Z","uid":"ausgetauscht","url":"ausgetauscht","class":"PUBLIC","created":"2021-12-28T23:22:14.000Z","description":"ausgetauscht","lastmodified":"2021-12-28T23:23:20.000Z","location":"ausgetauscht","sequence":"0","status":"CONFIRMED","summary":"Gelbe Tonne","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"07.09.2022  ","event":"Biotonne","_class":"ical_Abfallkalender ","_date":"2022-09-06T22:00:00.000Z","_end":"2022-09-07T22:00:00.000Z","_section":"ausgetauscht","_IDID":"ausgetauscht","_allDay":true,"_private":false,"_rule":" ","location":"ausgetauscht","_calName":"Abfallkalender","_calColor":"#0080ff","_object":{"type":"VEVENT","params":[],"start":"2022-09-06T22:00:00.000Z","datetype":"date","end":"2022-09-07T22:00:00.000Z","dtstamp":"2022-08-28T15:30:06.000Z","uid":"ausgetauscht","url":"ausgetauscht","class":"PUBLIC","created":"2021-12-28T23:22:14.000Z","description":"ausgetauscht","lastmodified":"2021-12-28T23:23:20.000Z","location":"ausgetauscht","sequence":"0","status":"CONFIRMED","summary":"Biotonne","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"14.09.2022  ","event":"Restabfalltonne","_class":"ical_Abfallkalender ","_date":"2022-09-13T22:00:00.000Z","_end":"2022-09-14T22:00:00.000Z","_section":"ausgetauscht","_IDID":"ausgetauscht","_allDay":true,"_private":false,"_rule":" ","location":"ausgetauscht","_calName":"Abfallkalender","_calColor":"#0080ff","_object":{"type":"VEVENT","params":[],"start":"2022-09-13T22:00:00.000Z","datetype":"date","end":"2022-09-14T22:00:00.000Z","dtstamp":"2022-08-28T15:30:06.000Z","uid":"ausgetauscht","url":"ausgetauscht","class":"PUBLIC","created":"2021-12-28T23:22:14.000Z","description":"ausgetauscht","lastmodified":"2021-12-28T23:23:20.000Z","location":"ausgetauscht","sequence":"0","status":"CONFIRMED","summary":"Restabfalltonne","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"15.09.2022  ","event":"Gelbe Tonne","_class":"ical_Abfallkalender ","_date":"2022-09-14T22:00:00.000Z","_end":"2022-09-15T22:00:00.000Z","_section":"ausgetauscht","_IDID":"ausgetauscht","_allDay":true,"_private":false,"_rule":" ","location":"ausgetauscht","_calName":"Abfallkalender","_calColor":"#0080ff","_object":{"type":"VEVENT","params":[],"start":"2022-09-14T22:00:00.000Z","datetype":"date","end":"2022-09-15T22:00:00.000Z","dtstamp":"2022-08-28T15:30:06.000Z","uid":"ausgetauscht","url":"ausgetauscht","class":"PUBLIC","created":"2021-12-28T23:22:14.000Z","description":"ausgetauscht","lastmodified":"2021-12-28T23:23:20.000Z","location":"ausgetauscht","sequence":"0","status":"CONFIRMED","summary":"Gelbe Tonne","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"21.09.2022  ","event":"Biotonne","_class":"ical_Abfallkalender ","_date":"2022-09-20T22:00:00.000Z","_end":"2022-09-21T22:00:00.000Z","_section":"ausgetauscht","_IDID":"ausgetauscht","_allDay":true,"_private":false,"_rule":" ","location":"ausgetauscht","_calName":"Abfallkalender","_calColor":"#0080ff","_object":{"type":"VEVENT","params":[],"start":"2022-09-20T22:00:00.000Z","datetype":"date","end":"2022-09-21T22:00:00.000Z","dtstamp":"2022-08-28T15:30:06.000Z","uid":"ausgetauscht","url":"ausgetauscht","class":"PUBLIC","created":"2021-12-28T23:22:14.000Z","description":"ausgetauscht","lastmodified":"2021-12-28T23:23:20.000Z","location":"ausgetauscht","sequence":"0","status":"CONFIRMED","summary":"Biotonne","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"22.09.2022  ","event":"Blaue Tonne","_class":"ical_Abfallkalender ","_date":"2022-09-21T22:00:00.000Z","_end":"2022-09-22T22:00:00.000Z","_section":"","_IDID":"ausgetauscht","_allDay":true,"_private":false,"_rule":" ","location":"","_calName":"Abfallkalender","_calColor":"#0080ff","_object":{"type":"VEVENT","params":[],"start":"2022-09-21T22:00:00.000Z","datetype":"date","end":"2022-09-22T22:00:00.000Z","dtstamp":"2022-08-28T15:30:06.000Z","uid":"ausgetauscht","created":"2021-12-28T23:28:18.000Z","description":"","lastmodified":"2021-12-28T23:28:18.000Z","location":"","sequence":"0","status":"CONFIRMED","summary":"Blaue Tonne","transparency":"TRANSPARENT","method":"PUBLISH"}}]
                          

                          Das ist übrigens ein standard google ical. Würde mich nu wundern, wenn das groß abweichend wäre.

                          NSPanel Dokumentation im GitHub Wiki:

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

                          T 1 Antwort Letzte Antwort
                          0
                          • ArmilarA Armilar

                            @kuckuckmann sagte in Sonoff NSPanel:

                            Ich mal wieder 🙂

                            Ich versuche mich gerade daran den Button2 als meinen Home Button zu deklarieren.

                            Ich habe den Button vom Relay getrennt:

                            Rule2 on Button2#state do Publish SmartHome/nspanel_7C14FC/cmnd/RESULT {"CustomRecv":"event,button2"} endon
                            

                            und die dann aktiviert mit

                            Rule2 1 (Rule aktivieren)
                            

                            Nun habe ich im ioBroker

                            mqtt.0.SmartHome.nspanel_7C14FC.cmnd.RESULT
                            

                            mit dem Wert

                            {"CustomRecv":"event,button2"}
                            

                            Im Skript habe ich eine PageGrid mit dem Namen "Home".
                            Also habe ich in er Page Definition gesagt:

                            button2Page: Home
                            

                            Wenn ich den Button nun drücke schaltet kein Relay mehr (was so sein soll) ,aber meine Seite "Home" wird nicht geladen.

                            In der Tasmota Konsole sehe ich das:

                            15:14:28.355 APP: Knopf2 Mehrfachdruck 1
                            15:14:28.875 RUL: BUTTON2#STATE performs "Publish SmartHome/nspanel_7C14FC/cmnd/RESULT {"CustomRecv":"event,button2"}"
                            15:14:28.878 SRC: Rule
                            15:14:28.881 CMD: Grp 0, Cmd 'PUBLISH', Idx 1, Len 71, Pld -99, Data 'SmartHome/nspanel_7C14FC/cmnd/RESULT {"CustomRecv":"event,button2"}'
                            15:14:28.891 MQT: SmartHome/nspanel_7C14FC/cmnd/RESULT = {"CustomRecv":"event,button2"}
                            15:15:00.039 SRC: MQTT
                            15:15:00.043 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 10, Pld -99, Data 'time~16:15'
                            15:15:00.063 NXP: payload sent = bytes('55BB0A0074696D657E31363A3135BC35')
                            15:15:00.072 MQT: SmartHome/nspanel_7C14FC/stat/RESULT = {"CustomSend":"Done"}
                            

                            Wo ist mein Fehler?

                            Danke vorab.

                            LG

                            Bei mir funktioniert das auch...

                            Das wichtigste ist eigentlich
                            52d7357f-8fec-41cf-9bc3-792cce957505-image.png

                            Was mich jedoch irritiert ist der Rest. Den habe ich bei mir nicht. Also Zeile 1, 3-9

                            K Offline
                            K Offline
                            Kuckuckmann
                            schrieb am zuletzt editiert von Kuckuckmann
                            #1103

                            @armilar said in Sonoff NSPanel:

                            Bei mir funktioniert das auch...
                            Das wichtigste ist eigentlich

                            Was mich jedoch irritiert ist der Rest. Den habe ich bei mir nicht. Also Zeile 1, 3-9

                            Hast Du sonst noch eine Idee was ich untersuchen kann?

                            Nachtrag: Ich habe jetzt mal die default Button2Page konfiguriert, auch die wird über den Button nicht aufgerufen.
                            ich habe das Gefühl, da fehlt was, muss man da noch was abonnieren via MQTT oder irgendwo einstellen?

                            Wenn ich die button1Page: oder button2Page: plus deren Konfigurationen entferne, startet das Skript nicht mehr. Ist das ein Bug?

                            script.js.common.NSPanel_7C14FC_2_9_0: TypeScript compilation failed:export const config: Config = { ^ERROR: Type '{ panelRecvTopic: string; panelSendTopic: string; firstScreensaverEntity: { ScreensaverEntity: string; ScreensaverEntityIcon: string; ScreensaverEntityText: string; ScreensaverEntityUnitText: string; }; ... 16 more ...; subPages: (PageGrid | PageEntities)[]; }' is missing the following properties from type 'Config': button1Page, button2Page
                            

                            NSPanel Dokumentation im GitHub Wiki:

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

                            ArmilarA 1 Antwort Letzte Antwort
                            0
                            • ArmilarA Armilar

                              @haus-automatisierung sagte in Sonoff NSPanel:

                              Hallo zusammen,

                              da dieser Thread (und damit auch die einzige Dokumentation) ziemlich verteilt Infos liefert, habe ich probiert das Vorgehen mal in einem Video zusammen zu fassen: https://youtu.be/ZPLJk2ZLo_8

                              Danke für die tolle Arbeit @Armilar ! Ich hoffe, dass ich mit meinen letzten Änderungen am Script ein wenig helfen konnte. Keine neuen Features - nur Aufräumarbeiten. Insbesondere wenn das Script erstmalig ausgeführt wurde, gab es sehr viele Warnungen.

                              Allerdings hätte ich noch eine Frage - Ich habe natürlich versucht (auch vorher schon) per Expertenmodus den CustomSend anzulegen (ist ja im Prinzip auch das einfachste 😉 ) . Hat damals nicht geklappt und nach dem ich das im Video mal nachgespielt habe, ebenfalls nicht. In der Listenebene cmnd bekomme ich das "+" nicht aktiviert. Hast du dazu mal irgendwelche Einstellungen vorgenommen oder etwas anderes verändert?

                              haus-automatisierungH Offline
                              haus-automatisierungH Offline
                              haus-automatisierung
                              Developer Most Active
                              schrieb am zuletzt editiert von
                              #1104

                              @armilar Im Expertenmodus kannst Du überall Objekte anlegen.

                              🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                              🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                              📚 Meine inoffizielle ioBroker Dokumentation

                              ArmilarA 1 Antwort Letzte Antwort
                              0
                              • K Kuckuckmann

                                Hier hab ich den ical für Euch. Adressdaten und ein paar andere persönliche Daten habe ich durch das Wort "ausgetauscht" ersetzt.

                                [{"date":"In 3 Tagen  ","event":"Restabfalltonne","_class":"ical_Abfallkalender ical_3days","_date":"2022-08-30T22:00:00.000Z","_end":"2022-08-31T22:00:00.000Z","_section":"ausgetauscht","_IDID":"ausgetauscht","_allDay":true,"_private":false,"_rule":" ","location":"ausgetauscht","_calName":"Abfallkalender","_calColor":"#0080ff","_object":{"type":"VEVENT","params":[],"start":"2022-08-30T22:00:00.000Z","datetype":"date","end":"2022-08-31T22:00:00.000Z","dtstamp":"2022-08-28T15:30:06.000Z","uid":"ausgetauscht","url":"ausgetauscht","class":"PUBLIC","created":"2021-12-28T23:22:14.000Z","description":"ausgetauscht","lastmodified":"2021-12-28T23:23:20.000Z","location":"ausgetauscht","sequence":"0","status":"CONFIRMED","summary":"Restabfalltonne","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"In 4 Tagen  ","event":"Gelbe Tonne","_class":"ical_Abfallkalender ical_4days","_date":"2022-08-31T22:00:00.000Z","_end":"2022-09-01T22:00:00.000Z","_section":"ausgetauscht","_IDID":"ausgetauscht","_allDay":true,"_private":false,"_rule":" ","location":"ausgetauscht","_calName":"Abfallkalender","_calColor":"#0080ff","_object":{"type":"VEVENT","params":[],"start":"2022-08-31T22:00:00.000Z","datetype":"date","end":"2022-09-01T22:00:00.000Z","dtstamp":"2022-08-28T15:30:06.000Z","uid":"ausgetauscht","url":"ausgetauscht","class":"PUBLIC","created":"2021-12-28T23:22:14.000Z","description":"ausgetauscht","lastmodified":"2021-12-28T23:23:20.000Z","location":"ausgetauscht","sequence":"0","status":"CONFIRMED","summary":"Gelbe Tonne","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"07.09.2022  ","event":"Biotonne","_class":"ical_Abfallkalender ","_date":"2022-09-06T22:00:00.000Z","_end":"2022-09-07T22:00:00.000Z","_section":"ausgetauscht","_IDID":"ausgetauscht","_allDay":true,"_private":false,"_rule":" ","location":"ausgetauscht","_calName":"Abfallkalender","_calColor":"#0080ff","_object":{"type":"VEVENT","params":[],"start":"2022-09-06T22:00:00.000Z","datetype":"date","end":"2022-09-07T22:00:00.000Z","dtstamp":"2022-08-28T15:30:06.000Z","uid":"ausgetauscht","url":"ausgetauscht","class":"PUBLIC","created":"2021-12-28T23:22:14.000Z","description":"ausgetauscht","lastmodified":"2021-12-28T23:23:20.000Z","location":"ausgetauscht","sequence":"0","status":"CONFIRMED","summary":"Biotonne","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"14.09.2022  ","event":"Restabfalltonne","_class":"ical_Abfallkalender ","_date":"2022-09-13T22:00:00.000Z","_end":"2022-09-14T22:00:00.000Z","_section":"ausgetauscht","_IDID":"ausgetauscht","_allDay":true,"_private":false,"_rule":" ","location":"ausgetauscht","_calName":"Abfallkalender","_calColor":"#0080ff","_object":{"type":"VEVENT","params":[],"start":"2022-09-13T22:00:00.000Z","datetype":"date","end":"2022-09-14T22:00:00.000Z","dtstamp":"2022-08-28T15:30:06.000Z","uid":"ausgetauscht","url":"ausgetauscht","class":"PUBLIC","created":"2021-12-28T23:22:14.000Z","description":"ausgetauscht","lastmodified":"2021-12-28T23:23:20.000Z","location":"ausgetauscht","sequence":"0","status":"CONFIRMED","summary":"Restabfalltonne","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"15.09.2022  ","event":"Gelbe Tonne","_class":"ical_Abfallkalender ","_date":"2022-09-14T22:00:00.000Z","_end":"2022-09-15T22:00:00.000Z","_section":"ausgetauscht","_IDID":"ausgetauscht","_allDay":true,"_private":false,"_rule":" ","location":"ausgetauscht","_calName":"Abfallkalender","_calColor":"#0080ff","_object":{"type":"VEVENT","params":[],"start":"2022-09-14T22:00:00.000Z","datetype":"date","end":"2022-09-15T22:00:00.000Z","dtstamp":"2022-08-28T15:30:06.000Z","uid":"ausgetauscht","url":"ausgetauscht","class":"PUBLIC","created":"2021-12-28T23:22:14.000Z","description":"ausgetauscht","lastmodified":"2021-12-28T23:23:20.000Z","location":"ausgetauscht","sequence":"0","status":"CONFIRMED","summary":"Gelbe Tonne","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"21.09.2022  ","event":"Biotonne","_class":"ical_Abfallkalender ","_date":"2022-09-20T22:00:00.000Z","_end":"2022-09-21T22:00:00.000Z","_section":"ausgetauscht","_IDID":"ausgetauscht","_allDay":true,"_private":false,"_rule":" ","location":"ausgetauscht","_calName":"Abfallkalender","_calColor":"#0080ff","_object":{"type":"VEVENT","params":[],"start":"2022-09-20T22:00:00.000Z","datetype":"date","end":"2022-09-21T22:00:00.000Z","dtstamp":"2022-08-28T15:30:06.000Z","uid":"ausgetauscht","url":"ausgetauscht","class":"PUBLIC","created":"2021-12-28T23:22:14.000Z","description":"ausgetauscht","lastmodified":"2021-12-28T23:23:20.000Z","location":"ausgetauscht","sequence":"0","status":"CONFIRMED","summary":"Biotonne","transparency":"TRANSPARENT","method":"PUBLISH"}},{"date":"22.09.2022  ","event":"Blaue Tonne","_class":"ical_Abfallkalender ","_date":"2022-09-21T22:00:00.000Z","_end":"2022-09-22T22:00:00.000Z","_section":"","_IDID":"ausgetauscht","_allDay":true,"_private":false,"_rule":" ","location":"","_calName":"Abfallkalender","_calColor":"#0080ff","_object":{"type":"VEVENT","params":[],"start":"2022-09-21T22:00:00.000Z","datetype":"date","end":"2022-09-22T22:00:00.000Z","dtstamp":"2022-08-28T15:30:06.000Z","uid":"ausgetauscht","created":"2021-12-28T23:28:18.000Z","description":"","lastmodified":"2021-12-28T23:28:18.000Z","location":"","sequence":"0","status":"CONFIRMED","summary":"Blaue Tonne","transparency":"TRANSPARENT","method":"PUBLISH"}}]
                                

                                Das ist übrigens ein standard google ical. Würde mich nu wundern, wenn das groß abweichend wäre.

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

                                @Kuckuckmann
                                Hast du Müllnamen im Script angepasst.

                                Änder mal die Zahl auf 0 bei Event2 = subsequenceFromStartLast

                                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

                                K 1 Antwort Letzte Antwort
                                0
                                • T TT-Tom

                                  @Kuckuckmann
                                  Hast du Müllnamen im Script angepasst.

                                  Änder mal die Zahl auf 0 bei Event2 = subsequenceFromStartLast

                                  K Offline
                                  K Offline
                                  Kuckuckmann
                                  schrieb am zuletzt editiert von
                                  #1106

                                  @tt-tom said in Sonoff NSPanel:

                                  @Kuckuckmann
                                  Hast du Müllnamen im Script angepasst.

                                  Änder mal die Zahl auf 0 bei Event2 = subsequenceFromStartLast

                                  Ja, die Namen entsprechen denen in der Tabelle.
                                  Meinst Du Event2 auf Event0 ändern? letztlich ist das doch nur eine Variable.
                                  Eine andere Zahl sehe ich da nicht.

                                  NSPanel Dokumentation im GitHub Wiki:

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

                                  T 1 Antwort Letzte Antwort
                                  0
                                  • K Kuckuckmann

                                    @armilar said in Sonoff NSPanel:

                                    Bei mir funktioniert das auch...
                                    Das wichtigste ist eigentlich

                                    Was mich jedoch irritiert ist der Rest. Den habe ich bei mir nicht. Also Zeile 1, 3-9

                                    Hast Du sonst noch eine Idee was ich untersuchen kann?

                                    Nachtrag: Ich habe jetzt mal die default Button2Page konfiguriert, auch die wird über den Button nicht aufgerufen.
                                    ich habe das Gefühl, da fehlt was, muss man da noch was abonnieren via MQTT oder irgendwo einstellen?

                                    Wenn ich die button1Page: oder button2Page: plus deren Konfigurationen entferne, startet das Skript nicht mehr. Ist das ein Bug?

                                    script.js.common.NSPanel_7C14FC_2_9_0: TypeScript compilation failed:export const config: Config = { ^ERROR: Type '{ panelRecvTopic: string; panelSendTopic: string; firstScreensaverEntity: { ScreensaverEntity: string; ScreensaverEntityIcon: string; ScreensaverEntityText: string; ScreensaverEntityUnitText: string; }; ... 16 more ...; subPages: (PageGrid | PageEntities)[]; }' is missing the following properties from type 'Config': button1Page, button2Page
                                    
                                    ArmilarA Offline
                                    ArmilarA Offline
                                    Armilar
                                    Most Active Forum Testing
                                    schrieb am zuletzt editiert von
                                    #1107

                                    @kuckuckmann sagte in Sonoff NSPanel:

                                    @armilar said in Sonoff NSPanel:

                                    Bei mir funktioniert das auch...
                                    Das wichtigste ist eigentlich

                                    Was mich jedoch irritiert ist der Rest. Den habe ich bei mir nicht. Also Zeile 1, 3-9

                                    Hast Du sonst noch eine Idee was ich untersuchen kann?

                                    Nachtrag: Ich habe jetzt mal die default Button2Page konfiguriert, auch die wird über den Button nicht aufgerufen.
                                    ich habe das Gefühl, da fehlt was, muss man da noch was abonnieren via MQTT oder irgendwo einstellen?

                                    Wenn ich die button1Page: oder button2Page: plus deren Konfigurationen entferne, startet das Skript nicht mehr. Ist das ein Bug?

                                    script.js.common.NSPanel_7C14FC_2_9_0: TypeScript compilation failed:export const config: Config = { ^ERROR: Type '{ panelRecvTopic: string; panelSendTopic: string; firstScreensaverEntity: { ScreensaverEntity: string; ScreensaverEntityIcon: string; ScreensaverEntityText: string; ScreensaverEntityUnitText: string; }; ... 16 more ...; subPages: (PageGrid | PageEntities)[]; }' is missing the following properties from type 'Config': button1Page, button2Page
                                    

                                    Nein, kein Bug - sollte ohne Skriptänderungen funktionieren. Im Prinzip drückst du auf den Button und am mqtt.0.SmartHome.NSPanel_1.tele.RESULT sollte {"CustomRecv":"event,button2"} ankommen. Falls nicht, stimmt höchstwahrscheinlich etwas im Tasmota nicht. Tasmota benötigt für diese Aktion nur die Rule - sonst nix.

                                    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.

                                    K 1 Antwort Letzte Antwort
                                    0
                                    • K Kuckuckmann

                                      @tt-tom said in Sonoff NSPanel:

                                      @Kuckuckmann
                                      Hast du Müllnamen im Script angepasst.

                                      Änder mal die Zahl auf 0 bei Event2 = subsequenceFromStartLast

                                      Ja, die Namen entsprechen denen in der Tabelle.
                                      Meinst Du Event2 auf Event0 ändern? letztlich ist das doch nur eine Variable.
                                      Eine andere Zahl sehe ich da nicht.

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

                                      @kuckuckmann

                                      Am Ende der Zeile steht eine 8 , daraus eine 0 machen

                                      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

                                      K 1 Antwort Letzte Antwort
                                      0
                                      • haus-automatisierungH haus-automatisierung

                                        @armilar Im Expertenmodus kannst Du überall Objekte anlegen.

                                        ArmilarA Offline
                                        ArmilarA Offline
                                        Armilar
                                        Most Active Forum Testing
                                        schrieb am zuletzt editiert von
                                        #1109

                                        @haus-automatisierung sagte in Sonoff NSPanel:

                                        @armilar Im Expertenmodus kannst Du überall Objekte anlegen.

                                        Hatte das auch so in Erinnerung:
                                        hier auf cmnd (hier ist das "+" trotz Expertenmodus ausgegraut)
                                        c155fc2b-337a-49a9-ba99-ef60db2b19b1-image.png

                                        hier auf NSPanel_1 (eine Ebene höher gehts es)
                                        b4835093-da35-48b3-960b-60e3a9acb36a-image.png

                                        Vor ein paar Releases ging das alles noch. Bin jetzt aktuell auf der 6.2.18

                                        Andererseits benötige ich die auch nur für die Erstellung des CustomSend und das funktioniert auch prima mit dem MQTT Explorer

                                        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.

                                        K 1 Antwort Letzte Antwort
                                        0
                                        • ArmilarA Armilar

                                          @kuckuckmann sagte in Sonoff NSPanel:

                                          @armilar said in Sonoff NSPanel:

                                          Bei mir funktioniert das auch...
                                          Das wichtigste ist eigentlich

                                          Was mich jedoch irritiert ist der Rest. Den habe ich bei mir nicht. Also Zeile 1, 3-9

                                          Hast Du sonst noch eine Idee was ich untersuchen kann?

                                          Nachtrag: Ich habe jetzt mal die default Button2Page konfiguriert, auch die wird über den Button nicht aufgerufen.
                                          ich habe das Gefühl, da fehlt was, muss man da noch was abonnieren via MQTT oder irgendwo einstellen?

                                          Wenn ich die button1Page: oder button2Page: plus deren Konfigurationen entferne, startet das Skript nicht mehr. Ist das ein Bug?

                                          script.js.common.NSPanel_7C14FC_2_9_0: TypeScript compilation failed:export const config: Config = { ^ERROR: Type '{ panelRecvTopic: string; panelSendTopic: string; firstScreensaverEntity: { ScreensaverEntity: string; ScreensaverEntityIcon: string; ScreensaverEntityText: string; ScreensaverEntityUnitText: string; }; ... 16 more ...; subPages: (PageGrid | PageEntities)[]; }' is missing the following properties from type 'Config': button1Page, button2Page
                                          

                                          Nein, kein Bug - sollte ohne Skriptänderungen funktionieren. Im Prinzip drückst du auf den Button und am mqtt.0.SmartHome.NSPanel_1.tele.RESULT sollte {"CustomRecv":"event,button2"} ankommen. Falls nicht, stimmt höchstwahrscheinlich etwas im Tasmota nicht. Tasmota benötigt für diese Aktion nur die Rule - sonst nix.

                                          K Offline
                                          K Offline
                                          Kuckuckmann
                                          schrieb am zuletzt editiert von
                                          #1110

                                          @armilar said in Sonoff NSPanel:

                                          Nein, kein Bug - sollte ohne Skriptänderungen funktionieren. Im Prinzip drückst du auf den Button und am mqtt.0.SmartHome.NSPanel_1.tele.RESULT sollte {"CustomRecv":"event,button2"} ankommen. Falls nicht, stimmt höchstwahrscheinlich etwas im Tasmota nicht. Tasmota benötigt für diese Aktion nur die Rule - sonst nix.

                                          Mensch @Armilar da haben wir doch das Problem gefunden 🙂

                                          Meine Rule ging auf ../cmnd/... und dein Beispiel auf../tele/...
                                          Habs geändert, nun funktioniert der Home Button 🙂

                                          many Thx 🙂

                                          NSPanel Dokumentation im GitHub Wiki:

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

                                          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

                                          377

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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