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. ioBroker Allgemein
  4. Shellys ("Alt und Plus") über MQTT Adapter

NEWS

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

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

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

Shellys ("Alt und Plus") über MQTT Adapter

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
512 Beiträge 5 Kommentatoren 93.2k Aufrufe 6 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.
  • mickymM mickym

    @hotspot_2 Node Red ist einfach genial ;-). Na da rennst Du bei mir offene Türen ein. Leider beschäftigen sich die meisten erst gar nicht damit. Die, die auf den Geschmack gekommen sind, habe ich noch nie wieder auf Blockly zurück migrieren sehen.;)

    Was Du halt noch machen kannst, wenn Du willst, deswegen habe ich Dir den anderen Thread verlinkt, dass Du selbst Objekte baust und mit true und false arbeitest. Aber mach erst mal - zur Optimierung und weiteren Idee ist ja immer noch Zeit. 😉

    Und wie Du siehst, wenn man einmal gelernt hat, mit Objekten umzugehen, dann ist das eigentlich ganz easy und lernt die Vorteile von Objekten kennen.

    H Offline
    H Offline
    hotspot_2
    schrieb am zuletzt editiert von hotspot_2
    #420

    @mickym Ich hätte noch mal eine Frage dazu wie Du sowas angehen würdest.

    Ich habe im Garten eine elektrische Klingel die ich über einen Shelly ansteuere. Klingelt jemand an der Haustüre dann mache ich seither über einen Blockly die Klingel zweimal an und wieder aus mit kurzen Pausen dazwischen.

    Wenn ich sowas jetzt in Node-Red machen möchte wie würde ich das angehen? Gibt es da sowas wie eine Schleife oder so?

    Trigger wäre ein Ansatz gewesen aber der macht halt nur einmal an und wieder aus.

    mickymM 1 Antwort Letzte Antwort
    0
    • H hotspot_2

      @mickym Ich hätte noch mal eine Frage dazu wie Du sowas angehen würdest.

      Ich habe im Garten eine elektrische Klingel die ich über einen Shelly ansteuere. Klingelt jemand an der Haustüre dann mache ich seither über einen Blockly die Klingel zweimal an und wieder aus mit kurzen Pausen dazwischen.

      Wenn ich sowas jetzt in Node-Red machen möchte wie würde ich das angehen? Gibt es da sowas wie eine Schleife oder so?

      Trigger wäre ein Ansatz gewesen aber der macht halt nur einmal an und wieder aus.

      mickymM Offline
      mickymM Offline
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #421

      @hotspot_2 Nein die Trigger Node kann auch unendlich oft in bestimmten Abständen triggern. Aber natürlich kannst Du auch Schleifen bauen - du musst ja nun den Ausgang mit dem Eingang verbinden. 😉

      66f58976-5f96-44a9-8518-aad3c4164337-image.png

      Das macht sie solange, bis Du die Trigger Node zurücksetzt.

      Wenn die Klingel zwischendrin wieder ausschalten musst, dann kannst auch wie bisher den trigger nehmen und über den 2.Ausgang die Schleife antriggern.

      Du kannst dann über eine Flow-variable zählen oder in dem Fall auch über eine function-Node und JS - wenn Dir für einen stupiden Zähler die Variable im FlowKontext zu viel ist. 😉 Hier mal 2 Varianten.

      Hier mal eine Variante mit Flow-Kontext:

      4ee6f2f9-ae2f-42a1-80c6-23d25747c7e7-image.png

      [
         {
             "id": "0af2185be7349ad3",
             "type": "trigger",
             "z": "2e7d4cac81c671e3",
             "name": "",
             "op1": "true",
             "op2": "false",
             "op1type": "bool",
             "op2type": "bool",
             "duration": "2",
             "extend": false,
             "overrideDelay": false,
             "units": "s",
             "reset": "0",
             "bytopic": "all",
             "topic": "topic",
             "outputs": 2,
             "x": 480,
             "y": 4460,
             "wires": [
                 [
                     "92d78df371e2dde2"
                 ],
                 [
                     "92d78df371e2dde2",
                     "3c4db8300739ee09"
                 ]
             ]
         },
         {
             "id": "92d78df371e2dde2",
             "type": "debug",
             "z": "2e7d4cac81c671e3",
             "name": "Klingel",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 710,
             "y": 4440,
             "wires": []
         },
         {
             "id": "7a93f96057f10e61",
             "type": "inject",
             "z": "2e7d4cac81c671e3",
             "name": "Es klingelt",
             "props": [
                 {
                     "p": "payload"
                 },
                 {
                     "p": "topic",
                     "vt": "str"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "",
             "payload": "true",
             "payloadType": "bool",
             "x": 280,
             "y": 4460,
             "wires": [
                 [
                     "0af2185be7349ad3"
                 ]
             ]
         },
         {
             "id": "3c4db8300739ee09",
             "type": "change",
             "z": "2e7d4cac81c671e3",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "numKlingel",
                     "tot": "flow"
                 },
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "payload ? payload : 0",
                     "tot": "jsonata"
                 },
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "(payload + 1) % 2",
                     "tot": "jsonata"
                 },
                 {
                     "t": "set",
                     "p": "numKlingel",
                     "pt": "flow",
                     "to": "payload",
                     "tot": "msg"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 490,
             "y": 4540,
             "wires": [
                 [
                     "0af2185be7349ad3"
                 ]
             ]
         }
      ]
      

      Hier das gleiche mit einer function node und node context, falls Du lieber mit Javascript programmieren willst. 😉

      cc0c6bd9-510c-4959-bf2d-9f42cad4ad3d-image.png

      ![4025c15c-8035-4349-ba7d-81e6b3f4ebd2-image.png](/assets/uploads/files/1681413147135-4025c15c-8035-4349-ba7d-81e6b3f4ebd2-image-resized.png) code_text
      

      Falls nicht zwischen true und false gewechselt werden muss, kannst Du einfach eine function Node nehmen und eine Delay node:

      2caf75ee-c432-4356-9554-702f56d335d7-image.png

      [
          {
              "id": "92d78df371e2dde2",
              "type": "debug",
              "z": "2e7d4cac81c671e3",
              "name": "Klingel",
              "active": true,
              "tosidebar": true,
              "console": false,
              "tostatus": false,
              "complete": "payload",
              "targetType": "msg",
              "statusVal": "",
              "statusType": "auto",
              "x": 1070,
              "y": 4340,
              "wires": []
          },
          {
              "id": "7a93f96057f10e61",
              "type": "inject",
              "z": "2e7d4cac81c671e3",
              "name": "Es klingelt",
              "props": [
                  {
                      "p": "payload"
                  },
                  {
                      "p": "topic",
                      "vt": "str"
                  }
              ],
              "repeat": "",
              "crontab": "",
              "once": false,
              "onceDelay": 0.1,
              "topic": "",
              "payload": "true",
              "payloadType": "bool",
              "x": 660,
              "y": 4340,
              "wires": [
                  [
                      "e0509ab40a79eeb9"
                  ]
              ]
          },
          {
              "id": "e0509ab40a79eeb9",
              "type": "function",
              "z": "2e7d4cac81c671e3",
              "name": "zähler bis 3",
              "func": "let counter = context.get(\"zähler\") || 0;\ncounter ++;\ncontext.set(\"zähler\",counter %4);\nif (counter %4 !== 0 ) return msg; ",
              "outputs": 1,
              "noerr": 0,
              "initialize": "",
              "finalize": "",
              "libs": [],
              "x": 850,
              "y": 4340,
              "wires": [
                  [
                      "92d78df371e2dde2",
                      "5ed1e1284f6ff64c"
                  ]
              ]
          },
          {
              "id": "5ed1e1284f6ff64c",
              "type": "delay",
              "z": "2e7d4cac81c671e3",
              "name": "",
              "pauseType": "delay",
              "timeout": "5",
              "timeoutUnits": "seconds",
              "rate": "1",
              "nbRateUnits": "1",
              "rateUnits": "second",
              "randomFirst": "1",
              "randomLast": "5",
              "randomUnits": "seconds",
              "drop": false,
              "allowrate": false,
              "outputs": 1,
              "x": 840,
              "y": 4420,
              "wires": [
                  [
                      "e0509ab40a79eeb9"
                  ]
              ]
          }
      ]
      

      So und hier nochmal das Gleiche ohne Javascript Programmierung und nur mit Change Node und Flow Kontext.

      d322c1d3-a77a-4793-9519-525589d88a1b-image.png

      [
         {
             "id": "92d78df371e2dde2",
             "type": "debug",
             "z": "2e7d4cac81c671e3",
             "name": "Klingel",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 1070,
             "y": 4340,
             "wires": []
         },
         {
             "id": "7a93f96057f10e61",
             "type": "inject",
             "z": "2e7d4cac81c671e3",
             "name": "Es klingelt",
             "props": [
                 {
                     "p": "payload"
                 },
                 {
                     "p": "topic",
                     "vt": "str"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "",
             "payload": "true",
             "payloadType": "bool",
             "x": 660,
             "y": 4340,
             "wires": [
                 [
                     "3c4db8300739ee09"
                 ]
             ]
         },
         {
             "id": "5ed1e1284f6ff64c",
             "type": "delay",
             "z": "2e7d4cac81c671e3",
             "name": "",
             "pauseType": "delay",
             "timeout": "5",
             "timeoutUnits": "seconds",
             "rate": "1",
             "nbRateUnits": "1",
             "rateUnits": "second",
             "randomFirst": "1",
             "randomLast": "5",
             "randomUnits": "seconds",
             "drop": false,
             "allowrate": false,
             "outputs": 1,
             "x": 840,
             "y": 4420,
             "wires": [
                 [
                     "3c4db8300739ee09"
                 ]
             ]
         },
         {
             "id": "3c4db8300739ee09",
             "type": "change",
             "z": "2e7d4cac81c671e3",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "counter",
                     "pt": "msg",
                     "to": "numKlingel",
                     "tot": "flow"
                 },
                 {
                     "t": "set",
                     "p": "counter",
                     "pt": "msg",
                     "to": "counter? counter : 0",
                     "tot": "jsonata"
                 },
                 {
                     "t": "set",
                     "p": "counter",
                     "pt": "msg",
                     "to": "(counter + 1) % 3",
                     "tot": "jsonata"
                 },
                 {
                     "t": "set",
                     "p": "reset",
                     "pt": "msg",
                     "to": "counter = 0 ? true : undefined",
                     "tot": "jsonata"
                 },
                 {
                     "t": "set",
                     "p": "numKlingel",
                     "pt": "flow",
                     "to": "counter",
                     "tot": "msg"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 850,
             "y": 4340,
             "wires": [
                 [
                     "92d78df371e2dde2",
                     "5ed1e1284f6ff64c"
                 ]
             ]
         },
         {
             "id": "e0509ab40a79eeb9",
             "type": "function",
             "z": "2e7d4cac81c671e3",
             "d": true,
             "name": "zähler bis 3",
             "func": "let counter = context.get(\"zähler\") || 0;\ncounter ++;\ncontext.set(\"zähler\",counter %4);\nif (counter %4 !== 0 ) return msg; ",
             "outputs": 1,
             "noerr": 0,
             "initialize": "",
             "finalize": "",
             "libs": [],
             "x": 850,
             "y": 4480,
             "wires": [
                 []
             ]
         }
      ]
      

      So keine Schleife - aber noch ein ganz anderer Lösungsansatz ist, Du machst Dir zum Beispiel ein Array mit Nachrichten die Du schicken möchtest und splittest die einfach auf . Später wirst Du die split Node mal kennenlernen, die eine Schleife der herkömmlichen Programmierung ersetzt.

      Nehmen wir mal Du möchstest verschiedene Nachrichten einfach mit einer delay Node verschicken, dann geht zum Beispiel auch so was. 😉

      8cf09a04-ed42-46f9-b3e7-625d132eec15-image.png

      Du siehst die Möglichkeiten sind vielfältig. 😉

      [
         {
             "id": "d74c9ca8835acb75",
             "type": "inject",
             "z": "2e7d4cac81c671e3",
             "name": "",
             "props": [
                 {
                     "p": "payload"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "",
             "payload": "[true,false, true,false,true,false]",
             "payloadType": "json",
             "x": 970,
             "y": 4440,
             "wires": [
                 [
                     "23f41eaa57ebf7c3",
                     "8b0a0ba6f8f58f1c"
                 ]
             ]
         },
         {
             "id": "23f41eaa57ebf7c3",
             "type": "debug",
             "z": "2e7d4cac81c671e3",
             "name": "Array",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 1130,
             "y": 4400,
             "wires": []
         },
         {
             "id": "8b0a0ba6f8f58f1c",
             "type": "split",
             "z": "2e7d4cac81c671e3",
             "name": "",
             "splt": "\\n",
             "spltType": "str",
             "arraySplt": 1,
             "arraySpltType": "len",
             "stream": false,
             "addname": "",
             "x": 1130,
             "y": 4440,
             "wires": [
                 [
                     "afe4291f50fdaa48",
                     "49df363c23a16584"
                 ]
             ]
         },
         {
             "id": "afe4291f50fdaa48",
             "type": "debug",
             "z": "2e7d4cac81c671e3",
             "name": "aufgesplittetes Array",
             "active": false,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 1320,
             "y": 4500,
             "wires": []
         },
         {
             "id": "49df363c23a16584",
             "type": "delay",
             "z": "2e7d4cac81c671e3",
             "name": "",
             "pauseType": "rate",
             "timeout": "5",
             "timeoutUnits": "seconds",
             "rate": "1",
             "nbRateUnits": "5",
             "rateUnits": "second",
             "randomFirst": "1",
             "randomLast": "5",
             "randomUnits": "seconds",
             "drop": false,
             "allowrate": false,
             "outputs": 1,
             "x": 1320,
             "y": 4440,
             "wires": [
                 [
                     "e48688c7ddd744a9"
                 ]
             ]
         },
         {
             "id": "e48688c7ddd744a9",
             "type": "debug",
             "z": "2e7d4cac81c671e3",
             "name": "in dosierter Form",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 1570,
             "y": 4440,
             "wires": []
         }
      ]
      

      Und natürlich kannst Du auch alles in JS programmieren mit einer function Node. 😉 - falls Du einfach codieren willst.

      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.

      D 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        @hotspot_2 Nein die Trigger Node kann auch unendlich oft in bestimmten Abständen triggern. Aber natürlich kannst Du auch Schleifen bauen - du musst ja nun den Ausgang mit dem Eingang verbinden. 😉

        66f58976-5f96-44a9-8518-aad3c4164337-image.png

        Das macht sie solange, bis Du die Trigger Node zurücksetzt.

        Wenn die Klingel zwischendrin wieder ausschalten musst, dann kannst auch wie bisher den trigger nehmen und über den 2.Ausgang die Schleife antriggern.

        Du kannst dann über eine Flow-variable zählen oder in dem Fall auch über eine function-Node und JS - wenn Dir für einen stupiden Zähler die Variable im FlowKontext zu viel ist. 😉 Hier mal 2 Varianten.

        Hier mal eine Variante mit Flow-Kontext:

        4ee6f2f9-ae2f-42a1-80c6-23d25747c7e7-image.png

        [
           {
               "id": "0af2185be7349ad3",
               "type": "trigger",
               "z": "2e7d4cac81c671e3",
               "name": "",
               "op1": "true",
               "op2": "false",
               "op1type": "bool",
               "op2type": "bool",
               "duration": "2",
               "extend": false,
               "overrideDelay": false,
               "units": "s",
               "reset": "0",
               "bytopic": "all",
               "topic": "topic",
               "outputs": 2,
               "x": 480,
               "y": 4460,
               "wires": [
                   [
                       "92d78df371e2dde2"
                   ],
                   [
                       "92d78df371e2dde2",
                       "3c4db8300739ee09"
                   ]
               ]
           },
           {
               "id": "92d78df371e2dde2",
               "type": "debug",
               "z": "2e7d4cac81c671e3",
               "name": "Klingel",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "payload",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 710,
               "y": 4440,
               "wires": []
           },
           {
               "id": "7a93f96057f10e61",
               "type": "inject",
               "z": "2e7d4cac81c671e3",
               "name": "Es klingelt",
               "props": [
                   {
                       "p": "payload"
                   },
                   {
                       "p": "topic",
                       "vt": "str"
                   }
               ],
               "repeat": "",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "true",
               "payloadType": "bool",
               "x": 280,
               "y": 4460,
               "wires": [
                   [
                       "0af2185be7349ad3"
                   ]
               ]
           },
           {
               "id": "3c4db8300739ee09",
               "type": "change",
               "z": "2e7d4cac81c671e3",
               "name": "",
               "rules": [
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "numKlingel",
                       "tot": "flow"
                   },
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "payload ? payload : 0",
                       "tot": "jsonata"
                   },
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "(payload + 1) % 2",
                       "tot": "jsonata"
                   },
                   {
                       "t": "set",
                       "p": "numKlingel",
                       "pt": "flow",
                       "to": "payload",
                       "tot": "msg"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 490,
               "y": 4540,
               "wires": [
                   [
                       "0af2185be7349ad3"
                   ]
               ]
           }
        ]
        

        Hier das gleiche mit einer function node und node context, falls Du lieber mit Javascript programmieren willst. 😉

        cc0c6bd9-510c-4959-bf2d-9f42cad4ad3d-image.png

        ![4025c15c-8035-4349-ba7d-81e6b3f4ebd2-image.png](/assets/uploads/files/1681413147135-4025c15c-8035-4349-ba7d-81e6b3f4ebd2-image-resized.png) code_text
        

        Falls nicht zwischen true und false gewechselt werden muss, kannst Du einfach eine function Node nehmen und eine Delay node:

        2caf75ee-c432-4356-9554-702f56d335d7-image.png

        [
            {
                "id": "92d78df371e2dde2",
                "type": "debug",
                "z": "2e7d4cac81c671e3",
                "name": "Klingel",
                "active": true,
                "tosidebar": true,
                "console": false,
                "tostatus": false,
                "complete": "payload",
                "targetType": "msg",
                "statusVal": "",
                "statusType": "auto",
                "x": 1070,
                "y": 4340,
                "wires": []
            },
            {
                "id": "7a93f96057f10e61",
                "type": "inject",
                "z": "2e7d4cac81c671e3",
                "name": "Es klingelt",
                "props": [
                    {
                        "p": "payload"
                    },
                    {
                        "p": "topic",
                        "vt": "str"
                    }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "true",
                "payloadType": "bool",
                "x": 660,
                "y": 4340,
                "wires": [
                    [
                        "e0509ab40a79eeb9"
                    ]
                ]
            },
            {
                "id": "e0509ab40a79eeb9",
                "type": "function",
                "z": "2e7d4cac81c671e3",
                "name": "zähler bis 3",
                "func": "let counter = context.get(\"zähler\") || 0;\ncounter ++;\ncontext.set(\"zähler\",counter %4);\nif (counter %4 !== 0 ) return msg; ",
                "outputs": 1,
                "noerr": 0,
                "initialize": "",
                "finalize": "",
                "libs": [],
                "x": 850,
                "y": 4340,
                "wires": [
                    [
                        "92d78df371e2dde2",
                        "5ed1e1284f6ff64c"
                    ]
                ]
            },
            {
                "id": "5ed1e1284f6ff64c",
                "type": "delay",
                "z": "2e7d4cac81c671e3",
                "name": "",
                "pauseType": "delay",
                "timeout": "5",
                "timeoutUnits": "seconds",
                "rate": "1",
                "nbRateUnits": "1",
                "rateUnits": "second",
                "randomFirst": "1",
                "randomLast": "5",
                "randomUnits": "seconds",
                "drop": false,
                "allowrate": false,
                "outputs": 1,
                "x": 840,
                "y": 4420,
                "wires": [
                    [
                        "e0509ab40a79eeb9"
                    ]
                ]
            }
        ]
        

        So und hier nochmal das Gleiche ohne Javascript Programmierung und nur mit Change Node und Flow Kontext.

        d322c1d3-a77a-4793-9519-525589d88a1b-image.png

        [
           {
               "id": "92d78df371e2dde2",
               "type": "debug",
               "z": "2e7d4cac81c671e3",
               "name": "Klingel",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "payload",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 1070,
               "y": 4340,
               "wires": []
           },
           {
               "id": "7a93f96057f10e61",
               "type": "inject",
               "z": "2e7d4cac81c671e3",
               "name": "Es klingelt",
               "props": [
                   {
                       "p": "payload"
                   },
                   {
                       "p": "topic",
                       "vt": "str"
                   }
               ],
               "repeat": "",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "true",
               "payloadType": "bool",
               "x": 660,
               "y": 4340,
               "wires": [
                   [
                       "3c4db8300739ee09"
                   ]
               ]
           },
           {
               "id": "5ed1e1284f6ff64c",
               "type": "delay",
               "z": "2e7d4cac81c671e3",
               "name": "",
               "pauseType": "delay",
               "timeout": "5",
               "timeoutUnits": "seconds",
               "rate": "1",
               "nbRateUnits": "1",
               "rateUnits": "second",
               "randomFirst": "1",
               "randomLast": "5",
               "randomUnits": "seconds",
               "drop": false,
               "allowrate": false,
               "outputs": 1,
               "x": 840,
               "y": 4420,
               "wires": [
                   [
                       "3c4db8300739ee09"
                   ]
               ]
           },
           {
               "id": "3c4db8300739ee09",
               "type": "change",
               "z": "2e7d4cac81c671e3",
               "name": "",
               "rules": [
                   {
                       "t": "set",
                       "p": "counter",
                       "pt": "msg",
                       "to": "numKlingel",
                       "tot": "flow"
                   },
                   {
                       "t": "set",
                       "p": "counter",
                       "pt": "msg",
                       "to": "counter? counter : 0",
                       "tot": "jsonata"
                   },
                   {
                       "t": "set",
                       "p": "counter",
                       "pt": "msg",
                       "to": "(counter + 1) % 3",
                       "tot": "jsonata"
                   },
                   {
                       "t": "set",
                       "p": "reset",
                       "pt": "msg",
                       "to": "counter = 0 ? true : undefined",
                       "tot": "jsonata"
                   },
                   {
                       "t": "set",
                       "p": "numKlingel",
                       "pt": "flow",
                       "to": "counter",
                       "tot": "msg"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 850,
               "y": 4340,
               "wires": [
                   [
                       "92d78df371e2dde2",
                       "5ed1e1284f6ff64c"
                   ]
               ]
           },
           {
               "id": "e0509ab40a79eeb9",
               "type": "function",
               "z": "2e7d4cac81c671e3",
               "d": true,
               "name": "zähler bis 3",
               "func": "let counter = context.get(\"zähler\") || 0;\ncounter ++;\ncontext.set(\"zähler\",counter %4);\nif (counter %4 !== 0 ) return msg; ",
               "outputs": 1,
               "noerr": 0,
               "initialize": "",
               "finalize": "",
               "libs": [],
               "x": 850,
               "y": 4480,
               "wires": [
                   []
               ]
           }
        ]
        

        So keine Schleife - aber noch ein ganz anderer Lösungsansatz ist, Du machst Dir zum Beispiel ein Array mit Nachrichten die Du schicken möchtest und splittest die einfach auf . Später wirst Du die split Node mal kennenlernen, die eine Schleife der herkömmlichen Programmierung ersetzt.

        Nehmen wir mal Du möchstest verschiedene Nachrichten einfach mit einer delay Node verschicken, dann geht zum Beispiel auch so was. 😉

        8cf09a04-ed42-46f9-b3e7-625d132eec15-image.png

        Du siehst die Möglichkeiten sind vielfältig. 😉

        [
           {
               "id": "d74c9ca8835acb75",
               "type": "inject",
               "z": "2e7d4cac81c671e3",
               "name": "",
               "props": [
                   {
                       "p": "payload"
                   }
               ],
               "repeat": "",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "[true,false, true,false,true,false]",
               "payloadType": "json",
               "x": 970,
               "y": 4440,
               "wires": [
                   [
                       "23f41eaa57ebf7c3",
                       "8b0a0ba6f8f58f1c"
                   ]
               ]
           },
           {
               "id": "23f41eaa57ebf7c3",
               "type": "debug",
               "z": "2e7d4cac81c671e3",
               "name": "Array",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "payload",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 1130,
               "y": 4400,
               "wires": []
           },
           {
               "id": "8b0a0ba6f8f58f1c",
               "type": "split",
               "z": "2e7d4cac81c671e3",
               "name": "",
               "splt": "\\n",
               "spltType": "str",
               "arraySplt": 1,
               "arraySpltType": "len",
               "stream": false,
               "addname": "",
               "x": 1130,
               "y": 4440,
               "wires": [
                   [
                       "afe4291f50fdaa48",
                       "49df363c23a16584"
                   ]
               ]
           },
           {
               "id": "afe4291f50fdaa48",
               "type": "debug",
               "z": "2e7d4cac81c671e3",
               "name": "aufgesplittetes Array",
               "active": false,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "payload",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 1320,
               "y": 4500,
               "wires": []
           },
           {
               "id": "49df363c23a16584",
               "type": "delay",
               "z": "2e7d4cac81c671e3",
               "name": "",
               "pauseType": "rate",
               "timeout": "5",
               "timeoutUnits": "seconds",
               "rate": "1",
               "nbRateUnits": "5",
               "rateUnits": "second",
               "randomFirst": "1",
               "randomLast": "5",
               "randomUnits": "seconds",
               "drop": false,
               "allowrate": false,
               "outputs": 1,
               "x": 1320,
               "y": 4440,
               "wires": [
                   [
                       "e48688c7ddd744a9"
                   ]
               ]
           },
           {
               "id": "e48688c7ddd744a9",
               "type": "debug",
               "z": "2e7d4cac81c671e3",
               "name": "in dosierter Form",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "payload",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 1570,
               "y": 4440,
               "wires": []
           }
        ]
        

        Und natürlich kannst Du auch alles in JS programmieren mit einer function Node. 😉 - falls Du einfach codieren willst.

        D Offline
        D Offline
        dos1973
        schrieb am zuletzt editiert von
        #422

        @mickym

        Node Red ist schon cool - aber ich finde sauschwer, daran liegts vielleicht. blockly bist schnell drin und lässt sich irgendwie leichter lesen.

        mickymM 1 Antwort Letzte Antwort
        0
        • D dos1973

          @mickym

          Node Red ist schon cool - aber ich finde sauschwer, daran liegts vielleicht. blockly bist schnell drin und lässt sich irgendwie leichter lesen.

          mickymM Offline
          mickymM Offline
          mickym
          Most Active
          schrieb am zuletzt editiert von
          #423

          @dos1973 Na ich finde es ganz und gar nicht schwer und eigentlich viel einfacher zu lesen, weil Du Dich nur an den Kabeln entlang hangeln musst. Blockly ist viel zu starr an die herkömmliche Programmierlogik angelehnt und du kannst keine Funktionsblöcke bilden.

          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.

          D 1 Antwort Letzte Antwort
          0
          • mickymM mickym

            @dos1973 Na ich finde es ganz und gar nicht schwer und eigentlich viel einfacher zu lesen, weil Du Dich nur an den Kabeln entlang hangeln musst. Blockly ist viel zu starr an die herkömmliche Programmierlogik angelehnt und du kannst keine Funktionsblöcke bilden.

            D Offline
            D Offline
            dos1973
            schrieb am zuletzt editiert von
            #424

            @mickym
            Du … bist ja von flows umschwungen 😂
            Bei dir sieht das immer so easy und logisch aus.

            mickymM 1 Antwort Letzte Antwort
            0
            • D dos1973

              @mickym
              Du … bist ja von flows umschwungen 😂
              Bei dir sieht das immer so easy und logisch aus.

              mickymM Offline
              mickymM Offline
              mickym
              Most Active
              schrieb am zuletzt editiert von
              #425

              @dos1973 sagte in Shellys ("Alt und Plus") über MQTT Adapter:

              @mickym
              Du … bist ja von flows umschwungen 😂
              Bei dir sieht das immer so easy und logisch aus.

              Na Du musst Dir doch nur vorstellen, wie ein Nachrichtenobjekt durch die Kabel flutscht und Dir dann jede Node betrachtest, was diese mit dem Nachrichtenobjekt anstellt. 😉 - Das schöne ist - Du kannst über Inject Nodes - Zwischenergebnisse in Deinen Flow injizieren, über debug Nodes Dich versichern, dass die Nachrichtenobjekte noch so aussehen, wie Du es erwartest. Mal ein Kabel kappen, um die Hardware nicht unnötig zu belasten und wie gesagt es gibt auch Nodes, die ganze Adapter ersetzen, wenn die mal nicht so wollen, wie man sich das vorstellt.

              Du musst nur etwas Vorstellungskraft entwickeln - so ein Nachrichtenobjekt zu sein und durch die Kabel zu fließen. 😉

              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.

              H 1 Antwort Letzte Antwort
              1
              • mickymM mickym

                @dos1973 sagte in Shellys ("Alt und Plus") über MQTT Adapter:

                @mickym
                Du … bist ja von flows umschwungen 😂
                Bei dir sieht das immer so easy und logisch aus.

                Na Du musst Dir doch nur vorstellen, wie ein Nachrichtenobjekt durch die Kabel flutscht und Dir dann jede Node betrachtest, was diese mit dem Nachrichtenobjekt anstellt. 😉 - Das schöne ist - Du kannst über Inject Nodes - Zwischenergebnisse in Deinen Flow injizieren, über debug Nodes Dich versichern, dass die Nachrichtenobjekte noch so aussehen, wie Du es erwartest. Mal ein Kabel kappen, um die Hardware nicht unnötig zu belasten und wie gesagt es gibt auch Nodes, die ganze Adapter ersetzen, wenn die mal nicht so wollen, wie man sich das vorstellt.

                Du musst nur etwas Vorstellungskraft entwickeln - so ein Nachrichtenobjekt zu sein und durch die Kabel zu fließen. 😉

                H Offline
                H Offline
                hotspot_2
                schrieb am zuletzt editiert von hotspot_2
                #426

                @mickym

                Diese Variante:

                a658ee6e-8561-4dcc-8b82-4325e24a105f-2023-04-14_10h06_24.png

                Ist mir sehr sympatisch.

                Würde ich damit auch so eine Folge hinbekommen:

                True - 2 Sekunken Pause - False - 2 Sekunden Pause - True 2 Sekundnen Pause- False

                Also quasi 2 mal klingeln mit Pause dazwischen? Im Moment wird ja wieder direkt nach false true geschickt.

                mickymM 1 Antwort Letzte Antwort
                0
                • H hotspot_2

                  @mickym

                  Diese Variante:

                  a658ee6e-8561-4dcc-8b82-4325e24a105f-2023-04-14_10h06_24.png

                  Ist mir sehr sympatisch.

                  Würde ich damit auch so eine Folge hinbekommen:

                  True - 2 Sekunken Pause - False - 2 Sekunden Pause - True 2 Sekundnen Pause- False

                  Also quasi 2 mal klingeln mit Pause dazwischen? Im Moment wird ja wieder direkt nach false true geschickt.

                  mickymM Offline
                  mickymM Offline
                  mickym
                  Most Active
                  schrieb am zuletzt editiert von mickym
                  #427

                  @hotspot_2 dann nimm doch lieber die letzte Variante mit dem Array, da kommst auch ohne Variable und Flow Kontext aus. Das Array definierst einfach in einer Change-Node. Damit steuerst Du über ein Array einfach die Nachrichtenfolge und begrenzt die Nachrichtenrate über die delay Node.

                  f0fdc7b0-2aba-47cb-b80d-b6132bb3073e-image.png

                  [
                     {
                         "id": "c8b50d3d51d90b9c",
                         "type": "inject",
                         "z": "2e7d4cac81c671e3",
                         "name": "Es klingelt",
                         "props": [
                             {
                                 "p": "payload"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "",
                         "payload": "true",
                         "payloadType": "bool",
                         "x": 520,
                         "y": 4360,
                         "wires": [
                             [
                                 "79bf8d45a373fc13"
                             ]
                         ]
                     },
                     {
                         "id": "79bf8d45a373fc13",
                         "type": "change",
                         "z": "2e7d4cac81c671e3",
                         "name": "",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "[true,false,true,false]",
                                 "tot": "json"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 710,
                         "y": 4360,
                         "wires": [
                             [
                                 "32dd43edf0eaf0dd"
                             ]
                         ]
                     },
                     {
                         "id": "32dd43edf0eaf0dd",
                         "type": "split",
                         "z": "2e7d4cac81c671e3",
                         "name": "",
                         "splt": "\\n",
                         "spltType": "str",
                         "arraySplt": 1,
                         "arraySpltType": "len",
                         "stream": false,
                         "addname": "",
                         "x": 890,
                         "y": 4360,
                         "wires": [
                             [
                                 "d7b7548fa616ba39"
                             ]
                         ]
                     },
                     {
                         "id": "5384ef4e3a1e8116",
                         "type": "debug",
                         "z": "2e7d4cac81c671e3",
                         "name": "Klingel",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "payload",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 1270,
                         "y": 4360,
                         "wires": []
                     },
                     {
                         "id": "d7b7548fa616ba39",
                         "type": "delay",
                         "z": "2e7d4cac81c671e3",
                         "name": "",
                         "pauseType": "rate",
                         "timeout": "5",
                         "timeoutUnits": "seconds",
                         "rate": "1",
                         "nbRateUnits": "2",
                         "rateUnits": "second",
                         "randomFirst": "1",
                         "randomLast": "5",
                         "randomUnits": "seconds",
                         "drop": false,
                         "allowrate": false,
                         "outputs": 1,
                         "x": 1080,
                         "y": 4360,
                         "wires": [
                             [
                                 "5384ef4e3a1e8116"
                             ]
                         ]
                     }
                  ]
                  


                  Du siehst an den Zeitstempeln alle 2 s eine Nachricht. 😉 Außerdem siehst du an der Delay Node im Status gleich, wieviele Nachrichten noch kommen.

                  Bei der Variante unten von dir müsstest Du noch eine delay Node mit 2s in die Schleife einfügen, da finde ich das ohne Flowkontext viel einfacher und intuitiver.

                  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.

                  H 1 Antwort Letzte Antwort
                  0
                  • mickymM mickym

                    @hotspot_2 dann nimm doch lieber die letzte Variante mit dem Array, da kommst auch ohne Variable und Flow Kontext aus. Das Array definierst einfach in einer Change-Node. Damit steuerst Du über ein Array einfach die Nachrichtenfolge und begrenzt die Nachrichtenrate über die delay Node.

                    f0fdc7b0-2aba-47cb-b80d-b6132bb3073e-image.png

                    [
                       {
                           "id": "c8b50d3d51d90b9c",
                           "type": "inject",
                           "z": "2e7d4cac81c671e3",
                           "name": "Es klingelt",
                           "props": [
                               {
                                   "p": "payload"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "",
                           "payload": "true",
                           "payloadType": "bool",
                           "x": 520,
                           "y": 4360,
                           "wires": [
                               [
                                   "79bf8d45a373fc13"
                               ]
                           ]
                       },
                       {
                           "id": "79bf8d45a373fc13",
                           "type": "change",
                           "z": "2e7d4cac81c671e3",
                           "name": "",
                           "rules": [
                               {
                                   "t": "set",
                                   "p": "payload",
                                   "pt": "msg",
                                   "to": "[true,false,true,false]",
                                   "tot": "json"
                               }
                           ],
                           "action": "",
                           "property": "",
                           "from": "",
                           "to": "",
                           "reg": false,
                           "x": 710,
                           "y": 4360,
                           "wires": [
                               [
                                   "32dd43edf0eaf0dd"
                               ]
                           ]
                       },
                       {
                           "id": "32dd43edf0eaf0dd",
                           "type": "split",
                           "z": "2e7d4cac81c671e3",
                           "name": "",
                           "splt": "\\n",
                           "spltType": "str",
                           "arraySplt": 1,
                           "arraySpltType": "len",
                           "stream": false,
                           "addname": "",
                           "x": 890,
                           "y": 4360,
                           "wires": [
                               [
                                   "d7b7548fa616ba39"
                               ]
                           ]
                       },
                       {
                           "id": "5384ef4e3a1e8116",
                           "type": "debug",
                           "z": "2e7d4cac81c671e3",
                           "name": "Klingel",
                           "active": true,
                           "tosidebar": true,
                           "console": false,
                           "tostatus": false,
                           "complete": "payload",
                           "targetType": "msg",
                           "statusVal": "",
                           "statusType": "auto",
                           "x": 1270,
                           "y": 4360,
                           "wires": []
                       },
                       {
                           "id": "d7b7548fa616ba39",
                           "type": "delay",
                           "z": "2e7d4cac81c671e3",
                           "name": "",
                           "pauseType": "rate",
                           "timeout": "5",
                           "timeoutUnits": "seconds",
                           "rate": "1",
                           "nbRateUnits": "2",
                           "rateUnits": "second",
                           "randomFirst": "1",
                           "randomLast": "5",
                           "randomUnits": "seconds",
                           "drop": false,
                           "allowrate": false,
                           "outputs": 1,
                           "x": 1080,
                           "y": 4360,
                           "wires": [
                               [
                                   "5384ef4e3a1e8116"
                               ]
                           ]
                       }
                    ]
                    


                    Du siehst an den Zeitstempeln alle 2 s eine Nachricht. 😉 Außerdem siehst du an der Delay Node im Status gleich, wieviele Nachrichten noch kommen.

                    Bei der Variante unten von dir müsstest Du noch eine delay Node mit 2s in die Schleife einfügen, da finde ich das ohne Flowkontext viel einfacher und intuitiver.

                    H Offline
                    H Offline
                    hotspot_2
                    schrieb am zuletzt editiert von
                    #428

                    @mickym Funktioniert perfekt!

                    Hast Du mir noch einen Tipp wie ich den Eingang entprellen kann (Klingeltaster). So dass z.B. alle 2 Sekunden nur eine Meldung durchgeht?

                    mickymM 1 Antwort Letzte Antwort
                    0
                    • H hotspot_2

                      @mickym Funktioniert perfekt!

                      Hast Du mir noch einen Tipp wie ich den Eingang entprellen kann (Klingeltaster). So dass z.B. alle 2 Sekunden nur eine Meldung durchgeht?

                      mickymM Offline
                      mickymM Offline
                      mickym
                      Most Active
                      schrieb am zuletzt editiert von mickym
                      #429

                      @hotspot_2 Ja mit der tollen Trigger Node 😉

                      b9b0c576-6ed4-4fc0-895f-dd6533674e84-image.png

                      oder ebenfalls mit der Delay Node 😉 und Begrenzung der Nachrichtenrate 😉

                      acc53dc6-340e-4f5e-ac2a-9cdf0515426b-image.png

                      hier dann halt die Zwischennachrichten löschen.

                      Bei der Delay Node kommt in jedem Fall eine Nachricht durch nach 2s. Bei der Trigger Node kannst Du entscheiden, ob nach 2 Sekunden eine Nachricht kommt (also Haken bei Verzögerung verlängern deaktivieren) oder ob Du den Dauerklingler solange ignorierst, bis er den Finger für 2s von der Klingel nimmt ;). (also Haken bei Verzögerung verlängern aktivieren)

                      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.

                      H 1 Antwort Letzte Antwort
                      0
                      • mickymM mickym

                        @hotspot_2 Ja mit der tollen Trigger Node 😉

                        b9b0c576-6ed4-4fc0-895f-dd6533674e84-image.png

                        oder ebenfalls mit der Delay Node 😉 und Begrenzung der Nachrichtenrate 😉

                        acc53dc6-340e-4f5e-ac2a-9cdf0515426b-image.png

                        hier dann halt die Zwischennachrichten löschen.

                        Bei der Delay Node kommt in jedem Fall eine Nachricht durch nach 2s. Bei der Trigger Node kannst Du entscheiden, ob nach 2 Sekunden eine Nachricht kommt (also Haken bei Verzögerung verlängern deaktivieren) oder ob Du den Dauerklingler solange ignorierst, bis er den Finger für 2s von der Klingel nimmt ;). (also Haken bei Verzögerung verlängern aktivieren)

                        H Offline
                        H Offline
                        hotspot_2
                        schrieb am zuletzt editiert von
                        #430

                        @mickym Hallo!

                        Ich habe noch mal eine Verständnisfrage zu dem hier:

                        b6d92086-0718-40e3-a96f-537db166d2bc-image.png

                        Wenn in dem obigen Flow jetzt der Bewegsungsmelder keller und nicht der wk auslöst dann wird der Wert für den aktuellen Lux-Wert in der Waschküche nicht ermittelt und d.h. das vermutlich das Licht nicht angeht bzw. dem Zufall überlassen ist am Ende des Flows da vergleiche ja dann lux_wk wert mit einem Limit und wenn größer dann geht das Licht nicht an.

                        Wie wäre es denn machbar den Lux wert von WK immer abzrufen? Zum Beispiel auch wenn es noch mehr Bewegungsmelder sind.

                        Danek für einen TIpp dazu.

                        mickymM 1 Antwort Letzte Antwort
                        0
                        • H hotspot_2

                          @mickym Hallo!

                          Ich habe noch mal eine Verständnisfrage zu dem hier:

                          b6d92086-0718-40e3-a96f-537db166d2bc-image.png

                          Wenn in dem obigen Flow jetzt der Bewegsungsmelder keller und nicht der wk auslöst dann wird der Wert für den aktuellen Lux-Wert in der Waschküche nicht ermittelt und d.h. das vermutlich das Licht nicht angeht bzw. dem Zufall überlassen ist am Ende des Flows da vergleiche ja dann lux_wk wert mit einem Limit und wenn größer dann geht das Licht nicht an.

                          Wie wäre es denn machbar den Lux wert von WK immer abzrufen? Zum Beispiel auch wenn es noch mehr Bewegungsmelder sind.

                          Danek für einen TIpp dazu.

                          mickymM Offline
                          mickymM Offline
                          mickym
                          Most Active
                          schrieb am zuletzt editiert von
                          #431

                          @hotspot_2 Dann nimm halt über eine iobroker-Get Node direkt den Wert aus dem mqtt-Adapter.

                          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.

                          H 1 Antwort Letzte Antwort
                          0
                          • mickymM mickym

                            @hotspot_2 Dann nimm halt über eine iobroker-Get Node direkt den Wert aus dem mqtt-Adapter.

                            H Offline
                            H Offline
                            hotspot_2
                            schrieb am zuletzt editiert von
                            #432

                            @mickym Danke, da bin ich jetzt irgendwie nicht darauf gekommen.

                            mickymM 1 Antwort Letzte Antwort
                            0
                            • H hotspot_2

                              @mickym Danke, da bin ich jetzt irgendwie nicht darauf gekommen.

                              mickymM Offline
                              mickymM Offline
                              mickym
                              Most Active
                              schrieb am zuletzt editiert von mickym
                              #433

                              @hotspot_2 sagte in Shellys ("Alt und Plus") über MQTT Adapter:

                              @mickym Danke, da bin ich jetzt irgendwie nicht darauf gekommen.

                              Kann aber sein, dass Du keinen Gewinn davon hast, da der BWM oft nur lux aktualisiert bei BEwegung oder vielleicht im Stundenrhythmus. Da das aber in einem Objekt ist - hast Du trotzdem wahrscheinlich den aktuellsten Wert.

                              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.

                              H 1 Antwort Letzte Antwort
                              0
                              • mickymM mickym

                                @hotspot_2 sagte in Shellys ("Alt und Plus") über MQTT Adapter:

                                @mickym Danke, da bin ich jetzt irgendwie nicht darauf gekommen.

                                Kann aber sein, dass Du keinen Gewinn davon hast, da der BWM oft nur lux aktualisiert bei BEwegung oder vielleicht im Stundenrhythmus. Da das aber in einem Objekt ist - hast Du trotzdem wahrscheinlich den aktuellsten Wert.

                                H Offline
                                H Offline
                                hotspot_2
                                schrieb am zuletzt editiert von
                                #434

                                @mickym Hallo mivkym, oder andere ;-),

                                Ich habe mal wieder eine kleine Verständnisfrage da ich den Eindruck habe das was nicht ganz so abläuft wie ich mir das gedacht habe.

                                Ich habe bei zwei Lichtsteuerungen quasi das gleiche gemacht:

                                Nummer 1:
                                05c18664-3c1b-4b42-b8fc-458c32b94ddc-image.png

                                Nummer 2:
                                acbbf423-d5a7-4314-a8ac-365a8c4ed12d-image.png

                                Ich habe den Eindruck das es nicht funktioniert und der eingestellte Wert vom ioBroker Objekt nicht eingelesen wird wenn der Trigger über MQTT kommt.

                                Kann das sein? Müsste ich den iobroker in in den Flow einbinden damit es korrekt funktioniert?

                                Danke für eine Rückinfo dazu.

                                mickymM 1 Antwort Letzte Antwort
                                0
                                • H hotspot_2

                                  @mickym Hallo mivkym, oder andere ;-),

                                  Ich habe mal wieder eine kleine Verständnisfrage da ich den Eindruck habe das was nicht ganz so abläuft wie ich mir das gedacht habe.

                                  Ich habe bei zwei Lichtsteuerungen quasi das gleiche gemacht:

                                  Nummer 1:
                                  05c18664-3c1b-4b42-b8fc-458c32b94ddc-image.png

                                  Nummer 2:
                                  acbbf423-d5a7-4314-a8ac-365a8c4ed12d-image.png

                                  Ich habe den Eindruck das es nicht funktioniert und der eingestellte Wert vom ioBroker Objekt nicht eingelesen wird wenn der Trigger über MQTT kommt.

                                  Kann das sein? Müsste ich den iobroker in in den Flow einbinden damit es korrekt funktioniert?

                                  Danke für eine Rückinfo dazu.

                                  mickymM Offline
                                  mickymM Offline
                                  mickym
                                  Most Active
                                  schrieb am zuletzt editiert von
                                  #435

                                  @hotspot_2 Ich verstehe die Frage nicht. Laut status werden doch die iobroker-In Nodes eingelesen. Was hast Du in msg.delay - ist Dir klar dass der Wert in ms angegeben wird?

                                  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.

                                  H 1 Antwort Letzte Antwort
                                  0
                                  • mickymM mickym

                                    @hotspot_2 Ich verstehe die Frage nicht. Laut status werden doch die iobroker-In Nodes eingelesen. Was hast Du in msg.delay - ist Dir klar dass der Wert in ms angegeben wird?

                                    H Offline
                                    H Offline
                                    hotspot_2
                                    schrieb am zuletzt editiert von
                                    #436

                                    @mickym Ja, das ist mir klar. Vielleicht liegt es auch an meiner Denkweise.

                                    Wird der Wert in Trigger überhaupt aktuell angezogen wenn der eigentliche Trigger für die Schaltung von einem anderen Strang / Zweig kommt? Das ist eigentlich meine Frage. Ich denke mir im Moment das dadurch das der Trigger nicht vom iobroker in kommt beim Schaltvorgang der Werte nicht aktuell eingelesen wird durch den oberen Strang oder unteren im zweiten Flow.

                                    mickymM 1 Antwort Letzte Antwort
                                    0
                                    • H hotspot_2

                                      @mickym Ja, das ist mir klar. Vielleicht liegt es auch an meiner Denkweise.

                                      Wird der Wert in Trigger überhaupt aktuell angezogen wenn der eigentliche Trigger für die Schaltung von einem anderen Strang / Zweig kommt? Das ist eigentlich meine Frage. Ich denke mir im Moment das dadurch das der Trigger nicht vom iobroker in kommt beim Schaltvorgang der Werte nicht aktuell eingelesen wird durch den oberen Strang oder unteren im zweiten Flow.

                                      mickymM Offline
                                      mickymM Offline
                                      mickym
                                      Most Active
                                      schrieb am zuletzt editiert von
                                      #437

                                      @hotspot_2 Wenn Du über die rosa mqtt-Nodes gehst gehst Du nicht über den iobroker, wenn Du über die iobroker Node gehst schon. Ich weiss gerade nicht ob du mosquitto als Broker nutzt oder den mqtt-Adapter.

                                      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.

                                      H 1 Antwort Letzte Antwort
                                      0
                                      • mickymM mickym

                                        @hotspot_2 Wenn Du über die rosa mqtt-Nodes gehst gehst Du nicht über den iobroker, wenn Du über die iobroker Node gehst schon. Ich weiss gerade nicht ob du mosquitto als Broker nutzt oder den mqtt-Adapter.

                                        H Offline
                                        H Offline
                                        hotspot_2
                                        schrieb am zuletzt editiert von
                                        #438

                                        @mickym

                                        Wenn jetzt über die rosa Mqtt-Nodes ein Event kommt und der Flow startet. Wird dann zu dem Zeitpunkt auch der dann im iobroker objekt stehende Wert ausgelesen?

                                        mickymM 1 Antwort Letzte Antwort
                                        0
                                        • H hotspot_2

                                          @mickym

                                          Wenn jetzt über die rosa Mqtt-Nodes ein Event kommt und der Flow startet. Wird dann zu dem Zeitpunkt auch der dann im iobroker objekt stehende Wert ausgelesen?

                                          mickymM Offline
                                          mickymM Offline
                                          mickym
                                          Most Active
                                          schrieb am zuletzt editiert von
                                          #439

                                          @hotspot_2 Nein!! - Dieser Wert wird nur ausgelesen wenn Du den änderst. Wenn Du innerhalb eines Flows einen Wert auslesen willst dann musst Du die GET Node verwenden. Achte aber darauf, dass Du Dir die payload nicht überschreibst. Also müsstest Du die delay Nachrichteneigenschaft bereits in der Get Node setzen:

                                          426110aa-f89f-4f3a-8968-6e01796a4e0a-image.png

                                          Also mit einer GetNode die Verzögerung holen und in den Flow einbauen, in dem Du es hiner die mqtt-In Node schaltest:

                                          f243a7ae-8d10-4c9b-8932-04369c19e429-image.png

                                          [
                                             {
                                                 "id": "5b4783f0af523133",
                                                 "type": "ioBroker get",
                                                 "z": "c7454c976ad86c7e",
                                                 "name": "delay",
                                                 "topic": "0_userdata.0.Test.statelessSwitch",
                                                 "attrname": "delay",
                                                 "payloadType": "value",
                                                 "errOnInvalidState": "nothing",
                                                 "x": 1350,
                                                 "y": 1380,
                                                 "wires": [
                                                     [
                                                         "44344967c59de2e8"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "44344967c59de2e8",
                                                 "type": "change",
                                                 "z": "c7454c976ad86c7e",
                                                 "name": "",
                                                 "rules": [
                                                     {
                                                         "t": "set",
                                                         "p": "delay",
                                                         "pt": "msg",
                                                         "to": "delay * 1000",
                                                         "tot": "jsonata"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 1540,
                                                 "y": 1380,
                                                 "wires": [
                                                     [
                                                         "4bbd3b3548a2168e"
                                                     ]
                                                 ]
                                             }
                                          ]
                                          

                                          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.

                                          H 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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          487

                                          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