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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. SONOFF NSPanel mit Lovelace UI

NEWS

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

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

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

SONOFF NSPanel mit Lovelace UI

Geplant Angeheftet Gesperrt Verschoben Hardware
lovelace uinspanelsonoff
7.8k Beiträge 272 Kommentatoren 6.7m Aufrufe 254 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • ArmilarA Armilar

    @mercyful-0

    Sehr viel klarer

    Fasse mal zusammen:

    • Stellmotoren werden über 230V versorgt und könnten an einen der 230V Ausgänge des NSPanel angeschlossen werden
    • Heizungs(an/aus)schalter kann sowohl die physische linke Taste übernehmen, als auch in der cardThermo ein On/Off Button. Oder beides.
    • Licht kann natürlich auf die rechte Taste (somit über das rechte Relais). Alternativ aber auch entkoppelt zu einem Datenpunkt.

    Bis hier kein Problem. Das Original Panel wird temperaturseitig in der Cloud gesteuert. D.h. es hat eine Logik, die die Temperatur des internen Fühlers nach China sendet. Ebenfalls wird über den Kreis deine Solltemperatur (Setpoint) nach China gesendet. Wenn jetzt die Raum-Temperatur mit einem Offset überschritten wird, dann sitzt bei Sonoff ein Chinese, macht den den Schalter aus (wird aber wohl eine Cloud-Funktion sein 😉 ) und sendet die Daten an das Panel zu dir nach Hause. Da geht dann halt auch das Relais aus. Umgekehrt natürlich auch, wenn es zu kalt wird, schaltet irgendetwas in China das Relais wieder an.

    Diese Funktionalität ist aber im Tasmota nicht mehr vorhanden und muss jetzt durch eine Steuerlogik im ioBroker ersetzt werden.

    Klar ist es nett wenn ich die Datenpunkte im ioBroker auswerten und in eine Automatisierung machen kann, aber das ist Stand jetzt nicht geplant.

    Also ohne eine zusätzliche Logik geht das nicht.

    Die ist aber im Prinzip sehr einfach zu realisieren.

    Über z.B.

    0_userdata.0.Heizungoderähnlich.Stellmotor.DeinRaum.
    

    legst du 4 Datenpunkte an:

    • Raumtemperatur (numerisch): Bei Verwendung des internen NTC ist Datenpunkt bereits vorhanden
    • Zieltemperatur (numerisch)
    • Offset (numerisch)
    • Schalter (boolean)

    Dann eine einfache Blockly-Logik schreiben, das den Cloud-Chinesen ersetzt.

    Wenn Schalter an, dann

    • Wenn Raumtemperatur - Offset < Zieltemperatur, dann Relay 1 an (Relay1 - Datenpunkt im NSPanel vorhanden)
    • Wenn Raumtemperatur + Offset > Zieltemperatur, dann Relay 1 aus
      (Relay1 - Datenpunkt im NSPanel vorhanden)

    Sonst wenn Schalter aus, dann Relay1 aus.

    Das wars. Der linke Schalter sollte per Rule entkoppelt werden. Der linke Schalter, falls mit einem herkömmlichen Verbraucher (Lampe) ohne Dauerstrom betrieben, dann per Rule nicht entkoppelt. Falls HUE-Lampe, dann ebenfalls entkoppelt.

    Kann also auch noch erweitert werden. Wenn Uhrzeit zwischen XX:XX und XX:XX, dann Heizung aus.
    Der Temperatur-Logik durch das externe Script sind für deine Anwendungsbereiche, im Gegensatz zu deinen aktuellen Thermostaten, keine Grenzen gesetzt

    Das wärs auch schon. Mit der zusätzlichen einfachen Schaltlogik wird es möglich sein, deine aktuellen Komponenten Raumthermostat und Lichtschalter zu ersetzen.

    Klar könnte man diese einfache Temperaturlogik jetzt auch in das NSPanel-TypeScript übernehmen. Ist aber wahrscheinlich für alle User flexibler, wenn die Datenpunkte im ioBroker separat gesteuert werden.

    @Kuckuckmann vielleicht könnte man für eine einfache Temperatursteuerung (Thermostatersatz) mit Relais-Steuerung über 230V (Elektro-Heizkörper oder Stellmotor 230V) mal ein kurzes Beispiel für die Wiki erstellen?

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

    @armilar sagte in SONOFF NSPanel mit Lovelace UI:
    Sollte eigentlich in die Bearbeitung:

    • Zieltemperatur (numerisch);

    Ist dann nicht mehr 0-6 wie in deinem aktuellen Thermostaten, sondern die exakte Zieltemperatur in °C

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

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

    1 Antwort Letzte Antwort
    0
    • ArmilarA Armilar

      @mercyful-0

      Sehr viel klarer

      Fasse mal zusammen:

      • Stellmotoren werden über 230V versorgt und könnten an einen der 230V Ausgänge des NSPanel angeschlossen werden
      • Heizungs(an/aus)schalter kann sowohl die physische linke Taste übernehmen, als auch in der cardThermo ein On/Off Button. Oder beides.
      • Licht kann natürlich auf die rechte Taste (somit über das rechte Relais). Alternativ aber auch entkoppelt zu einem Datenpunkt.

      Bis hier kein Problem. Das Original Panel wird temperaturseitig in der Cloud gesteuert. D.h. es hat eine Logik, die die Temperatur des internen Fühlers nach China sendet. Ebenfalls wird über den Kreis deine Solltemperatur (Setpoint) nach China gesendet. Wenn jetzt die Raum-Temperatur mit einem Offset überschritten wird, dann sitzt bei Sonoff ein Chinese, macht den den Schalter aus (wird aber wohl eine Cloud-Funktion sein 😉 ) und sendet die Daten an das Panel zu dir nach Hause. Da geht dann halt auch das Relais aus. Umgekehrt natürlich auch, wenn es zu kalt wird, schaltet irgendetwas in China das Relais wieder an.

      Diese Funktionalität ist aber im Tasmota nicht mehr vorhanden und muss jetzt durch eine Steuerlogik im ioBroker ersetzt werden.

      Klar ist es nett wenn ich die Datenpunkte im ioBroker auswerten und in eine Automatisierung machen kann, aber das ist Stand jetzt nicht geplant.

      Also ohne eine zusätzliche Logik geht das nicht.

      Die ist aber im Prinzip sehr einfach zu realisieren.

      Über z.B.

      0_userdata.0.Heizungoderähnlich.Stellmotor.DeinRaum.
      

      legst du 4 Datenpunkte an:

      • Raumtemperatur (numerisch): Bei Verwendung des internen NTC ist Datenpunkt bereits vorhanden
      • Zieltemperatur (numerisch)
      • Offset (numerisch)
      • Schalter (boolean)

      Dann eine einfache Blockly-Logik schreiben, das den Cloud-Chinesen ersetzt.

      Wenn Schalter an, dann

      • Wenn Raumtemperatur - Offset < Zieltemperatur, dann Relay 1 an (Relay1 - Datenpunkt im NSPanel vorhanden)
      • Wenn Raumtemperatur + Offset > Zieltemperatur, dann Relay 1 aus
        (Relay1 - Datenpunkt im NSPanel vorhanden)

      Sonst wenn Schalter aus, dann Relay1 aus.

      Das wars. Der linke Schalter sollte per Rule entkoppelt werden. Der linke Schalter, falls mit einem herkömmlichen Verbraucher (Lampe) ohne Dauerstrom betrieben, dann per Rule nicht entkoppelt. Falls HUE-Lampe, dann ebenfalls entkoppelt.

      Kann also auch noch erweitert werden. Wenn Uhrzeit zwischen XX:XX und XX:XX, dann Heizung aus.
      Der Temperatur-Logik durch das externe Script sind für deine Anwendungsbereiche, im Gegensatz zu deinen aktuellen Thermostaten, keine Grenzen gesetzt

      Das wärs auch schon. Mit der zusätzlichen einfachen Schaltlogik wird es möglich sein, deine aktuellen Komponenten Raumthermostat und Lichtschalter zu ersetzen.

      Klar könnte man diese einfache Temperaturlogik jetzt auch in das NSPanel-TypeScript übernehmen. Ist aber wahrscheinlich für alle User flexibler, wenn die Datenpunkte im ioBroker separat gesteuert werden.

      @Kuckuckmann vielleicht könnte man für eine einfache Temperatursteuerung (Thermostatersatz) mit Relais-Steuerung über 230V (Elektro-Heizkörper oder Stellmotor 230V) mal ein kurzes Beispiel für die Wiki erstellen?

      M Offline
      M Offline
      Mercyful 0
      schrieb am zuletzt editiert von
      #2239

      @armilar said in SONOFF NSPanel mit Lovelace UI:
      Vielen Dank für die super schnelle Antwort!

      @mercyful-0

      Sehr viel klarer

      Fasse mal zusammen:

      • Stellmotoren werden über 230V versorgt und könnten an einen der 230V Ausgänge des NSPanel angeschlossen werden
      • Heizungs(an/aus)schalter kann sowohl die physische linke Taste übernehmen, als auch in der cardThermo ein On/Off Button. Oder beides.
      • Licht kann natürlich auf die rechte Taste (somit über das rechte Relais). Alternativ aber auch entkoppelt zu einem Datenpunkt.

      Bis hier kein Problem. Das Original Panel wird temperaturseitig in der Cloud gesteuert. D.h. es hat eine Logik, die die Temperatur des internen Fühlers nach China sendet. Ebenfalls wird über den Kreis deine Solltemperatur (Setpoint) nach China gesendet. Wenn jetzt die Raum-Temperatur mit einem Offset überschritten wird, dann sitzt bei Sonoff ein Chinese, macht den den Schalter aus (wird aber wohl eine Cloud-Funktion sein 😉 ) und sendet die Daten an das Panel zu dir nach Hause. Da geht dann halt auch das Relais aus. Umgekehrt natürlich auch, wenn es zu kalt wird, schaltet irgendetwas in China das Relais wieder an.

      Soweit habe ich das verstanden.

      Diese Funktionalität ist aber im Tasmota nicht mehr vorhanden und muss jetzt durch eine Steuerlogik im ioBroker ersetzt werden.

      Darum habe ich ja Tasmota und Lovelace UI geflasht.

      Klar ist es nett wenn ich die Datenpunkte im ioBroker auswerten und in eine Automatisierung machen kann, aber das ist Stand jetzt nicht geplant.

      Also ohne eine zusätzliche Logik geht das nicht.

      Die ist aber im Prinzip sehr einfach zu realisieren.

      Über z.B.

      0_userdata.0.Heizungoderähnlich.Stellmotor.DeinRaum.
      

      legst du 4 Datenpunkte an:

      • Raumtemperatur (numerisch): Bei Verwendung des internen NTC ist Datenpunkt bereits vorhanden
      • Zieltemperatur (numerisch)
      • Offset (numerisch)
      • Schalter (boolean)

      Diese habe ich erstellt.

      Dann eine einfache Blockly-Logik schreiben, das den Cloud-Chinesen ersetzt.

      Wenn Schalter an, dann

      • Wenn Raumtemperatur - Offset < Zieltemperatur, dann Relay 1 an (Relay1 - Datenpunkt im NSPanel vorhanden)
      • Wenn Raumtemperatur + Offset > Zieltemperatur, dann Relay 1 aus
        (Relay1 - Datenpunkt im NSPanel vorhanden)

      Sonst wenn Schalter aus, dann Relay1 aus.

      Und hier hakt es bei mir ein wenig.

      <block xmlns="https://developers.google.com/blockly/xml" type="on" id="RJ}*ldcZ,mnDdfy!rj(8" x="63" y="-187">
        <field name="OID">0_userdata.0.NSPanel.1.Relay.1</field>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <statement name="STATEMENT">
          <block type="debug" id="iBLP*hCxO;n|P$.|BV.x">
            <field name="Severity">log</field>
            <value name="TEXT">
              <shadow type="text" id="*ctM~D[h[~/iG3G*[F{u">
                <field name="TEXT">Los geht es mit dem NSPanel</field>
              </shadow>
            </value>
            <next>
              <block type="controls_if" id="h3v[8n56qCZ9Yty^xg!h">
                <value name="IF0">
                  <block type="logic_compare" id="hi}1Y:o?yv9bP5YSOOmw">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="get_value" id="o`-}LPTwPhO?!DPZ9VgR">
                        <field name="ATTR">val</field>
                        <field name="OID">0_userdata.0.NSPanel.1.Relay.1</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_boolean" id="#}tPmPgcpnh]r!SLhfY,">
                        <field name="BOOL">TRUE</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="debug" id=",wrnlhdR@Vx=P(Wxx50s">
                    <field name="Severity">log</field>
                    <value name="TEXT">
                      <shadow type="text" id="f$^u#q*0h5.Cz%NZL]fw">
                        <field name="TEXT">Geht da überhaupt etwas</field>
                      </shadow>
                    </value>
                    <next>
                      <block type="controls_if" id="(6-JROpAzSW,{j9`q)Y$">
                        <value name="IF0">
                          <block type="logic_compare" id="A,cgskI7W(?9QP*k**zb">
                            <field name="OP">LT</field>
                            <value name="A">
                              <block type="math_arithmetic" id=")(3I}qVyjNy^0eD],Kd-">
                                <field name="OP">MINUS</field>
                                <value name="A">
                                  <shadow type="math_number" id="cb!y0Is{pa,YX1^/vgg+">
                                    <field name="NUM">1</field>
                                  </shadow>
                                  <block type="get_value" id="2b#i}*UP,JL,3]?B7hlH">
                                    <field name="ATTR">val</field>
                                    <field name="OID">0_userdata.0.NSPanel.1.Sensor.ANALOG.Temperature</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <shadow type="math_number" id="-,O8_;B1Ows)8Km9y7hS">
                                    <field name="NUM">1</field>
                                  </shadow>
                                  <block type="get_value" id="$*Gxh,Us3VFKgvl)cS~e">
                                    <field name="ATTR">val</field>
                                    <field name="OID">0_userdata.0.DJ_Oase.Offset</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <value name="B">
                              <block type="get_value" id="puoXnNU@cuqLS9H15^3(">
                                <field name="ATTR">val</field>
                                <field name="OID">0_userdata.0.DJ_Oase.Zieltemperatur</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <statement name="DO0">
                          <block type="control" id="D}~:q_y}Jrkt}h8wAU+S">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">0_userdata.0.NSPanel.1.Relay.1</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id=";@$htC/:grLE/X%-3W#/">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                          </block>
                        </statement>
                        <next>
                          <block type="controls_if" id="=zQk|6LdJ(3)sI#=[s8w">
                            <value name="IF0">
                              <block type="logic_compare" id="Y[p2M;f=~ZEm9dDozT^R">
                                <field name="OP">GT</field>
                                <value name="A">
                                  <block type="math_arithmetic" id="/x{ONhb(iW[j.E?PeDRr">
                                    <field name="OP">ADD</field>
                                    <value name="A">
                                      <shadow type="math_number">
                                        <field name="NUM">1</field>
                                      </shadow>
                                      <block type="get_value" id="7{##k%q,B@+:^$[Y=OGm">
                                        <field name="ATTR">val</field>
                                        <field name="OID">0_userdata.0.NSPanel.1.Sensor.ANALOG.Temperature</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <shadow type="math_number">
                                        <field name="NUM">1</field>
                                      </shadow>
                                      <block type="get_value" id="QqiNkQQ?jnf@xp7GOYB%">
                                        <field name="ATTR">val</field>
                                        <field name="OID">0_userdata.0.DJ_Oase.Offset</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <value name="B">
                                  <block type="get_value" id="iLd?XJ@^?E,TekFB6Xee">
                                    <field name="ATTR">val</field>
                                    <field name="OID">0_userdata.0.DJ_Oase.Zieltemperatur</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <statement name="DO0">
                              <block type="control" id="!~@ErPa=+r%xMqP/V.$w">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                <field name="OID">0_userdata.0.NSPanel.1.Relay.1</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block type="logic_boolean" id="/adW+f/sii|{G?)XiWLa">
                                    <field name="BOOL">FALSE</field>
                                  </block>
                                </value>
                              </block>
                            </statement>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </next>
          </block>
        </statement>
      </block>
      

      Wenn ich jetzt den linken Taster drücke, geht der Status kurz auf True und sofort wieder auf false.

      Das wars. Der linke Schalter sollte per Rule entkoppelt werden. Der linke Schalter, falls mit einem herkömmlichen Verbraucher (Lampe) ohne Dauerstrom betrieben, dann per Rule nicht entkoppelt. Falls HUE-Lampe, dann ebenfalls entkoppelt.

      Welcher Schalter sollte jetzt entkoppelt werden? Der linke, der den Stellmotor an- und ausschaltet?
      Wo finde ich eine Anleitung wie Schalter entkoppelt werden?

      Kann also auch noch erweitert werden. Wenn Uhrzeit zwischen XX:XX und XX:XX, dann Heizung aus.
      Der Temperatur-Logik durch das externe Script sind für deine Anwendungsbereiche, im Gegensatz zu deinen aktuellen Thermostaten, keine Grenzen gesetzt

      Das wärs auch schon. Mit der zusätzlichen einfachen Schaltlogik wird es möglich sein, deine aktuellen Komponenten Raumthermostat und Lichtschalter zu ersetzen.

      Klar könnte man diese einfache Temperaturlogik jetzt auch in das NSPanel-TypeScript übernehmen. Ist aber wahrscheinlich für alle User flexibler, wenn die Datenpunkte im ioBroker separat gesteuert werden.

      @Kuckuckmann vielleicht könnte man für eine einfache Temperatursteuerung (Thermostatersatz) mit Relais-Steuerung über 230V (Elektro-Heizkörper oder Stellmotor 230V) mal ein kurzes Beispiel für die Wiki erstellen?

      Ist Lovelace UI dafür erforderlich oder ist deine Beschreibung für Tasmota mit der original Display Firmware gedacht?
      Liebe Grüße
      Mercy

      ArmilarA 1 Antwort Letzte Antwort
      0
      • M Mercyful 0

        @armilar said in SONOFF NSPanel mit Lovelace UI:
        Vielen Dank für die super schnelle Antwort!

        @mercyful-0

        Sehr viel klarer

        Fasse mal zusammen:

        • Stellmotoren werden über 230V versorgt und könnten an einen der 230V Ausgänge des NSPanel angeschlossen werden
        • Heizungs(an/aus)schalter kann sowohl die physische linke Taste übernehmen, als auch in der cardThermo ein On/Off Button. Oder beides.
        • Licht kann natürlich auf die rechte Taste (somit über das rechte Relais). Alternativ aber auch entkoppelt zu einem Datenpunkt.

        Bis hier kein Problem. Das Original Panel wird temperaturseitig in der Cloud gesteuert. D.h. es hat eine Logik, die die Temperatur des internen Fühlers nach China sendet. Ebenfalls wird über den Kreis deine Solltemperatur (Setpoint) nach China gesendet. Wenn jetzt die Raum-Temperatur mit einem Offset überschritten wird, dann sitzt bei Sonoff ein Chinese, macht den den Schalter aus (wird aber wohl eine Cloud-Funktion sein 😉 ) und sendet die Daten an das Panel zu dir nach Hause. Da geht dann halt auch das Relais aus. Umgekehrt natürlich auch, wenn es zu kalt wird, schaltet irgendetwas in China das Relais wieder an.

        Soweit habe ich das verstanden.

        Diese Funktionalität ist aber im Tasmota nicht mehr vorhanden und muss jetzt durch eine Steuerlogik im ioBroker ersetzt werden.

        Darum habe ich ja Tasmota und Lovelace UI geflasht.

        Klar ist es nett wenn ich die Datenpunkte im ioBroker auswerten und in eine Automatisierung machen kann, aber das ist Stand jetzt nicht geplant.

        Also ohne eine zusätzliche Logik geht das nicht.

        Die ist aber im Prinzip sehr einfach zu realisieren.

        Über z.B.

        0_userdata.0.Heizungoderähnlich.Stellmotor.DeinRaum.
        

        legst du 4 Datenpunkte an:

        • Raumtemperatur (numerisch): Bei Verwendung des internen NTC ist Datenpunkt bereits vorhanden
        • Zieltemperatur (numerisch)
        • Offset (numerisch)
        • Schalter (boolean)

        Diese habe ich erstellt.

        Dann eine einfache Blockly-Logik schreiben, das den Cloud-Chinesen ersetzt.

        Wenn Schalter an, dann

        • Wenn Raumtemperatur - Offset < Zieltemperatur, dann Relay 1 an (Relay1 - Datenpunkt im NSPanel vorhanden)
        • Wenn Raumtemperatur + Offset > Zieltemperatur, dann Relay 1 aus
          (Relay1 - Datenpunkt im NSPanel vorhanden)

        Sonst wenn Schalter aus, dann Relay1 aus.

        Und hier hakt es bei mir ein wenig.

        <block xmlns="https://developers.google.com/blockly/xml" type="on" id="RJ}*ldcZ,mnDdfy!rj(8" x="63" y="-187">
          <field name="OID">0_userdata.0.NSPanel.1.Relay.1</field>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <statement name="STATEMENT">
            <block type="debug" id="iBLP*hCxO;n|P$.|BV.x">
              <field name="Severity">log</field>
              <value name="TEXT">
                <shadow type="text" id="*ctM~D[h[~/iG3G*[F{u">
                  <field name="TEXT">Los geht es mit dem NSPanel</field>
                </shadow>
              </value>
              <next>
                <block type="controls_if" id="h3v[8n56qCZ9Yty^xg!h">
                  <value name="IF0">
                    <block type="logic_compare" id="hi}1Y:o?yv9bP5YSOOmw">
                      <field name="OP">EQ</field>
                      <value name="A">
                        <block type="get_value" id="o`-}LPTwPhO?!DPZ9VgR">
                          <field name="ATTR">val</field>
                          <field name="OID">0_userdata.0.NSPanel.1.Relay.1</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_boolean" id="#}tPmPgcpnh]r!SLhfY,">
                          <field name="BOOL">TRUE</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="debug" id=",wrnlhdR@Vx=P(Wxx50s">
                      <field name="Severity">log</field>
                      <value name="TEXT">
                        <shadow type="text" id="f$^u#q*0h5.Cz%NZL]fw">
                          <field name="TEXT">Geht da überhaupt etwas</field>
                        </shadow>
                      </value>
                      <next>
                        <block type="controls_if" id="(6-JROpAzSW,{j9`q)Y$">
                          <value name="IF0">
                            <block type="logic_compare" id="A,cgskI7W(?9QP*k**zb">
                              <field name="OP">LT</field>
                              <value name="A">
                                <block type="math_arithmetic" id=")(3I}qVyjNy^0eD],Kd-">
                                  <field name="OP">MINUS</field>
                                  <value name="A">
                                    <shadow type="math_number" id="cb!y0Is{pa,YX1^/vgg+">
                                      <field name="NUM">1</field>
                                    </shadow>
                                    <block type="get_value" id="2b#i}*UP,JL,3]?B7hlH">
                                      <field name="ATTR">val</field>
                                      <field name="OID">0_userdata.0.NSPanel.1.Sensor.ANALOG.Temperature</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <shadow type="math_number" id="-,O8_;B1Ows)8Km9y7hS">
                                      <field name="NUM">1</field>
                                    </shadow>
                                    <block type="get_value" id="$*Gxh,Us3VFKgvl)cS~e">
                                      <field name="ATTR">val</field>
                                      <field name="OID">0_userdata.0.DJ_Oase.Offset</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <value name="B">
                                <block type="get_value" id="puoXnNU@cuqLS9H15^3(">
                                  <field name="ATTR">val</field>
                                  <field name="OID">0_userdata.0.DJ_Oase.Zieltemperatur</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO0">
                            <block type="control" id="D}~:q_y}Jrkt}h8wAU+S">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                              <field name="OID">0_userdata.0.NSPanel.1.Relay.1</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="logic_boolean" id=";@$htC/:grLE/X%-3W#/">
                                  <field name="BOOL">TRUE</field>
                                </block>
                              </value>
                            </block>
                          </statement>
                          <next>
                            <block type="controls_if" id="=zQk|6LdJ(3)sI#=[s8w">
                              <value name="IF0">
                                <block type="logic_compare" id="Y[p2M;f=~ZEm9dDozT^R">
                                  <field name="OP">GT</field>
                                  <value name="A">
                                    <block type="math_arithmetic" id="/x{ONhb(iW[j.E?PeDRr">
                                      <field name="OP">ADD</field>
                                      <value name="A">
                                        <shadow type="math_number">
                                          <field name="NUM">1</field>
                                        </shadow>
                                        <block type="get_value" id="7{##k%q,B@+:^$[Y=OGm">
                                          <field name="ATTR">val</field>
                                          <field name="OID">0_userdata.0.NSPanel.1.Sensor.ANALOG.Temperature</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <shadow type="math_number">
                                          <field name="NUM">1</field>
                                        </shadow>
                                        <block type="get_value" id="QqiNkQQ?jnf@xp7GOYB%">
                                          <field name="ATTR">val</field>
                                          <field name="OID">0_userdata.0.DJ_Oase.Offset</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="get_value" id="iLd?XJ@^?E,TekFB6Xee">
                                      <field name="ATTR">val</field>
                                      <field name="OID">0_userdata.0.DJ_Oase.Zieltemperatur</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <statement name="DO0">
                                <block type="control" id="!~@ErPa=+r%xMqP/V.$w">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                  <field name="OID">0_userdata.0.NSPanel.1.Relay.1</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="logic_boolean" id="/adW+f/sii|{G?)XiWLa">
                                      <field name="BOOL">FALSE</field>
                                    </block>
                                  </value>
                                </block>
                              </statement>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </statement>
        </block>
        

        Wenn ich jetzt den linken Taster drücke, geht der Status kurz auf True und sofort wieder auf false.

        Das wars. Der linke Schalter sollte per Rule entkoppelt werden. Der linke Schalter, falls mit einem herkömmlichen Verbraucher (Lampe) ohne Dauerstrom betrieben, dann per Rule nicht entkoppelt. Falls HUE-Lampe, dann ebenfalls entkoppelt.

        Welcher Schalter sollte jetzt entkoppelt werden? Der linke, der den Stellmotor an- und ausschaltet?
        Wo finde ich eine Anleitung wie Schalter entkoppelt werden?

        Kann also auch noch erweitert werden. Wenn Uhrzeit zwischen XX:XX und XX:XX, dann Heizung aus.
        Der Temperatur-Logik durch das externe Script sind für deine Anwendungsbereiche, im Gegensatz zu deinen aktuellen Thermostaten, keine Grenzen gesetzt

        Das wärs auch schon. Mit der zusätzlichen einfachen Schaltlogik wird es möglich sein, deine aktuellen Komponenten Raumthermostat und Lichtschalter zu ersetzen.

        Klar könnte man diese einfache Temperaturlogik jetzt auch in das NSPanel-TypeScript übernehmen. Ist aber wahrscheinlich für alle User flexibler, wenn die Datenpunkte im ioBroker separat gesteuert werden.

        @Kuckuckmann vielleicht könnte man für eine einfache Temperatursteuerung (Thermostatersatz) mit Relais-Steuerung über 230V (Elektro-Heizkörper oder Stellmotor 230V) mal ein kurzes Beispiel für die Wiki erstellen?

        Ist Lovelace UI dafür erforderlich oder ist deine Beschreibung für Tasmota mit der original Display Firmware gedacht?
        Liebe Grüße
        Mercy

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

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

        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.

        M 1 Antwort Letzte Antwort
        0
        • 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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #2244

                @mercyful-0

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

                M 1 Antwort Letzte Antwort
                0
                • R Offline
                  R Offline
                  ronny130286
                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                  1
                  • M Offline
                    M Offline
                    Mercyful 0
                    schrieb am zuletzt editiert von
                    #2246

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

                    1 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 Antworten Letzte Antwort
                      0
                      • ArmilarA Offline
                        ArmilarA Offline
                        Armilar
                        Most Active Forum Testing
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        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
                          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                          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
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            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
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              0
                              • O Offline
                                O Offline
                                Oliver Feld
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                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
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  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
                                    schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
                                    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
                                      schrieb am zuletzt editiert von
                                      #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 Antwort Letzte Antwort
                                      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
                                        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                        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
                                          schrieb am zuletzt editiert von
                                          #2257

                                          @ronny130286
                                          Danke! Das wars 🙂

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          711

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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