Skip to content
  • Home
  • 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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Einfache Steuerung Steckdose/Temperatur

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    864

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Einfache Steuerung Steckdose/Temperatur

Geplant Angeheftet Gesperrt Verschoben Node-Red
17 Beiträge 4 Kommentatoren 2.2k Aufrufe 4 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.
  • Seb K.S Seb K.

    @CrunkFX Hey super gerne,

    allerdings habe ich das Problem Java zu installieren..... und soweit ich weiß ist das zwingen für Blocky notwendig oder?

    CrunkFXC Offline
    CrunkFXC Offline
    CrunkFX
    Forum Testing
    schrieb am zuletzt editiert von
    #7

    @Seb-K Falls bei dir die Installation klappt gehst du wie folgt vor:

    1. Im ObjektBrowser unter Userdata.0 einen neuen Datenpunkt als Zahl anlegen, der deine Wunschtemperatur wird.

    2. Ich gehe davon aus, dass die Werte für Temp im TH16 als Zahl angelegt werden. Falls nicht ändern wir nochmal was.
      Dann also ein neues Blockly Script anlegen und oben rechts auf Importieren gehen:

     <xml xmlns="http://www.w3.org/1999/xhtml">
      <block type="on_ext" id="W1ukkv8+-RJ^m%krfUK6" x="37" y="37">
        <mutation items="1"></mutation>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <value name="OID0">
          <shadow type="field_oid" id="Q?7Bcztc=QdB~m}3^dbc">
            <field name="oid">default</field>
          </shadow>
          <block type="get_value" id="~8pkp]f@pXX1@CQ.IY2,">
            <field name="ATTR">val</field>
            <field name="OID">0_userdata.0.dein_TH16_Temp_DP</field>
          </block>
        </value>
        <statement name="STATEMENT">
          <block type="controls_if" id="2kqxJ}$lU85L!ft-/kxE">
            <value name="IF0">
              <block type="logic_compare" id="rkTXol`rxf/1q~i@Kjaa">
                <field name="OP">LT</field>
                <value name="A">
                  <block type="get_value" id="G?=^}GmR84glD`Zi+tQb">
                    <field name="ATTR">val</field>
                    <field name="OID">0_userdata.0.dein_TH16_Temp_DP</field>
                  </block>
                </value>
                <value name="B">
                  <block type="math_arithmetic" id="lHTnf(PKJk%5BAS^.du3">
                    <field name="OP">MINUS</field>
                    <value name="A">
                      <shadow type="math_number" id="Iqlpl#{S5S}bv]mWtT]P">
                        <field name="NUM">1</field>
                      </shadow>
                      <block type="get_value" id="^.{.Qf.FXqJR.dskU*;X">
                        <field name="ATTR">val</field>
                        <field name="OID">0_userdata.0.deine_Wunschtemperatur</field>
                      </block>
                    </value>
                    <value name="B">
                      <shadow type="math_number" id="`$v%dB0EWl]qrkcsdAuz">
                        <field name="NUM">0.2</field>
                      </shadow>
                    </value>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="control" id="@]0_0[C?0^jLax0O%*%7">
                <mutation delay_input="false"></mutation>
                <field name="OID">0_userdata.0.deine_Gosund_Steckdose</field>
                <field name="WITH_DELAY">FALSE</field>
                <value name="VALUE">
                  <block type="logic_boolean" id="~C/-P,sOktY:cG4{H;oz">
                    <field name="BOOL">TRUE</field>
                  </block>
                </value>
              </block>
            </statement>
            <next>
              <block type="controls_if" id="YNr;-AsS@8l|_wD(q9Qw">
                <value name="IF0">
                  <block type="logic_compare" id="C$EOUzST`sN/Y5{=MH6-">
                    <field name="OP">GT</field>
                    <value name="A">
                      <block type="get_value" id="t;-XAAJ@NVUG8/K%]xE*">
                        <field name="ATTR">val</field>
                        <field name="OID">0_userdata.0.dein_TH16_Temp_DP</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="math_arithmetic" id="8$B;`_}JFe$$a^Rz5Lv7">
                        <field name="OP">ADD</field>
                        <value name="A">
                          <shadow type="math_number" id="Iqlpl#{S5S}bv]mWtT]P">
                            <field name="NUM">1</field>
                          </shadow>
                          <block type="get_value" id="xx]3:*!$^s9o5)9/|LPM">
                            <field name="ATTR">val</field>
                            <field name="OID">0_userdata.0.deine_Wunschtemperatur</field>
                          </block>
                        </value>
                        <value name="B">
                          <shadow type="math_number" id="4`$HIlisil=:DXC8S%hM">
                            <field name="NUM">0.2</field>
                          </shadow>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="control" id="n|N[iCG$i]0?9TeM_~K6">
                    <mutation delay_input="false"></mutation>
                    <field name="OID">0_userdata.0.deine_Gosund_Steckdose</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="logic_boolean" id="S4SCo58|12bec#+nx8Me">
                        <field name="BOOL">TRUE</field>
                      </block>
                    </value>
                  </block>
                </statement>
              </block>
            </next>
          </block>
        </statement>
      </block>
    </xml>
    

    In Blockly lässt sich leider keine anständige Hysterese einbauen, daher hab ich für min und max einen Offset von 0,2 angesetzt. Das funktioniert bei unserer Fußbodenheizung super. Damit soll verhindert werden, dass die Pumpe und Ventile ständig schnell hintereinander schalten.

    In VIS kannst du dann einen Slider o.ä bauen mit dem du dann die Wunschtemperatur anpassen kannst.

    Bei Rückfragen stehe ich gerne zur Verfügung.

    MFG CrunkFX

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

    1 Antwort Letzte Antwort
    0
    • Seb K.S Offline
      Seb K.S Offline
      Seb K.
      schrieb am zuletzt editiert von
      #8

      @CrunkFX said in Einfache Steuerung Steckdose/Temperatur:

      rowser unter Us

      ich installiere jetzt erstmal iobroker auf nem neuem system und dann teste ich noch mal JS

      CrunkFXC 1 Antwort Letzte Antwort
      0
      • Seb K.S Seb K.

        @CrunkFX said in Einfache Steuerung Steckdose/Temperatur:

        rowser unter Us

        ich installiere jetzt erstmal iobroker auf nem neuem system und dann teste ich noch mal JS

        CrunkFXC Offline
        CrunkFXC Offline
        CrunkFX
        Forum Testing
        schrieb am zuletzt editiert von
        #9

        @Seb-K OK welche Plattform nutzt du?

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

        1 Antwort Letzte Antwort
        0
        • Seb K.S Offline
          Seb K.S Offline
          Seb K.
          schrieb am zuletzt editiert von
          #10

          debian auf einem Thin PC

          CrunkFXC 1 Antwort Letzte Antwort
          0
          • Seb K.S Seb K.

            debian auf einem Thin PC

            CrunkFXC Offline
            CrunkFXC Offline
            CrunkFX
            Forum Testing
            schrieb am zuletzt editiert von
            #11

            @Seb-K OK damit sollte es auf jeden Fall klappen

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

            1 Antwort Letzte Antwort
            0
            • Seb K.S Offline
              Seb K.S Offline
              Seb K.
              schrieb am zuletzt editiert von
              #12

              ich installiere erstmal alles und melde mich nochmal. bisher erst einmal besten dank

              1 Antwort Letzte Antwort
              0
              • mickymM Online
                mickymM Online
                mickym
                Most Active
                schrieb am zuletzt editiert von
                #13

                Ich verstehe nicht, warum manche hier was Blockly oder Java Schript schreiben in einem Thread wo nach einer Node-Red Lösung gefragt wird. Für solche Probleme - die man soweit ich weiß Hysterese genannt werden - kann man sogar im Node-Red fertige Lösungen installieren und muss quasi nichts programmieren.

                Ich denke - dass man hier sicher selbst einen Flow basteln kann, aber es gibt auch einen Node / Modul, dass man ausprobieren kann:

                https://flows.nodered.org/node/node-red-contrib-hysteresis

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                CrunkFXC 1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  Ich verstehe nicht, warum manche hier was Blockly oder Java Schript schreiben in einem Thread wo nach einer Node-Red Lösung gefragt wird. Für solche Probleme - die man soweit ich weiß Hysterese genannt werden - kann man sogar im Node-Red fertige Lösungen installieren und muss quasi nichts programmieren.

                  Ich denke - dass man hier sicher selbst einen Flow basteln kann, aber es gibt auch einen Node / Modul, dass man ausprobieren kann:

                  https://flows.nodered.org/node/node-red-contrib-hysteresis

                  CrunkFXC Offline
                  CrunkFXC Offline
                  CrunkFX
                  Forum Testing
                  schrieb am zuletzt editiert von
                  #14

                  @mickym Wie du vielleicht mitbekommen hast sollte die Hysterese dynamisch gestaltet werden, ich hab jahrelang nodered benutzt und bin mir darüber im Klaren, dass das eine super Software ist, aber das verarbeiten von variablen aus anderen Quellen z.b. Datenpunkte in IOBroker ist mehr ein workaround als hilfreich. Ich lasse mich aber gerne eines besseren belehren, wenn du mir hier nen Flow postest der eine dynamische Hysterese ermöglicht.

                  MFG
                  CrunkFX

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

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • CrunkFXC CrunkFX

                    @mickym Wie du vielleicht mitbekommen hast sollte die Hysterese dynamisch gestaltet werden, ich hab jahrelang nodered benutzt und bin mir darüber im Klaren, dass das eine super Software ist, aber das verarbeiten von variablen aus anderen Quellen z.b. Datenpunkte in IOBroker ist mehr ein workaround als hilfreich. Ich lasse mich aber gerne eines besseren belehren, wenn du mir hier nen Flow postest der eine dynamische Hysterese ermöglicht.

                    MFG
                    CrunkFX

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von mickym
                    #15

                    @CrunkFX

                    ...aber das verarbeiten von variablen aus anderen Quellen z.b. Datenpunkte in IOBroker ist mehr ein workaround als hilfreich. - was ich an dem Satz nicht verstehe ist, dass Du doch nahezu auf alle Datenpunkte im IOBroker (mal abgesehen von den Systemdaten) zugreifen kannst. Ok man muss oft noch eine Typkonvertierung ggf. durchführen.

                    Man kann z.Bsp um Levels dynamisch zu starten - die Hysterese als Subflow implementieren.

                    [
                        {
                            "id": "2963f527.4194ba",
                            "type": "switch",
                            "z": "b42815ec.5e6c58",
                            "name": "fLevel.On < Temperatur > fLevel.Off",
                            "property": "payload",
                            "propertyType": "msg",
                            "rules": [
                                {
                                    "t": "lt",
                                    "v": "fLevel.On",
                                    "vt": "flow"
                                },
                                {
                                    "t": "gt",
                                    "v": "fLevel.Off",
                                    "vt": "flow"
                                },
                                {
                                    "t": "lte",
                                    "v": "fLevel.Off",
                                    "vt": "flow"
                                }
                            ],
                            "checkall": "false",
                            "repair": false,
                            "outputs": 3,
                            "x": 560,
                            "y": 100,
                            "wires": [
                                [],
                                [],
                                []
                            ]
                        }
                    ]
                    

                    Zum Initialisieren bzw. Verändern der Levels schicke ich ein Nachrichten-Objekt in dem ich das untere und ober Level setzen kann.

                    In dem Beispiel:

                    msg.level -
                    Objekt mit On und Off - als nummerische Werte, um die Standardlevels von 10 (level.On) und 20 (level.Off) zu überschreiben.

                    Bei mir sieht das Ganze komplexer aus - aber ich denke das Prinzip kann man erkennen:

                    screen.png

                    Insofern find ich das eigentlich super einfach - gerade für jemand der nicht programmiert. ;)

                    Die Verzögerung habe ich nur gebaut - damit man Initialisierung und Veränderungen von aktuellen Daten unterschiedlich behandeln kann.

                    Das was Du mit eigenem Datenpunkt unter userdata.0 zu erstellen für die VIS ist ja völlig richtig und würde ich auch so machen. :)

                    Im Prinzip ist es eigentlich noch einfacher - als ich eben dargestellt habe. Man kann die in userdata.0 erstellten Datenpunkte eigenlich direkt einlesen und dann in flow Variablen abspeichern und somit ist das Ganze eigentlich schon erledigt und dynamisiert!

                    Ob man die Spanne zwischen oben oder unterem Level dann verarbeiten will - bleibt freigestellt, dann eben diesen Fall im Switch löschen.

                    Und wenn man die Level in den userdata-Punkten dynamisch berechnen will - kann man dies ja mathematisch mit einer Function-Node machen oder einer Change-Node. Dann stelle ich halt eine Temperatur ein und setze die flow-Variablen eben nach Berechnung, wenn userdata.0.temperatur geändert wurde.
                    Wenn Du kein VIS nutzt, sondern das Node-Red Dashboard - kannst natürlich auch die Flow Variablen direkt setzen - muss man halt nur initialisieren.

                    Ansonsten wird der Flow ja einfach mit den Temperaturen der Sonoff TH16 gespeist.

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    CrunkFXC 1 Antwort Letzte Antwort
                    0
                    • mickymM mickym

                      @CrunkFX

                      ...aber das verarbeiten von variablen aus anderen Quellen z.b. Datenpunkte in IOBroker ist mehr ein workaround als hilfreich. - was ich an dem Satz nicht verstehe ist, dass Du doch nahezu auf alle Datenpunkte im IOBroker (mal abgesehen von den Systemdaten) zugreifen kannst. Ok man muss oft noch eine Typkonvertierung ggf. durchführen.

                      Man kann z.Bsp um Levels dynamisch zu starten - die Hysterese als Subflow implementieren.

                      [
                          {
                              "id": "2963f527.4194ba",
                              "type": "switch",
                              "z": "b42815ec.5e6c58",
                              "name": "fLevel.On < Temperatur > fLevel.Off",
                              "property": "payload",
                              "propertyType": "msg",
                              "rules": [
                                  {
                                      "t": "lt",
                                      "v": "fLevel.On",
                                      "vt": "flow"
                                  },
                                  {
                                      "t": "gt",
                                      "v": "fLevel.Off",
                                      "vt": "flow"
                                  },
                                  {
                                      "t": "lte",
                                      "v": "fLevel.Off",
                                      "vt": "flow"
                                  }
                              ],
                              "checkall": "false",
                              "repair": false,
                              "outputs": 3,
                              "x": 560,
                              "y": 100,
                              "wires": [
                                  [],
                                  [],
                                  []
                              ]
                          }
                      ]
                      

                      Zum Initialisieren bzw. Verändern der Levels schicke ich ein Nachrichten-Objekt in dem ich das untere und ober Level setzen kann.

                      In dem Beispiel:

                      msg.level -
                      Objekt mit On und Off - als nummerische Werte, um die Standardlevels von 10 (level.On) und 20 (level.Off) zu überschreiben.

                      Bei mir sieht das Ganze komplexer aus - aber ich denke das Prinzip kann man erkennen:

                      screen.png

                      Insofern find ich das eigentlich super einfach - gerade für jemand der nicht programmiert. ;)

                      Die Verzögerung habe ich nur gebaut - damit man Initialisierung und Veränderungen von aktuellen Daten unterschiedlich behandeln kann.

                      Das was Du mit eigenem Datenpunkt unter userdata.0 zu erstellen für die VIS ist ja völlig richtig und würde ich auch so machen. :)

                      Im Prinzip ist es eigentlich noch einfacher - als ich eben dargestellt habe. Man kann die in userdata.0 erstellten Datenpunkte eigenlich direkt einlesen und dann in flow Variablen abspeichern und somit ist das Ganze eigentlich schon erledigt und dynamisiert!

                      Ob man die Spanne zwischen oben oder unterem Level dann verarbeiten will - bleibt freigestellt, dann eben diesen Fall im Switch löschen.

                      Und wenn man die Level in den userdata-Punkten dynamisch berechnen will - kann man dies ja mathematisch mit einer Function-Node machen oder einer Change-Node. Dann stelle ich halt eine Temperatur ein und setze die flow-Variablen eben nach Berechnung, wenn userdata.0.temperatur geändert wurde.
                      Wenn Du kein VIS nutzt, sondern das Node-Red Dashboard - kannst natürlich auch die Flow Variablen direkt setzen - muss man halt nur initialisieren.

                      Ansonsten wird der Flow ja einfach mit den Temperaturen der Sonoff TH16 gespeist.

                      CrunkFXC Offline
                      CrunkFXC Offline
                      CrunkFX
                      Forum Testing
                      schrieb am zuletzt editiert von
                      #16

                      @mickym Hi, deinen Ansatz finde ich sehr gut und verstehe deine Argumente für Node-Red, aber für jemanden der wenig bis gar keine Erfahrung in NodeRed hat sind das komplett böhmische Dörfer. Die hier zu bewältigende Aufgabe ist Technisch gesehen nicht sonderlich Komplex, aber in Blockly(trotz grauenvoller Übersetzung) einfacher zu Realisieren als in NodeRed, da Blockly Baukastentechnisch Arbeitet und Nodered Flow basiert. Wenn man also ganz frisch jemandem Nodered beibringen muss, dann sollte die Anfangsaufgabe keine Mammutaufgabe sein. Wenn hier jemand mit entsprechender Nodered Erfahrung dieses Problem gestellt hätte wäre ich sicher drauf eingegangen. Nichts desto trotz bleibt jedem selbst überlassen wie er seine Probleme löst, Nodered ist wie gesagt eine Super Software auch für Anfänger aber gerade bei Beispielen in denen mit Flow Messages gearbeitet wird(sprich man sieht nicht was passiert, da der Wert ja unsichtbar im Flow verteilt wird) könnte ich mir Vorstellen, dass da nicht jeder auf anhieb den durchblick hat sowie bei Blockly.

                      MFG
                      CrunkFX

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

                      mickymM 1 Antwort Letzte Antwort
                      0
                      • CrunkFXC CrunkFX

                        @mickym Hi, deinen Ansatz finde ich sehr gut und verstehe deine Argumente für Node-Red, aber für jemanden der wenig bis gar keine Erfahrung in NodeRed hat sind das komplett böhmische Dörfer. Die hier zu bewältigende Aufgabe ist Technisch gesehen nicht sonderlich Komplex, aber in Blockly(trotz grauenvoller Übersetzung) einfacher zu Realisieren als in NodeRed, da Blockly Baukastentechnisch Arbeitet und Nodered Flow basiert. Wenn man also ganz frisch jemandem Nodered beibringen muss, dann sollte die Anfangsaufgabe keine Mammutaufgabe sein. Wenn hier jemand mit entsprechender Nodered Erfahrung dieses Problem gestellt hätte wäre ich sicher drauf eingegangen. Nichts desto trotz bleibt jedem selbst überlassen wie er seine Probleme löst, Nodered ist wie gesagt eine Super Software auch für Anfänger aber gerade bei Beispielen in denen mit Flow Messages gearbeitet wird(sprich man sieht nicht was passiert, da der Wert ja unsichtbar im Flow verteilt wird) könnte ich mir Vorstellen, dass da nicht jeder auf anhieb den durchblick hat sowie bei Blockly.

                        MFG
                        CrunkFX

                        mickymM Online
                        mickymM Online
                        mickym
                        Most Active
                        schrieb am zuletzt editiert von mickym
                        #17

                        @CrunkFX
                        Ich habe mal Dein Blockly Skript importiert und versucht in Node-Red umzusetzen:

                        [
                            {
                                "id": "9f04b667.5cd998",
                                "type": "tab",
                                "label": "Flow 2",
                                "disabled": false,
                                "info": ""
                            },
                            {
                                "id": "3bcbf948.4c3446",
                                "type": "ioBroker in",
                                "z": "9f04b667.5cd998",
                                "name": "",
                                "topic": "0_userdata.0.dein_TH16_Temp_DP",
                                "payloadType": "value",
                                "onlyack": "",
                                "func": "all",
                                "gap": "",
                                "x": 230,
                                "y": 200,
                                "wires": [
                                    [
                                        "9deba34c.8a806"
                                    ]
                                ]
                            },
                            {
                                "id": "9deba34c.8a806",
                                "type": "change",
                                "z": "9f04b667.5cd998",
                                "name": "to Number",
                                "rules": [
                                    {
                                        "t": "set",
                                        "p": "payload",
                                        "pt": "msg",
                                        "to": "$number(msg.payload)\t",
                                        "tot": "jsonata"
                                    }
                                ],
                                "action": "",
                                "property": "",
                                "from": "",
                                "to": "",
                                "reg": false,
                                "x": 470,
                                "y": 200,
                                "wires": [
                                    [
                                        "79074a2f.e315f4",
                                        "79a6662f.b72558"
                                    ]
                                ]
                            },
                            {
                                "id": "79074a2f.e315f4",
                                "type": "change",
                                "z": "9f04b667.5cd998",
                                "name": "Level Oben + 0.2",
                                "rules": [
                                    {
                                        "t": "set",
                                        "p": "payload",
                                        "pt": "msg",
                                        "to": "payload + 0.2",
                                        "tot": "jsonata"
                                    },
                                    {
                                        "t": "set",
                                        "p": "LevelOff",
                                        "pt": "flow",
                                        "to": "payload",
                                        "tot": "msg"
                                    }
                                ],
                                "action": "",
                                "property": "",
                                "from": "",
                                "to": "",
                                "reg": false,
                                "x": 690,
                                "y": 180,
                                "wires": [
                                    []
                                ]
                            },
                            {
                                "id": "79a6662f.b72558",
                                "type": "change",
                                "z": "9f04b667.5cd998",
                                "name": "Level Unten - 0.2",
                                "rules": [
                                    {
                                        "t": "set",
                                        "p": "payload",
                                        "pt": "msg",
                                        "to": "payload - 0.2",
                                        "tot": "jsonata"
                                    },
                                    {
                                        "t": "set",
                                        "p": "LevelOn",
                                        "pt": "flow",
                                        "to": "payload",
                                        "tot": "msg"
                                    }
                                ],
                                "action": "",
                                "property": "",
                                "from": "",
                                "to": "",
                                "reg": false,
                                "x": 690,
                                "y": 220,
                                "wires": [
                                    []
                                ]
                            },
                            {
                                "id": "a3f4a48c.5fbea8",
                                "type": "inject",
                                "z": "9f04b667.5cd998",
                                "name": "",
                                "topic": "Temperatur",
                                "payload": "19",
                                "payloadType": "str",
                                "repeat": "",
                                "crontab": "",
                                "once": false,
                                "onceDelay": 0.1,
                                "x": 150,
                                "y": 360,
                                "wires": [
                                    [
                                        "200998b7.04c3e8"
                                    ]
                                ]
                            },
                            {
                                "id": "200998b7.04c3e8",
                                "type": "change",
                                "z": "9f04b667.5cd998",
                                "name": "to Number",
                                "rules": [
                                    {
                                        "t": "set",
                                        "p": "payload",
                                        "pt": "msg",
                                        "to": "$number(msg.payload)\t",
                                        "tot": "jsonata"
                                    }
                                ],
                                "action": "",
                                "property": "",
                                "from": "",
                                "to": "",
                                "reg": false,
                                "x": 310,
                                "y": 360,
                                "wires": [
                                    [
                                        "60e1c1db.31561"
                                    ]
                                ]
                            },
                            {
                                "id": "60e1c1db.31561",
                                "type": "switch",
                                "z": "9f04b667.5cd998",
                                "name": "Schalte",
                                "property": "payload",
                                "propertyType": "msg",
                                "rules": [
                                    {
                                        "t": "gt",
                                        "v": "LevelOff",
                                        "vt": "flow"
                                    },
                                    {
                                        "t": "lt",
                                        "v": "LevelOn",
                                        "vt": "flow"
                                    }
                                ],
                                "checkall": "true",
                                "repair": false,
                                "outputs": 2,
                                "x": 460,
                                "y": 360,
                                "wires": [
                                    [
                                        "775acae7.a07974"
                                    ],
                                    [
                                        "c65452e7.c57c8"
                                    ]
                                ]
                            },
                            {
                                "id": "775acae7.a07974",
                                "type": "change",
                                "z": "9f04b667.5cd998",
                                "name": "Ausschalten Off/False",
                                "rules": [
                                    {
                                        "t": "set",
                                        "p": "payload",
                                        "pt": "msg",
                                        "to": "false",
                                        "tot": "bool"
                                    }
                                ],
                                "action": "",
                                "property": "",
                                "from": "",
                                "to": "",
                                "reg": false,
                                "x": 700,
                                "y": 340,
                                "wires": [
                                    [
                                        "184ff99a.c85ca6"
                                    ]
                                ]
                            },
                            {
                                "id": "c65452e7.c57c8",
                                "type": "change",
                                "z": "9f04b667.5cd998",
                                "name": "Einschalten On/true",
                                "rules": [
                                    {
                                        "t": "set",
                                        "p": "payload",
                                        "pt": "msg",
                                        "to": "true",
                                        "tot": "bool"
                                    }
                                ],
                                "action": "",
                                "property": "",
                                "from": "",
                                "to": "",
                                "reg": false,
                                "x": 690,
                                "y": 380,
                                "wires": [
                                    [
                                        "184ff99a.c85ca6"
                                    ]
                                ]
                            },
                            {
                                "id": "184ff99a.c85ca6",
                                "type": "ioBroker out",
                                "z": "9f04b667.5cd998",
                                "name": "zur Steckdose",
                                "topic": "",
                                "ack": "false",
                                "autoCreate": "false",
                                "x": 980,
                                "y": 360,
                                "wires": []
                            }
                        ]
                        

                        Das sieht dann so aus:

                        screen.png

                        Und ich will niemand bekehren, aber doch vielleicht auch Alternativen aufzeigen.

                        Das wäre in meinen Augen das, was Du mit dem Blockly machst - ich habe mir das extra mal importiert. ;)

                        Ich persönlich mag dieses Flow basierende, da es gerade für Neulinge einfacher zu verstehen ist, was passiert wenn ....
                        Im Übrigen wird man eben auch gezwungen zu unterscheiden, was sind "Parameter" Flows oder dann "Schalter" Flows. Ich finde, dass man hier "erzogen" wird, die Probleme richtig zu strukturieren - deshalb bin ich halt ein kleiner Fan-Boy von Node-Red. Man möge mir das Nachsehen.

                        Statt dem Inject Node - für die Temperatur natürlich den Datenpunkt der Sonoff setzen und analog zu oben in Zahl konvertieren und natürlich den Datenpunkt zur Steckdose anpassen und ob True/False oder 0/1 oder On/Off gesetzt werden muss.

                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

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


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        602

                        Online

                        32.6k

                        Benutzer

                        82.1k

                        Themen

                        1.3m

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

                        • Du hast noch kein Konto? Registrieren

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