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. Node Red HomeKit - Garagentor

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Node Red HomeKit - Garagentor

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
11 Beiträge 3 Kommentatoren 1.1k Aufrufe 2 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.
  • M Minta79

    Hallo zusammen,

    ich versuche verzweifelt mein Garagentor von Meross über Node Red in HomeKit einzubinden. Ich nutze: node-red-contrib-homekit-bridged - GarageDoorOpener
    Mein Meross Garagentor hat die folgenden Optionen:
    Bildschirmfoto 2022-08-28 um 10.46.31.png
    Ich weiß nicht an welcher Stelle ich was "Mappen" muss, damit es zusammenpasst.
    Habe schon vergeblich nach Beispielen gesucht.
    Kann mir jemand helfen?

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

    @minta79

    Nutze einfach das Wiki - das sind sogar Beispiele mit dabei, die Du importieren kannst.

    Hier einfach das einfache Beispiel zum Öffnen und schließen verwenden: https://nrchkb.github.io/wiki/service/garage-door-opener/

    Mit dem Beispiel kannst Du über die Inject Nodes die Steuerung simulieren und dann mit den iobroker Nodes ersezten.

    Die Initialisierung würde ich gleich wegschmeissen. Im Prinzip steuerst Du über TargetDoorState und sobald CurrentDoorState = TargetDoorState hört die Animation auf. Da musst halt dann mit dem ACK Flag arbeiten. Das Speichern der States brauchst alles nicht, dafür kannst auch bei der Initialisierung ja die Datenpunkte auslesen.

    In Deinem Fall brauchst also nur mit dem 0-garageDoor Datenpunkt arbeiten und einmal mit der iobroker-IN Node nur nach bestätigten ACK=False Zuständen filtern für den CurrentState, während Du bei setzen natürlich die iobroker-OUT Node als command nutzt.

    Du musst halt nur noch sagen ob false zu oder auf bedeutet.

    Im Prinzip sollte dieser Flow schon ausreichen mit der entsprechenden Filterung der iobroker-In Nodes:

    77db0cd2-315e-4b5d-88ab-7bceae9ae92f-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.

    M 1 Antwort Letzte Antwort
    0
    • mickymM mickym

      @minta79

      Nutze einfach das Wiki - das sind sogar Beispiele mit dabei, die Du importieren kannst.

      Hier einfach das einfache Beispiel zum Öffnen und schließen verwenden: https://nrchkb.github.io/wiki/service/garage-door-opener/

      Mit dem Beispiel kannst Du über die Inject Nodes die Steuerung simulieren und dann mit den iobroker Nodes ersezten.

      Die Initialisierung würde ich gleich wegschmeissen. Im Prinzip steuerst Du über TargetDoorState und sobald CurrentDoorState = TargetDoorState hört die Animation auf. Da musst halt dann mit dem ACK Flag arbeiten. Das Speichern der States brauchst alles nicht, dafür kannst auch bei der Initialisierung ja die Datenpunkte auslesen.

      In Deinem Fall brauchst also nur mit dem 0-garageDoor Datenpunkt arbeiten und einmal mit der iobroker-IN Node nur nach bestätigten ACK=False Zuständen filtern für den CurrentState, während Du bei setzen natürlich die iobroker-OUT Node als command nutzt.

      Du musst halt nur noch sagen ob false zu oder auf bedeutet.

      Im Prinzip sollte dieser Flow schon ausreichen mit der entsprechenden Filterung der iobroker-In Nodes:

      77db0cd2-315e-4b5d-88ab-7bceae9ae92f-image.png

      M Offline
      M Offline
      Minta79
      schrieb am zuletzt editiert von
      #3

      @mickym vielen Dank für deine Infos. Bei den Beispielen im Wiki sind viele Nodes die er beim Import bei mir nicht erkennt. Kannst du mit evtl deinen Flow exportieren so dass ich ihn importieren kann? Die nodes an sich sind schlüssig für mich, aber mit dem Inhalt bin ich mir immer nicht sicher.

      mickymM 1 Antwort Letzte Antwort
      0
      • M Minta79

        @mickym vielen Dank für deine Infos. Bei den Beispielen im Wiki sind viele Nodes die er beim Import bei mir nicht erkennt. Kannst du mit evtl deinen Flow exportieren so dass ich ihn importieren kann? Die nodes an sich sind schlüssig für mich, aber mit dem Inhalt bin ich mir immer nicht sicher.

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

        @minta79 Ich versteh es zwar nicht - Du musst halt die Inject Nodes in den Gruppen durch iobroker Nodes ersetzen

        [
            {
                "id": "5534366a.7ef91",
                "type": "homekit-service",
                "z": "0a748caf4d6f8142",
                "isParent": true,
                "hostType": "0",
                "bridge": "1f4da0a9.4023c7",
                "accessoryId": "",
                "parentService": "",
                "name": "Garage Door",
                "serviceName": "GarageDoorOpener",
                "topic": "",
                "filter": false,
                "manufacturer": "ptath",
                "model": "Default Model",
                "serialNo": "0001",
                "firmwareRev": "",
                "hardwareRev": "",
                "softwareRev": "",
                "cameraConfigVideoProcessor": "",
                "cameraConfigSource": "",
                "cameraConfigStillImageSource": "",
                "cameraConfigMaxStreams": "",
                "cameraConfigMaxWidth": "",
                "cameraConfigMaxHeight": "",
                "cameraConfigMaxFPS": "",
                "cameraConfigMaxBitrate": "",
                "cameraConfigVideoCodec": "",
                "cameraConfigAudioCodec": "",
                "cameraConfigAudio": false,
                "cameraConfigPacketSize": "",
                "cameraConfigVerticalFlip": false,
                "cameraConfigHorizontalFlip": false,
                "cameraConfigMapVideo": "",
                "cameraConfigMapAudio": "",
                "cameraConfigVideoFilter": "",
                "cameraConfigAdditionalCommandLine": "",
                "cameraConfigDebug": false,
                "cameraConfigInterfaceName": "",
                "characteristicProperties": "{    \"CurrentDoorState\":1}",
                "waitForSetupMsg": false,
                "outputs": 2,
                "x": 730,
                "y": 440,
                "wires": [
                    [],
                    [
                        "ac35abe5f92f2e72"
                    ]
                ]
            },
            {
                "id": "14d4bf27.4db229",
                "type": "debug",
                "z": "0a748caf4d6f8142",
                "name": "on set",
                "active": true,
                "tosidebar": true,
                "console": false,
                "tostatus": false,
                "complete": "payload",
                "targetType": "msg",
                "statusVal": "",
                "statusType": "auto",
                "x": 1150,
                "y": 460,
                "wires": []
            },
            {
                "id": "ac35abe5f92f2e72",
                "type": "switch",
                "z": "0a748caf4d6f8142",
                "name": "nur TargetDoorState",
                "property": "payload.TargetDoorState",
                "propertyType": "msg",
                "rules": [
                    {
                        "t": "nnull"
                    }
                ],
                "checkall": "true",
                "repair": false,
                "outputs": 1,
                "x": 960,
                "y": 460,
                "wires": [
                    [
                        "14d4bf27.4db229"
                    ]
                ]
            },
            {
                "id": "1f93f344606a50ee",
                "type": "group",
                "z": "0a748caf4d6f8142",
                "name": "ACK = False",
                "style": {
                    "label": true
                },
                "nodes": [
                    "f0a87280.f66ea",
                    "2f0bb109.cee4ee"
                ],
                "x": 214,
                "y": 299,
                "w": 312,
                "h": 122
            },
            {
                "id": "f0a87280.f66ea",
                "type": "inject",
                "z": "0a748caf4d6f8142",
                "g": "1f93f344606a50ee",
                "name": "TargetDoorState 0 To Open",
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "{\"TargetDoorState\": 0}",
                "payloadType": "json",
                "x": 370,
                "y": 340,
                "wires": [
                    [
                        "5534366a.7ef91"
                    ]
                ]
            },
            {
                "id": "2f0bb109.cee4ee",
                "type": "inject",
                "z": "0a748caf4d6f8142",
                "g": "1f93f344606a50ee",
                "name": "TargetDoorState 1 To Close",
                "props": [
                    {
                        "p": "payload",
                        "v": "{\"TargetDoorState\":1}",
                        "vt": "json"
                    },
                    {
                        "p": "topic",
                        "v": "",
                        "vt": "str"
                    }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "{\"TargetDoorState\":1}",
                "payloadType": "json",
                "x": 380,
                "y": 380,
                "wires": [
                    [
                        "5534366a.7ef91"
                    ]
                ]
            },
            {
                "id": "0d9bf51cd82c26ad",
                "type": "group",
                "z": "0a748caf4d6f8142",
                "name": "ACK = True",
                "style": {
                    "label": true
                },
                "nodes": [
                    "26ef612d.04cd86",
                    "1dcedc5c.cc1004"
                ],
                "x": 214,
                "y": 439,
                "w": 312,
                "h": 122
            },
            {
                "id": "26ef612d.04cd86",
                "type": "inject",
                "z": "0a748caf4d6f8142",
                "g": "0d9bf51cd82c26ad",
                "name": "CurrentDoorState 0 opened",
                "props": [
                    {
                        "p": "payload"
                    },
                    {
                        "p": "topic",
                        "vt": "str"
                    }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "{\"CurrentDoorState\":0}",
                "payloadType": "json",
                "x": 380,
                "y": 480,
                "wires": [
                    [
                        "5534366a.7ef91"
                    ]
                ]
            },
            {
                "id": "1dcedc5c.cc1004",
                "type": "inject",
                "z": "0a748caf4d6f8142",
                "g": "0d9bf51cd82c26ad",
                "name": "CurrentDoorState 1 closed",
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "{\"CurrentDoorState\":1}",
                "payloadType": "json",
                "x": 370,
                "y": 520,
                "wires": [
                    [
                        "5534366a.7ef91"
                    ]
                ]
            },
            {
                "id": "1f4da0a9.4023c7",
                "type": "homekit-bridge",
                "bridgeName": "villa-test",
                "pinCode": "111-11-111",
                "port": "",
                "advertiser": "ciao",
                "allowInsecureRequest": false,
                "manufacturer": "ptath",
                "model": "raspberry pi zeroW",
                "serialNo": "12345678",
                "firmwareRev": "",
                "hardwareRev": "",
                "softwareRev": "",
                "customMdnsConfig": false,
                "mdnsMulticast": true,
                "mdnsInterface": "",
                "mdnsPort": "",
                "mdnsIp": "",
                "mdnsTtl": "",
                "mdnsLoopback": true,
                "mdnsReuseAddr": true,
                "allowMessagePassthrough": true
            }
        ]
        

        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
        • M Offline
          M Offline
          Minta79
          schrieb am zuletzt editiert von
          #5

          @mickym said in Node Red HomeKit - Garagentor:

          Du musst halt die Inject Nodes in den Gruppen durch iobroker Nodes ersetzen

          Das verstehe ich. Sorry, dass ich mich so blöd anstelle. Aber ein ersetzen reicht ja nicht, denn aus der iobroker Node kommt ein False oder True und keine 0 oder 1, die erwartet wird. Diese muss ich doch ersetzen/ändern oder nicht? Das habe ich mit einer Change Node versucht und es zumindest geschafft dass das Tor sich öffnet, nur beim Schließen kringelt sich der Kreis im HomeKit und hört nicht auf und das Tor schließt sich auch nicht. Befürchte auch dass ich es nicht richtig gemacht habe.
          Zum Schluss muss ich doch auch wieder in die iobroker Node zurück oder nicht, zumindest kenne ich das so von meinen anderen Flows, um auch Änderungen mitzubekommen, wenn das Tor z.B. manuell geöffnet wird.
          Und was ist mit CurrentDoorState? Kann ich den außen vor lassen? In deinem Beispiel steht der nicht drin.
          Würde mich sehr freuen, wenn du mir noch helfen könntest.

          L mickymM 2 Antworten Letzte Antwort
          0
          • M Minta79

            @mickym said in Node Red HomeKit - Garagentor:

            Du musst halt die Inject Nodes in den Gruppen durch iobroker Nodes ersetzen

            Das verstehe ich. Sorry, dass ich mich so blöd anstelle. Aber ein ersetzen reicht ja nicht, denn aus der iobroker Node kommt ein False oder True und keine 0 oder 1, die erwartet wird. Diese muss ich doch ersetzen/ändern oder nicht? Das habe ich mit einer Change Node versucht und es zumindest geschafft dass das Tor sich öffnet, nur beim Schließen kringelt sich der Kreis im HomeKit und hört nicht auf und das Tor schließt sich auch nicht. Befürchte auch dass ich es nicht richtig gemacht habe.
            Zum Schluss muss ich doch auch wieder in die iobroker Node zurück oder nicht, zumindest kenne ich das so von meinen anderen Flows, um auch Änderungen mitzubekommen, wenn das Tor z.B. manuell geöffnet wird.
            Und was ist mit CurrentDoorState? Kann ich den außen vor lassen? In deinem Beispiel steht der nicht drin.
            Würde mich sehr freuen, wenn du mir noch helfen könntest.

            L Offline
            L Offline
            lessthanmore
            schrieb am zuletzt editiert von lessthanmore
            #6

            @minta79 said in Node Red HomeKit - Garagentor:

            Und was ist mit CurrentDoorState? Kann ich den außen vor lassen?

            Leider nein. Genau deswegen dreht sich der "Kringel".
            TargetDoorState bekommt bei mir bspw. immer eine 1 (Impuls), allerdings kommt Homekit damit nicht klar. Über den CurrentDoorState weiß Homekit dann was die nächste Aktion ist bzw. wo das Tor sich gerade befindet (auf/ zu).
            Dafür nutze ich einen Aqara Fensterkontakt, damit ich weiß, ob das Tor geschlossen ist und steuere dann Current wie auch Target; allerdings nutze ich dafür blockly.
            2022-09-08_08-58-23.png

            Hier war das Thema auch schon:
            https://213.136.68.177/topic/15996/garagentor-mit-sonoff-und-reedkontakte-in-yahka-homekit/18

            Hier mit node-red:
            https://github.com/NRCHKB/node-red-contrib-homekit-bridged/issues/33 (nur als Beispiel!)

            M 1 Antwort Letzte Antwort
            0
            • L lessthanmore

              @minta79 said in Node Red HomeKit - Garagentor:

              Und was ist mit CurrentDoorState? Kann ich den außen vor lassen?

              Leider nein. Genau deswegen dreht sich der "Kringel".
              TargetDoorState bekommt bei mir bspw. immer eine 1 (Impuls), allerdings kommt Homekit damit nicht klar. Über den CurrentDoorState weiß Homekit dann was die nächste Aktion ist bzw. wo das Tor sich gerade befindet (auf/ zu).
              Dafür nutze ich einen Aqara Fensterkontakt, damit ich weiß, ob das Tor geschlossen ist und steuere dann Current wie auch Target; allerdings nutze ich dafür blockly.
              2022-09-08_08-58-23.png

              Hier war das Thema auch schon:
              https://213.136.68.177/topic/15996/garagentor-mit-sonoff-und-reedkontakte-in-yahka-homekit/18

              Hier mit node-red:
              https://github.com/NRCHKB/node-red-contrib-homekit-bridged/issues/33 (nur als Beispiel!)

              M Offline
              M Offline
              Minta79
              schrieb am zuletzt editiert von
              #7

              @lessthanmore

              Ok. Danke für die Infos. Schaue es mir an

              1 Antwort Letzte Antwort
              0
              • M Minta79

                @mickym said in Node Red HomeKit - Garagentor:

                Du musst halt die Inject Nodes in den Gruppen durch iobroker Nodes ersetzen

                Das verstehe ich. Sorry, dass ich mich so blöd anstelle. Aber ein ersetzen reicht ja nicht, denn aus der iobroker Node kommt ein False oder True und keine 0 oder 1, die erwartet wird. Diese muss ich doch ersetzen/ändern oder nicht? Das habe ich mit einer Change Node versucht und es zumindest geschafft dass das Tor sich öffnet, nur beim Schließen kringelt sich der Kreis im HomeKit und hört nicht auf und das Tor schließt sich auch nicht. Befürchte auch dass ich es nicht richtig gemacht habe.
                Zum Schluss muss ich doch auch wieder in die iobroker Node zurück oder nicht, zumindest kenne ich das so von meinen anderen Flows, um auch Änderungen mitzubekommen, wenn das Tor z.B. manuell geöffnet wird.
                Und was ist mit CurrentDoorState? Kann ich den außen vor lassen? In deinem Beispiel steht der nicht drin.
                Würde mich sehr freuen, wenn du mir noch helfen könntest.

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

                @minta79 sagte in Node Red HomeKit - Garagentor:

                Das verstehe ich. Sorry, dass ich mich so blöd anstelle. Aber ein ersetzen reicht ja nicht, denn aus der iobroker Node kommt ein False oder True und keine 0 oder 1, die erwartet wird. Diese muss ich doch ersetzen/ändern oder nicht? Das habe ich mit einer Change Node versucht und es zumindest geschafft dass das Tor sich öffnet, nur beim Schließen kringelt sich der Kreis im HomeKit und hört nicht auf und das Tor schließt sich auch nicht. Befürchte auch dass ich es nicht richtig gemacht habe.

                Ja da bin ich von ausgegangen, dass Du das mit der Change Node hinbekommst und Du musst es natürlich in beide Richtungen übersetzen. - Ich kanns aber nochmal ändern.

                Zum Schluss muss ich doch auch wieder in die iobroker Node zurück oder nicht, zumindest kenne ich das so von meinen anderen Flows, um auch Änderungen mitzubekommen, wenn das Tor z.B. manuell geöffnet wird.

                Ja ich habe noch was verkehrt gemacht - Ja klar Du setzt den Datenpunkt Garage Door via Command. Ich ändere den Flow nochmal

                Und was ist mit CurrentDoorState? Kann ich den außen vor lassen? In deinem Beispiel steht der nicht drin.
                Würde mich sehr freuen, wenn du mir noch helfen könntest.

                Doch der wird berücksichtigt - das ist der Eingang. Was nicht geht - ist, dass das Steuern doppelt setzt - das hatte ich nicht durchdacht. Also falls Du das Tor nicht über Homekit steuerst bekommst Du nur den Current Door state mitgeteilt.

                So ich habe Dir nun den ganzen Flow nochmal neu gemacht und auch getestet mit true und false - wobei Du das halt ggf. noch tauschen musst:

                Hier mal der Import an den Du noch die iobroker Nodes hängen musst:

                [
                   {
                       "id": "5534366a.7ef91",
                       "type": "homekit-service",
                       "z": "0a748caf4d6f8142",
                       "isParent": true,
                       "hostType": "0",
                       "bridge": "1f4da0a9.4023c7",
                       "accessoryId": "",
                       "parentService": "",
                       "name": "Garage Door",
                       "serviceName": "GarageDoorOpener",
                       "topic": "",
                       "filter": false,
                       "manufacturer": "ptath",
                       "model": "Default Model",
                       "serialNo": "0001",
                       "firmwareRev": "",
                       "hardwareRev": "",
                       "softwareRev": "",
                       "cameraConfigVideoProcessor": "",
                       "cameraConfigSource": "",
                       "cameraConfigStillImageSource": "",
                       "cameraConfigMaxStreams": "",
                       "cameraConfigMaxWidth": "",
                       "cameraConfigMaxHeight": "",
                       "cameraConfigMaxFPS": "",
                       "cameraConfigMaxBitrate": "",
                       "cameraConfigVideoCodec": "",
                       "cameraConfigAudioCodec": "",
                       "cameraConfigAudio": false,
                       "cameraConfigPacketSize": "",
                       "cameraConfigVerticalFlip": false,
                       "cameraConfigHorizontalFlip": false,
                       "cameraConfigMapVideo": "",
                       "cameraConfigMapAudio": "",
                       "cameraConfigVideoFilter": "",
                       "cameraConfigAdditionalCommandLine": "",
                       "cameraConfigDebug": false,
                       "cameraConfigInterfaceName": "",
                       "characteristicProperties": "{    \"CurrentDoorState\":1}",
                       "waitForSetupMsg": false,
                       "outputs": 2,
                       "x": 770,
                       "y": 400,
                       "wires": [
                           [],
                           [
                               "ac35abe5f92f2e72"
                           ]
                       ]
                   },
                   {
                       "id": "ac35abe5f92f2e72",
                       "type": "switch",
                       "z": "0a748caf4d6f8142",
                       "name": "nur TargetDoorState",
                       "property": "payload.TargetDoorState",
                       "propertyType": "msg",
                       "rules": [
                           {
                               "t": "nnull"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 1,
                       "x": 1000,
                       "y": 420,
                       "wires": [
                           [
                               "e07e0b4e21acd839"
                           ]
                       ]
                   },
                   {
                       "id": "eee16c2bbbf02c68",
                       "type": "change",
                       "z": "0a748caf4d6f8142",
                       "name": "setze CurrentDoorState",
                       "rules": [
                           {
                               "t": "move",
                               "p": "payload",
                               "pt": "msg",
                               "to": "payload.CurrentDoorState",
                               "tot": "msg"
                           },
                           {
                               "t": "change",
                               "p": "payload.CurrentDoorState",
                               "pt": "msg",
                               "from": "true",
                               "fromt": "bool",
                               "to": "0",
                               "tot": "num"
                           },
                           {
                               "t": "change",
                               "p": "payload.CurrentDoorState",
                               "pt": "msg",
                               "from": "false",
                               "fromt": "bool",
                               "to": "1",
                               "tot": "num"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 550,
                       "y": 400,
                       "wires": [
                           [
                               "5534366a.7ef91"
                           ]
                       ]
                   },
                   {
                       "id": "e07e0b4e21acd839",
                       "type": "change",
                       "z": "0a748caf4d6f8142",
                       "name": "setze payload für iobroker",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "payload.TargetDoorState",
                               "tot": "msg"
                           },
                           {
                               "t": "change",
                               "p": "payload",
                               "pt": "msg",
                               "from": "0",
                               "fromt": "num",
                               "to": "true",
                               "tot": "bool"
                           },
                           {
                               "t": "change",
                               "p": "payload",
                               "pt": "msg",
                               "from": "1",
                               "fromt": "num",
                               "to": "false",
                               "tot": "bool"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 1250,
                       "y": 420,
                       "wires": [
                           [
                               "14d4bf27.4db229"
                           ]
                       ]
                   },
                   {
                       "id": "1f4da0a9.4023c7",
                       "type": "homekit-bridge",
                       "bridgeName": "villa-test",
                       "pinCode": "111-11-111",
                       "port": "",
                       "advertiser": "ciao",
                       "allowInsecureRequest": false,
                       "manufacturer": "ptath",
                       "model": "raspberry pi zeroW",
                       "serialNo": "12345678",
                       "firmwareRev": "",
                       "hardwareRev": "",
                       "softwareRev": "",
                       "customMdnsConfig": false,
                       "mdnsMulticast": true,
                       "mdnsInterface": "",
                       "mdnsPort": "",
                       "mdnsIp": "",
                       "mdnsTtl": "",
                       "mdnsLoopback": true,
                       "mdnsReuseAddr": true,
                       "allowMessagePassthrough": true
                   }
                ]
                

                Flow.png

                Ich hab die Home-Kit Nodes nicht auf der Instanz mit dem iobroker aber bei Fragen nochmal melden.

                Als Beweis, dass es so funktioniert - hier mal ein kleines Video - wenn man den Flow benutzt und über die HomeApp steuert.

                HomeKit-Garage Opener - klein.mp4

                Achte auf jeden Fall darauf, dass Du das mit den ACK Flags sauber machst - sonst hast Du bei einem Datenpunkt ganz schnell eine Endlosschleife drin.

                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.

                M 1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  @minta79 sagte in Node Red HomeKit - Garagentor:

                  Das verstehe ich. Sorry, dass ich mich so blöd anstelle. Aber ein ersetzen reicht ja nicht, denn aus der iobroker Node kommt ein False oder True und keine 0 oder 1, die erwartet wird. Diese muss ich doch ersetzen/ändern oder nicht? Das habe ich mit einer Change Node versucht und es zumindest geschafft dass das Tor sich öffnet, nur beim Schließen kringelt sich der Kreis im HomeKit und hört nicht auf und das Tor schließt sich auch nicht. Befürchte auch dass ich es nicht richtig gemacht habe.

                  Ja da bin ich von ausgegangen, dass Du das mit der Change Node hinbekommst und Du musst es natürlich in beide Richtungen übersetzen. - Ich kanns aber nochmal ändern.

                  Zum Schluss muss ich doch auch wieder in die iobroker Node zurück oder nicht, zumindest kenne ich das so von meinen anderen Flows, um auch Änderungen mitzubekommen, wenn das Tor z.B. manuell geöffnet wird.

                  Ja ich habe noch was verkehrt gemacht - Ja klar Du setzt den Datenpunkt Garage Door via Command. Ich ändere den Flow nochmal

                  Und was ist mit CurrentDoorState? Kann ich den außen vor lassen? In deinem Beispiel steht der nicht drin.
                  Würde mich sehr freuen, wenn du mir noch helfen könntest.

                  Doch der wird berücksichtigt - das ist der Eingang. Was nicht geht - ist, dass das Steuern doppelt setzt - das hatte ich nicht durchdacht. Also falls Du das Tor nicht über Homekit steuerst bekommst Du nur den Current Door state mitgeteilt.

                  So ich habe Dir nun den ganzen Flow nochmal neu gemacht und auch getestet mit true und false - wobei Du das halt ggf. noch tauschen musst:

                  Hier mal der Import an den Du noch die iobroker Nodes hängen musst:

                  [
                     {
                         "id": "5534366a.7ef91",
                         "type": "homekit-service",
                         "z": "0a748caf4d6f8142",
                         "isParent": true,
                         "hostType": "0",
                         "bridge": "1f4da0a9.4023c7",
                         "accessoryId": "",
                         "parentService": "",
                         "name": "Garage Door",
                         "serviceName": "GarageDoorOpener",
                         "topic": "",
                         "filter": false,
                         "manufacturer": "ptath",
                         "model": "Default Model",
                         "serialNo": "0001",
                         "firmwareRev": "",
                         "hardwareRev": "",
                         "softwareRev": "",
                         "cameraConfigVideoProcessor": "",
                         "cameraConfigSource": "",
                         "cameraConfigStillImageSource": "",
                         "cameraConfigMaxStreams": "",
                         "cameraConfigMaxWidth": "",
                         "cameraConfigMaxHeight": "",
                         "cameraConfigMaxFPS": "",
                         "cameraConfigMaxBitrate": "",
                         "cameraConfigVideoCodec": "",
                         "cameraConfigAudioCodec": "",
                         "cameraConfigAudio": false,
                         "cameraConfigPacketSize": "",
                         "cameraConfigVerticalFlip": false,
                         "cameraConfigHorizontalFlip": false,
                         "cameraConfigMapVideo": "",
                         "cameraConfigMapAudio": "",
                         "cameraConfigVideoFilter": "",
                         "cameraConfigAdditionalCommandLine": "",
                         "cameraConfigDebug": false,
                         "cameraConfigInterfaceName": "",
                         "characteristicProperties": "{    \"CurrentDoorState\":1}",
                         "waitForSetupMsg": false,
                         "outputs": 2,
                         "x": 770,
                         "y": 400,
                         "wires": [
                             [],
                             [
                                 "ac35abe5f92f2e72"
                             ]
                         ]
                     },
                     {
                         "id": "ac35abe5f92f2e72",
                         "type": "switch",
                         "z": "0a748caf4d6f8142",
                         "name": "nur TargetDoorState",
                         "property": "payload.TargetDoorState",
                         "propertyType": "msg",
                         "rules": [
                             {
                                 "t": "nnull"
                             }
                         ],
                         "checkall": "true",
                         "repair": false,
                         "outputs": 1,
                         "x": 1000,
                         "y": 420,
                         "wires": [
                             [
                                 "e07e0b4e21acd839"
                             ]
                         ]
                     },
                     {
                         "id": "eee16c2bbbf02c68",
                         "type": "change",
                         "z": "0a748caf4d6f8142",
                         "name": "setze CurrentDoorState",
                         "rules": [
                             {
                                 "t": "move",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "payload.CurrentDoorState",
                                 "tot": "msg"
                             },
                             {
                                 "t": "change",
                                 "p": "payload.CurrentDoorState",
                                 "pt": "msg",
                                 "from": "true",
                                 "fromt": "bool",
                                 "to": "0",
                                 "tot": "num"
                             },
                             {
                                 "t": "change",
                                 "p": "payload.CurrentDoorState",
                                 "pt": "msg",
                                 "from": "false",
                                 "fromt": "bool",
                                 "to": "1",
                                 "tot": "num"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 550,
                         "y": 400,
                         "wires": [
                             [
                                 "5534366a.7ef91"
                             ]
                         ]
                     },
                     {
                         "id": "e07e0b4e21acd839",
                         "type": "change",
                         "z": "0a748caf4d6f8142",
                         "name": "setze payload für iobroker",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "payload.TargetDoorState",
                                 "tot": "msg"
                             },
                             {
                                 "t": "change",
                                 "p": "payload",
                                 "pt": "msg",
                                 "from": "0",
                                 "fromt": "num",
                                 "to": "true",
                                 "tot": "bool"
                             },
                             {
                                 "t": "change",
                                 "p": "payload",
                                 "pt": "msg",
                                 "from": "1",
                                 "fromt": "num",
                                 "to": "false",
                                 "tot": "bool"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 1250,
                         "y": 420,
                         "wires": [
                             [
                                 "14d4bf27.4db229"
                             ]
                         ]
                     },
                     {
                         "id": "1f4da0a9.4023c7",
                         "type": "homekit-bridge",
                         "bridgeName": "villa-test",
                         "pinCode": "111-11-111",
                         "port": "",
                         "advertiser": "ciao",
                         "allowInsecureRequest": false,
                         "manufacturer": "ptath",
                         "model": "raspberry pi zeroW",
                         "serialNo": "12345678",
                         "firmwareRev": "",
                         "hardwareRev": "",
                         "softwareRev": "",
                         "customMdnsConfig": false,
                         "mdnsMulticast": true,
                         "mdnsInterface": "",
                         "mdnsPort": "",
                         "mdnsIp": "",
                         "mdnsTtl": "",
                         "mdnsLoopback": true,
                         "mdnsReuseAddr": true,
                         "allowMessagePassthrough": true
                     }
                  ]
                  

                  Flow.png

                  Ich hab die Home-Kit Nodes nicht auf der Instanz mit dem iobroker aber bei Fragen nochmal melden.

                  Als Beweis, dass es so funktioniert - hier mal ein kleines Video - wenn man den Flow benutzt und über die HomeApp steuert.

                  HomeKit-Garage Opener - klein.mp4

                  Achte auf jeden Fall darauf, dass Du das mit den ACK Flags sauber machst - sonst hast Du bei einem Datenpunkt ganz schnell eine Endlosschleife drin.

                  M Offline
                  M Offline
                  Minta79
                  schrieb am zuletzt editiert von
                  #9

                  @mickym

                  Vielen vielen Dank!
                  Der HomeKit Schalter funktioniert jetzt super. Wenn ich das Tor allerdings manuell öffne steht im HomeKit immer "schließen" und bleibt in dem Status hängen, bis ich es wieder schließe, dann springt es im HomeKit auf geschlossen.

                  Mein Flow sieht jetzt so aus:
                  Bildschirmfoto 2022-09-26 um 14.34.55.png
                  Bildschirmfoto 2022-09-26 um 14.35.41.png

                  True und False bzw. 0 und 1 habe ich schon versucht zu tauschen, daran liegt es nicht, das passt. Noch einen Tipp?

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • M Minta79

                    @mickym

                    Vielen vielen Dank!
                    Der HomeKit Schalter funktioniert jetzt super. Wenn ich das Tor allerdings manuell öffne steht im HomeKit immer "schließen" und bleibt in dem Status hängen, bis ich es wieder schließe, dann springt es im HomeKit auf geschlossen.

                    Mein Flow sieht jetzt so aus:
                    Bildschirmfoto 2022-09-26 um 14.34.55.png
                    Bildschirmfoto 2022-09-26 um 14.35.41.png

                    True und False bzw. 0 und 1 habe ich schon versucht zu tauschen, daran liegt es nicht, das passt. Noch einen Tipp?

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

                    @minta79 Nicht irgendwas tauschen. Du kannst mal versuchen ober noch den TargetDoorState mit zu setzen - allerdings musst halt wirklich aufpassen, dass in der iobroker-IN Node nur ACK=true gefiltert wird, sonst hast Du eine Endlosschleife.

                    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.

                    M 1 Antwort Letzte Antwort
                    0
                    • mickymM mickym

                      @minta79 Nicht irgendwas tauschen. Du kannst mal versuchen ober noch den TargetDoorState mit zu setzen - allerdings musst halt wirklich aufpassen, dass in der iobroker-IN Node nur ACK=true gefiltert wird, sonst hast Du eine Endlosschleife.

                      M Offline
                      M Offline
                      Minta79
                      schrieb am zuletzt editiert von
                      #11

                      @mickym said in Node Red HomeKit - Garagentor:

                      ober noch den TargetDoorState mit zu setzen

                      Das war des Rätsels Lösung! Noch mal vielen vielen Dank!!!!!

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


                      Support us

                      ioBroker
                      Community Adapters
                      Donate
                      FAQ Cloud / IOT
                      HowTo: Node.js-Update
                      HowTo: Backup/Restore
                      Downloads
                      BLOG

                      744

                      Online

                      32.6k

                      Benutzer

                      82.1k

                      Themen

                      1.3m

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

                      • Du hast noch kein Konto? Registrieren

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