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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. 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.7k

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

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

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

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
512 Beiträge 5 Kommentatoren 93.6k 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.
  • H hotspot_2

    @mickym

    36cfbbfb-c078-49ac-945a-ca7997f22048-image.png

    Das hier sollte mal mein erster Versuch sein. Idee: Einer der beiden Bewegungsmelder soll bei Bewegung (motion = true) soll zwei Lichter einschalten können bei Bewegung und nach einer Zeit von 2 Minuten sollen dann beide Lichter wieder ausgehen.

    
     [
        {
            "id": "397e721c8443f53e",
            "type": "mqtt in",
            "z": "692f3cf44001c136",
            "name": "",
            "topic": "shellies/sonstiges/bwm_wk/status",
            "qos": "2",
            "datatype": "auto-detect",
            "broker": "b22fc4d3e3f172bb",
            "nl": false,
            "rap": true,
            "rh": 0,
            "inputs": 0,
            "x": 270,
            "y": 220,
            "wires": [
                [
                    "ed8bbbbc42993b32"
                ]
            ]
        },
        {
            "id": "4e9de718a2e77470",
            "type": "mqtt in",
            "z": "692f3cf44001c136",
            "name": "",
            "topic": "shellies/sonstiges/bwm_flur_keller/status",
            "qos": "2",
            "datatype": "auto-detect",
            "broker": "b22fc4d3e3f172bb",
            "nl": false,
            "rap": true,
            "rh": 0,
            "inputs": 0,
            "x": 300,
            "y": 300,
            "wires": [
                [
                    "15a6ca187c9d479c"
                ]
            ]
        },
        {
            "id": "7ec7c96ff08e6063",
            "type": "switch",
            "z": "692f3cf44001c136",
            "name": "",
            "property": "payload",
            "propertyType": "msg",
            "rules": [
                {
                    "t": "true"
                }
            ],
            "checkall": "true",
            "repair": false,
            "outputs": 1,
            "x": 750,
            "y": 260,
            "wires": [
                [
                    "4c66f596cea681bc"
                ]
            ]
        },
        {
            "id": "ed8bbbbc42993b32",
            "type": "change",
            "z": "692f3cf44001c136",
            "name": "",
            "rules": [
                {
                    "t": "set",
                    "p": "payload",
                    "pt": "msg",
                    "to": "payload.motion",
                    "tot": "msg"
                }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 570,
            "y": 220,
            "wires": [
                [
                    "7ec7c96ff08e6063"
                ]
            ]
        },
        {
            "id": "15a6ca187c9d479c",
            "type": "change",
            "z": "692f3cf44001c136",
            "name": "",
            "rules": [
                {
                    "t": "set",
                    "p": "payload",
                    "pt": "msg",
                    "to": "payload.motion",
                    "tot": "msg"
                }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 570,
            "y": 300,
            "wires": [
                [
                    "7ec7c96ff08e6063"
                ]
            ]
        },
        {
            "id": "4c66f596cea681bc",
            "type": "change",
            "z": "692f3cf44001c136",
            "name": "",
            "rules": [
                {
                    "t": "set",
                    "p": "payload",
                    "pt": "msg",
                    "to": "{\t   \"id\":123,\t   \"src\":\"hotspot_2\",\t   \"method\":\"Switch.Set\",\t   \"params\":{\"id\":0,\"on\":true}\t}\t \t",
                    "tot": "jsonata"
                }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 910,
            "y": 260,
            "wires": [
                [
                    "01f190a2c31e8843",
                    "7e4966704c6d5a10",
                    "a9d85b0db7b81d2f"
                ]
            ]
        },
        {
            "id": "01f190a2c31e8843",
            "type": "mqtt out",
            "z": "692f3cf44001c136",
            "name": "",
            "topic": "shellies/licht/obergeschoss/bad/rpc",
            "qos": "",
            "retain": "",
            "respTopic": "",
            "contentType": "",
            "userProps": "",
            "correl": "",
            "expiry": "",
            "broker": "b22fc4d3e3f172bb",
            "x": 1200,
            "y": 260,
            "wires": []
        },
        {
            "id": "7e4966704c6d5a10",
            "type": "delay",
            "z": "692f3cf44001c136",
            "name": "",
            "pauseType": "delay",
            "timeout": "2",
            "timeoutUnits": "minutes",
            "rate": "1",
            "nbRateUnits": "1",
            "rateUnits": "second",
            "randomFirst": "1",
            "randomLast": "5",
            "randomUnits": "seconds",
            "drop": false,
            "allowrate": false,
            "outputs": 1,
            "x": 1140,
            "y": 320,
            "wires": [
                [
                    "41d173beaf2558fd"
                ]
            ]
        },
        {
            "id": "5a98adb5dcfd8a1c",
            "type": "mqtt out",
            "z": "692f3cf44001c136",
            "name": "",
            "topic": "shellies/licht/obergeschoss/bad/rpc",
            "qos": "",
            "retain": "",
            "respTopic": "",
            "contentType": "",
            "userProps": "",
            "correl": "",
            "expiry": "",
            "broker": "b22fc4d3e3f172bb",
            "x": 1620,
            "y": 320,
            "wires": []
        },
        {
            "id": "41d173beaf2558fd",
            "type": "change",
            "z": "692f3cf44001c136",
            "name": "",
            "rules": [
                {
                    "t": "set",
                    "p": "payload",
                    "pt": "msg",
                    "to": "{\t   \"id\":123,\t   \"src\":\"hotspot_2\",\t   \"method\":\"Switch.Set\",\t   \"params\":{\"id\":0,\"on\":false}\t}\t \t",
                    "tot": "jsonata"
                }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 1330,
            "y": 320,
            "wires": [
                [
                    "5a98adb5dcfd8a1c",
                    "7504bebaee958f29"
                ]
            ]
        },
        {
            "id": "a9d85b0db7b81d2f",
            "type": "mqtt out",
            "z": "692f3cf44001c136",
            "name": "",
            "topic": "shellies/licht/obergeschoss/flur_oben/rpc",
            "qos": "",
            "retain": "",
            "respTopic": "",
            "contentType": "",
            "userProps": "",
            "correl": "",
            "expiry": "",
            "broker": "b22fc4d3e3f172bb",
            "x": 1220,
            "y": 200,
            "wires": []
        },
        {
            "id": "7504bebaee958f29",
            "type": "mqtt out",
            "z": "692f3cf44001c136",
            "name": "",
            "topic": "shellies/licht/obergeschoss/flur_oben/rpc",
            "qos": "",
            "retain": "",
            "respTopic": "",
            "contentType": "",
            "userProps": "",
            "correl": "",
            "expiry": "",
            "broker": "b22fc4d3e3f172bb",
            "x": 1640,
            "y": 380,
            "wires": []
        },
        {
            "id": "b22fc4d3e3f172bb",
            "type": "mqtt-broker",
            "name": "iobroker mqtt adapter",
            "broker": "localhost",
            "port": "1883",
            "clientid": "mqttin_nodered",
            "autoConnect": true,
            "usetls": false,
            "protocolVersion": "4",
            "keepalive": "60",
            "cleansession": true,
            "birthTopic": "",
            "birthQos": "0",
            "birthPayload": "",
            "birthMsg": {},
            "closeTopic": "",
            "closeQos": "0",
            "closePayload": "",
            "closeMsg": {},
            "willTopic": "",
            "willQos": "0",
            "willPayload": "",
            "willMsg": {},
            "userProps": "",
            "sessionExpiry": ""
        }
    ]
    
    

    Passt das so grob?

    Wenn ja, hätte ich mir glaub das Buch doch sparen können ;-). Habe aber das Ebook schon mal ein wenig angelesen.

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

    @hotspot_2 Na ja nicht so ganz - aber ähnlich. ;) - Damit ich deinen Flow importieren kann bitte in codetags innerhalb des Spoilers

    Und in dem Buch gibts sicher noch das eine oder andere. ;)

    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.

    mickymM H 2 Antworten Letzte Antwort
    0
    • mickymM mickym

      @hotspot_2 Na ja nicht so ganz - aber ähnlich. ;) - Damit ich deinen Flow importieren kann bitte in codetags innerhalb des Spoilers

      Und in dem Buch gibts sicher noch das eine oder andere. ;)

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

      @mickym Na ich habs mir mal angeschaut - im Prinzip kann man es so machen - wie Du es gemacht hast.
      Also so verkehrt ist es nicht. ;)

      Aber ich zeige Dir trotzdem in meinen Augen noch eine schönere Variante. ;)

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

      1 Antwort Letzte Antwort
      0
      • mickymM mickym

        @hotspot_2 Na ja nicht so ganz - aber ähnlich. ;) - Damit ich deinen Flow importieren kann bitte in codetags innerhalb des Spoilers

        Und in dem Buch gibts sicher noch das eine oder andere. ;)

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

        @mickym

        Hab das jetzt in Code Tags gepackt.

        Ich lese die beiden Statis der Bewegungsmelder aus mit den mqtt-ins. Dann setze ich die payloads auf motion (true / false) und gehe dann mit beiden Eingängen auf eine Switch. Wenn true dann setze ich den Payload auf true und mache die beiden Lichter an. Parallel dazu starte ich eine Verzögerung von 2 Minuten die dann nach Ablauf den Payload zum abschalten auf die beiden mqtt-outs setzt. So ganz grob.

        Ich merke aber gerade daß das Licht zwar angeht, aber das ausgehen nicht passt. Das ist fast zufällig mal länger mal kürzer. Außerdem hat der Shelly einen Zeit die minimal abläuft bis er wieder eine Bewegung erkennt bzw. wie langer Status auf true bleibt. Ich glaube ich brauch da noch sowas wie ein Trigger oder so.

        mickymM 1 Antwort Letzte Antwort
        0
        • H hotspot_2

          @mickym

          Hab das jetzt in Code Tags gepackt.

          Ich lese die beiden Statis der Bewegungsmelder aus mit den mqtt-ins. Dann setze ich die payloads auf motion (true / false) und gehe dann mit beiden Eingängen auf eine Switch. Wenn true dann setze ich den Payload auf true und mache die beiden Lichter an. Parallel dazu starte ich eine Verzögerung von 2 Minuten die dann nach Ablauf den Payload zum abschalten auf die beiden mqtt-outs setzt. So ganz grob.

          Ich merke aber gerade daß das Licht zwar angeht, aber das ausgehen nicht passt. Das ist fast zufällig mal länger mal kürzer. Außerdem hat der Shelly einen Zeit die minimal abläuft bis er wieder eine Bewegung erkennt bzw. wie langer Status auf true bleibt. Ich glaube ich brauch da noch sowas wie ein Trigger oder so.

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

          @hotspot_2 Na wie gesagt im Prinzip passt das schon Deine Idee - aber Du wirst sehen, dass man logisch etwas strukturieren muss. ;)

          So kommt ja ein mal aus dem einen oder anderen BWM eine Nachricht raus - und dann ist es so - dass der 2. Bewegungsmelder auf true geht und dann auch der Delay wirkt.

          Normalerweise macht man das so, dass man die 2. Minuten erst loslaufen lässt, wenn von beiden BWM kein true Signal mehr kommt.

          So nun zu den Verbesserungen:

          1. Du brauchst keine 2 Change Nodes, da ja beide Nachrichtenobjekte gleich aufgebaut sind und Du jeweils die motion Eigenschaft extrahierst. Richtig ist dass nur true weitergeleitet werden soll:

          e96dd754-b735-4f26-878a-bdb3f3032fd4-image.png

          so und die Change Node kannst Du Dir auch noch sparen - da Du mit der switch Node direkt die Nachrichteneigenschaft angeben kannst, die Du überprüfen willst (wie gesagt in Node Red kannst Du direkt auf die Eigenschaften zugreifen):

          10631720-fd74-4bfd-ac37-7896dfd60f86-image.png

          1. So beide Lichter arbeiten ja auch mit den selben Nachrichtenobjekten nur einmal mit true oder false:

          8e5ee5d3-1b89-4dbf-b58d-17c5a5cc1ca0-image.png

          deswegen machst Du den Parameter wieder flexibel in dem Du das on nicht auf einen fixen Wert sondern auf die payload setzt:

          69384844-7fe7-4972-b022-9fffb2d4fbe3-image.png

          Somit haben wir den Rumpfflow und müssen die payload nur zwischen true und false schalten:

          f6547e1b-1c41-44ba-84db-f8ff190a62e8-image.png

          So und im Prinzip wenn die BWM true melden - interessiert uns nicht der Inhalt der payload - sondern nutzen nur den Trigger.
          Am Besten lässt man die 2 Minuten erst dann loslaufen, wenn kein weiterer Impuls von einem der beiden Bewegungsmelder kommt. Dazu gibts eine sehr mächtige Node - die trigger Node (das was man im Blockly mühsam mit den Timern macht).

          Diese sendet am Anfang true und sendet nicht fix nach 2 Minuten - sondern erst 2 Minuten nachdem kein weitere Nachricht eingegangen ist false:

          00b325ea-55a5-489a-a322-2fdba91c17bf-image.png

          Somit lässt sich Dein Flow wie folgt vereinfachen:

          75cbb445-c0cd-4b54-b70b-dd740ac86dfe-image.png

          [
             {
                 "id": "397e721c8443f53e",
                 "type": "mqtt in",
                 "z": "39f2583fbd04f592",
                 "name": "",
                 "topic": "shellies/sonstiges/bwm_wk/status",
                 "qos": "2",
                 "datatype": "auto-detect",
                 "broker": "b22fc4d3e3f172bb",
                 "nl": false,
                 "rap": true,
                 "rh": 0,
                 "inputs": 0,
                 "x": 410,
                 "y": 280,
                 "wires": [
                     [
                         "7ec7c96ff08e6063"
                     ]
                 ]
             },
             {
                 "id": "4e9de718a2e77470",
                 "type": "mqtt in",
                 "z": "39f2583fbd04f592",
                 "name": "",
                 "topic": "shellies/sonstiges/bwm_flur_keller/status",
                 "qos": "2",
                 "datatype": "auto-detect",
                 "broker": "b22fc4d3e3f172bb",
                 "nl": false,
                 "rap": true,
                 "rh": 0,
                 "inputs": 0,
                 "x": 380,
                 "y": 340,
                 "wires": [
                     [
                         "7ec7c96ff08e6063"
                     ]
                 ]
             },
             {
                 "id": "7ec7c96ff08e6063",
                 "type": "switch",
                 "z": "39f2583fbd04f592",
                 "name": "",
                 "property": "payload.motion",
                 "propertyType": "msg",
                 "rules": [
                     {
                         "t": "true"
                     }
                 ],
                 "checkall": "true",
                 "repair": false,
                 "outputs": 1,
                 "x": 630,
                 "y": 300,
                 "wires": [
                     [
                         "800abea06f19a103"
                     ]
                 ]
             },
             {
                 "id": "4c66f596cea681bc",
                 "type": "change",
                 "z": "39f2583fbd04f592",
                 "name": "",
                 "rules": [
                     {
                         "t": "set",
                         "p": "payload",
                         "pt": "msg",
                         "to": "{\t   \"id\":123,\t   \"src\":\"hotspot_2\",\t   \"method\":\"Switch.Set\",\t   \"params\":{\"id\":0,\"on\":payload}\t}\t \t",
                         "tot": "jsonata"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 990,
                 "y": 300,
                 "wires": [
                     [
                         "01f190a2c31e8843",
                         "a9d85b0db7b81d2f"
                     ]
                 ]
             },
             {
                 "id": "01f190a2c31e8843",
                 "type": "mqtt out",
                 "z": "39f2583fbd04f592",
                 "name": "",
                 "topic": "shellies/licht/obergeschoss/bad/rpc",
                 "qos": "",
                 "retain": "",
                 "respTopic": "",
                 "contentType": "",
                 "userProps": "",
                 "correl": "",
                 "expiry": "",
                 "broker": "b22fc4d3e3f172bb",
                 "x": 1260,
                 "y": 340,
                 "wires": []
             },
             {
                 "id": "a9d85b0db7b81d2f",
                 "type": "mqtt out",
                 "z": "39f2583fbd04f592",
                 "name": "",
                 "topic": "shellies/licht/obergeschoss/flur_oben/rpc",
                 "qos": "",
                 "retain": "",
                 "respTopic": "",
                 "contentType": "",
                 "userProps": "",
                 "correl": "",
                 "expiry": "",
                 "broker": "b22fc4d3e3f172bb",
                 "x": 1280,
                 "y": 260,
                 "wires": []
             },
             {
                 "id": "800abea06f19a103",
                 "type": "trigger",
                 "z": "39f2583fbd04f592",
                 "name": "",
                 "op1": "true",
                 "op2": "false",
                 "op1type": "bool",
                 "op2type": "bool",
                 "duration": "2",
                 "extend": true,
                 "overrideDelay": false,
                 "units": "min",
                 "reset": "",
                 "bytopic": "all",
                 "topic": "topic",
                 "outputs": 1,
                 "x": 790,
                 "y": 300,
                 "wires": [
                     [
                         "4c66f596cea681bc"
                     ]
                 ]
             },
             {
                 "id": "b22fc4d3e3f172bb",
                 "type": "mqtt-broker",
                 "name": "iobroker mqtt adapter",
                 "broker": "localhost",
                 "port": "1883",
                 "clientid": "mqttin_nodered",
                 "autoConnect": true,
                 "usetls": false,
                 "protocolVersion": "4",
                 "keepalive": "60",
                 "cleansession": true,
                 "birthTopic": "",
                 "birthQos": "0",
                 "birthPayload": "",
                 "birthMsg": {},
                 "closeTopic": "",
                 "closeQos": "0",
                 "closePayload": "",
                 "closeMsg": {},
                 "willTopic": "",
                 "willQos": "0",
                 "willPayload": "",
                 "willMsg": {},
                 "userProps": "",
                 "sessionExpiry": ""
             }
          ]
          

          Da Du mit der trigger Node auch ganze Objekte verschicken kannst - kannst Du theoretisch sogar die Change Node am Ende sparen.

          8d5bf8f6-fc20-41c4-997a-5d2c26bbe04e-image.png

          In diesem Fall ist das true und false in den Objekten fest codiert:

          [
             {
                 "id": "397e721c8443f53e",
                 "type": "mqtt in",
                 "z": "2e7d4cac81c671e3",
                 "name": "",
                 "topic": "shellies/sonstiges/bwm_wk/status",
                 "qos": "2",
                 "datatype": "auto-detect",
                 "broker": "b22fc4d3e3f172bb",
                 "nl": false,
                 "rap": true,
                 "rh": 0,
                 "inputs": 0,
                 "x": 330,
                 "y": 1900,
                 "wires": [
                     [
                         "7ec7c96ff08e6063"
                     ]
                 ]
             },
             {
                 "id": "4e9de718a2e77470",
                 "type": "mqtt in",
                 "z": "2e7d4cac81c671e3",
                 "name": "",
                 "topic": "shellies/sonstiges/bwm_flur_keller/status",
                 "qos": "2",
                 "datatype": "auto-detect",
                 "broker": "b22fc4d3e3f172bb",
                 "nl": false,
                 "rap": true,
                 "rh": 0,
                 "inputs": 0,
                 "x": 300,
                 "y": 1980,
                 "wires": [
                     [
                         "7ec7c96ff08e6063"
                     ]
                 ]
             },
             {
                 "id": "7ec7c96ff08e6063",
                 "type": "switch",
                 "z": "2e7d4cac81c671e3",
                 "name": "",
                 "property": "payload.motion",
                 "propertyType": "msg",
                 "rules": [
                     {
                         "t": "true"
                     }
                 ],
                 "checkall": "true",
                 "repair": false,
                 "outputs": 1,
                 "x": 550,
                 "y": 1940,
                 "wires": [
                     [
                         "800abea06f19a103"
                     ]
                 ]
             },
             {
                 "id": "01f190a2c31e8843",
                 "type": "mqtt out",
                 "z": "2e7d4cac81c671e3",
                 "name": "",
                 "topic": "shellies/licht/obergeschoss/bad/rpc",
                 "qos": "",
                 "retain": "",
                 "respTopic": "",
                 "contentType": "",
                 "userProps": "",
                 "correl": "",
                 "expiry": "",
                 "broker": "b22fc4d3e3f172bb",
                 "x": 980,
                 "y": 1980,
                 "wires": []
             },
             {
                 "id": "a9d85b0db7b81d2f",
                 "type": "mqtt out",
                 "z": "2e7d4cac81c671e3",
                 "name": "",
                 "topic": "shellies/licht/obergeschoss/flur_oben/rpc",
                 "qos": "",
                 "retain": "",
                 "respTopic": "",
                 "contentType": "",
                 "userProps": "",
                 "correl": "",
                 "expiry": "",
                 "broker": "b22fc4d3e3f172bb",
                 "x": 1000,
                 "y": 1900,
                 "wires": []
             },
             {
                 "id": "800abea06f19a103",
                 "type": "trigger",
                 "z": "2e7d4cac81c671e3",
                 "name": "",
                 "op1": "{\"id\":123,\"src\":\"hotspot_2\",\"method\":\"Switch.Set\",\"params\":{\"id\":0,\"on\":true}}",
                 "op2": "{\"id\":123,\"src\":\"hotspot_2\",\"method\":\"Switch.Set\",\"params\":{\"id\":0,\"on\":false}}",
                 "op1type": "json",
                 "op2type": "json",
                 "duration": "2",
                 "extend": true,
                 "overrideDelay": false,
                 "units": "min",
                 "reset": "",
                 "bytopic": "all",
                 "topic": "topic",
                 "outputs": 1,
                 "x": 710,
                 "y": 1940,
                 "wires": [
                     [
                         "a9d85b0db7b81d2f",
                         "01f190a2c31e8843"
                     ]
                 ]
             },
             {
                 "id": "b22fc4d3e3f172bb",
                 "type": "mqtt-broker",
                 "name": "iobroker mqtt adapter",
                 "broker": "localhost",
                 "port": "1883",
                 "clientid": "mqttin_nodered",
                 "autoConnect": true,
                 "usetls": false,
                 "protocolVersion": "4",
                 "keepalive": "60",
                 "cleansession": true,
                 "birthTopic": "",
                 "birthQos": "0",
                 "birthPayload": "",
                 "birthMsg": {},
                 "closeTopic": "",
                 "closeQos": "0",
                 "closePayload": "",
                 "closeMsg": {},
                 "willTopic": "",
                 "willQos": "0",
                 "willPayload": "",
                 "willMsg": {},
                 "userProps": "",
                 "sessionExpiry": ""
             }
          ]
          

          Du siehst eigentlich sehr einfach der Flow. ;)

          Halte Dich einfach immer daran, Eingänge links und Ausgänge rechts und in der Mitte findet die Transformation bzw. die Logik statt. In diesem Fall ist nach dem Filtern der Eingangsnachrichten - die ganze Logik in einer einzigen Node - der Trigger Node gespeichert.

          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 Na wie gesagt im Prinzip passt das schon Deine Idee - aber Du wirst sehen, dass man logisch etwas strukturieren muss. ;)

            So kommt ja ein mal aus dem einen oder anderen BWM eine Nachricht raus - und dann ist es so - dass der 2. Bewegungsmelder auf true geht und dann auch der Delay wirkt.

            Normalerweise macht man das so, dass man die 2. Minuten erst loslaufen lässt, wenn von beiden BWM kein true Signal mehr kommt.

            So nun zu den Verbesserungen:

            1. Du brauchst keine 2 Change Nodes, da ja beide Nachrichtenobjekte gleich aufgebaut sind und Du jeweils die motion Eigenschaft extrahierst. Richtig ist dass nur true weitergeleitet werden soll:

            e96dd754-b735-4f26-878a-bdb3f3032fd4-image.png

            so und die Change Node kannst Du Dir auch noch sparen - da Du mit der switch Node direkt die Nachrichteneigenschaft angeben kannst, die Du überprüfen willst (wie gesagt in Node Red kannst Du direkt auf die Eigenschaften zugreifen):

            10631720-fd74-4bfd-ac37-7896dfd60f86-image.png

            1. So beide Lichter arbeiten ja auch mit den selben Nachrichtenobjekten nur einmal mit true oder false:

            8e5ee5d3-1b89-4dbf-b58d-17c5a5cc1ca0-image.png

            deswegen machst Du den Parameter wieder flexibel in dem Du das on nicht auf einen fixen Wert sondern auf die payload setzt:

            69384844-7fe7-4972-b022-9fffb2d4fbe3-image.png

            Somit haben wir den Rumpfflow und müssen die payload nur zwischen true und false schalten:

            f6547e1b-1c41-44ba-84db-f8ff190a62e8-image.png

            So und im Prinzip wenn die BWM true melden - interessiert uns nicht der Inhalt der payload - sondern nutzen nur den Trigger.
            Am Besten lässt man die 2 Minuten erst dann loslaufen, wenn kein weiterer Impuls von einem der beiden Bewegungsmelder kommt. Dazu gibts eine sehr mächtige Node - die trigger Node (das was man im Blockly mühsam mit den Timern macht).

            Diese sendet am Anfang true und sendet nicht fix nach 2 Minuten - sondern erst 2 Minuten nachdem kein weitere Nachricht eingegangen ist false:

            00b325ea-55a5-489a-a322-2fdba91c17bf-image.png

            Somit lässt sich Dein Flow wie folgt vereinfachen:

            75cbb445-c0cd-4b54-b70b-dd740ac86dfe-image.png

            [
               {
                   "id": "397e721c8443f53e",
                   "type": "mqtt in",
                   "z": "39f2583fbd04f592",
                   "name": "",
                   "topic": "shellies/sonstiges/bwm_wk/status",
                   "qos": "2",
                   "datatype": "auto-detect",
                   "broker": "b22fc4d3e3f172bb",
                   "nl": false,
                   "rap": true,
                   "rh": 0,
                   "inputs": 0,
                   "x": 410,
                   "y": 280,
                   "wires": [
                       [
                           "7ec7c96ff08e6063"
                       ]
                   ]
               },
               {
                   "id": "4e9de718a2e77470",
                   "type": "mqtt in",
                   "z": "39f2583fbd04f592",
                   "name": "",
                   "topic": "shellies/sonstiges/bwm_flur_keller/status",
                   "qos": "2",
                   "datatype": "auto-detect",
                   "broker": "b22fc4d3e3f172bb",
                   "nl": false,
                   "rap": true,
                   "rh": 0,
                   "inputs": 0,
                   "x": 380,
                   "y": 340,
                   "wires": [
                       [
                           "7ec7c96ff08e6063"
                       ]
                   ]
               },
               {
                   "id": "7ec7c96ff08e6063",
                   "type": "switch",
                   "z": "39f2583fbd04f592",
                   "name": "",
                   "property": "payload.motion",
                   "propertyType": "msg",
                   "rules": [
                       {
                           "t": "true"
                       }
                   ],
                   "checkall": "true",
                   "repair": false,
                   "outputs": 1,
                   "x": 630,
                   "y": 300,
                   "wires": [
                       [
                           "800abea06f19a103"
                       ]
                   ]
               },
               {
                   "id": "4c66f596cea681bc",
                   "type": "change",
                   "z": "39f2583fbd04f592",
                   "name": "",
                   "rules": [
                       {
                           "t": "set",
                           "p": "payload",
                           "pt": "msg",
                           "to": "{\t   \"id\":123,\t   \"src\":\"hotspot_2\",\t   \"method\":\"Switch.Set\",\t   \"params\":{\"id\":0,\"on\":payload}\t}\t \t",
                           "tot": "jsonata"
                       }
                   ],
                   "action": "",
                   "property": "",
                   "from": "",
                   "to": "",
                   "reg": false,
                   "x": 990,
                   "y": 300,
                   "wires": [
                       [
                           "01f190a2c31e8843",
                           "a9d85b0db7b81d2f"
                       ]
                   ]
               },
               {
                   "id": "01f190a2c31e8843",
                   "type": "mqtt out",
                   "z": "39f2583fbd04f592",
                   "name": "",
                   "topic": "shellies/licht/obergeschoss/bad/rpc",
                   "qos": "",
                   "retain": "",
                   "respTopic": "",
                   "contentType": "",
                   "userProps": "",
                   "correl": "",
                   "expiry": "",
                   "broker": "b22fc4d3e3f172bb",
                   "x": 1260,
                   "y": 340,
                   "wires": []
               },
               {
                   "id": "a9d85b0db7b81d2f",
                   "type": "mqtt out",
                   "z": "39f2583fbd04f592",
                   "name": "",
                   "topic": "shellies/licht/obergeschoss/flur_oben/rpc",
                   "qos": "",
                   "retain": "",
                   "respTopic": "",
                   "contentType": "",
                   "userProps": "",
                   "correl": "",
                   "expiry": "",
                   "broker": "b22fc4d3e3f172bb",
                   "x": 1280,
                   "y": 260,
                   "wires": []
               },
               {
                   "id": "800abea06f19a103",
                   "type": "trigger",
                   "z": "39f2583fbd04f592",
                   "name": "",
                   "op1": "true",
                   "op2": "false",
                   "op1type": "bool",
                   "op2type": "bool",
                   "duration": "2",
                   "extend": true,
                   "overrideDelay": false,
                   "units": "min",
                   "reset": "",
                   "bytopic": "all",
                   "topic": "topic",
                   "outputs": 1,
                   "x": 790,
                   "y": 300,
                   "wires": [
                       [
                           "4c66f596cea681bc"
                       ]
                   ]
               },
               {
                   "id": "b22fc4d3e3f172bb",
                   "type": "mqtt-broker",
                   "name": "iobroker mqtt adapter",
                   "broker": "localhost",
                   "port": "1883",
                   "clientid": "mqttin_nodered",
                   "autoConnect": true,
                   "usetls": false,
                   "protocolVersion": "4",
                   "keepalive": "60",
                   "cleansession": true,
                   "birthTopic": "",
                   "birthQos": "0",
                   "birthPayload": "",
                   "birthMsg": {},
                   "closeTopic": "",
                   "closeQos": "0",
                   "closePayload": "",
                   "closeMsg": {},
                   "willTopic": "",
                   "willQos": "0",
                   "willPayload": "",
                   "willMsg": {},
                   "userProps": "",
                   "sessionExpiry": ""
               }
            ]
            

            Da Du mit der trigger Node auch ganze Objekte verschicken kannst - kannst Du theoretisch sogar die Change Node am Ende sparen.

            8d5bf8f6-fc20-41c4-997a-5d2c26bbe04e-image.png

            In diesem Fall ist das true und false in den Objekten fest codiert:

            [
               {
                   "id": "397e721c8443f53e",
                   "type": "mqtt in",
                   "z": "2e7d4cac81c671e3",
                   "name": "",
                   "topic": "shellies/sonstiges/bwm_wk/status",
                   "qos": "2",
                   "datatype": "auto-detect",
                   "broker": "b22fc4d3e3f172bb",
                   "nl": false,
                   "rap": true,
                   "rh": 0,
                   "inputs": 0,
                   "x": 330,
                   "y": 1900,
                   "wires": [
                       [
                           "7ec7c96ff08e6063"
                       ]
                   ]
               },
               {
                   "id": "4e9de718a2e77470",
                   "type": "mqtt in",
                   "z": "2e7d4cac81c671e3",
                   "name": "",
                   "topic": "shellies/sonstiges/bwm_flur_keller/status",
                   "qos": "2",
                   "datatype": "auto-detect",
                   "broker": "b22fc4d3e3f172bb",
                   "nl": false,
                   "rap": true,
                   "rh": 0,
                   "inputs": 0,
                   "x": 300,
                   "y": 1980,
                   "wires": [
                       [
                           "7ec7c96ff08e6063"
                       ]
                   ]
               },
               {
                   "id": "7ec7c96ff08e6063",
                   "type": "switch",
                   "z": "2e7d4cac81c671e3",
                   "name": "",
                   "property": "payload.motion",
                   "propertyType": "msg",
                   "rules": [
                       {
                           "t": "true"
                       }
                   ],
                   "checkall": "true",
                   "repair": false,
                   "outputs": 1,
                   "x": 550,
                   "y": 1940,
                   "wires": [
                       [
                           "800abea06f19a103"
                       ]
                   ]
               },
               {
                   "id": "01f190a2c31e8843",
                   "type": "mqtt out",
                   "z": "2e7d4cac81c671e3",
                   "name": "",
                   "topic": "shellies/licht/obergeschoss/bad/rpc",
                   "qos": "",
                   "retain": "",
                   "respTopic": "",
                   "contentType": "",
                   "userProps": "",
                   "correl": "",
                   "expiry": "",
                   "broker": "b22fc4d3e3f172bb",
                   "x": 980,
                   "y": 1980,
                   "wires": []
               },
               {
                   "id": "a9d85b0db7b81d2f",
                   "type": "mqtt out",
                   "z": "2e7d4cac81c671e3",
                   "name": "",
                   "topic": "shellies/licht/obergeschoss/flur_oben/rpc",
                   "qos": "",
                   "retain": "",
                   "respTopic": "",
                   "contentType": "",
                   "userProps": "",
                   "correl": "",
                   "expiry": "",
                   "broker": "b22fc4d3e3f172bb",
                   "x": 1000,
                   "y": 1900,
                   "wires": []
               },
               {
                   "id": "800abea06f19a103",
                   "type": "trigger",
                   "z": "2e7d4cac81c671e3",
                   "name": "",
                   "op1": "{\"id\":123,\"src\":\"hotspot_2\",\"method\":\"Switch.Set\",\"params\":{\"id\":0,\"on\":true}}",
                   "op2": "{\"id\":123,\"src\":\"hotspot_2\",\"method\":\"Switch.Set\",\"params\":{\"id\":0,\"on\":false}}",
                   "op1type": "json",
                   "op2type": "json",
                   "duration": "2",
                   "extend": true,
                   "overrideDelay": false,
                   "units": "min",
                   "reset": "",
                   "bytopic": "all",
                   "topic": "topic",
                   "outputs": 1,
                   "x": 710,
                   "y": 1940,
                   "wires": [
                       [
                           "a9d85b0db7b81d2f",
                           "01f190a2c31e8843"
                       ]
                   ]
               },
               {
                   "id": "b22fc4d3e3f172bb",
                   "type": "mqtt-broker",
                   "name": "iobroker mqtt adapter",
                   "broker": "localhost",
                   "port": "1883",
                   "clientid": "mqttin_nodered",
                   "autoConnect": true,
                   "usetls": false,
                   "protocolVersion": "4",
                   "keepalive": "60",
                   "cleansession": true,
                   "birthTopic": "",
                   "birthQos": "0",
                   "birthPayload": "",
                   "birthMsg": {},
                   "closeTopic": "",
                   "closeQos": "0",
                   "closePayload": "",
                   "closeMsg": {},
                   "willTopic": "",
                   "willQos": "0",
                   "willPayload": "",
                   "willMsg": {},
                   "userProps": "",
                   "sessionExpiry": ""
               }
            ]
            

            Du siehst eigentlich sehr einfach der Flow. ;)

            Halte Dich einfach immer daran, Eingänge links und Ausgänge rechts und in der Mitte findet die Transformation bzw. die Logik statt. In diesem Fall ist nach dem Filtern der Eingangsnachrichten - die ganze Logik in einer einzigen Node - der Trigger Node gespeichert.

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

            @mickym Super.

            Wie könnte ich denn noch einbauen das die Aktion nur dann erfolgt wenn ein Schalter (in den Objekten) auf true steht? Damit würde ich gerne die Funktion an- und abschalten über JARVIS.

            mickymM 1 Antwort Letzte Antwort
            0
            • H hotspot_2

              @mickym Super.

              Wie könnte ich denn noch einbauen das die Aktion nur dann erfolgt wenn ein Schalter (in den Objekten) auf true steht? Damit würde ich gerne die Funktion an- und abschalten über JARVIS.

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

              @hotspot_2 Du frägst den Datenpunkt mit einer get Node ab. Wenn der Schalter mehrere Dinge blockieren soll, dann kann man das auch im Node-Red Kontext in einer Variablen abspeichern. Nun aber nur zu Deiner einfachen Abfrage. UND Bedingungen werden die Nodes natürlich in Serie geschaltet - in dem Fall macht es Sinn Deinen Switch Node sprechende Namen zu geben.

              a948c502-77b6-4845-b542-6df25d09acae-image.png

              Also einfach die beiden Nodes dazwischen klemmen;

              [
                 {
                     "id": "ad67b76febdf0a92",
                     "type": "ioBroker get",
                     "z": "2e7d4cac81c671e3",
                     "name": "Schalter",
                     "topic": "",
                     "attrname": "payload",
                     "payloadType": "value",
                     "errOnInvalidState": "nothing",
                     "x": 760,
                     "y": 1180,
                     "wires": [
                         [
                             "c7a2538582f26f99"
                         ]
                     ]
                 },
                 {
                     "id": "c7a2538582f26f99",
                     "type": "switch",
                     "z": "2e7d4cac81c671e3",
                     "name": "Schalter = true?",
                     "property": "payload",
                     "propertyType": "msg",
                     "rules": [
                         {
                             "t": "true"
                         }
                     ],
                     "checkall": "true",
                     "repair": false,
                     "outputs": 1,
                     "x": 940,
                     "y": 1180,
                     "wires": [
                         [
                             "800abea06f19a103"
                         ]
                     ]
                 }
              ]
              

              Wenn Du solch globale Schalter hast - kannst du die auch über eine In-Node einlesen und im Flow oder globalen Kontext abspeichern und dann über die Switch-Node direkt abprüfen. Damit sparst Du Dir jedesmal den Datenpunkt abzufragen.

              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 2 Antworten Letzte Antwort
              0
              • mickymM mickym

                @hotspot_2 Du frägst den Datenpunkt mit einer get Node ab. Wenn der Schalter mehrere Dinge blockieren soll, dann kann man das auch im Node-Red Kontext in einer Variablen abspeichern. Nun aber nur zu Deiner einfachen Abfrage. UND Bedingungen werden die Nodes natürlich in Serie geschaltet - in dem Fall macht es Sinn Deinen Switch Node sprechende Namen zu geben.

                a948c502-77b6-4845-b542-6df25d09acae-image.png

                Also einfach die beiden Nodes dazwischen klemmen;

                [
                   {
                       "id": "ad67b76febdf0a92",
                       "type": "ioBroker get",
                       "z": "2e7d4cac81c671e3",
                       "name": "Schalter",
                       "topic": "",
                       "attrname": "payload",
                       "payloadType": "value",
                       "errOnInvalidState": "nothing",
                       "x": 760,
                       "y": 1180,
                       "wires": [
                           [
                               "c7a2538582f26f99"
                           ]
                       ]
                   },
                   {
                       "id": "c7a2538582f26f99",
                       "type": "switch",
                       "z": "2e7d4cac81c671e3",
                       "name": "Schalter = true?",
                       "property": "payload",
                       "propertyType": "msg",
                       "rules": [
                           {
                               "t": "true"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 1,
                       "x": 940,
                       "y": 1180,
                       "wires": [
                           [
                               "800abea06f19a103"
                           ]
                       ]
                   }
                ]
                

                Wenn Du solch globale Schalter hast - kannst du die auch über eine In-Node einlesen und im Flow oder globalen Kontext abspeichern und dann über die Switch-Node direkt abprüfen. Damit sparst Du Dir jedesmal den Datenpunkt abzufragen.

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

                @mickym Super! Das funktioniert ;-).

                Nächstes Projekt wäre nun etwas zu basteln für mein Treppenhaus. Dazu habe ich über längere Zeit ein Blockly gebastelt, welches aber nicht mehr ganz funktioniert jetzt da der Shelly Adapter bei mir jetzt komplett raus ist.

                Ich habe drei Shellys für Licht im Treppenhaus (Keller, oben und unten). Diese werden (oben und unten) über Schalter angesteuert und unten über einen Button1. Außerdem gibt es drei Bewegungsmelder im Treppenhaus (oben, unten und Keller) die auch das Licht einschalten können. Die Dauer, wie lange das Licht brennt nach Aktivierung lässt sich einstellen in JARVIS. Außerdem habe ich noch eingebaut im Blockly das wenn während die Dauer noch nicht abgelaufen ist Shellys bzw. das Licht wieder angeschalten werden sollte jemand bei brennendem Licht auf die Schalter drücken. Funktionierte eigentlich sehr gut das Blockly Skript bis zum Entfernen des Shelly Adapters.

                Das wäre das Projekt was wir uns, wenn es für Dich passt, mal anschauen könnten.

                Treppenhaus_V9.txt

                mickymM 1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  @hotspot_2 Du frägst den Datenpunkt mit einer get Node ab. Wenn der Schalter mehrere Dinge blockieren soll, dann kann man das auch im Node-Red Kontext in einer Variablen abspeichern. Nun aber nur zu Deiner einfachen Abfrage. UND Bedingungen werden die Nodes natürlich in Serie geschaltet - in dem Fall macht es Sinn Deinen Switch Node sprechende Namen zu geben.

                  a948c502-77b6-4845-b542-6df25d09acae-image.png

                  Also einfach die beiden Nodes dazwischen klemmen;

                  [
                     {
                         "id": "ad67b76febdf0a92",
                         "type": "ioBroker get",
                         "z": "2e7d4cac81c671e3",
                         "name": "Schalter",
                         "topic": "",
                         "attrname": "payload",
                         "payloadType": "value",
                         "errOnInvalidState": "nothing",
                         "x": 760,
                         "y": 1180,
                         "wires": [
                             [
                                 "c7a2538582f26f99"
                             ]
                         ]
                     },
                     {
                         "id": "c7a2538582f26f99",
                         "type": "switch",
                         "z": "2e7d4cac81c671e3",
                         "name": "Schalter = true?",
                         "property": "payload",
                         "propertyType": "msg",
                         "rules": [
                             {
                                 "t": "true"
                             }
                         ],
                         "checkall": "true",
                         "repair": false,
                         "outputs": 1,
                         "x": 940,
                         "y": 1180,
                         "wires": [
                             [
                                 "800abea06f19a103"
                             ]
                         ]
                     }
                  ]
                  

                  Wenn Du solch globale Schalter hast - kannst du die auch über eine In-Node einlesen und im Flow oder globalen Kontext abspeichern und dann über die Switch-Node direkt abprüfen. Damit sparst Du Dir jedesmal den Datenpunkt abzufragen.

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

                  Wenn Du solch globale Schalter hast - kannst du die auch über eine In-Node einlesen und im Flow oder globalen Kontext abspeichern und dann über die Switch-Node direkt abprüfen. Damit sparst Du Dir jedesmal den Datenpunkt abzufragen.

                  Wie können die im Flow und global abgespeichert werden? Global hiesse dann über alle alle Flows hinweg abrufbar? Ist das dann vergleichbar mit einer globalen Variable? Wird die dann auch aktualisiert wenn sich der Wert ändert?

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • H hotspot_2

                    Wenn Du solch globale Schalter hast - kannst du die auch über eine In-Node einlesen und im Flow oder globalen Kontext abspeichern und dann über die Switch-Node direkt abprüfen. Damit sparst Du Dir jedesmal den Datenpunkt abzufragen.

                    Wie können die im Flow und global abgespeichert werden? Global hiesse dann über alle alle Flows hinweg abrufbar? Ist das dann vergleichbar mit einer globalen Variable? Wird die dann auch aktualisiert wenn sich der Wert ändert?

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

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

                    Wenn Du solch globale Schalter hast - kannst du die auch über eine In-Node einlesen und im Flow oder globalen Kontext abspeichern und dann über die Switch-Node direkt abprüfen. Damit sparst Du Dir jedesmal den Datenpunkt abzufragen.

                    Wie können die im Flow und global abgespeichert werden? Global hiesse dann über alle alle Flows hinweg abrufbar? Ist das dann vergleichbar mit einer globalen Variable? Wird die dann auch aktualisiert wenn sich der Wert ändert?

                    Ja :) und Ja :)

                    Generell siehst Du den Kontextinhalt der aktuell ist im Kontext Tab:

                    4c09c0b0-e9e8-434f-a627-0999ac74f320-image.png

                    Ich nehmen mal den Schalter - der kann ja auch durch das Objekt direkt getriggert werden. Nehmen wir mal an Du willst den Schalter mehrfach nutzen - dann fragst Du den nicht im Flow ab, sondern lässt den Datenpunkt direkt in den Flow-Kontext schreiben:

                    Um eine globale (über alle Flows geltende Variable zu setzen), setzt Du diese im globalen Kontext, wenn sie nur in dem Flow gelten soll, dann im Flow Kontext.

                    Setzen kannst Du das natürlich wieder über die tolle Change Node. ;)
                    Hier setzt Du also die globale Variable active auf die payload Eigenschaft des Nachrichtenobjektes:

                    918d0bef-3a25-4399-a1ad-715f476f6b81-image.png

                    Der Datenpunkt setzt also direkt die Variable in Node-Red und kannst Du direkt im Kontext sehen:

                    34cca294-d5e8-4c66-a185-bab98cd29326-image.png

                    Diese Variable kannst Du im switch nun direkt abprüfen und sparst Dir die Abfrage des Wertes im Flow:

                    14b368d8-7da5-439f-8b38-cef25dfd0b7e-image.png

                    Somit sparst Du Dir in jedem Flow die Abfrage des Datenpunktes wenn Du diesen Status öfters brauchst:

                    331e5844-3f25-45f5-a67b-a26e3ca50c90-image.png

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

                    1 Antwort Letzte Antwort
                    0
                    • H hotspot_2

                      @mickym Super! Das funktioniert ;-).

                      Nächstes Projekt wäre nun etwas zu basteln für mein Treppenhaus. Dazu habe ich über längere Zeit ein Blockly gebastelt, welches aber nicht mehr ganz funktioniert jetzt da der Shelly Adapter bei mir jetzt komplett raus ist.

                      Ich habe drei Shellys für Licht im Treppenhaus (Keller, oben und unten). Diese werden (oben und unten) über Schalter angesteuert und unten über einen Button1. Außerdem gibt es drei Bewegungsmelder im Treppenhaus (oben, unten und Keller) die auch das Licht einschalten können. Die Dauer, wie lange das Licht brennt nach Aktivierung lässt sich einstellen in JARVIS. Außerdem habe ich noch eingebaut im Blockly das wenn während die Dauer noch nicht abgelaufen ist Shellys bzw. das Licht wieder angeschalten werden sollte jemand bei brennendem Licht auf die Schalter drücken. Funktionierte eigentlich sehr gut das Blockly Skript bis zum Entfernen des Shelly Adapters.

                      Das wäre das Projekt was wir uns, wenn es für Dich passt, mal anschauen könnten.

                      Treppenhaus_V9.txt

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

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

                      @mickym Super! Das funktioniert ;-).

                      Nächstes Projekt wäre nun etwas zu basteln für mein Treppenhaus. Dazu habe ich über längere Zeit ein Blockly gebastelt, welches aber nicht mehr ganz funktioniert jetzt da der Shelly Adapter bei mir jetzt komplett raus ist.

                      Ich habe drei Shellys für Licht im Treppenhaus (Keller, oben und unten). Diese werden (oben und unten) über Schalter angesteuert und unten über einen Button1. Außerdem gibt es drei Bewegungsmelder im Treppenhaus (oben, unten und Keller) die auch das Licht einschalten können. Die Dauer, wie lange das Licht brennt nach Aktivierung lässt sich einstellen in JARVIS. Außerdem habe ich noch eingebaut im Blockly das wenn während die Dauer noch nicht abgelaufen ist Shellys bzw. das Licht wieder angeschalten werden sollte jemand bei brennendem Licht auf die Schalter drücken. Funktionierte eigentlich sehr gut das Blockly Skript bis zum Entfernen des Shelly Adapters.

                      Das wäre das Projekt was wir uns, wenn es für Dich passt, mal anschauen könnten.

                      Treppenhaus_V9.txt

                      @hotspot_2 Können wir machen - wobei ich das Blockly wieder mal sowas von unübersichtlich finde. Du hast doch alles auf die neuen Datenpunkte geändert, warum funktioniert das Blockly dann nicht?

                      Ehrlich gesagt finde ich das Blockly aber so grottig aufgebaut, dass es mir lieber werden, wir würden die Logik neu implementieren? - Wäre das OK ?

                      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 Super! Das funktioniert ;-).

                        Nächstes Projekt wäre nun etwas zu basteln für mein Treppenhaus. Dazu habe ich über längere Zeit ein Blockly gebastelt, welches aber nicht mehr ganz funktioniert jetzt da der Shelly Adapter bei mir jetzt komplett raus ist.

                        Ich habe drei Shellys für Licht im Treppenhaus (Keller, oben und unten). Diese werden (oben und unten) über Schalter angesteuert und unten über einen Button1. Außerdem gibt es drei Bewegungsmelder im Treppenhaus (oben, unten und Keller) die auch das Licht einschalten können. Die Dauer, wie lange das Licht brennt nach Aktivierung lässt sich einstellen in JARVIS. Außerdem habe ich noch eingebaut im Blockly das wenn während die Dauer noch nicht abgelaufen ist Shellys bzw. das Licht wieder angeschalten werden sollte jemand bei brennendem Licht auf die Schalter drücken. Funktionierte eigentlich sehr gut das Blockly Skript bis zum Entfernen des Shelly Adapters.

                        Das wäre das Projekt was wir uns, wenn es für Dich passt, mal anschauen könnten.

                        Treppenhaus_V9.txt

                        @hotspot_2 Können wir machen - wobei ich das Blockly wieder mal sowas von unübersichtlich finde. Du hast doch alles auf die neuen Datenpunkte geändert, warum funktioniert das Blockly dann nicht?

                        Ehrlich gesagt finde ich das Blockly aber so grottig aufgebaut, dass es mir lieber werden, wir würden die Logik neu implementieren? - Wäre das OK ?

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

                        @mickym Na klar, völlig ok. Das Ding ist gewachsen mit Unterstützung von verschiedenen Seiten am Anfang und ich hab dann einfach weitergebastelt bis es funktioniert.

                        Ich habe im Skript noch nicht alle Datenpunkte angepasst, daher funktioniert es gerade nicht.

                        mickymM 1 Antwort Letzte Antwort
                        0
                        • H hotspot_2

                          @mickym Na klar, völlig ok. Das Ding ist gewachsen mit Unterstützung von verschiedenen Seiten am Anfang und ich hab dann einfach weitergebastelt bis es funktioniert.

                          Ich habe im Skript noch nicht alle Datenpunkte angepasst, daher funktioniert es gerade nicht.

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

                          @hotspot_2 Gut.

                          Dann meine 1. Frage:

                          Die Dauer, wie lange das Licht brennt nach Aktivierung lässt sich einstellen in JARVIS.

                          So dass heißt - dass ist die zentrale Instanz die das Licht ausschalten kann. Alle Buttons, Lichtschalter und Bewegungsmelder schalten immer ein - aber nie aus?

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

                            Dann meine 1. Frage:

                            Die Dauer, wie lange das Licht brennt nach Aktivierung lässt sich einstellen in JARVIS.

                            So dass heißt - dass ist die zentrale Instanz die das Licht ausschalten kann. Alle Buttons, Lichtschalter und Bewegungsmelder schalten immer ein - aber nie aus?

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

                            @mickym Ja, alle Schalter, Buttons und Bewegungsmelder schalten immer ein, aber nie aus. Das ist so korrekt. Aus geht immer dann wenn die Zeit, die einstellbar ist, abgelaufen ist. Möchte man es wieder hell haben muss man Schalter /Button drücken oder sich bewegen ;-).

                            Wenn dann trotzdem ein Schalter gedrückt wird, habe ich es abgefangen und den Shelly bzw. das Licht wieder angeschalten. Der Shelly schaltet ja nach der Betätigung des Schalters das Licht erstmal aus.

                            mickymM 1 Antwort Letzte Antwort
                            0
                            • H hotspot_2

                              @mickym Ja, alle Schalter, Buttons und Bewegungsmelder schalten immer ein, aber nie aus. Das ist so korrekt. Aus geht immer dann wenn die Zeit, die einstellbar ist, abgelaufen ist. Möchte man es wieder hell haben muss man Schalter /Button drücken oder sich bewegen ;-).

                              Wenn dann trotzdem ein Schalter gedrückt wird, habe ich es abgefangen und den Shelly bzw. das Licht wieder angeschalten. Der Shelly schaltet ja nach der Betätigung des Schalters das Licht erstmal aus.

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

                              @hotspot_2 Noch eine blöde Frage - warum konfigurierst Du dann die Shellies nicht im detached Mode - so dass die nicht mehr physisch schalten können also nicht mehr ausschalten können? Das wäre nicht nur einfacher zu implementieren, sondern würde auch Dein Licht schonen.

                              913f278a-396a-4820-86b0-a2a7bf88d36a-image.png

                              oder

                              Activation Switch - der schaltet immer ein? - Das ist so hardwaremässig so eine Treppenhausfunktion auch wenn Du sie nicht nutzt.

                              29894a00-6826-4ca9-9ce2-b53a6d743173-image.png

                              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 Noch eine blöde Frage - warum konfigurierst Du dann die Shellies nicht im detached Mode - so dass die nicht mehr physisch schalten können also nicht mehr ausschalten können? Das wäre nicht nur einfacher zu implementieren, sondern würde auch Dein Licht schonen.

                                913f278a-396a-4820-86b0-a2a7bf88d36a-image.png

                                oder

                                Activation Switch - der schaltet immer ein? - Das ist so hardwaremässig so eine Treppenhausfunktion auch wenn Du sie nicht nutzt.

                                29894a00-6826-4ca9-9ce2-b53a6d743173-image.png

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

                                @mickym Ich habe die Firmware 0.14.1 drauf. Da finde ich das Detached nicht. Ich sehe aktuell nur Follow oder Flip als Modus.

                                mickymM 1 Antwort Letzte Antwort
                                0
                                • H hotspot_2

                                  @mickym Ich habe die Firmware 0.14.1 drauf. Da finde ich das Detached nicht. Ich sehe aktuell nur Follow oder Flip als Modus.

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

                                  @hotspot_2 Ich hab gerade nachgelesen, dass muss es geben:

                                  https://kb.shelly.cloud/knowledge-base/shelly-plus-1-device-page#Applicationmanualcommonparts-Input/OutputSettings

                                  f8819f7d-c18c-4fcd-b0f1-754b478fda6f-image.png

                                  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 hab gerade nachgelesen, dass muss es geben:

                                    https://kb.shelly.cloud/knowledge-base/shelly-plus-1-device-page#Applicationmanualcommonparts-Input/OutputSettings

                                    f8819f7d-c18c-4fcd-b0f1-754b478fda6f-image.png

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

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

                                    @hotspot_2 Das gab schon ewig - aber ich kenne die Seiten bei den Plus Web Interface nicht. Da muss es auch einen Button Type geben.

                                    Ja, gibt es aber nur zwei.

                                    5a39dcaf-309b-4b43-ac5f-b134eb2e2462-image.png

                                    Ich habe das mal im Shelly Forum angefragt. Mal schauen ob da jemand helfen kann.

                                    Bisher habe ich bei den Plus1 diesen Modus noch nicht gesehen.

                                    mickymM 1 Antwort Letzte Antwort
                                    0
                                    • H hotspot_2

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

                                      @hotspot_2 Das gab schon ewig - aber ich kenne die Seiten bei den Plus Web Interface nicht. Da muss es auch einen Button Type geben.

                                      Ja, gibt es aber nur zwei.

                                      5a39dcaf-309b-4b43-ac5f-b134eb2e2462-image.png

                                      Ich habe das mal im Shelly Forum angefragt. Mal schauen ob da jemand helfen kann.

                                      Bisher habe ich bei den Plus1 diesen Modus noch nicht gesehen.

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

                                      Nee ich habs:
                                      https://kb.shelly.cloud/knowledge-base/shelly-plus-1pm-web-interface-guide

                                      Also Input Settings

                                      a83a230b-51b2-4511-abd8-8330b7b2cfd0-image.png

                                      attached to output kann auf true und false wahrscheinlich konfigurieren

                                      DAmit bekommst Du weiterhin Tastendrücke mit aber wird nicht mehr geschaltet.

                                      Mit der APP und Iobroker kannst natürlich weiter schalten - aber Du schaltest nicht mehr über das Relais

                                      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

                                        Nee ich habs:
                                        https://kb.shelly.cloud/knowledge-base/shelly-plus-1pm-web-interface-guide

                                        Also Input Settings

                                        a83a230b-51b2-4511-abd8-8330b7b2cfd0-image.png

                                        attached to output kann auf true und false wahrscheinlich konfigurieren

                                        DAmit bekommst Du weiterhin Tastendrücke mit aber wird nicht mehr geschaltet.

                                        Mit der APP und Iobroker kannst natürlich weiter schalten - aber Du schaltest nicht mehr über das Relais

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

                                        @mickym c3ed97fb-3948-4365-9188-9191ab43ed4b-image.png

                                        Jupp. Geht hier. Stehen momentan auf Attached.

                                        Damit wäre das Problem gelöst mit dem Thema wieder einschalten müssen wenn jemand drauf drückt vermutlich.

                                        mickymM 1 Antwort Letzte Antwort
                                        0
                                        • H hotspot_2

                                          @mickym c3ed97fb-3948-4365-9188-9191ab43ed4b-image.png

                                          Jupp. Geht hier. Stehen momentan auf Attached.

                                          Damit wäre das Problem gelöst mit dem Thema wieder einschalten müssen wenn jemand drauf drückt vermutlich.

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

                                          @hotspot_2 Genau. :) - Also ich würde alles auf detached schalten und dann können wir uns nun um die Logik kümmern. ;) und brauchen nicht mehr fehlerhaft ausgeschaltetes Licht wieder einschalten. ;)

                                          So und nun nehmen wir einfach den vorhanden Flow, um das zu implementieren.

                                          Also wir nehmen wieder eine trigger NOde - und machen das erst mal wieder mit einer fixen Zeit von 2 Minuten.

                                          Auf der linken Seite ordnest Du mal alles was trigger an an.

                                          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 mickymM 2 Antworten 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

                                          998

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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