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

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

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

Sonoff NSPanel

Geplant Angeheftet Gesperrt Verschoben Hardware
1.5k Beiträge 78 Kommentatoren 636.8k 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.
  • haus-automatisierungH Offline
    haus-automatisierungH Offline
    haus-automatisierung
    Developer Most Active
    schrieb am zuletzt editiert von
    #1081

    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.

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

    panikP ArmilarA 3 Antworten Letzte Antwort
    1
    • ArmilarA Armilar

      @jens-wozny sagte in Sonoff NSPanel:

      @olliby67 So... Erfolgreich 5x NSPanel geflasht! Vielen Dank nochmals für den Tipp! Das hat wirklich jedes mal beim ersten mal funktioniert! @Armilar könntest du evtl. in deine ansonsten perfekte Anleitung diesen Hinweis aufnehmen? Das würde bestimmt den einen oder anderen viel Probieren sparen! Vielen Dank! Und natürlich auch dank an @Herbiek für den Initialen Hinweis.

      Dank euch macht es mächtig viel Spaß sowas umzusetzen, bin leider nur der stille Nachmacher 🙂 aber ohne euch und ohne die Zeit und den Hirnschmalz den ihr da so rein bringt wäre ich nicht mal in der nähe von dem, wo ich jetzt bin!

      Großen Dank!

      Gruß Jens

      Du meinst den Screenshot vom MQTT Explorer?
      https://forum.iobroker.net/post/813557

      O Offline
      O Offline
      OlliBy67
      schrieb am zuletzt editiert von
      #1082

      @armilar said in Sonoff NSPanel:

      @jens-wozny sagte in Sonoff NSPanel:

      @olliby67 So... Erfolgreich 5x NSPanel geflasht! Vielen Dank nochmals für den Tipp! Das hat wirklich jedes mal beim ersten mal funktioniert! @Armilar könntest du evtl. in deine ansonsten perfekte Anleitung diesen Hinweis aufnehmen? Das würde bestimmt den einen oder anderen viel Probieren sparen! Vielen Dank! Und natürlich auch dank an @Herbiek für den Initialen Hinweis.

      ....................

      Du meinst den Screenshot vom MQTT Explorer?
      https://forum.iobroker.net/post/813557

      Ja genau. 👍

      1 Antwort Letzte Antwort
      0
      • ArmilarA Armilar

        @jens-wozny sagte in Sonoff NSPanel:

        @olliby67 So... Erfolgreich 5x NSPanel geflasht! Vielen Dank nochmals für den Tipp! Das hat wirklich jedes mal beim ersten mal funktioniert! @Armilar könntest du evtl. in deine ansonsten perfekte Anleitung diesen Hinweis aufnehmen? Das würde bestimmt den einen oder anderen viel Probieren sparen! Vielen Dank! Und natürlich auch dank an @Herbiek für den Initialen Hinweis.

        Dank euch macht es mächtig viel Spaß sowas umzusetzen, bin leider nur der stille Nachmacher 🙂 aber ohne euch und ohne die Zeit und den Hirnschmalz den ihr da so rein bringt wäre ich nicht mal in der nähe von dem, wo ich jetzt bin!

        Großen Dank!

        Gruß Jens

        Du meinst den Screenshot vom MQTT Explorer?
        https://forum.iobroker.net/post/813557

        Jens WoznyJ Offline
        Jens WoznyJ Offline
        Jens Wozny
        schrieb am zuletzt editiert von
        #1083

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

          panikP Offline
          panikP Offline
          panik
          schrieb am zuletzt editiert von
          #1084

          @haus-automatisierung Dann schaue ich da mal rein, vielleicht gibt es da Hinweise zum Bafallkalender und CardAlarm denn da Hänge ich und habe hier auch nicht den passenden Hinweis finden können bzw. die nötigen Aliase ?!

          T ArmilarA 2 Antworten Letzte Antwort
          0
          • panikP panik

            @haus-automatisierung Dann schaue ich da mal rein, vielleicht gibt es da Hinweise zum Bafallkalender und CardAlarm denn da Hänge ich und habe hier auch nicht den passenden Hinweis finden können bzw. die nötigen Aliase ?!

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

            @panik

            Für den Abfall gibt es hier ein Beitrag.

            Bei Alarm kann ich dir nicht helfen.

            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
            • K Offline
              K Offline
              Kuckuckmann
              schrieb am zuletzt editiert von Kuckuckmann
              #1086

              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

              NSPanel Dokumentation im GitHub Wiki:

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

              ArmilarA 1 Antwort Letzte Antwort
              0
              • T TT-Tom

                @panik

                Für den Abfall gibt es hier ein Beitrag.

                Bei Alarm kann ich dir nicht helfen.

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

                @tt-tom sagte in Sonoff NSPanel:

                @panik

                Für den Abfall gibt es hier ein Beitrag.

                Bei Alarm kann ich dir nicht helfen.

                o.a. Link von TT-Tom für dynamische Erstellung per ical

                oder statisch (ebenfalls per ical)
                https://forum.iobroker.net/post/846494
                Hier wurde der Adapter "Müllabfuhr-Zeitplan" (trashschedule optional verwendet. Auf diese kann man dann per info-Alias zugreifen.

                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
                • panikP panik

                  @haus-automatisierung Dann schaue ich da mal rein, vielleicht gibt es da Hinweise zum Bafallkalender und CardAlarm denn da Hänge ich und habe hier auch nicht den passenden Hinweis finden können bzw. die nötigen Aliase ?!

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

                  @panik sagte in Sonoff NSPanel:

                  @haus-automatisierung Dann schaue ich da mal rein, vielleicht gibt es da Hinweise zum Bafallkalender und CardAlarm denn da Hänge ich und habe hier auch nicht den passenden Hinweis finden können bzw. die nötigen Aliase ?!

                  Keine Panik 😉

                  Gerne folgende Anleitung befolgen:

                  Folgende 3 Datenpunkte unter 0_userdata anlegen (sollten eigentlich schon da sein):
                  83e440f3-b152-4dbd-a514-c758cecbab06-image.png

                  Dann wie in den Beispiel pageItems
                  var Buero_Alarm: PageAlarm =
                  {
                  "type": "cardAlarm",
                  "heading": "Alarm",
                  "useColor": true,
                  "subPage": false,
                  "parent": undefined,
                  "items": [<PageItem>{ id: "alias.0.NSPanel_1.Alarm" }]
                  };

                  1c075d93-b101-455a-bacb-c306b0e092e7-image.png

                  Alias-Feueralarm verwenden oder wie folgt mit Alias-Manager:
                  c562e1ea-33fd-4a3d-965f-b9f4fcd98993-image.png
                  aae6b780-3d15-4017-a566-00059ba885c3-image.png
                  fe07b7b6-97de-4b92-9937-a837b84f2c00-image.png

                  Bei Aktivierung oder Deaktivierung der Alarmanlage wechselt der Status in "arming" oder "pending". Da die Verarbeitung der Alarmlogik außerhalb des Skriptes stattfindet, müssen die Datenpunkte auch entsprechend durch das externe Skript weitergetaktet werden:

                  Nachfolgend ein kurzes Emulationsskript für die Weiterverarbeitung. Diese Logik sollte auch in dein eigenes externes Alarm-Skript übernommen werden.

                  6d784593-e046-434e-a610-7eb1e8464f9a-image.png

                  <xml xmlns="https://developers.google.com/blockly/xml">
                    <block type="on_ext" id="q!?(x}z/f~TClQnNmbyU" x="113" y="38">
                      <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="]~f@4kO$zmxdg=}/810C">
                          <field name="oid">0_userdata.0.NSPanel.1.Alarm.AlarmState</field>
                        </shadow>
                      </value>
                      <statement name="STATEMENT">
                        <block type="controls_if" id="=_e7bf!`Q]$tg*0U1_2F">
                          <mutation elseif="1"></mutation>
                          <value name="IF0">
                            <block type="logic_compare" id="0_9gv(MmSSJ{2a$j{}(P">
                              <field name="OP">EQ</field>
                              <value name="A">
                                <block type="on_source" id="H$WWrxxX|NaWkT%W]g!Z">
                                  <field name="ATTR">state.val</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="text" id="_TnyjJ5x!)JY~rQ:Opj)">
                                  <field name="TEXT">arming</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO0">
                            <block type="control" id="eO}0c$0s~08Di)?sMM0(">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                              <field name="OID">0_userdata.0.NSPanel.1.Alarm.AlarmState</field>
                              <field name="WITH_DELAY">TRUE</field>
                              <field name="DELAY_MS">1000</field>
                              <field name="UNIT">ms</field>
                              <field name="CLEAR_RUNNING">TRUE</field>
                              <value name="VALUE">
                                <block type="text" id="J(va8~n[/dogNBn!W].I">
                                  <field name="TEXT">armed</field>
                                </block>
                              </value>
                            </block>
                          </statement>
                          <value name="IF1">
                            <block type="logic_compare" id="]p3s+ouB~BJkfd:e)G:(">
                              <field name="OP">EQ</field>
                              <value name="A">
                                <block type="on_source" id=":n]Z,t6+q#-l_hP+MEI@">
                                  <field name="ATTR">state.val</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="text" id="([Ep{MPBu5s.C-lOdHgr">
                                  <field name="TEXT">pending</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO1">
                            <block type="control" id="s77gpG^9o0A)T{f}{#,c">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                              <field name="OID">0_userdata.0.NSPanel.1.Alarm.AlarmState</field>
                              <field name="WITH_DELAY">TRUE</field>
                              <field name="DELAY_MS">1000</field>
                              <field name="UNIT">ms</field>
                              <field name="CLEAR_RUNNING">TRUE</field>
                              <value name="VALUE">
                                <block type="text" id="4DC5l(?mcdlhZ/jIumty">
                                  <field name="TEXT">disarmed</field>
                                </block>
                              </value>
                            </block>
                          </statement>
                        </block>
                      </statement>
                    </block>
                  </xml>
                  

                  Test-Blockly starten

                  Alarm-Code in die cardAlarm eingeben --> Schutz auswählen --> aktiviert
                  Alarm-Code in die cardAlarm eingeben --> Deaktivieren --> deaktiviert

                  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.

                  panikP 1 Antwort Letzte Antwort
                  0
                  • ArmilarA Armilar

                    @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

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

                    @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

                    NSPanel Dokumentation im GitHub Wiki:

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

                    ArmilarA 1 Antwort Letzte Antwort
                    1
                    • ArmilarA Armilar

                      @panik sagte in Sonoff NSPanel:

                      @haus-automatisierung Dann schaue ich da mal rein, vielleicht gibt es da Hinweise zum Bafallkalender und CardAlarm denn da Hänge ich und habe hier auch nicht den passenden Hinweis finden können bzw. die nötigen Aliase ?!

                      Keine Panik 😉

                      Gerne folgende Anleitung befolgen:

                      Folgende 3 Datenpunkte unter 0_userdata anlegen (sollten eigentlich schon da sein):
                      83e440f3-b152-4dbd-a514-c758cecbab06-image.png

                      Dann wie in den Beispiel pageItems
                      var Buero_Alarm: PageAlarm =
                      {
                      "type": "cardAlarm",
                      "heading": "Alarm",
                      "useColor": true,
                      "subPage": false,
                      "parent": undefined,
                      "items": [<PageItem>{ id: "alias.0.NSPanel_1.Alarm" }]
                      };

                      1c075d93-b101-455a-bacb-c306b0e092e7-image.png

                      Alias-Feueralarm verwenden oder wie folgt mit Alias-Manager:
                      c562e1ea-33fd-4a3d-965f-b9f4fcd98993-image.png
                      aae6b780-3d15-4017-a566-00059ba885c3-image.png
                      fe07b7b6-97de-4b92-9937-a837b84f2c00-image.png

                      Bei Aktivierung oder Deaktivierung der Alarmanlage wechselt der Status in "arming" oder "pending". Da die Verarbeitung der Alarmlogik außerhalb des Skriptes stattfindet, müssen die Datenpunkte auch entsprechend durch das externe Skript weitergetaktet werden:

                      Nachfolgend ein kurzes Emulationsskript für die Weiterverarbeitung. Diese Logik sollte auch in dein eigenes externes Alarm-Skript übernommen werden.

                      6d784593-e046-434e-a610-7eb1e8464f9a-image.png

                      <xml xmlns="https://developers.google.com/blockly/xml">
                        <block type="on_ext" id="q!?(x}z/f~TClQnNmbyU" x="113" y="38">
                          <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="]~f@4kO$zmxdg=}/810C">
                              <field name="oid">0_userdata.0.NSPanel.1.Alarm.AlarmState</field>
                            </shadow>
                          </value>
                          <statement name="STATEMENT">
                            <block type="controls_if" id="=_e7bf!`Q]$tg*0U1_2F">
                              <mutation elseif="1"></mutation>
                              <value name="IF0">
                                <block type="logic_compare" id="0_9gv(MmSSJ{2a$j{}(P">
                                  <field name="OP">EQ</field>
                                  <value name="A">
                                    <block type="on_source" id="H$WWrxxX|NaWkT%W]g!Z">
                                      <field name="ATTR">state.val</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="text" id="_TnyjJ5x!)JY~rQ:Opj)">
                                      <field name="TEXT">arming</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <statement name="DO0">
                                <block type="control" id="eO}0c$0s~08Di)?sMM0(">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                  <field name="OID">0_userdata.0.NSPanel.1.Alarm.AlarmState</field>
                                  <field name="WITH_DELAY">TRUE</field>
                                  <field name="DELAY_MS">1000</field>
                                  <field name="UNIT">ms</field>
                                  <field name="CLEAR_RUNNING">TRUE</field>
                                  <value name="VALUE">
                                    <block type="text" id="J(va8~n[/dogNBn!W].I">
                                      <field name="TEXT">armed</field>
                                    </block>
                                  </value>
                                </block>
                              </statement>
                              <value name="IF1">
                                <block type="logic_compare" id="]p3s+ouB~BJkfd:e)G:(">
                                  <field name="OP">EQ</field>
                                  <value name="A">
                                    <block type="on_source" id=":n]Z,t6+q#-l_hP+MEI@">
                                      <field name="ATTR">state.val</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="text" id="([Ep{MPBu5s.C-lOdHgr">
                                      <field name="TEXT">pending</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <statement name="DO1">
                                <block type="control" id="s77gpG^9o0A)T{f}{#,c">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                  <field name="OID">0_userdata.0.NSPanel.1.Alarm.AlarmState</field>
                                  <field name="WITH_DELAY">TRUE</field>
                                  <field name="DELAY_MS">1000</field>
                                  <field name="UNIT">ms</field>
                                  <field name="CLEAR_RUNNING">TRUE</field>
                                  <value name="VALUE">
                                    <block type="text" id="4DC5l(?mcdlhZ/jIumty">
                                      <field name="TEXT">disarmed</field>
                                    </block>
                                  </value>
                                </block>
                              </statement>
                            </block>
                          </statement>
                        </block>
                      </xml>
                      

                      Test-Blockly starten

                      Alarm-Code in die cardAlarm eingeben --> Schutz auswählen --> aktiviert
                      Alarm-Code in die cardAlarm eingeben --> Deaktivieren --> deaktiviert

                      panikP Offline
                      panikP Offline
                      panik
                      schrieb am zuletzt editiert von
                      #1090

                      @armilar Wie geil! Da werde ich mich nochmal hinsetzen und das Ausprobieren 🙂
                      Vielen Dank!

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          615

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          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