Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. Sonoff NSPanel

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Sonoff NSPanel

    This topic has been deleted. Only users with topic management privileges can see it.
    • Armilar
      Armilar Most Active Forum Testing @haus-automatisierung last edited by

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

      1 Reply Last reply Reply Quote 1
      • Armilar
        Armilar Most Active Forum Testing @haus-automatisierung last edited by Armilar

        @haus-automatisierung sagte in Sonoff NSPanel:

        Hallo zusammen,

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

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

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

        haus-automatisierung 1 Reply Last reply Reply Quote 0
        • K
          Kuckuckmann @Armilar last edited by

          @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

          Armilar T 2 Replies Last reply Reply Quote 0
          • Armilar
            Armilar Most Active Forum Testing @Kuckuckmann last edited by Armilar

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

            1 Reply Last reply Reply Quote 0
            • T
              TT-Tom @Kuckuckmann last edited by

              @kuckuckmann

              hast du eine URL zum Kalender oder eine Datei ?

              Armilar 1 Reply Last reply Reply Quote 0
              • Armilar
                Armilar Most Active Forum Testing @TT-Tom last edited by

                @tt-tom sagte in Sonoff NSPanel:

                @kuckuckmann

                hast du eine URL zum Kalender oder eine Datei ?

                ist ne URL

                T 1 Reply Last reply Reply Quote 0
                • T
                  TT-Tom @Armilar last edited by TT-Tom

                  @armilar @Kuckuckmann

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

                  Armilar 1 Reply Last reply Reply Quote 0
                  • Armilar
                    Armilar Most Active Forum Testing @TT-Tom last edited by Armilar

                    @tt-tom sagte in Sonoff NSPanel:

                    @armilar @Kuckuckmann

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

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

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

                    Hab mal eine fiktive Adresse in Ostfriesland rausgesucht

                    https://apps.c-trace.de/web.aurich-abfallkalender/(S(gb01nqhuxwx2kms52l5qrc33))/abfallkalender/cal?Gemeinde=Aurich&Ort=Aurich-Stadt&Strasse=Marktplatz&Hausnr=1-2
                    
                    1 Reply Last reply Reply Quote 0
                    • K
                      Kuckuckmann last edited by Kuckuckmann

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

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

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

                      T 1 Reply Last reply Reply Quote 0
                      • K
                        Kuckuckmann @Armilar last edited by Kuckuckmann

                        @armilar said in Sonoff NSPanel:

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

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

                        Hast Du sonst noch eine Idee was ich untersuchen kann?

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

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

                        script.js.common.NSPanel_7C14FC_2_9_0: TypeScript compilation failed:export const config: Config = { ^ERROR: Type '{ panelRecvTopic: string; panelSendTopic: string; firstScreensaverEntity: { ScreensaverEntity: string; ScreensaverEntityIcon: string; ScreensaverEntityText: string; ScreensaverEntityUnitText: string; }; ... 16 more ...; subPages: (PageGrid | PageEntities)[]; }' is missing the following properties from type 'Config': button1Page, button2Page
                        
                        Armilar 1 Reply Last reply Reply Quote 0
                        • haus-automatisierung
                          haus-automatisierung Developer Most Active @Armilar last edited by

                          @armilar Im Expertenmodus kannst Du überall Objekte anlegen.

                          Armilar 1 Reply Last reply Reply Quote 0
                          • T
                            TT-Tom @Kuckuckmann last edited by

                            @Kuckuckmann
                            Hast du Müllnamen im Script angepasst.

                            Änder mal die Zahl auf 0 bei Event2 = subsequenceFromStartLast

                            K 1 Reply Last reply Reply Quote 0
                            • K
                              Kuckuckmann @TT-Tom last edited by

                              @tt-tom said in Sonoff NSPanel:

                              @Kuckuckmann
                              Hast du Müllnamen im Script angepasst.

                              Änder mal die Zahl auf 0 bei Event2 = subsequenceFromStartLast

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

                              T 1 Reply Last reply Reply Quote 0
                              • Armilar
                                Armilar Most Active Forum Testing @Kuckuckmann last edited by

                                @kuckuckmann sagte in Sonoff NSPanel:

                                @armilar said in Sonoff NSPanel:

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

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

                                Hast Du sonst noch eine Idee was ich untersuchen kann?

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

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

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

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

                                K 1 Reply Last reply Reply Quote 0
                                • T
                                  TT-Tom @Kuckuckmann last edited by

                                  @kuckuckmann

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

                                  K 1 Reply Last reply Reply Quote 0
                                  • Armilar
                                    Armilar Most Active Forum Testing @haus-automatisierung last edited by

                                    @haus-automatisierung sagte in Sonoff NSPanel:

                                    @armilar Im Expertenmodus kannst Du überall Objekte anlegen.

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

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

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

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

                                    K 1 Reply Last reply Reply Quote 0
                                    • K
                                      Kuckuckmann @Armilar last edited by

                                      @armilar said in Sonoff NSPanel:

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

                                      Mensch @Armilar da haben wir doch das Problem gefunden 🙂

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

                                      many Thx 🙂

                                      1 Reply Last reply Reply Quote 0
                                      • K
                                        Kuckuckmann @TT-Tom last edited by

                                        @tt-tom said in Sonoff NSPanel:

                                        @kuckuckmann

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

                                        Es kommen ganz viele Warnings und es passiert nichts weiter.

                                        e0915341-2174-498a-8b7a-17892bf32854-image.png

                                        T 1 Reply Last reply Reply Quote 0
                                        • K
                                          Kuckuckmann @Armilar last edited by

                                          @armilar said in Sonoff NSPanel:

                                          Hatte das auch so in Erinnerung:
                                          hier auf cmnd (hier ist das "+" trotz Expertenmodus ausgegraut)

                                          Ich habe die 6.2.18 und bei mir ist das + im EM da und ich kann einen DP anlegen.

                                          Armilar 1 Reply Last reply Reply Quote 0
                                          • Armilar
                                            Armilar Most Active Forum Testing @Kuckuckmann last edited by

                                            @kuckuckmann sagte in Sonoff NSPanel:

                                            @armilar said in Sonoff NSPanel:

                                            Hatte das auch so in Erinnerung:
                                            hier auf cmnd (hier ist das "+" trotz Expertenmodus ausgegraut)

                                            Ich habe die 6.2.18 und bei mir ist das + im EM da und ich kann einen DP anlegen.

                                            Ja, wahrscheinlich ist in meinem schon sehr alten und oft migrierten ioBroker etwas verbogen. Stört mich aber auch aktuell nicht wirklich. Habe den Youtube-Link vom Video (von @haus-automatisierung ) oben in die Anleitung kopiert. Ich denke die meisten werden jetzt mit dieser Anleitung weiterarbeiten. Falls es dann wie bei mir mit dem CustomSend im Expertenmodus nicht funktioniert, gibt es ja eine beschriebene Fallback-Lösung

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            719
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            78
                                            1548
                                            411927
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo