Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

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

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    199

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

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

SONOFF NSPanel mit Lovelace UI

SONOFF NSPanel mit Lovelace UI

Scheduled Pinned Locked Moved Hardware
lovelace uinspanelsonoff
7.7k Posts 271 Posters 6.7m Views 253 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ArmilarA Armilar

    @mercyful-0

    Die Beschreibung für die Originalsoftware verfolgen wir hier nicht...

    Alles für Lovelace UI mit Tasmota...

    Ich mache später mal ein Beispiel (gerade etwas viel um die Ohren)... Habe mir aber das Blockly angesehen... Du schaltest im Trigger einen Datenpunkt den du Triggerst. Deshalb hast du einen Trigger-Loop... und deshalb schaltet der auch gleich wieder in den anderen Modus.

    M Offline
    M Offline
    Mercyful 0
    wrote on last edited by
    #2241

    @armilar said in SONOFF NSPanel mit Lovelace UI:
    Danke für die flotte Antwort!

    @mercyful-0

    Die Beschreibung für die Originalsoftware verfolgen wir hier nicht...

    Daher meine Frage 🙂

    Alles für Lovelace UI mit Tasmota...

    Ich mache später mal ein Beispiel (gerade etwas viel um die Ohren)... Habe mir aber das Blockly angesehen... Du schaltest im Trigger einen Datenpunkt den du Triggerst. Deshalb hast du einen Trigger-Loop... und deshalb schaltet der auch gleich wieder in den anderen Modus.

    Das wäre toll wenn ich da ein Beispiel hätte auf dem ich dann aufbauen kann. Ich lese mich grad in MQTT ein da dieses noch Neuland für mich ist. Ich bin gespannt.
    Vielen Dank!
    Liebe Grüße
    Mercy

    T 1 Reply Last reply
    0
    • M Mercyful 0

      @armilar said in SONOFF NSPanel mit Lovelace UI:
      Danke für die flotte Antwort!

      @mercyful-0

      Die Beschreibung für die Originalsoftware verfolgen wir hier nicht...

      Daher meine Frage 🙂

      Alles für Lovelace UI mit Tasmota...

      Ich mache später mal ein Beispiel (gerade etwas viel um die Ohren)... Habe mir aber das Blockly angesehen... Du schaltest im Trigger einen Datenpunkt den du Triggerst. Deshalb hast du einen Trigger-Loop... und deshalb schaltet der auch gleich wieder in den anderen Modus.

      Das wäre toll wenn ich da ein Beispiel hätte auf dem ich dann aufbauen kann. Ich lese mich grad in MQTT ein da dieses noch Neuland für mich ist. Ich bin gespannt.
      Vielen Dank!
      Liebe Grüße
      Mercy

      T Offline
      T Offline
      Tom_W
      wrote on last edited by Tom_W
      #2242

      @mercyful-0

      Hier mal mein Blockly, welches genau das macht was du erreichen willst. Ich mache es zwar nicht wie du mit dem tastet (da dort meine Kids des öfteren hindrücken würden und ich nicht merke dass die Heizung aus ist) sondern mit einem Button auf der Thermopage, aber vom Prinzip her müsste es verständlich werden. Du brauchst für das "Ein / Aus" der Heizung einen extra Datenpunkt den du schaltest. Der wird dann in deinem Skript mit eingebaut.

      <xml xmlns="https://developers.google.com/blockly/xml">
        <block type="on_ext" id="R3`G5gEHw1h%w=7y$o(n" x="237" y="-237">
          <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="~BZD7sur;u._a|Pe@ezj">
              <field name="oid">0_userdata.0.NSPanel.1.Sensor.ANALOG.Temperature</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="update" id="b9iO%[W$*cf5Y5!4#ifD">
              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
              <field name="OID">0_userdata.0.NSPanel.1.Sensor.ANALOG.Temperatur_korrigiert</field>
              <field name="WITH_DELAY">FALSE</field>
              <value name="VALUE">
                <block type="math_arithmetic" id="a@5L2MON#y;j[=5SvJEW">
                  <field name="OP">ADD</field>
                  <value name="A">
                    <shadow type="math_number" id="sO3+V_/5pzJOZpxJ_mfB">
                      <field name="NUM">1</field>
                    </shadow>
                    <block type="on_source" id="HY+}gnUf`azx0y/^+3zQ">
                      <field name="ATTR">state.val</field>
                    </block>
                  </value>
                  <value name="B">
                    <shadow type="math_number" id="x.5z5MCi;-z@3OA[f8uy">
                      <field name="NUM">1</field>
                    </shadow>
                    <block type="get_value" id="i^C;5k|)0SJ^mM(9-2o(">
                      <field name="ATTR">val</field>
                      <field name="OID">0_userdata.0.NSPanel.1.Sensor.ANALOG.Offset</field>
                    </block>
                  </value>
                </block>
              </value>
            </block>
          </statement>
          <next>
            <block type="on_ext" id="vov=F]}HrWCo~O`PU9zn">
              <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
              <field name="CONDITION">ne</field>
              <field name="ACK_CONDITION"></field>
              <value name="OID0">
                <shadow type="field_oid" id="%3sI!*_$Lw6arDrZ/16Y">
                  <field name="oid">0_userdata.0.NSPanel.1.Sensor.ANALOG.Temperatur_korrigiert</field>
                </shadow>
              </value>
              <value name="OID1">
                <shadow type="field_oid" id="90cj(gOyTRyd9AKfeN?,">
                  <field name="oid">alias.0.Wohnzimmer.Temperatur Wohnzimmer</field>
                </shadow>
              </value>
              <statement name="STATEMENT">
                <block type="controls_if" id="ZO`zh=-~P8B`08DS-f)I">
                  <mutation else="1"></mutation>
                  <value name="IF0">
                    <block type="logic_compare" id="W3-N*Cy!ow*1G-_D.3lw">
                      <field name="OP">EQ</field>
                      <value name="A">
                        <block type="get_value" id="ATLuk36g7PJ`IHmeiHot">
                          <field name="ATTR">val</field>
                          <field name="OID">alias.0.Wohnzimmer.Erreichbar Multisensor Wohnzimmer</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_boolean" id="~FtTgc]n=}~t0QCUctv:">
                          <field name="BOOL">TRUE</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="update" id="=B3iYMIn.r0Z~s3hhA!U">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                      <field name="OID">0_userdata.0.NSPanel.1.Sensor.ANALOG.Verwendete_Temperatur</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="get_value" id="^G#)Zwla;,;rK#=,Chy;">
                          <field name="ATTR">val</field>
                          <field name="OID">alias.0.Wohnzimmer.Temperatur Wohnzimmer</field>
                        </block>
                      </value>
                    </block>
                  </statement>
                  <statement name="ELSE">
                    <block type="update" id="di]o,@l]/B85:LCotX5n">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                      <field name="OID">0_userdata.0.NSPanel.1.Sensor.ANALOG.Verwendete_Temperatur</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="get_value" id="Bs#[5z|n_FZE:#}hZX?0">
                          <field name="ATTR">val</field>
                          <field name="OID">0_userdata.0.NSPanel.1.Sensor.ANALOG.Temperatur_korrigiert</field>
                        </block>
                      </value>
                    </block>
                  </statement>
                </block>
              </statement>
              <next>
                <block type="on_ext" id="6Sno1Vs}R0[!`JG3}p[$">
                  <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="aV`/[rsPL5L`!9z4kPb:">
                      <field name="oid">0_userdata.0.NSPanel.1.Sensor.ANALOG.Verwendete_Temperatur</field>
                    </shadow>
                  </value>
                  <statement name="STATEMENT">
                    <block type="controls_if" id="1.j]e]wPFC=N)(y0-%Ys">
                      <value name="IF0">
                        <block type="logic_compare" id="%?w}jp:v/eRll^+t?J;=">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="get_value" id="c*mP?(~9tqo@O^`xiCOt">
                              <field name="ATTR">val</field>
                              <field name="OID">0_userdata.0.NSPanel.1.Eigene.Modi.AUTOMATIC</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_boolean" id="Q,)j`#qI`+6l=S~7Yzrq">
                              <field name="BOOL">TRUE</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <statement name="DO0">
                        <block type="controls_if" id="B.P-%R26%%^Pa~IIhB,B">
                          <mutation else="1"></mutation>
                          <value name="IF0">
                            <block type="logic_compare" id="tCUH]p|~R2Gij6{]GNKE">
                              <field name="OP">LTE</field>
                              <value name="A">
                                <block type="on_source" id="pv~v_CvM(.OUQmab#}:R">
                                  <field name="ATTR">state.val</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="get_value" id="5^Z-ALUStC(BNBt3TDz^">
                                  <field name="ATTR">val</field>
                                  <field name="OID">0_userdata.0.NSPanel.1.Eigene.SolltemperaturWohnzimmer</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO0">
                            <block type="control" id="xvzY43Ar+47WgqU-)hYc">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                              <field name="OID">mqtt.0.cmnd.NSPanel_Wohnzimmer.POWER</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="math_number" id="w8cS!@es].v%.@9WXf/A">
                                  <field name="NUM">1</field>
                                </block>
                              </value>
                            </block>
                          </statement>
                          <statement name="ELSE">
                            <block type="control" id="=Dms)Tmk%.,@9.`l}]Q/">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                              <field name="OID">mqtt.0.cmnd.NSPanel_Wohnzimmer.POWER</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="math_number" id="C7W-(1hQ*HB@$pg8*j-6">
                                  <field name="NUM">0</field>
                                </block>
                              </value>
                            </block>
                          </statement>
                        </block>
                      </statement>
                    </block>
                  </statement>
                  <next>
                    <block type="on_ext" id="t7m6:/x+}f$5Acz=%)7;">
                      <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="%b@$1#|*~)IA_6uEwkbw">
                          <field name="oid">0_userdata.0.NSPanel.1.Eigene.Modi.AUTOMATIC</field>
                        </shadow>
                      </value>
                      <statement name="STATEMENT">
                        <block type="controls_if" id="HXNUdBtmw*yQMd%@[]90">
                          <value name="IF0">
                            <block type="logic_compare" id="1Lj4jX%eS;^`Egu`b7nw">
                              <field name="OP">EQ</field>
                              <value name="A">
                                <block type="on_source" id="p!k5,473^w!`(WGbgEV5">
                                  <field name="ATTR">state.val</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="logic_boolean" id="CS~es[me[c1w[y.r=V.d">
                                  <field name="BOOL">FALSE</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO0">
                            <block type="control" id=")$ta3c^m=WOaRwdzISOi">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                              <field name="OID">mqtt.0.cmnd.NSPanel_Wohnzimmer.POWER</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="math_number" id="Tb#-d/Xh{du~QP#1n,Ye">
                                  <field name="NUM">0</field>
                                </block>
                              </value>
                            </block>
                          </statement>
                        </block>
                      </statement>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </next>
        </block>
      </xml>
      
      M 1 Reply Last reply
      1
      • T Tom_W

        @mercyful-0

        Hier mal mein Blockly, welches genau das macht was du erreichen willst. Ich mache es zwar nicht wie du mit dem tastet (da dort meine Kids des öfteren hindrücken würden und ich nicht merke dass die Heizung aus ist) sondern mit einem Button auf der Thermopage, aber vom Prinzip her müsste es verständlich werden. Du brauchst für das "Ein / Aus" der Heizung einen extra Datenpunkt den du schaltest. Der wird dann in deinem Skript mit eingebaut.

        <xml xmlns="https://developers.google.com/blockly/xml">
          <block type="on_ext" id="R3`G5gEHw1h%w=7y$o(n" x="237" y="-237">
            <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="~BZD7sur;u._a|Pe@ezj">
                <field name="oid">0_userdata.0.NSPanel.1.Sensor.ANALOG.Temperature</field>
              </shadow>
            </value>
            <statement name="STATEMENT">
              <block type="update" id="b9iO%[W$*cf5Y5!4#ifD">
                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                <field name="OID">0_userdata.0.NSPanel.1.Sensor.ANALOG.Temperatur_korrigiert</field>
                <field name="WITH_DELAY">FALSE</field>
                <value name="VALUE">
                  <block type="math_arithmetic" id="a@5L2MON#y;j[=5SvJEW">
                    <field name="OP">ADD</field>
                    <value name="A">
                      <shadow type="math_number" id="sO3+V_/5pzJOZpxJ_mfB">
                        <field name="NUM">1</field>
                      </shadow>
                      <block type="on_source" id="HY+}gnUf`azx0y/^+3zQ">
                        <field name="ATTR">state.val</field>
                      </block>
                    </value>
                    <value name="B">
                      <shadow type="math_number" id="x.5z5MCi;-z@3OA[f8uy">
                        <field name="NUM">1</field>
                      </shadow>
                      <block type="get_value" id="i^C;5k|)0SJ^mM(9-2o(">
                        <field name="ATTR">val</field>
                        <field name="OID">0_userdata.0.NSPanel.1.Sensor.ANALOG.Offset</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </statement>
            <next>
              <block type="on_ext" id="vov=F]}HrWCo~O`PU9zn">
                <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                <field name="CONDITION">ne</field>
                <field name="ACK_CONDITION"></field>
                <value name="OID0">
                  <shadow type="field_oid" id="%3sI!*_$Lw6arDrZ/16Y">
                    <field name="oid">0_userdata.0.NSPanel.1.Sensor.ANALOG.Temperatur_korrigiert</field>
                  </shadow>
                </value>
                <value name="OID1">
                  <shadow type="field_oid" id="90cj(gOyTRyd9AKfeN?,">
                    <field name="oid">alias.0.Wohnzimmer.Temperatur Wohnzimmer</field>
                  </shadow>
                </value>
                <statement name="STATEMENT">
                  <block type="controls_if" id="ZO`zh=-~P8B`08DS-f)I">
                    <mutation else="1"></mutation>
                    <value name="IF0">
                      <block type="logic_compare" id="W3-N*Cy!ow*1G-_D.3lw">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="ATLuk36g7PJ`IHmeiHot">
                            <field name="ATTR">val</field>
                            <field name="OID">alias.0.Wohnzimmer.Erreichbar Multisensor Wohnzimmer</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_boolean" id="~FtTgc]n=}~t0QCUctv:">
                            <field name="BOOL">TRUE</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="update" id="=B3iYMIn.r0Z~s3hhA!U">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">0_userdata.0.NSPanel.1.Sensor.ANALOG.Verwendete_Temperatur</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="get_value" id="^G#)Zwla;,;rK#=,Chy;">
                            <field name="ATTR">val</field>
                            <field name="OID">alias.0.Wohnzimmer.Temperatur Wohnzimmer</field>
                          </block>
                        </value>
                      </block>
                    </statement>
                    <statement name="ELSE">
                      <block type="update" id="di]o,@l]/B85:LCotX5n">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">0_userdata.0.NSPanel.1.Sensor.ANALOG.Verwendete_Temperatur</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="get_value" id="Bs#[5z|n_FZE:#}hZX?0">
                            <field name="ATTR">val</field>
                            <field name="OID">0_userdata.0.NSPanel.1.Sensor.ANALOG.Temperatur_korrigiert</field>
                          </block>
                        </value>
                      </block>
                    </statement>
                  </block>
                </statement>
                <next>
                  <block type="on_ext" id="6Sno1Vs}R0[!`JG3}p[$">
                    <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="aV`/[rsPL5L`!9z4kPb:">
                        <field name="oid">0_userdata.0.NSPanel.1.Sensor.ANALOG.Verwendete_Temperatur</field>
                      </shadow>
                    </value>
                    <statement name="STATEMENT">
                      <block type="controls_if" id="1.j]e]wPFC=N)(y0-%Ys">
                        <value name="IF0">
                          <block type="logic_compare" id="%?w}jp:v/eRll^+t?J;=">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="get_value" id="c*mP?(~9tqo@O^`xiCOt">
                                <field name="ATTR">val</field>
                                <field name="OID">0_userdata.0.NSPanel.1.Eigene.Modi.AUTOMATIC</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="logic_boolean" id="Q,)j`#qI`+6l=S~7Yzrq">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <statement name="DO0">
                          <block type="controls_if" id="B.P-%R26%%^Pa~IIhB,B">
                            <mutation else="1"></mutation>
                            <value name="IF0">
                              <block type="logic_compare" id="tCUH]p|~R2Gij6{]GNKE">
                                <field name="OP">LTE</field>
                                <value name="A">
                                  <block type="on_source" id="pv~v_CvM(.OUQmab#}:R">
                                    <field name="ATTR">state.val</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <block type="get_value" id="5^Z-ALUStC(BNBt3TDz^">
                                    <field name="ATTR">val</field>
                                    <field name="OID">0_userdata.0.NSPanel.1.Eigene.SolltemperaturWohnzimmer</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <statement name="DO0">
                              <block type="control" id="xvzY43Ar+47WgqU-)hYc">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                <field name="OID">mqtt.0.cmnd.NSPanel_Wohnzimmer.POWER</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block type="math_number" id="w8cS!@es].v%.@9WXf/A">
                                    <field name="NUM">1</field>
                                  </block>
                                </value>
                              </block>
                            </statement>
                            <statement name="ELSE">
                              <block type="control" id="=Dms)Tmk%.,@9.`l}]Q/">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                <field name="OID">mqtt.0.cmnd.NSPanel_Wohnzimmer.POWER</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block type="math_number" id="C7W-(1hQ*HB@$pg8*j-6">
                                    <field name="NUM">0</field>
                                  </block>
                                </value>
                              </block>
                            </statement>
                          </block>
                        </statement>
                      </block>
                    </statement>
                    <next>
                      <block type="on_ext" id="t7m6:/x+}f$5Acz=%)7;">
                        <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="%b@$1#|*~)IA_6uEwkbw">
                            <field name="oid">0_userdata.0.NSPanel.1.Eigene.Modi.AUTOMATIC</field>
                          </shadow>
                        </value>
                        <statement name="STATEMENT">
                          <block type="controls_if" id="HXNUdBtmw*yQMd%@[]90">
                            <value name="IF0">
                              <block type="logic_compare" id="1Lj4jX%eS;^`Egu`b7nw">
                                <field name="OP">EQ</field>
                                <value name="A">
                                  <block type="on_source" id="p!k5,473^w!`(WGbgEV5">
                                    <field name="ATTR">state.val</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <block type="logic_boolean" id="CS~es[me[c1w[y.r=V.d">
                                    <field name="BOOL">FALSE</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <statement name="DO0">
                              <block type="control" id=")$ta3c^m=WOaRwdzISOi">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                <field name="OID">mqtt.0.cmnd.NSPanel_Wohnzimmer.POWER</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block type="math_number" id="Tb#-d/Xh{du~QP#1n,Ye">
                                    <field name="NUM">0</field>
                                  </block>
                                </value>
                              </block>
                            </statement>
                          </block>
                        </statement>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </xml>
        
        M Offline
        M Offline
        Mercyful 0
        wrote on last edited by
        #2243

        @tom_w said in SONOFF NSPanel mit Lovelace UI:

        @mercyful-0

        Hier mal mein Blockly, welches genau das macht was du erreichen willst. Ich mache es zwar nicht wie du mit dem tastet (da dort meine Kids des öfteren hindrücken würden und ich nicht merke dass die Heizung aus ist) sondern mit einem Button auf der Thermopage, aber vom Prinzip her müsste es verständlich werden. Du brauchst für das "Ein / Aus" der Heizung einen extra Datenpunkt den du schaltest. Der wird dann in deinem Skript mit eingebaut.

        Vielen Dank!
        Leider kann ich das nicht importieren, muss ich das noch manuell anpassen?
        Danke und liebe Grüße
        Mercy

        T 1 Reply Last reply
        0
        • M Mercyful 0

          @tom_w said in SONOFF NSPanel mit Lovelace UI:

          @mercyful-0

          Hier mal mein Blockly, welches genau das macht was du erreichen willst. Ich mache es zwar nicht wie du mit dem tastet (da dort meine Kids des öfteren hindrücken würden und ich nicht merke dass die Heizung aus ist) sondern mit einem Button auf der Thermopage, aber vom Prinzip her müsste es verständlich werden. Du brauchst für das "Ein / Aus" der Heizung einen extra Datenpunkt den du schaltest. Der wird dann in deinem Skript mit eingebaut.

          Vielen Dank!
          Leider kann ich das nicht importieren, muss ich das noch manuell anpassen?
          Danke und liebe Grüße
          Mercy

          T Offline
          T Offline
          Tom_W
          wrote on last edited by
          #2244

          @mercyful-0

          Ich habs nochmal neu rein kopiert, da lief bei copy & paste was schief.

          M 1 Reply Last reply
          0
          • R Offline
            R Offline
            ronny130286
            wrote on last edited by ronny130286
            #2245

            @tom_w @Mercyful-0

            ich habe hier mal noch ein TS für die Reglung:

            const Thermo_Path = '0_userdata.0.Thermostat.Raum1.';           //Thermo Pfad der je nach raum neu angelegt wird
            const NSPanel_Path = '0_userdata.0.NSPanel.2.'                  //NSPanel Pfad
            const TargetTemp = Thermo_Path + 'TargetTemp';                  //Datenpunkt für Zieltemperatur
            const OffsetTemp = Thermo_Path + 'OffsetTemp';                  //Offset Temperatur, beim erstellen wir 1°C eingestellt
            const Relay = NSPanel_Path + 'Relay.1' ;                        //Relay was geschalten werden soll, NSPanel_Path + 'Relay.1' oder NSPanel_Path + 'Relay.2' sein oder extra Datenpunkt Thermo_Path + 'Relay'
            const RoomTemp = NSPanel_Path + 'Sensor.ANALOG.Temperature';    //Raumtemperaturwert, kann NSPanel_Path + 'Sensor.ANALOG.Temperature' oder ein ander Datenpunkt sein
            const DEBUG = false;
            
            
            async function create_Stats(){
                if(existsObject(TargetTemp) == false){
                     await createStateAsync(TargetTemp, 0, <iobJS.StateCommon>{ type: 'number', 'unit': '°C' });
                }
                if(existsObject(OffsetTemp) == false){
                     await createStateAsync(OffsetTemp, 1, <iobJS.StateCommon>{ type: 'number', 'unit': '°C' });
                }
                if(existsObject(Relay) == false){
                     await createStateAsync(Relay, false, { type: 'boolean'});
                }
            }
            create_Stats();
            
            on({id: RoomTemp, change: "ne"}, async function (obj) {
                try {
            
                    if((getState(TargetTemp).val - getState(OffsetTemp).val) >= getState(RoomTemp).val){
                        setStateAsync(Relay,true);
                        if(DEBUG){
                            console.log("Relay on")
                        }
                    }else if((getState(TargetTemp).val + getState(OffsetTemp).val) <= getState(RoomTemp).val){
                        setStateAsync(Relay,false);
                        if(DEBUG){
                            console.log("Relay off")
                        }
                    }else{
                        if(DEBUG){
                            console.log("Relay do nothing")
                        }
                    }
                } catch (err) { 
                    console.warn('Error to set Relay ' + err.message); 
                }
            });
            

            Hinweis: wenn du die Tasmota Sensor Daten nehmen willst musst du wissen das Standard nur alle 5min die Sensordaten übermittelt werden, man kann das mit TelePeriod über die Tasmota-Konsole einstellen (minimal 10Sek)

            1 Reply Last reply
            1
            • M Offline
              M Offline
              Mercyful 0
              wrote on last edited by
              #2246

              @ronny130286
              Vielen Dank! Das Script läuft und macht was es soll.
              Liebe Grüße
              Mercy

              1 Reply Last reply
              0
              • T Tom_W

                @mercyful-0

                Ich habs nochmal neu rein kopiert, da lief bei copy & paste was schief.

                M Offline
                M Offline
                Mercyful 0
                wrote on last edited by
                #2247

                @tom_w said in SONOFF NSPanel mit Lovelace UI:

                @mercyful-0

                Ich habs nochmal neu rein kopiert, da lief bei copy & paste was schief.

                Ich konnte es importieren.
                Ich habe Fragen zu den Datenpunkten:
                Welchen Typ hat 'alias.0.Wohnzimmer.Temperatur Wohnzimmer' und womit wird dieser verbunden?
                Woher bekommst Du die Informationen von 'Wert' (beim ersten aktualisiere 0_userdata...)?
                Der Datenpunkt 'alias.0.Wohnzimmer.Erreichbar Multisensor Wohnzimmer' ist sicherlich ein Boolscher der prüft ob ein anderer Sensor erreichbar ist?
                Was ist das für ein Datenpunkt '0_userdata.0.NSPanel.1.Eigene.Modi.AUTOMATIC' und welche Werte kann dieser annehmen?
                Danke für die Info!
                Liebe Grüße
                Mercy

                T D 2 Replies Last reply
                0
                • ArmilarA Offline
                  ArmilarA Offline
                  Armilar
                  Most Active Forum Testing
                  wrote on last edited by
                  #2248

                  @mercyful-0

                  https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#thermostat---cardthermo---channel-thermostat

                  Ihr seid ja schon fertig. Tolle Skripte...

                  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 Reply Last reply
                  0
                  • M Mercyful 0

                    @tom_w said in SONOFF NSPanel mit Lovelace UI:

                    @mercyful-0

                    Ich habs nochmal neu rein kopiert, da lief bei copy & paste was schief.

                    Ich konnte es importieren.
                    Ich habe Fragen zu den Datenpunkten:
                    Welchen Typ hat 'alias.0.Wohnzimmer.Temperatur Wohnzimmer' und womit wird dieser verbunden?
                    Woher bekommst Du die Informationen von 'Wert' (beim ersten aktualisiere 0_userdata...)?
                    Der Datenpunkt 'alias.0.Wohnzimmer.Erreichbar Multisensor Wohnzimmer' ist sicherlich ein Boolscher der prüft ob ein anderer Sensor erreichbar ist?
                    Was ist das für ein Datenpunkt '0_userdata.0.NSPanel.1.Eigene.Modi.AUTOMATIC' und welche Werte kann dieser annehmen?
                    Danke für die Info!
                    Liebe Grüße
                    Mercy

                    T Offline
                    T Offline
                    Tom_W
                    wrote on last edited by Tom_W
                    #2249

                    @mercyful-0 sagte in SONOFF NSPanel mit Lovelace UI:

                    Welchen Typ hat 'alias.0.Wohnzimmer.Temperatur Wohnzimmer' und womit wird dieser verbunden?

                    Temperatur Wohnzimmer ist die Temperatur eines Batteriebetriebenen Temperatursensors

                    Woher bekommst Du die Informationen von 'Wert' (beim ersten aktualisiere 0_userdata...)?

                    In 'Wert' steht ja der Wert des Triggerereignisses. Der erste Trigger macht nichts anderes, als wenn sich der interne Temperaturwert des NS Panel ändert uu diesem 'Wert' ein Offset zu addieren und in einen neuen Wert zu schreiben.
                    Das mache ich, da der interne Temperaturfühler bei mir einfach zu weit vom tatsächlichen entfernt ist.

                    Der Datenpunkt 'alias.0.Wohnzimmer.Erreichbar Multisensor Wohnzimmer' ist sicherlich ein Boolscher der prüft ob ein anderer Sensor erreichbar ist?

                    Richtig, das ist ein boolscher Wert der genau das von dir angegebene macht. Ist der Sensor (wieder mein Batteriebetriebener Temperatursensor) erreichbar, schreibe ich diesen Wert in einen Datenpunkt, ist er nicht erreichbar, dann den errechneten des NSPanel Sensors.
                    Das alles macht der zweite Triggerblock

                    Was ist das für ein Datenpunkt '0_userdata.0.NSPanel.1.Eigene.Modi.AUTOMATIC' und welche Werte kann dieser annehmen?

                    Das ist ein boolscher Wert, ist der false ist die Heizung aus (4. Triggerblock) oder true, dann ist die Heizungsregelung aktiv.
                    Also genau der Wert den du mit deiner Hardwaretaste umschalten musst.

                    Gruß

                    1 Reply Last reply
                    0
                    • M Mercyful 0

                      @tom_w said in SONOFF NSPanel mit Lovelace UI:

                      @mercyful-0

                      Ich habs nochmal neu rein kopiert, da lief bei copy & paste was schief.

                      Ich konnte es importieren.
                      Ich habe Fragen zu den Datenpunkten:
                      Welchen Typ hat 'alias.0.Wohnzimmer.Temperatur Wohnzimmer' und womit wird dieser verbunden?
                      Woher bekommst Du die Informationen von 'Wert' (beim ersten aktualisiere 0_userdata...)?
                      Der Datenpunkt 'alias.0.Wohnzimmer.Erreichbar Multisensor Wohnzimmer' ist sicherlich ein Boolscher der prüft ob ein anderer Sensor erreichbar ist?
                      Was ist das für ein Datenpunkt '0_userdata.0.NSPanel.1.Eigene.Modi.AUTOMATIC' und welche Werte kann dieser annehmen?
                      Danke für die Info!
                      Liebe Grüße
                      Mercy

                      D Offline
                      D Offline
                      DaPeace
                      wrote on last edited by
                      #2250

                      @mercyful-0 es gibt aber auch einen heat-manager-adapter der genau diese Regelung macht und dabei sogar alle anderen Annehmlichkeiten einer modernen Heizungssteuerung hat (Heizperioden/Partymodus/Urlaubsmodus). Dann braucht es nicht zwingend ein Blocky.

                      R 1 Reply Last reply
                      0
                      • D DaPeace

                        @mercyful-0 es gibt aber auch einen heat-manager-adapter der genau diese Regelung macht und dabei sogar alle anderen Annehmlichkeiten einer modernen Heizungssteuerung hat (Heizperioden/Partymodus/Urlaubsmodus). Dann braucht es nicht zwingend ein Blocky.

                        R Offline
                        R Offline
                        ronny130286
                        wrote on last edited by
                        #2251

                        @dapeace

                        Den Adapter hatte ich mir damals auch angesehen, ich fand ihn aber für ne FBH mit Erdwärmepumpe, einfach zu umfangreich.
                        Da hilft auch das einfache Skript, weil viele Sachen die der Adapter mitbringt nicht benötigt werden.
                        Bspw. die FBH ist viel zu träge um auf ein offenes Fenster zu reagieren, Party/Urlaubsmodus wir in der Heizung eingestellt => Heizungsadapter (Nibe, Wolf etc.)

                        1 Reply Last reply
                        0
                        • O Offline
                          O Offline
                          Oliver Feld
                          wrote on last edited by
                          #2252

                          Hallo,

                          brauche mal eure Hilfe:
                          Ich bin Anfänger und habe es endlich geschafft das NS Panel einzurichten.

                          Bei dem Screensaver habe ich ein kleine Problem:
                          Bei der Windgeschwindigkeit wird mir der Wert in m/s umgerechnet angezeigt. Auch wenn im Skript km/h ausgewählt ist. Vom accuwether Adapter wird in den Objekten der Wert in km/h angezeigt.
                          Hat Jemand ein Tip für mich wie der Wert in Km/h angezeigt wird?

                          T 1 Reply Last reply
                          0
                          • O Oliver Feld

                            Hallo,

                            brauche mal eure Hilfe:
                            Ich bin Anfänger und habe es endlich geschafft das NS Panel einzurichten.

                            Bei dem Screensaver habe ich ein kleine Problem:
                            Bei der Windgeschwindigkeit wird mir der Wert in m/s umgerechnet angezeigt. Auch wenn im Skript km/h ausgewählt ist. Vom accuwether Adapter wird in den Objekten der Wert in km/h angezeigt.
                            Hat Jemand ein Tip für mich wie der Wert in Km/h angezeigt wird?

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

                            @oliver-feld

                            secondScreensaverEntity:  { ScreensaverEntity: 'accuweather.0.Current.WindSpeed', 
                                                            ScreensaverEntityFactor: 1,                       //New
                                                            ScreensaverEntityDecimalPlaces: 1,                          //New Anzahl Kommastellen
                                                            ScreensaverEntityIcon: 'weather-windy', 
                                                            ScreensaverEntityText: "Wind", 
                                                            ScreensaverEntityUnitText: 'km/h', 
                                                            ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 35} // val_max anpassen, ab wann Icon Rot sein soll
                                                          },
                            

                            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

                            R 1 Reply Last reply
                            0
                            • T TT-Tom

                              @oliver-feld

                              secondScreensaverEntity:  { ScreensaverEntity: 'accuweather.0.Current.WindSpeed', 
                                                              ScreensaverEntityFactor: 1,                       //New
                                                              ScreensaverEntityDecimalPlaces: 1,                          //New Anzahl Kommastellen
                                                              ScreensaverEntityIcon: 'weather-windy', 
                                                              ScreensaverEntityText: "Wind", 
                                                              ScreensaverEntityUnitText: 'km/h', 
                                                              ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 35} // val_max anpassen, ab wann Icon Rot sein soll
                                                            },
                              
                              R Offline
                              R Offline
                              ronny130286
                              wrote on last edited by ronny130286
                              #2254

                              @TT-Tom @oliver-feld

                              du musst dann aber auch die min max anpassen, weil mit max 35km/h kann man wenig anfangen 😉

                              ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 35}
                              

                              @Armilar
                              Heute wurde Tasmota 1.2.4.0 released => das Panel zeigt die Popupmessage auch an aber drückt man auf ja wird wird das update nicht getriggert auch im Debugmodus sieht man das die Funktion für das Update nicht gestartet wird . Ist das gewollt? Ich war der Meinung das ging schon mal.

                              EDIT: habs gefunden => manually_Update muss true sein, aber ist das so richtig? Weil es ist ein manuelles Update, wenn ich noch die Wahl zwischen ja und nein habe und es mit Ja betätige, müsste er doch trotzdem ein Update machen oder nicht?

                              on({ id: NSPanel_Path + 'popupNotify.popupNotifyAction', change: 'any' }, async function (obj) {
                                  try {
                                      const val = obj.state ? obj.state.val : false;
                                      if (!val) {
                                          manually_Update = false;
                                          if (Debug) {
                                              console.log('Es wurde Button1 gedrückt');
                                          }
                                      } else if (val) {
                                          
                                          if (manually_Update) { => Entfernen?
                                              const internalName = getState(NSPanel_Path + 'popupNotify.popupNotifyInternalName').val;
                              
                                              if (internalName == 'TasmotaFirmwareUpdate') {
                                                  update_tasmota_firmware();
                                              } else if (internalName == 'BerryDriverUpdate') {
                                                  update_berry_driver_version();
                                              } else if (internalName == 'TFTFirmwareUpdate') {
                                                  update_tft_firmware();
                                              }
                                          }
                                          if (Debug) {
                                              console.log('Es wurde Button2 gedrückt');
                                          }
                                      }
                                  } catch (err) {
                                      console.warn('Trigger popupNotifyAction: ' + err.message);
                                  }
                              });
                              

                              @Armilar
                              EDIT2:
                              Ich hab jetzt das manuelly_Update mal komplett aus dem Skript entfernt und prüfen einfach nur im im internalName das Word Update steht.

                              on({ id: NSPanel_Path + 'popupNotify.popupNotifyAction', change: 'any' }, async function (obj) {
                                  try {
                                      const val = obj.state ? obj.state.val : false;
                                      if (!val) {
                                          if (Debug) {
                                              console.log('Es wurde Button1 gedrückt');
                                          }
                                      } else if (val) {
                                          
                                          const internalName: string = getState(NSPanel_Path + 'popupNotify.popupNotifyInternalName').val;
                                          if (internalName.includes('Update')) {
                                              if (internalName == 'TasmotaFirmwareUpdate') {
                                                  update_tasmota_firmware();
                                              } else if (internalName == 'BerryDriverUpdate') {
                                                  update_berry_driver_version();
                                              } else if (internalName == 'TFTFirmwareUpdate') {
                                                  update_tft_firmware();
                                              }
                                          }
                                          if (Debug) {
                                              console.log('Es wurde Button2 gedrückt');
                                          }
                                      }
                                  } catch (err) {
                                      console.warn('Trigger popupNotifyAction: ' + err.message);
                                  }
                              });
                              
                              O ArmilarA 2 Replies Last reply
                              1
                              • R ronny130286

                                @TT-Tom @oliver-feld

                                du musst dann aber auch die min max anpassen, weil mit max 35km/h kann man wenig anfangen 😉

                                ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 35}
                                

                                @Armilar
                                Heute wurde Tasmota 1.2.4.0 released => das Panel zeigt die Popupmessage auch an aber drückt man auf ja wird wird das update nicht getriggert auch im Debugmodus sieht man das die Funktion für das Update nicht gestartet wird . Ist das gewollt? Ich war der Meinung das ging schon mal.

                                EDIT: habs gefunden => manually_Update muss true sein, aber ist das so richtig? Weil es ist ein manuelles Update, wenn ich noch die Wahl zwischen ja und nein habe und es mit Ja betätige, müsste er doch trotzdem ein Update machen oder nicht?

                                on({ id: NSPanel_Path + 'popupNotify.popupNotifyAction', change: 'any' }, async function (obj) {
                                    try {
                                        const val = obj.state ? obj.state.val : false;
                                        if (!val) {
                                            manually_Update = false;
                                            if (Debug) {
                                                console.log('Es wurde Button1 gedrückt');
                                            }
                                        } else if (val) {
                                            
                                            if (manually_Update) { => Entfernen?
                                                const internalName = getState(NSPanel_Path + 'popupNotify.popupNotifyInternalName').val;
                                
                                                if (internalName == 'TasmotaFirmwareUpdate') {
                                                    update_tasmota_firmware();
                                                } else if (internalName == 'BerryDriverUpdate') {
                                                    update_berry_driver_version();
                                                } else if (internalName == 'TFTFirmwareUpdate') {
                                                    update_tft_firmware();
                                                }
                                            }
                                            if (Debug) {
                                                console.log('Es wurde Button2 gedrückt');
                                            }
                                        }
                                    } catch (err) {
                                        console.warn('Trigger popupNotifyAction: ' + err.message);
                                    }
                                });
                                

                                @Armilar
                                EDIT2:
                                Ich hab jetzt das manuelly_Update mal komplett aus dem Skript entfernt und prüfen einfach nur im im internalName das Word Update steht.

                                on({ id: NSPanel_Path + 'popupNotify.popupNotifyAction', change: 'any' }, async function (obj) {
                                    try {
                                        const val = obj.state ? obj.state.val : false;
                                        if (!val) {
                                            if (Debug) {
                                                console.log('Es wurde Button1 gedrückt');
                                            }
                                        } else if (val) {
                                            
                                            const internalName: string = getState(NSPanel_Path + 'popupNotify.popupNotifyInternalName').val;
                                            if (internalName.includes('Update')) {
                                                if (internalName == 'TasmotaFirmwareUpdate') {
                                                    update_tasmota_firmware();
                                                } else if (internalName == 'BerryDriverUpdate') {
                                                    update_berry_driver_version();
                                                } else if (internalName == 'TFTFirmwareUpdate') {
                                                    update_tft_firmware();
                                                }
                                            }
                                            if (Debug) {
                                                console.log('Es wurde Button2 gedrückt');
                                            }
                                        }
                                    } catch (err) {
                                        console.warn('Trigger popupNotifyAction: ' + err.message);
                                    }
                                });
                                
                                O Offline
                                O Offline
                                Oliver Feld
                                wrote on last edited by
                                #2255

                                @ronny130286
                                So sieht es bei mir aus, müsste doch passen oder?

                                secondScreensaverEntity:  { ScreensaverEntity: 'accuweather.0.Current.WindSpeed', 
                                                                ScreensaverEntityFactor: (1000/3600),                       //New
                                                                ScreensaverEntityDecimalPlaces: 1,                          //New 
                                                                ScreensaverEntityIcon: 'weather-windy', 
                                                                ScreensaverEntityText: "Wind", 
                                                                ScreensaverEntityUnitText: 'Km/h', 
                                                                ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 90}
                                

                                IMG_4144.jpeg

                                R 1 Reply Last reply
                                0
                                • O Oliver Feld

                                  @ronny130286
                                  So sieht es bei mir aus, müsste doch passen oder?

                                  secondScreensaverEntity:  { ScreensaverEntity: 'accuweather.0.Current.WindSpeed', 
                                                                  ScreensaverEntityFactor: (1000/3600),                       //New
                                                                  ScreensaverEntityDecimalPlaces: 1,                          //New 
                                                                  ScreensaverEntityIcon: 'weather-windy', 
                                                                  ScreensaverEntityText: "Wind", 
                                                                  ScreensaverEntityUnitText: 'Km/h', 
                                                                  ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 90}
                                  

                                  IMG_4144.jpeg

                                  R Offline
                                  R Offline
                                  ronny130286
                                  wrote on last edited by ronny130286
                                  #2256

                                  @oliver-feld

                                   ScreensaverEntityFactor: (1000/3600),                       //New
                                  

                                  Das muss auf 1 stehen nicht auf 1000/3600 => das wäre die Umrechnung in m/s

                                   ScreensaverEntityFactor: 1,                       //New
                                  
                                  O 1 Reply Last reply
                                  0
                                  • R ronny130286

                                    @oliver-feld

                                     ScreensaverEntityFactor: (1000/3600),                       //New
                                    

                                    Das muss auf 1 stehen nicht auf 1000/3600 => das wäre die Umrechnung in m/s

                                     ScreensaverEntityFactor: 1,                       //New
                                    
                                    O Offline
                                    O Offline
                                    Oliver Feld
                                    wrote on last edited by
                                    #2257

                                    @ronny130286
                                    Danke! Das wars 🙂

                                    1 Reply Last reply
                                    0
                                    • R ronny130286

                                      @TT-Tom @oliver-feld

                                      du musst dann aber auch die min max anpassen, weil mit max 35km/h kann man wenig anfangen 😉

                                      ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 35}
                                      

                                      @Armilar
                                      Heute wurde Tasmota 1.2.4.0 released => das Panel zeigt die Popupmessage auch an aber drückt man auf ja wird wird das update nicht getriggert auch im Debugmodus sieht man das die Funktion für das Update nicht gestartet wird . Ist das gewollt? Ich war der Meinung das ging schon mal.

                                      EDIT: habs gefunden => manually_Update muss true sein, aber ist das so richtig? Weil es ist ein manuelles Update, wenn ich noch die Wahl zwischen ja und nein habe und es mit Ja betätige, müsste er doch trotzdem ein Update machen oder nicht?

                                      on({ id: NSPanel_Path + 'popupNotify.popupNotifyAction', change: 'any' }, async function (obj) {
                                          try {
                                              const val = obj.state ? obj.state.val : false;
                                              if (!val) {
                                                  manually_Update = false;
                                                  if (Debug) {
                                                      console.log('Es wurde Button1 gedrückt');
                                                  }
                                              } else if (val) {
                                                  
                                                  if (manually_Update) { => Entfernen?
                                                      const internalName = getState(NSPanel_Path + 'popupNotify.popupNotifyInternalName').val;
                                      
                                                      if (internalName == 'TasmotaFirmwareUpdate') {
                                                          update_tasmota_firmware();
                                                      } else if (internalName == 'BerryDriverUpdate') {
                                                          update_berry_driver_version();
                                                      } else if (internalName == 'TFTFirmwareUpdate') {
                                                          update_tft_firmware();
                                                      }
                                                  }
                                                  if (Debug) {
                                                      console.log('Es wurde Button2 gedrückt');
                                                  }
                                              }
                                          } catch (err) {
                                              console.warn('Trigger popupNotifyAction: ' + err.message);
                                          }
                                      });
                                      

                                      @Armilar
                                      EDIT2:
                                      Ich hab jetzt das manuelly_Update mal komplett aus dem Skript entfernt und prüfen einfach nur im im internalName das Word Update steht.

                                      on({ id: NSPanel_Path + 'popupNotify.popupNotifyAction', change: 'any' }, async function (obj) {
                                          try {
                                              const val = obj.state ? obj.state.val : false;
                                              if (!val) {
                                                  if (Debug) {
                                                      console.log('Es wurde Button1 gedrückt');
                                                  }
                                              } else if (val) {
                                                  
                                                  const internalName: string = getState(NSPanel_Path + 'popupNotify.popupNotifyInternalName').val;
                                                  if (internalName.includes('Update')) {
                                                      if (internalName == 'TasmotaFirmwareUpdate') {
                                                          update_tasmota_firmware();
                                                      } else if (internalName == 'BerryDriverUpdate') {
                                                          update_berry_driver_version();
                                                      } else if (internalName == 'TFTFirmwareUpdate') {
                                                          update_tft_firmware();
                                                      }
                                                  }
                                                  if (Debug) {
                                                      console.log('Es wurde Button2 gedrückt');
                                                  }
                                              }
                                          } catch (err) {
                                              console.warn('Trigger popupNotifyAction: ' + err.message);
                                          }
                                      });
                                      
                                      ArmilarA Offline
                                      ArmilarA Offline
                                      Armilar
                                      Most Active Forum Testing
                                      wrote on last edited by
                                      #2258

                                      @ronny130286

                                      Hab es schon bemerkt. Das muss eigentlich auch gar nicht mehr eingeblendet werden, da die Funktionen auch über das Servicemenü ermöglicht werden.

                                      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.

                                      R 1 Reply Last reply
                                      0
                                      • ArmilarA Armilar

                                        @ronny130286

                                        Hab es schon bemerkt. Das muss eigentlich auch gar nicht mehr eingeblendet werden, da die Funktionen auch über das Servicemenü ermöglicht werden.

                                        R Offline
                                        R Offline
                                        ronny130286
                                        wrote on last edited by
                                        #2259

                                        @armilar
                                        Also das es angezeigt wird finde ich gut, da man ansonsten keinerlei Hinweis hat das es ein Update gibt, aber er sollte dann auch updaten wenn man ja drückt 😉
                                        Ich hab die Funktion wie oben ersetzt, somit kann man ja nein nutzen und zusätzlich kann man es auch im Servicemenu updaten, sofern man Autoupdate aus lässt.

                                        ArmilarA 1 Reply Last reply
                                        1
                                        • R ronny130286

                                          @armilar
                                          Also das es angezeigt wird finde ich gut, da man ansonsten keinerlei Hinweis hat das es ein Update gibt, aber er sollte dann auch updaten wenn man ja drückt 😉
                                          Ich hab die Funktion wie oben ersetzt, somit kann man ja nein nutzen und zusätzlich kann man es auch im Servicemenu updaten, sofern man Autoupdate aus lässt.

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

                                          @ronny130286

                                          werde es nachher mal kurz übernehmen

                                          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 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          162

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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