Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Einbindung von Geräten
    5. Shelly Dimmer 3

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Shelly Dimmer 3

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      Fortune95 @mickym last edited by

      @mickym

      Ja, ok macht auch Sinn. Würde die andere Variante denn auch funktionieren?

      [
          {
              "id": "9520830343183a7b",
              "type": "mqtt out",
              "z": "c42a8af9409498b7",
              "name": "",
              "topic": "shellydimmerg3-e4b3233bd910/rpc",
              "qos": "",
              "retain": "",
              "respTopic": "",
              "contentType": "",
              "userProps": "",
              "correl": "",
              "expiry": "",
              "broker": "fa5ea2376fbca76f",
              "x": 1220,
              "y": 160,
              "wires": []
          },
          {
              "id": "984d6edb0bbf92f8",
              "type": "inject",
              "z": "c42a8af9409498b7",
              "name": "Turn On",
              "props": [
                  {
                      "p": "payload"
                  }
              ],
              "repeat": "",
              "crontab": "",
              "once": false,
              "onceDelay": 0.1,
              "topic": "",
              "payload": "{\"method\":\"Light.Set\",\"params\":{\"id\":0,\"brightness\":100,\"on\":true}}",
              "payloadType": "json",
              "x": 660,
              "y": 200,
              "wires": [
                  [
                      "9520830343183a7b"
                  ]
              ]
          },
          {
              "id": "145b5aed5c8b3c82",
              "type": "inject",
              "z": "c42a8af9409498b7",
              "name": "Turn Off",
              "props": [
                  {
                      "p": "payload"
                  }
              ],
              "repeat": "",
              "crontab": "",
              "once": false,
              "onceDelay": 0.1,
              "topic": "",
              "payload": "{\"method\":\"Light.Set\",\"params\":{\"id\":0,\"brightness\":100,\"on\":false}}",
              "payloadType": "json",
              "x": 660,
              "y": 240,
              "wires": [
                  [
                      "9520830343183a7b"
                  ]
              ]
          },
          {
              "id": "aa6f2ad025c0fe01",
              "type": "change",
              "z": "c42a8af9409498b7",
              "name": "",
              "rules": [
                  {
                      "t": "set",
                      "p": "payload",
                      "pt": "msg",
                      "to": "{\t    \"method\": \"Light.Set\",\t    \"params\": {\t        \"id\": 0,\t        \"brightness\": msg.brightness,\t        \"on\": msg.on\t    }\t}",
                      "tot": "jsonata"
                  }
              ],
              "action": "",
              "property": "",
              "from": "",
              "to": "",
              "reg": false,
              "x": 650,
              "y": 140,
              "wires": [
                  [
                      "9520830343183a7b",
                      "8f181f3c9f097ee4"
                  ]
              ]
          },
          {
              "id": "fbe0bef3fe942771",
              "type": "ui_slider",
              "z": "c42a8af9409498b7",
              "name": "",
              "label": "slider-Test",
              "tooltip": "",
              "group": "83ef0ec331014e99",
              "order": 0,
              "width": 0,
              "height": 0,
              "passthru": true,
              "outs": "all",
              "topic": "brightnes",
              "topicType": "msg",
              "min": 0,
              "max": "100",
              "step": 1,
              "className": "",
              "x": 310,
              "y": 160,
              "wires": [
                  [
                      "aa6f2ad025c0fe01"
                  ]
              ]
          },
          {
              "id": "8f181f3c9f097ee4",
              "type": "debug",
              "z": "c42a8af9409498b7",
              "name": "debug 5",
              "active": true,
              "tosidebar": true,
              "console": false,
              "tostatus": false,
              "complete": "false",
              "statusVal": "",
              "statusType": "auto",
              "x": 1140,
              "y": 100,
              "wires": []
          },
          {
              "id": "c3d65c893c712b8d",
              "type": "ui_switch",
              "z": "c42a8af9409498b7",
              "name": "",
              "label": "switch",
              "tooltip": "",
              "group": "83ef0ec331014e99",
              "order": 2,
              "width": 0,
              "height": 0,
              "passthru": true,
              "decouple": "false",
              "topic": "on",
              "topicType": "msg",
              "style": "",
              "onvalue": "true",
              "onvalueType": "bool",
              "onicon": "",
              "oncolor": "",
              "offvalue": "false",
              "offvalueType": "bool",
              "officon": "",
              "offcolor": "",
              "animate": false,
              "className": "",
              "x": 310,
              "y": 100,
              "wires": [
                  [
                      "aa6f2ad025c0fe01",
                      "9fd710ddbcfe1e87"
                  ]
              ]
          },
          {
              "id": "9fd710ddbcfe1e87",
              "type": "debug",
              "z": "c42a8af9409498b7",
              "name": "debug 6",
              "active": true,
              "tosidebar": true,
              "console": false,
              "tostatus": false,
              "complete": "false",
              "statusVal": "",
              "statusType": "auto",
              "x": 620,
              "y": 80,
              "wires": []
          },
          {
              "id": "fa5ea2376fbca76f",
              "type": "mqtt-broker",
              "name": "",
              "broker": "192.168.12.219",
              "port": 1883,
              "clientid": "",
              "autoConnect": true,
              "usetls": false,
              "protocolVersion": 4,
              "keepalive": 60,
              "cleansession": true,
              "autoUnsubscribe": true,
              "birthTopic": "",
              "birthQos": "0",
              "birthRetain": "false",
              "birthPayload": "",
              "birthMsg": {},
              "closeTopic": "",
              "closeQos": "0",
              "closeRetain": "false",
              "closePayload": "",
              "closeMsg": {},
              "willTopic": "",
              "willQos": "0",
              "willRetain": "false",
              "willPayload": "",
              "willMsg": {},
              "userProps": "",
              "sessionExpiry": ""
          },
          {
              "id": "83ef0ec331014e99",
              "type": "ui_group",
              "name": "Standard",
              "tab": "a4b9375e3589475e",
              "order": 1,
              "disp": true,
              "width": 6,
              "collapse": false,
              "className": ""
          },
          {
              "id": "a4b9375e3589475e",
              "type": "ui_tab",
              "name": "Home",
              "icon": "dashboard",
              "disabled": false,
              "hidden": false
          }
      ]
      
      F 1 Reply Last reply Reply Quote 0
      • F
        Fortune95 @Fortune95 last edited by

        @mickym

        Der Jeweilige payload wird für das Objekt "brightness" oder "on" gesetzt?

        mickym 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @Fortune95 last edited by mickym

          @fortune95 sagte in Shelly Dimmer 3:

          @mickym

          Der Jeweilige payload wird für das Objekt "brightness" oder "on" gesetzt?

          In meinem Flow schon - bei Dir hast Du aber ein Verständnisfehler. Am Besten du lässt Dir mal das ganze Nachrichtenobjekt ausgeben in debug 6.

          ab13f854-1ec6-4cc9-8d71-0ad724236e5c-image.png

          Da siehst Du dass weder einen Eigenschaft on noch brightness in Deinem Nachrichtenobjekt sind, das liegt daran, dass Du in Deinen Dashboard Nodes das topic auf eine EINGEHENDE Nachrichteneigenschaft setzt die es aber nicht gibt.

          In Deiner switch Node setzt du das topic auf
          c5c6ec56-73ec-4dc6-a0e7-3f1a3806491e-image.png

          eine eingehende Nachricht mit msg.topic - es kommt aber gar keine Nachricht in die Switch Node. Deswegen ist das topic nicht definiert.

          Wenn Du hingegen das topic als String erst NEU in der switch/slider Node definierst, dann sieht die Nachricht schon anders aus.

          5b62e38f-8d42-4c08-b0af-cb3b5d0a44fb-image.png

          in diesem Fall sieht dann das Nachrichtenobjekt schon anders aus:

          fc1319f8-b29d-41d0-a830-5de79635027e-image.png

          Nun kannst Du die Nachrichten in einem Objekt verwenden:

          {
              "method": "Light.Set",
              "params": {
                  "id": 0,
                  topic: payload
              }
          }
          

          Somit ist das topic variabel. Beides zu setzen macht so erst mal keinen Sinn, da immer eine Nachricht entweder kein topic brightness oder on enthält.

          Wenn müsstest Du wenn Du beides auf einmal setzen willst, macht aber mE keinen Sinn, über eine JOIN Node das ganze in ein Objekt zusammenfassen. Also beide Eigenschaft wie bei Deinem turn off mit einer brightness von 100% und off macht keinen Sinn.

          Hier die überarbeitete Fassung Deines Flows:

          [
             {
                 "id": "9520830343183a7b",
                 "type": "mqtt out",
                 "z": "7e6af0015415146d",
                 "d": true,
                 "name": "",
                 "topic": "shellydimmerg3-e4b3233bd910/rpc",
                 "qos": "",
                 "retain": "",
                 "respTopic": "",
                 "contentType": "",
                 "userProps": "",
                 "correl": "",
                 "expiry": "",
                 "broker": "fa5ea2376fbca76f",
                 "x": 1100,
                 "y": 7420,
                 "wires": []
             },
             {
                 "id": "984d6edb0bbf92f8",
                 "type": "inject",
                 "z": "7e6af0015415146d",
                 "name": "Turn On",
                 "props": [
                     {
                         "p": "payload"
                     }
                 ],
                 "repeat": "",
                 "crontab": "",
                 "once": false,
                 "onceDelay": 0.1,
                 "topic": "",
                 "payload": "{\"method\":\"Light.Set\",\"params\":{\"id\":0,\"brightness\":100,\"on\":true}}",
                 "payloadType": "json",
                 "x": 540,
                 "y": 7460,
                 "wires": [
                     [
                         "9520830343183a7b"
                     ]
                 ]
             },
             {
                 "id": "145b5aed5c8b3c82",
                 "type": "inject",
                 "z": "7e6af0015415146d",
                 "name": "Turn Off",
                 "props": [
                     {
                         "p": "payload"
                     }
                 ],
                 "repeat": "",
                 "crontab": "",
                 "once": false,
                 "onceDelay": 0.1,
                 "topic": "",
                 "payload": "{\"method\":\"Light.Set\",\"params\":{\"id\":0,\"brightness\":100,\"on\":false}}",
                 "payloadType": "json",
                 "x": 540,
                 "y": 7500,
                 "wires": [
                     [
                         "9520830343183a7b"
                     ]
                 ]
             },
             {
                 "id": "aa6f2ad025c0fe01",
                 "type": "change",
                 "z": "7e6af0015415146d",
                 "name": "",
                 "rules": [
                     {
                         "t": "set",
                         "p": "payload",
                         "pt": "msg",
                         "to": "{\t    \"method\": \"Light.Set\",\t    \"params\": {\t        \"id\": 0,\t        topic: payload\t    }\t}",
                         "tot": "jsonata"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 530,
                 "y": 7400,
                 "wires": [
                     [
                         "9520830343183a7b",
                         "8f181f3c9f097ee4"
                     ]
                 ]
             },
             {
                 "id": "fbe0bef3fe942771",
                 "type": "ui_slider",
                 "z": "7e6af0015415146d",
                 "name": "",
                 "label": "slider-Test",
                 "tooltip": "",
                 "group": "83ef0ec331014e99",
                 "order": 0,
                 "width": 0,
                 "height": 0,
                 "passthru": true,
                 "outs": "all",
                 "topic": "brightness",
                 "topicType": "str",
                 "min": 0,
                 "max": "100",
                 "step": 1,
                 "className": "",
                 "x": 190,
                 "y": 7420,
                 "wires": [
                     [
                         "aa6f2ad025c0fe01"
                     ]
                 ]
             },
             {
                 "id": "8f181f3c9f097ee4",
                 "type": "debug",
                 "z": "7e6af0015415146d",
                 "name": "debug 5",
                 "active": true,
                 "tosidebar": true,
                 "console": false,
                 "tostatus": false,
                 "complete": "false",
                 "statusVal": "",
                 "statusType": "auto",
                 "x": 1020,
                 "y": 7360,
                 "wires": []
             },
             {
                 "id": "c3d65c893c712b8d",
                 "type": "ui_switch",
                 "z": "7e6af0015415146d",
                 "name": "",
                 "label": "switch",
                 "tooltip": "",
                 "group": "83ef0ec331014e99",
                 "order": 2,
                 "width": 0,
                 "height": 0,
                 "passthru": true,
                 "decouple": "false",
                 "topic": "on",
                 "topicType": "str",
                 "style": "",
                 "onvalue": "true",
                 "onvalueType": "bool",
                 "onicon": "",
                 "oncolor": "",
                 "offvalue": "false",
                 "offvalueType": "bool",
                 "officon": "",
                 "offcolor": "",
                 "animate": false,
                 "className": "",
                 "x": 190,
                 "y": 7360,
                 "wires": [
                     [
                         "aa6f2ad025c0fe01",
                         "9fd710ddbcfe1e87"
                     ]
                 ]
             },
             {
                 "id": "9fd710ddbcfe1e87",
                 "type": "debug",
                 "z": "7e6af0015415146d",
                 "name": "debug 6",
                 "active": true,
                 "tosidebar": true,
                 "console": false,
                 "tostatus": false,
                 "complete": "true",
                 "targetType": "full",
                 "statusVal": "",
                 "statusType": "auto",
                 "x": 500,
                 "y": 7340,
                 "wires": []
             },
             {
                 "id": "fa5ea2376fbca76f",
                 "type": "mqtt-broker",
                 "name": "",
                 "broker": "192.168.12.219",
                 "port": 1883,
                 "clientid": "",
                 "autoConnect": true,
                 "usetls": false,
                 "protocolVersion": 4,
                 "keepalive": 60,
                 "cleansession": true,
                 "autoUnsubscribe": true,
                 "birthTopic": "",
                 "birthQos": "0",
                 "birthRetain": "false",
                 "birthPayload": "",
                 "birthMsg": {},
                 "closeTopic": "",
                 "closeQos": "0",
                 "closeRetain": "false",
                 "closePayload": "",
                 "closeMsg": {},
                 "willTopic": "",
                 "willQos": "0",
                 "willRetain": "false",
                 "willPayload": "",
                 "willMsg": {},
                 "userProps": "",
                 "sessionExpiry": ""
             },
             {
                 "id": "83ef0ec331014e99",
                 "type": "ui_group",
                 "name": "Standard",
                 "tab": "a4b9375e3589475e",
                 "order": 1,
                 "disp": true,
                 "width": 6,
                 "collapse": false,
                 "className": ""
             },
             {
                 "id": "a4b9375e3589475e",
                 "type": "ui_tab",
                 "name": "Home",
                 "icon": "dashboard",
                 "disabled": false,
                 "hidden": false
             }
          ]
          

          Wenn Du unbedingt beides zusammenfassen willst, dann musst Du beide Parameter in EINEM Nachrichtenobjekt sammeln. Das ist wichtig dass Du das verstehst.

          Nach Deiner Methode willst Du ja brightness und on gleichzeitig setzen.

          cf115d09-ddf3-4233-9631-fd1a4935a739-image.png

          Wenn Du aber den Switch betätigst, dann ist in diesem Nachrichtenobjekt was Du auf die Reise schickst, kein topic brightness drin und auch kein Wert und umgekehrt wenn Du auf slider gehst ist auch kein Wert oder Zustand deines Switches in dem Nachrichtenobjekt enthalten.

          Im Übrigen empfehle ich Dir

          bei dem slider einzustellen, dass erst nachdem die Maus stoppt Nachrichten gesendet werden:

          96a4e96f-7d43-4e45-9f38-a29321e0333e-image.png

          Ansonsten wird jede Mausbewegung in einen Befehl umgesetzt und das macht keinen Sinn, weil Du 1% Werte gar nicht siehst, Du flutest Deinen Shelly also nur

          Wenn Du also mit einer JOIN Node den State des jeweilg anderen Nodes speicherst und die payload als Objekt machst.
          Dann hast Du in Deiner payload BEIDE Nachrichtenparameter.

          Siehe Debug Node 6 des Gesamtflows mit der JOIN Node:

          44222cf7-9b8c-4fe8-a95e-d4301c3203bc-image.png

          6271d8c7-66ee-4884-9e93-88de83e72172-image.png

          Damit ist die payload also selbst ein Objekt und die JOIN Node bastelt die Objekteigenschaften aus dem topic.

          {"on":true,"brightness":63}
          

          Das passiert deshalb, weil wir in der JOIN Node sagen, welche Nachrichteneigenschaft als Schlüssel oder Eigenschaft für das zusammengesetzte payload Objekt genutzt werden soll:

          037fb132-39aa-4a0a-bd89-d82a9ceb0f32-image.png

          In Deinem JSONATA der ChangeNode greifst Du dann auf die payload Eigenschaften on und brightness direkt zu.

          {
              "method": "Light.Set",
              "params": {
                  "id": 0,
                  "on" : payload.on,
                  "brightness" : payload.brightness
              }
          }
          

          Hier wieder den modifizierten Flow als Import:

          [
             {
                 "id": "9520830343183a7b",
                 "type": "mqtt out",
                 "z": "7e6af0015415146d",
                 "d": true,
                 "name": "",
                 "topic": "shellydimmerg3-e4b3233bd910/rpc",
                 "qos": "",
                 "retain": "",
                 "respTopic": "",
                 "contentType": "",
                 "userProps": "",
                 "correl": "",
                 "expiry": "",
                 "broker": "fa5ea2376fbca76f",
                 "x": 1100,
                 "y": 7420,
                 "wires": []
             },
             {
                 "id": "984d6edb0bbf92f8",
                 "type": "inject",
                 "z": "7e6af0015415146d",
                 "name": "Turn On",
                 "props": [
                     {
                         "p": "payload"
                     }
                 ],
                 "repeat": "",
                 "crontab": "",
                 "once": false,
                 "onceDelay": 0.1,
                 "topic": "",
                 "payload": "{\"method\":\"Light.Set\",\"params\":{\"id\":0,\"brightness\":100,\"on\":true}}",
                 "payloadType": "json",
                 "x": 780,
                 "y": 7460,
                 "wires": [
                     [
                         "9520830343183a7b"
                     ]
                 ]
             },
             {
                 "id": "145b5aed5c8b3c82",
                 "type": "inject",
                 "z": "7e6af0015415146d",
                 "name": "Turn Off",
                 "props": [
                     {
                         "p": "payload"
                     }
                 ],
                 "repeat": "",
                 "crontab": "",
                 "once": false,
                 "onceDelay": 0.1,
                 "topic": "",
                 "payload": "{\"method\":\"Light.Set\",\"params\":{\"id\":0,\"brightness\":100,\"on\":false}}",
                 "payloadType": "json",
                 "x": 780,
                 "y": 7500,
                 "wires": [
                     [
                         "9520830343183a7b"
                     ]
                 ]
             },
             {
                 "id": "aa6f2ad025c0fe01",
                 "type": "change",
                 "z": "7e6af0015415146d",
                 "name": "",
                 "rules": [
                     {
                         "t": "set",
                         "p": "payload",
                         "pt": "msg",
                         "to": "{\t    \"method\": \"Light.Set\",\t    \"params\": {\t        \"id\": 0,\t        \"on\" : payload.on,\t        \"brightness\" : payload.brightness\t    }\t}",
                         "tot": "jsonata"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 630,
                 "y": 7400,
                 "wires": [
                     [
                         "9520830343183a7b",
                         "8f181f3c9f097ee4"
                     ]
                 ]
             },
             {
                 "id": "fbe0bef3fe942771",
                 "type": "ui_slider",
                 "z": "7e6af0015415146d",
                 "name": "",
                 "label": "slider-Test",
                 "tooltip": "",
                 "group": "83ef0ec331014e99",
                 "order": 0,
                 "width": 0,
                 "height": 0,
                 "passthru": true,
                 "outs": "end",
                 "topic": "brightness",
                 "topicType": "str",
                 "min": 0,
                 "max": "100",
                 "step": 1,
                 "className": "",
                 "x": 190,
                 "y": 7420,
                 "wires": [
                     [
                         "4dbe5273f228faab"
                     ]
                 ]
             },
             {
                 "id": "8f181f3c9f097ee4",
                 "type": "debug",
                 "z": "7e6af0015415146d",
                 "name": "debug 5",
                 "active": true,
                 "tosidebar": true,
                 "console": false,
                 "tostatus": false,
                 "complete": "false",
                 "statusVal": "",
                 "statusType": "auto",
                 "x": 1020,
                 "y": 7360,
                 "wires": []
             },
             {
                 "id": "c3d65c893c712b8d",
                 "type": "ui_switch",
                 "z": "7e6af0015415146d",
                 "name": "",
                 "label": "switch",
                 "tooltip": "",
                 "group": "83ef0ec331014e99",
                 "order": 2,
                 "width": 0,
                 "height": 0,
                 "passthru": true,
                 "decouple": "false",
                 "topic": "on",
                 "topicType": "str",
                 "style": "",
                 "onvalue": "true",
                 "onvalueType": "bool",
                 "onicon": "",
                 "oncolor": "",
                 "offvalue": "false",
                 "offvalueType": "bool",
                 "officon": "",
                 "offcolor": "",
                 "animate": false,
                 "className": "",
                 "x": 190,
                 "y": 7360,
                 "wires": [
                     [
                         "4dbe5273f228faab"
                     ]
                 ]
             },
             {
                 "id": "9fd710ddbcfe1e87",
                 "type": "debug",
                 "z": "7e6af0015415146d",
                 "name": "debug 6",
                 "active": true,
                 "tosidebar": true,
                 "console": false,
                 "tostatus": false,
                 "complete": "payload",
                 "targetType": "msg",
                 "statusVal": "",
                 "statusType": "auto",
                 "x": 600,
                 "y": 7320,
                 "wires": []
             },
             {
                 "id": "4dbe5273f228faab",
                 "type": "join",
                 "z": "7e6af0015415146d",
                 "name": "",
                 "mode": "custom",
                 "build": "object",
                 "property": "payload",
                 "propertyType": "msg",
                 "key": "topic",
                 "joiner": "\\n",
                 "joinerType": "str",
                 "accumulate": true,
                 "timeout": "",
                 "count": "1",
                 "reduceRight": false,
                 "reduceExp": "",
                 "reduceInit": "",
                 "reduceInitType": "",
                 "reduceFixup": "",
                 "x": 430,
                 "y": 7400,
                 "wires": [
                     [
                         "aa6f2ad025c0fe01",
                         "9fd710ddbcfe1e87"
                     ]
                 ]
             },
             {
                 "id": "fa5ea2376fbca76f",
                 "type": "mqtt-broker",
                 "name": "",
                 "broker": "192.168.12.219",
                 "port": 1883,
                 "clientid": "",
                 "autoConnect": true,
                 "usetls": false,
                 "protocolVersion": 4,
                 "keepalive": 60,
                 "cleansession": true,
                 "autoUnsubscribe": true,
                 "birthTopic": "",
                 "birthQos": "0",
                 "birthRetain": "false",
                 "birthPayload": "",
                 "birthMsg": {},
                 "closeTopic": "",
                 "closeQos": "0",
                 "closeRetain": "false",
                 "closePayload": "",
                 "closeMsg": {},
                 "willTopic": "",
                 "willQos": "0",
                 "willRetain": "false",
                 "willPayload": "",
                 "willMsg": {},
                 "userProps": "",
                 "sessionExpiry": ""
             },
             {
                 "id": "83ef0ec331014e99",
                 "type": "ui_group",
                 "name": "Standard",
                 "tab": "a4b9375e3589475e",
                 "order": 1,
                 "disp": true,
                 "width": 6,
                 "collapse": false,
                 "className": ""
             },
             {
                 "id": "a4b9375e3589475e",
                 "type": "ui_tab",
                 "name": "Home",
                 "icon": "dashboard",
                 "disabled": false,
                 "hidden": false
             }
          ]
          

          F 1 Reply Last reply Reply Quote 0
          • F
            Fortune95 @mickym last edited by

            @mickym
            Oh ha, sehr lehrreich! Die Variante über 2 change ist auf jeden Fall einfacher zu verstehen und auch umzusetzen.

            Nochmals vielen Dank!!

            mickym 1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @Fortune95 last edited by

              @fortune95 Na Du solltest generell nun alle 3 Szenarien verstehen, weil sie die Basis für ein grundlegendes Verständnis von NodeRed sind. Sollte also was unklar sein, frag und ich versuche das nochmals verständlich zu erklären-

              F 1 Reply Last reply Reply Quote 0
              • F
                Fortune95 @mickym last edited by

                @mickym
                Gibt es irgendwo eine Übersicht über das "Wording" Topic, Payload etc. ?

                mickym 1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @Fortune95 last edited by mickym

                  @fortune95 Na ja in der Regel sind diese beiden Nachrichteneigenschaften oft die Basis - ansonsten kann man die Nachrichteneigenschaften definieren wie man will. Oft steht in der Hilfe zu den Nodes, wenn bestimmte Nachrichteneigenschaften eine bestimmte Bedeutung haben.

                  Wenn Du zum Beispiel die Hilfe zu einer Delay Node anschaust, dann

                  fd785fe3-89c5-4bed-a9eb-986c39933578-image.png

                  haben Nachrichteneigenschaften delay,flush und reset eine bestimmte Funktion.

                  Wenn Du eine E-Mail Node hast, dann gibts wieder ganz andere Eigenschaften mit anderen Funktionen.

                  Ansonsten arbeitet man in 90% der Fälle mit topic und payload.
                  payload = Die sogenannte Nutzlast - also der Wert der verarbeitet werden soll
                  topic = bezeichnet woher ein Wert stammt.

                  Beispiel ein Temperatursensor:
                  Er misst 25°C - die payload ist also 25.
                  Nur weiß man ja nun nicht was die 25 ist. Könnten ja auch Liter, Außentemperatur, Badezimmertemperatur etc. sein.
                  Das topic dient also der Beschreibung woher der Wert stammt und welche Bedeutung der Wert hat.

                  Wenn Du das Nachrichtenobjekt aus einer mqtt-IN node nimmst oder auch einer iobroker-IN Node - dann ist das topic immer mit dem mqtt-topic besetzt oder bei der iobroker-IN Node mit der ID des Datenpunktes und die payload mit dem Wert des mqtt-topics oder des iobroker Datenpunktes.

                  Also payload und topic sind die gebräuchlichsten - aber Du kannst ja selbst jede Eigenschaft definieren.

                  Nimm eine Inject Node und hänge dahinter eine Debug Node mit dem kompletten NAchrichtenobjekt.

                  c3028218-48f9-4a58-9441-7ad21fc2dc5c-image.png

                  Du siehst also Topic, Payload - hat meist eine Inject Node wenn Du sie auf die Arbeitsfläche ziehst und kannst aber beliebige weitere Eigenschaften definieren - wie hier Feuchtigkeit

                  Hier mal die Definition einer Inject Node und Ausgabe des gesamten Nachrichtenobjektes. Eing _msgid hat jede Nachricht - damit NodeRed die einzelnen Nachrichtenobjekte identifizieren kann.

                  Hier der Import:

                  [
                     {
                         "id": "892ace0514454c37",
                         "type": "inject",
                         "z": "7e6af0015415146d",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             },
                             {
                                 "p": "topic",
                                 "vt": "str"
                             },
                             {
                                 "p": "feuchtigkeit",
                                 "v": "60",
                                 "vt": "num"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "Badtemperatur",
                         "payload": "25",
                         "payloadType": "num",
                         "x": 170,
                         "y": 7680,
                         "wires": [
                             [
                                 "139bd52494e0452b"
                             ]
                         ]
                     },
                     {
                         "id": "139bd52494e0452b",
                         "type": "debug",
                         "z": "7e6af0015415146d",
                         "name": "Nachricht",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "true",
                         "targetType": "full",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 380,
                         "y": 7680,
                         "wires": []
                     }
                  ]
                  

                  In der Regel definiert man eben halt nicht willkürlich Nachrichteneigenschaften, sondern verwendet die payload - für die Nutzdaten (sprich der Wert des Datenpunktes) und das topic - als Beschreibung woher oder für was der Wert, die payload steht. - Das ist halt eine Art Standard, sodass sich die meisten dann sofort zurechtfinden - auch wenn jede Nachrichteneigenschaft definiert werden dürfte.

                  1 Reply Last reply Reply Quote 0
                  • fuzzy1955
                    fuzzy1955 @Dragon133 last edited by

                    @dragon133

                    Hallo Dragon,

                    es gäbe auch die Möglichkeit, diese Dinger ohne Shelly-Adapter zu steuern. Ich habe recht gute Erfahrungen damit gemacht. Aber es ist halt in JScript:

                    //VentRegler(80);
                    
                    function VentRegler (intBright) {
                        let data;
                        let strHTTP;
                    
                        if (intBright != 0) {
                                strHTTP = "http://192.168.0.xxx/light/0?turn=on&brightness=" + intBright; 	// hier Shelly-IP-Adresse einsetzen
                        }
                        else {
                                strHTTP = "http://192.168.0.xxx/light/0?turn=off&brightness=0"; 		// hier Shelly-IP-Adresse einsetzen
                        }
                    
                        httpGet(strHTTP, {timeout: 2000, responseType: 'text' }, async (err, response) => { data = (() => { 
                            try { 
                                return JSON.parse(response.data); } 
                            catch (e) { 
                                console.info(e);
                                return {}; 
                            }});        
                        });
                    };
                    

                    Oder das Auslesen von Temperaturwerten mit Shelly plus 1 mit AddOn:

                    httpGet('http://192.168.0.xxx/rpc/temperature.getstatus?id=100', { 			// hier Shelly-IP-Adresse einsetzen
                            timeout: 2000, responseType: 'text' }, async (err, response) => {
                            let data = (() => { 
                            try { 
                                setState('alias.0.Klimatisierung.ShellyPlus1_01.Aussentemperatur', getAttr(JSON.parse(response.data), 'tC'), true);
                                }
                            catch (e) { 
                                return {}; 
                                }
                            })();
                      });
                    

                    Kannst du dich damit anfreunden?

                    Schöne Grüße aus dem Mühlviertel (A), hf

                    1 Reply Last reply Reply Quote 0
                    • D
                      Dragon133 @mickym last edited by

                      @mickym
                      ich verstehe leider nicht wie ich den Dimmer über mqtt geschalten bekommen.
                      Er ist wohl mal verbunden aber wie muss ich da jetzt den Datenpunkt anlegen um ihn schalten zu können?
                      849c46e6-7106-4a7e-a837-468690892eea-image.png

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @Dragon133 last edited by mickym

                        @dragon133 In dem grünen topic bekommst du die Rückmeldungen von Deinem Dimmer in dem rosa topic musst du die Befehle eintragen.
                        0bb2d17c-5690-4e30-a567-c38c7589cae4-image.png

                        {
                            "method": "Light.Set",
                            "params": {
                                "id": 0,
                                "on" : true
                            }
                        }
                        
                        

                        Also mit diesem Objekt kannst Du mit der Eigenschaft on=true einschalten bzw. on=false ausschalten.

                        Kann auch sein, dass noch eine id oder einen user mitgeben musst.

                        {  
                            "id": 1,
                            "method": "Light.Set",
                            "params": {
                                "id": 0,
                                "on" : true
                            }
                        }
                         
                        
                        
                        1 Reply Last reply Reply Quote 1
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        695
                        Online

                        31.9k
                        Users

                        80.2k
                        Topics

                        1.3m
                        Posts

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