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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. bshb - Rollladensteuerung mit yhka Homekit

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

bshb - Rollladensteuerung mit yhka Homekit

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
121 Beiträge 2 Kommentatoren 10.4k 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.
  • mickymM mickym

    @sascho Nun - ich will Dich weder zu NR noch irgendetwas anderes überreden.

    Auch bei der VIS bist Du total frei und das schöne am iobroker ist, dass Du alles kombinieren kannst.

    Mit den Schaltern im NR hast halt gesehen, dass man da schnell was programmieren kann.

    Selbstverständlich kann man im NR Bedingungen verarbeiten. Wäre schlimm, wenn das so ein Produkt nicht könnte. Dazu bedienst Du Dich der Switch Nodes.

    Wenn Du bei einer Bedingung kein Aktion willst - dann brauchst ja keinen Flow - dann dreht man einfach die Bedingung um.
    Also sprich man nutzt dann die switch Node als Filter.

    Wenn also bei >7% nichts passieren soll und ansonsten der Dachfensterrolladen geschlossen werden soll, dann formuliert man das logisch natürlich genau anders herum.

    Wenn <= 7 % schließe Dachfensterrollanden.

    bc66b148-531d-4801-b1ae-1ec69741d1de-image.png

    75cc8a5d-5f16-457e-9556-963bb6a79c7f-image.png

    Bezgl. Deiner Velux Fenster kenn ich mich natürlich nicht so aus.

    Als

    1. würde ich mal ein Issue bei dem Adapterentwickler eröffnen und mal schauen, ob der Dir helfen kann.
    2. wenn das mit dem Adapter nicht funktioniert - könntest Du ja mal die NodeRed Nodes für Velux probieren, ob die besser funktioniere (natürlich nur, wenn Du Dich weiter mit NR beschäftigen willst).

    Für die von Dir gepostete API gibts nämlich eigene NodeRed Nodes:
    https://flows.nodered.org/node/node-red-contrib-velux

    Unter Node Red kannst Du dann mit der API-Node direkt API Kommandos schicken, wie ich das sehe:

    981b59f7-a274-4a99-bfb8-50d5459a3f85-image.png

    In wie weit man dann direkt über Node Red diese Commandos schicken kann, das musst halt ausprobieren bzw. mal recherchieren oder die Byte Codes muss man sehen. Ich habe gerade gesehen im Anhang 4 der API Dokumentation sind ja die Codes gelistet.

    1. Schau doch mal in der iobroker Adapterbeschreibung zum Velux - ob es da nicht auch einen Datenpunkt gibt, mit der Du API Kommandos absetzen kannst.

    2. Es gibt auch direkte TCP Nodes mit der man unter NodeRed eine Netzwerkverbindung aufbauen kann - ob man damit die API direkt ansprechen kann weis ich nicht.

    Ich würde halt erst mal schauen, ob der iobroker Adapter nicht eine Schnittstelle zur API bietet-aber ich sehe gerade Du bist ja mit den iobroker Jungs des Velux Interfaces in engem Kontakt.

    Ah ich seh gerade - die Codes in der API sind ja gelistet. ggf kann man auch über die TCP Nodes in NR evtl. die Codes direkt absetzen, aber das wäre dann erst Möglichkeit 5.

    32d90eca-dda9-480a-ba1a-b5b102f59e8d-image.png

    Also muss man wahrscheinlich erst Code 2 und dann 1 an die Box schicken, um sie neu zu starten. Aber wie gesagt - alles nur Spekulation aus dem was ich halt auf die Schnelle lese.

    Hier gibt ess übrigens auch ein paar Beispiele in NR wie Du die Velux Teile mit diesen Nodes steuern kannst - aber wie gesagt ich hab die natürlich nicht und kann Dir schlecht raten oder helfen:

    https://github.com/PLCHome/node-red-contrib-velux/issues/1

    Ach und nochwas zu Schluss - in Node Red hast Du function Nodes - da kannst Du ein ganzes JavaScript Programm schreiben, aber ich dachte Du wolltest nicht programmieren. ;)

    Und vielleicht noch was ganz zum Schluss - wie gesagt iobroker ist ziemlich stark was die Datenbank und die Darstellung betrifft.

    Die HW Anbindung verschiedener Systeme muss man schauen - NR ist halt schon etwas älter. Aber im Prinzip wird häufig die gleiche API der Hersteller benutzt.

    Bei NODE RED werden die Befehle von den Nodes direkt in die API übersetzt und geschickt.
    Der iobroker speichert es in Datenpunkte. Änderungen werden dann über den Adapter an die API geschickt werden. Man hat somit natürlich immer einen schönen Überblick über Status und abgesetzte Befehle.

    S Offline
    S Offline
    sascho
    schrieb am zuletzt editiert von sascho
    #43

    @mickym

    Hi,

    ja, wegen des UIs wäre Red Node sicherlich mittelfristig die bessere Wahl, als es nur als Befehlsübersetzer zu nutzen. Ich bin nur aktuell so mit Themen zu, dass ich einfach nicht dazu komme, auch noch das UI in Red Node zu machen.
    Ich muss ja gerade noch das Controller von Bosch stabilisieren, die Systemabstürze vom KLF200 in den Griff bekommen, und noch ein paar andere Sachen :-).

    Aktuell lasse ich IQcontrol mal mitlaufen und teste es auf einem alten Tablet. Da tut es gerade was es soll.

    Bzgl. der Dachfensterrollladenthematik... da haben wir glaube ich ein Missverständnis. Der Rollladen muss mit dem Fenster gekoppelt werden, da laut Velux der Rollladen bei geöffnetem Dachfenster nicht geschlossen werden darf. Positiv formuliert:

    1. Rollladen öffnen (Target Value < Current Value) > Immer erlauben.
    2. Rollladen schließen (Target Value > Current Value) nur wenn Dachfenster Current Value <= 7.
      Hier sieht man, dass das Dachfenster eine andere Variable hat als der Rollladen:
      abb86e2f-46fa-4a4e-bc6d-99744f7d7417-image.png

    Man müsste also noch Product 11 in den Befehl einbauen...
    9f345850-db16-45b8-921e-4380ae29cd2d-image.png

    Bzgl. des Velux Reboot, mir ist noch etwas eingefallen... im KLF200 Adapter gibt es einen Reboot-Trigger:
    3dadc5cf-7541-4e52-a5db-7a4ab2947269-image.png

    Der funktioniert auch. Kann man mit Node Red einen Flow schreiben, der diesen "Knopf" ein Mal am Tag drückt? Dann würde das KLF200 Steuergerät 1x am Tag rebooten und der Adapter über CRON ebenfalls. Problem mit dem Freeeze gelöst :v:

    mickymM 1 Antwort Letzte Antwort
    0
    • S sascho

      @mickym

      Hi,

      ja, wegen des UIs wäre Red Node sicherlich mittelfristig die bessere Wahl, als es nur als Befehlsübersetzer zu nutzen. Ich bin nur aktuell so mit Themen zu, dass ich einfach nicht dazu komme, auch noch das UI in Red Node zu machen.
      Ich muss ja gerade noch das Controller von Bosch stabilisieren, die Systemabstürze vom KLF200 in den Griff bekommen, und noch ein paar andere Sachen :-).

      Aktuell lasse ich IQcontrol mal mitlaufen und teste es auf einem alten Tablet. Da tut es gerade was es soll.

      Bzgl. der Dachfensterrollladenthematik... da haben wir glaube ich ein Missverständnis. Der Rollladen muss mit dem Fenster gekoppelt werden, da laut Velux der Rollladen bei geöffnetem Dachfenster nicht geschlossen werden darf. Positiv formuliert:

      1. Rollladen öffnen (Target Value < Current Value) > Immer erlauben.
      2. Rollladen schließen (Target Value > Current Value) nur wenn Dachfenster Current Value <= 7.
        Hier sieht man, dass das Dachfenster eine andere Variable hat als der Rollladen:
        abb86e2f-46fa-4a4e-bc6d-99744f7d7417-image.png

      Man müsste also noch Product 11 in den Befehl einbauen...
      9f345850-db16-45b8-921e-4380ae29cd2d-image.png

      Bzgl. des Velux Reboot, mir ist noch etwas eingefallen... im KLF200 Adapter gibt es einen Reboot-Trigger:
      3dadc5cf-7541-4e52-a5db-7a4ab2947269-image.png

      Der funktioniert auch. Kann man mit Node Red einen Flow schreiben, der diesen "Knopf" ein Mal am Tag drückt? Dann würde das KLF200 Steuergerät 1x am Tag rebooten und der Adapter über CRON ebenfalls. Problem mit dem Freeeze gelöst :v:

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

      @sascho sagte in bshb - Rollladensteuerung mit yhka Homekit:

      Der funktioniert auch. Kann man mit Node Red einen Flow schreiben, der diesen "Knopf" ein Mal am Tag drückt? Dann würde das KLF200 Steuergerät 1x am Tag rebooten und der Adapter über CRON ebenfalls. Problem mit dem Freeeze gelöst

      Ja Du nimmst eine Inject Node und sendest true (Boolean) an diesen Datenpunkt in Deiner payload

      Das andere hab ich so nicht verstanden und Du musst Dir für Vergleiche mit den beiden Nodes, diese Dir immer abholen.

      Vermeide am Anfang function Nodes - die sind nur unübersichtlich und ich seh eh nicht was Du darin machts.

      Diese Flows laufen alle parallel und das wird nicht so funktionieren wie Du Dir das vorstellst.
      Die Nachrichten warten nicht auf Dich.

      Ausserdem müsste es ja für Deinen Flow est mal einen Trigger geben der öffnet oder schließt. So kann ich Dir leider nicht helfen.

      Im Prinzip wird es wohl der TargetValue dann sein, der triggert - richtig?

      25696115-bebf-4116-a202-0b88b3b034f5-image.png

      [
         {
             "id": "64916d25.85ac54",
             "type": "ioBroker in",
             "z": "6442fb39.022744",
             "name": "targetValue",
             "topic": "targetValue",
             "payloadType": "value",
             "onlyack": "",
             "func": "all",
             "gap": "",
             "fireOnStart": "false",
             "x": 260,
             "y": 1060,
             "wires": [
                 [
                     "dec4374.9f7f8c8"
                 ]
             ]
         },
         {
             "id": "dec4374.9f7f8c8",
             "type": "ioBroker get",
             "z": "6442fb39.022744",
             "name": "hole current",
             "topic": "current",
             "attrname": "current",
             "payloadType": "value",
             "x": 470,
             "y": 1060,
             "wires": [
                 [
                     "3af45de8.b4f5d2"
                 ]
             ]
         },
         {
             "id": "3af45de8.b4f5d2",
             "type": "switch",
             "z": "6442fb39.022744",
             "name": "Fenster öffnen schliessen",
             "property": "payload",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "lt",
                     "v": "current",
                     "vt": "msg"
                 },
                 {
                     "t": "gt",
                     "v": "current",
                     "vt": "msg"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 2,
             "x": 690,
             "y": 1060,
             "wires": [
                 [
                     "5f3b8dc3.15bdb4"
                 ],
                 [
                     "bb1ae31.9a0492",
                     "e3fda95f.74b768"
                 ]
             ]
         },
         {
             "id": "eb565510.38e4d8",
             "type": "change",
             "z": "6442fb39.022744",
             "name": "Rollanden Schliessen ",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "",
                     "tot": "str"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 1340,
             "y": 1140,
             "wires": [
                 []
             ]
         },
         {
             "id": "5f3b8dc3.15bdb4",
             "type": "change",
             "z": "6442fb39.022744",
             "name": "Fenster Öffnen",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "",
                     "tot": "str"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 960,
             "y": 1020,
             "wires": [
                 []
             ]
         },
         {
             "id": "bb1ae31.9a0492",
             "type": "change",
             "z": "6442fb39.022744",
             "name": "Fenster Schließen",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "",
                     "tot": "str"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 970,
             "y": 1080,
             "wires": [
                 []
             ]
         },
         {
             "id": "e3fda95f.74b768",
             "type": "switch",
             "z": "6442fb39.022744",
             "name": "Rollladen schließen nur bei target < 7",
             "property": "payload",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "eq",
                     "v": "",
                     "vt": "str"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 1,
             "x": 1030,
             "y": 1140,
             "wires": [
                 [
                     "eb565510.38e4d8"
                 ]
             ]
         }
      ]
      

      Ich habe Dir den Flow zum Import zur Verfügung gestellt musst halt mit Deinen Datenpunkten modifizieren bzw. nächstes Mal exportierst halt Deinen Flow und erklärst was welcher Datenpunkt macht.

      Und gewöhn Dir das mit den function Nodes gleich wieder ab - sonst kannst Du gleich wieder programmieren.

      EDIT

      Wenn Du natürlich nur den Rollladen steuern willst dann , dann löschst Du natürlich den oberen Ausgang mit Fenster öffnen un die beiden Change Nodes Fenster öffnen bzw. schließen. Du schaltest quasi 2 switch Nodes als Filter in Serie. Das entspricht einem logischen UND, da beide Bedingungen erfüllt sein müssen damit das Nachrichtenobjekt passieren kann.

      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
      • S Offline
        S Offline
        sascho
        schrieb am zuletzt editiert von sascho
        #45

        @mickym

        Der Flow für den Reboot des KLF200 Steuergeräts hat super geklappt! Jetzt wäre noch die Frage, ob man die KLF200 Instanz mit einem Delay gleich mit Rebooten kann. Dann würde ich mir ein CRON Pattern sparen:


        [
        {
        "id": "82ca0ab4.a55f68",
        "type": "tab",
        "label": "Velux_Reboot",
        "disabled": false,
        "info": ""
        },
        {
        "id": "984211f3.c0ec",
        "type": "inject",
        "z": "82ca0ab4.a55f68",
        "name": "Velux_Reboot",
        "props": [
        {
        "p": "payload"
        },
        {
        "p": "topic",
        "vt": "str"
        }
        ],
        "repeat": "86400",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "true",
        "payloadType": "bool",
        "x": 350,
        "y": 140,
        "wires": [
        [
        "5b75e740.57fd68",
        "f88d0df7.40fa2"
        ]
        ]
        },
        {
        "id": "5b75e740.57fd68",
        "type": "ioBroker out",
        "z": "82ca0ab4.a55f68",
        "name": "KLF200_Stgt_Reboot",
        "topic": "klf200.0.gateway.RebootGateway",
        "ack": "false",
        "autoCreate": "false",
        "stateName": "",
        "role": "",
        "payloadType": "",
        "readonly": "",
        "stateUnit": "",
        "stateMin": "",
        "stateMax": "",
        "x": 630,
        "y": 140,
        "wires": []
        },
        {
        "id": "f88d0df7.40fa2",
        "type": "delay",
        "z": "82ca0ab4.a55f68",
        "name": "Delay 60 Sekunden",
        "pauseType": "delay",
        "timeout": "60",
        "timeoutUnits": "seconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "x": 610,
        "y": 260,
        "wires": [
        [
        "d1df10f6.56b6b"
        ]
        ]
        },
        {
        "id": "d1df10f6.56b6b",
        "type": "ioBroker out",
        "z": "82ca0ab4.a55f68",
        "d": true,
        "name": "KLF200_Adapter_Reboot",
        "topic": "",
        "ack": "false",
        "autoCreate": "false",
        "stateName": "",
        "role": "",
        "payloadType": "",
        "readonly": "",
        "stateUnit": "",
        "stateMin": "",
        "stateMax": "",
        "x": 870,
        "y": 260,
        "wires": []
        }
        ]

        b5213f35-56c2-4095-b75e-6d9f55507a3b-image.png

        Bzgl. des bedingten Schließung der Dachfensterrollladen habe ich noch mal eine Grafik gemalt. Es ist etwas komplizierter:
        47bb1ec2-02f9-4ab8-ad76-43371be3455d-image.png
        Ich habe den Flow mal gebaut. Aktuell sehe ich noch das Problem, dass bei der 7% Prüfung des Dachfensters, der Dachfensterwert weitergegeben wird, nicht der Dachfensterrollladenwert - siehe zweiter Switch. Kann dieser Switch den einen Wert prüfen, aber einen anderen ausgeben?


        [
        {
        "id": "a65f570c.ebb128",
        "type": "tab",
        "label": "DF-RL_Test",
        "disabled": false,
        "info": ""
        },
        {
        "id": "dec4374.9f7f8c8",
        "type": "ioBroker get",
        "z": "a65f570c.ebb128",
        "name": "DF-RL_Current",
        "topic": "klf200.0.products.9.currentPosition",
        "attrname": "current",
        "payloadType": "value",
        "x": 180,
        "y": 120,
        "wires": [
        [
        "3af45de8.b4f5d2"
        ]
        ]
        },
        {
        "id": "3af45de8.b4f5d2",
        "type": "switch",
        "z": "a65f570c.ebb128",
        "name": "DF-RL_Target ? DF-RL_Current",
        "property": "DF-RL_Target",
        "propertyType": "msg",
        "rules": [
        {
        "t": "lt",
        "v": "DF-RL_Current",
        "vt": "msg"
        },
        {
        "t": "gt",
        "v": "DF-RL_Current",
        "vt": "msg"
        }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 450,
        "y": 180,
        "wires": [
        [
        "6f82cd49.51f214"
        ],
        [
        "787e06c1.468d58"
        ]
        ]
        },
        {
        "id": "6a3a7def.160224",
        "type": "ioBroker in",
        "z": "a65f570c.ebb128",
        "name": "klf200.0.products.9.currentPosition",
        "topic": "klf200.0.products.8.currentPosition",
        "payloadType": "value",
        "onlyack": false,
        "func": "rbe",
        "gap": "",
        "fireOnStart": "true",
        "x": 230,
        "y": 360,
        "wires": [
        [
        "1666ec7c.670934"
        ]
        ]
        },
        {
        "id": "1666ec7c.670934",
        "type": "ioBroker out",
        "z": "a65f570c.ebb128",
        "name": "0_userdata.0.Ankleide_Dachfensterrollladen",
        "topic": "0_userdata.0.Ankleide_Dachfensterrollladen",
        "ack": "true",
        "autoCreate": "false",
        "stateName": "",
        "role": "",
        "payloadType": "",
        "readonly": "",
        "stateUnit": "",
        "stateMin": "",
        "stateMax": "",
        "x": 790,
        "y": 360,
        "wires": []
        },
        {
        "id": "23dda429.aa8b1c",
        "type": "ioBroker in",
        "z": "a65f570c.ebb128",
        "name": "DF-RL_Target",
        "topic": "0_userdata.0.Ankleide_Dachfensterrollladen",
        "payloadType": "value",
        "onlyack": "",
        "func": "rbe",
        "gap": "",
        "fireOnStart": "false",
        "x": 170,
        "y": 180,
        "wires": [
        [
        "3af45de8.b4f5d2"
        ]
        ]
        },
        {
        "id": "6f82cd49.51f214",
        "type": "ioBroker out",
        "z": "a65f570c.ebb128",
        "name": "DF-RL_Target",
        "topic": "klf200.0.products.9.targetPosition",
        "ack": "false",
        "autoCreate": "false",
        "stateName": "",
        "role": "",
        "payloadType": "",
        "readonly": "",
        "stateUnit": "",
        "stateMin": "",
        "stateMax": "",
        "x": 730,
        "y": 100,
        "wires": []
        },
        {
        "id": "787e06c1.468d58",
        "type": "switch",
        "z": "a65f570c.ebb128",
        "name": "DF Current Pos. ? 7",
        "property": "DF_Current",
        "propertyType": "msg",
        "rules": [
        {
        "t": "gt",
        "v": "7",
        "vt": "num"
        },
        {
        "t": "lte",
        "v": "7",
        "vt": "num"
        }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 750,
        "y": 180,
        "wires": [
        [],
        [
        "3a21b42e.6db8ac"
        ]
        ]
        },
        {
        "id": "3a21b42e.6db8ac",
        "type": "ioBroker out",
        "z": "a65f570c.ebb128",
        "name": "klf200.0.products.9.targetPosition",
        "topic": "klf200.0.products.9.targetPosition",
        "ack": "false",
        "autoCreate": "false",
        "stateName": "",
        "role": "",
        "payloadType": "",
        "readonly": "",
        "stateUnit": "",
        "stateMin": "",
        "stateMax": "",
        "x": 1030,
        "y": 180,
        "wires": []
        },
        {
        "id": "6b2dbcb2.b8e6e4",
        "type": "ioBroker in",
        "z": "a65f570c.ebb128",
        "name": "DF_Current",
        "topic": "0_userdata.0.Ankleide_Dachfenster",
        "payloadType": "value",
        "onlyack": "",
        "func": "rbe",
        "gap": "",
        "fireOnStart": "false",
        "x": 160,
        "y": 240,
        "wires": [
        [
        "3af45de8.b4f5d2"
        ]
        ]
        }
        ]

        f641acde-7015-4914-acf9-9b1194059d51-image.png

        Btw. Mega cooler Support hier!

        mickymM 3 Antworten Letzte Antwort
        0
        • S sascho

          @mickym

          Der Flow für den Reboot des KLF200 Steuergeräts hat super geklappt! Jetzt wäre noch die Frage, ob man die KLF200 Instanz mit einem Delay gleich mit Rebooten kann. Dann würde ich mir ein CRON Pattern sparen:


          [
          {
          "id": "82ca0ab4.a55f68",
          "type": "tab",
          "label": "Velux_Reboot",
          "disabled": false,
          "info": ""
          },
          {
          "id": "984211f3.c0ec",
          "type": "inject",
          "z": "82ca0ab4.a55f68",
          "name": "Velux_Reboot",
          "props": [
          {
          "p": "payload"
          },
          {
          "p": "topic",
          "vt": "str"
          }
          ],
          "repeat": "86400",
          "crontab": "",
          "once": false,
          "onceDelay": 0.1,
          "topic": "",
          "payload": "true",
          "payloadType": "bool",
          "x": 350,
          "y": 140,
          "wires": [
          [
          "5b75e740.57fd68",
          "f88d0df7.40fa2"
          ]
          ]
          },
          {
          "id": "5b75e740.57fd68",
          "type": "ioBroker out",
          "z": "82ca0ab4.a55f68",
          "name": "KLF200_Stgt_Reboot",
          "topic": "klf200.0.gateway.RebootGateway",
          "ack": "false",
          "autoCreate": "false",
          "stateName": "",
          "role": "",
          "payloadType": "",
          "readonly": "",
          "stateUnit": "",
          "stateMin": "",
          "stateMax": "",
          "x": 630,
          "y": 140,
          "wires": []
          },
          {
          "id": "f88d0df7.40fa2",
          "type": "delay",
          "z": "82ca0ab4.a55f68",
          "name": "Delay 60 Sekunden",
          "pauseType": "delay",
          "timeout": "60",
          "timeoutUnits": "seconds",
          "rate": "1",
          "nbRateUnits": "1",
          "rateUnits": "second",
          "randomFirst": "1",
          "randomLast": "5",
          "randomUnits": "seconds",
          "drop": false,
          "x": 610,
          "y": 260,
          "wires": [
          [
          "d1df10f6.56b6b"
          ]
          ]
          },
          {
          "id": "d1df10f6.56b6b",
          "type": "ioBroker out",
          "z": "82ca0ab4.a55f68",
          "d": true,
          "name": "KLF200_Adapter_Reboot",
          "topic": "",
          "ack": "false",
          "autoCreate": "false",
          "stateName": "",
          "role": "",
          "payloadType": "",
          "readonly": "",
          "stateUnit": "",
          "stateMin": "",
          "stateMax": "",
          "x": 870,
          "y": 260,
          "wires": []
          }
          ]

          b5213f35-56c2-4095-b75e-6d9f55507a3b-image.png

          Bzgl. des bedingten Schließung der Dachfensterrollladen habe ich noch mal eine Grafik gemalt. Es ist etwas komplizierter:
          47bb1ec2-02f9-4ab8-ad76-43371be3455d-image.png
          Ich habe den Flow mal gebaut. Aktuell sehe ich noch das Problem, dass bei der 7% Prüfung des Dachfensters, der Dachfensterwert weitergegeben wird, nicht der Dachfensterrollladenwert - siehe zweiter Switch. Kann dieser Switch den einen Wert prüfen, aber einen anderen ausgeben?


          [
          {
          "id": "a65f570c.ebb128",
          "type": "tab",
          "label": "DF-RL_Test",
          "disabled": false,
          "info": ""
          },
          {
          "id": "dec4374.9f7f8c8",
          "type": "ioBroker get",
          "z": "a65f570c.ebb128",
          "name": "DF-RL_Current",
          "topic": "klf200.0.products.9.currentPosition",
          "attrname": "current",
          "payloadType": "value",
          "x": 180,
          "y": 120,
          "wires": [
          [
          "3af45de8.b4f5d2"
          ]
          ]
          },
          {
          "id": "3af45de8.b4f5d2",
          "type": "switch",
          "z": "a65f570c.ebb128",
          "name": "DF-RL_Target ? DF-RL_Current",
          "property": "DF-RL_Target",
          "propertyType": "msg",
          "rules": [
          {
          "t": "lt",
          "v": "DF-RL_Current",
          "vt": "msg"
          },
          {
          "t": "gt",
          "v": "DF-RL_Current",
          "vt": "msg"
          }
          ],
          "checkall": "true",
          "repair": false,
          "outputs": 2,
          "x": 450,
          "y": 180,
          "wires": [
          [
          "6f82cd49.51f214"
          ],
          [
          "787e06c1.468d58"
          ]
          ]
          },
          {
          "id": "6a3a7def.160224",
          "type": "ioBroker in",
          "z": "a65f570c.ebb128",
          "name": "klf200.0.products.9.currentPosition",
          "topic": "klf200.0.products.8.currentPosition",
          "payloadType": "value",
          "onlyack": false,
          "func": "rbe",
          "gap": "",
          "fireOnStart": "true",
          "x": 230,
          "y": 360,
          "wires": [
          [
          "1666ec7c.670934"
          ]
          ]
          },
          {
          "id": "1666ec7c.670934",
          "type": "ioBroker out",
          "z": "a65f570c.ebb128",
          "name": "0_userdata.0.Ankleide_Dachfensterrollladen",
          "topic": "0_userdata.0.Ankleide_Dachfensterrollladen",
          "ack": "true",
          "autoCreate": "false",
          "stateName": "",
          "role": "",
          "payloadType": "",
          "readonly": "",
          "stateUnit": "",
          "stateMin": "",
          "stateMax": "",
          "x": 790,
          "y": 360,
          "wires": []
          },
          {
          "id": "23dda429.aa8b1c",
          "type": "ioBroker in",
          "z": "a65f570c.ebb128",
          "name": "DF-RL_Target",
          "topic": "0_userdata.0.Ankleide_Dachfensterrollladen",
          "payloadType": "value",
          "onlyack": "",
          "func": "rbe",
          "gap": "",
          "fireOnStart": "false",
          "x": 170,
          "y": 180,
          "wires": [
          [
          "3af45de8.b4f5d2"
          ]
          ]
          },
          {
          "id": "6f82cd49.51f214",
          "type": "ioBroker out",
          "z": "a65f570c.ebb128",
          "name": "DF-RL_Target",
          "topic": "klf200.0.products.9.targetPosition",
          "ack": "false",
          "autoCreate": "false",
          "stateName": "",
          "role": "",
          "payloadType": "",
          "readonly": "",
          "stateUnit": "",
          "stateMin": "",
          "stateMax": "",
          "x": 730,
          "y": 100,
          "wires": []
          },
          {
          "id": "787e06c1.468d58",
          "type": "switch",
          "z": "a65f570c.ebb128",
          "name": "DF Current Pos. ? 7",
          "property": "DF_Current",
          "propertyType": "msg",
          "rules": [
          {
          "t": "gt",
          "v": "7",
          "vt": "num"
          },
          {
          "t": "lte",
          "v": "7",
          "vt": "num"
          }
          ],
          "checkall": "true",
          "repair": false,
          "outputs": 2,
          "x": 750,
          "y": 180,
          "wires": [
          [],
          [
          "3a21b42e.6db8ac"
          ]
          ]
          },
          {
          "id": "3a21b42e.6db8ac",
          "type": "ioBroker out",
          "z": "a65f570c.ebb128",
          "name": "klf200.0.products.9.targetPosition",
          "topic": "klf200.0.products.9.targetPosition",
          "ack": "false",
          "autoCreate": "false",
          "stateName": "",
          "role": "",
          "payloadType": "",
          "readonly": "",
          "stateUnit": "",
          "stateMin": "",
          "stateMax": "",
          "x": 1030,
          "y": 180,
          "wires": []
          },
          {
          "id": "6b2dbcb2.b8e6e4",
          "type": "ioBroker in",
          "z": "a65f570c.ebb128",
          "name": "DF_Current",
          "topic": "0_userdata.0.Ankleide_Dachfenster",
          "payloadType": "value",
          "onlyack": "",
          "func": "rbe",
          "gap": "",
          "fireOnStart": "false",
          "x": 160,
          "y": 240,
          "wires": [
          [
          "3af45de8.b4f5d2"
          ]
          ]
          }
          ]

          f641acde-7015-4914-acf9-9b1194059d51-image.png

          Btw. Mega cooler Support hier!

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

          @sascho sagte in bshb - Rollladensteuerung mit yhka Homekit:

          @mickym

          Der Flow für den Reboot des KLF200 Steuergeräts hat super geklappt! Jetzt wäre noch die Frage, ob man die KLF200 Instanz mit einem Delay gleich mit Rebooten kann. Dann würde ich mir ein CRON Pattern sparen:

          Du kannst den Adapter einfach mit einer Exec Node neustarten, indem Du den Befehl

          iobroker restart instanz
          

          verwendest.

          89414aea-81bc-4afe-97ad-dbabcab40e84-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
          • S sascho

            @mickym

            Der Flow für den Reboot des KLF200 Steuergeräts hat super geklappt! Jetzt wäre noch die Frage, ob man die KLF200 Instanz mit einem Delay gleich mit Rebooten kann. Dann würde ich mir ein CRON Pattern sparen:


            [
            {
            "id": "82ca0ab4.a55f68",
            "type": "tab",
            "label": "Velux_Reboot",
            "disabled": false,
            "info": ""
            },
            {
            "id": "984211f3.c0ec",
            "type": "inject",
            "z": "82ca0ab4.a55f68",
            "name": "Velux_Reboot",
            "props": [
            {
            "p": "payload"
            },
            {
            "p": "topic",
            "vt": "str"
            }
            ],
            "repeat": "86400",
            "crontab": "",
            "once": false,
            "onceDelay": 0.1,
            "topic": "",
            "payload": "true",
            "payloadType": "bool",
            "x": 350,
            "y": 140,
            "wires": [
            [
            "5b75e740.57fd68",
            "f88d0df7.40fa2"
            ]
            ]
            },
            {
            "id": "5b75e740.57fd68",
            "type": "ioBroker out",
            "z": "82ca0ab4.a55f68",
            "name": "KLF200_Stgt_Reboot",
            "topic": "klf200.0.gateway.RebootGateway",
            "ack": "false",
            "autoCreate": "false",
            "stateName": "",
            "role": "",
            "payloadType": "",
            "readonly": "",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 630,
            "y": 140,
            "wires": []
            },
            {
            "id": "f88d0df7.40fa2",
            "type": "delay",
            "z": "82ca0ab4.a55f68",
            "name": "Delay 60 Sekunden",
            "pauseType": "delay",
            "timeout": "60",
            "timeoutUnits": "seconds",
            "rate": "1",
            "nbRateUnits": "1",
            "rateUnits": "second",
            "randomFirst": "1",
            "randomLast": "5",
            "randomUnits": "seconds",
            "drop": false,
            "x": 610,
            "y": 260,
            "wires": [
            [
            "d1df10f6.56b6b"
            ]
            ]
            },
            {
            "id": "d1df10f6.56b6b",
            "type": "ioBroker out",
            "z": "82ca0ab4.a55f68",
            "d": true,
            "name": "KLF200_Adapter_Reboot",
            "topic": "",
            "ack": "false",
            "autoCreate": "false",
            "stateName": "",
            "role": "",
            "payloadType": "",
            "readonly": "",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 870,
            "y": 260,
            "wires": []
            }
            ]

            b5213f35-56c2-4095-b75e-6d9f55507a3b-image.png

            Bzgl. des bedingten Schließung der Dachfensterrollladen habe ich noch mal eine Grafik gemalt. Es ist etwas komplizierter:
            47bb1ec2-02f9-4ab8-ad76-43371be3455d-image.png
            Ich habe den Flow mal gebaut. Aktuell sehe ich noch das Problem, dass bei der 7% Prüfung des Dachfensters, der Dachfensterwert weitergegeben wird, nicht der Dachfensterrollladenwert - siehe zweiter Switch. Kann dieser Switch den einen Wert prüfen, aber einen anderen ausgeben?


            [
            {
            "id": "a65f570c.ebb128",
            "type": "tab",
            "label": "DF-RL_Test",
            "disabled": false,
            "info": ""
            },
            {
            "id": "dec4374.9f7f8c8",
            "type": "ioBroker get",
            "z": "a65f570c.ebb128",
            "name": "DF-RL_Current",
            "topic": "klf200.0.products.9.currentPosition",
            "attrname": "current",
            "payloadType": "value",
            "x": 180,
            "y": 120,
            "wires": [
            [
            "3af45de8.b4f5d2"
            ]
            ]
            },
            {
            "id": "3af45de8.b4f5d2",
            "type": "switch",
            "z": "a65f570c.ebb128",
            "name": "DF-RL_Target ? DF-RL_Current",
            "property": "DF-RL_Target",
            "propertyType": "msg",
            "rules": [
            {
            "t": "lt",
            "v": "DF-RL_Current",
            "vt": "msg"
            },
            {
            "t": "gt",
            "v": "DF-RL_Current",
            "vt": "msg"
            }
            ],
            "checkall": "true",
            "repair": false,
            "outputs": 2,
            "x": 450,
            "y": 180,
            "wires": [
            [
            "6f82cd49.51f214"
            ],
            [
            "787e06c1.468d58"
            ]
            ]
            },
            {
            "id": "6a3a7def.160224",
            "type": "ioBroker in",
            "z": "a65f570c.ebb128",
            "name": "klf200.0.products.9.currentPosition",
            "topic": "klf200.0.products.8.currentPosition",
            "payloadType": "value",
            "onlyack": false,
            "func": "rbe",
            "gap": "",
            "fireOnStart": "true",
            "x": 230,
            "y": 360,
            "wires": [
            [
            "1666ec7c.670934"
            ]
            ]
            },
            {
            "id": "1666ec7c.670934",
            "type": "ioBroker out",
            "z": "a65f570c.ebb128",
            "name": "0_userdata.0.Ankleide_Dachfensterrollladen",
            "topic": "0_userdata.0.Ankleide_Dachfensterrollladen",
            "ack": "true",
            "autoCreate": "false",
            "stateName": "",
            "role": "",
            "payloadType": "",
            "readonly": "",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 790,
            "y": 360,
            "wires": []
            },
            {
            "id": "23dda429.aa8b1c",
            "type": "ioBroker in",
            "z": "a65f570c.ebb128",
            "name": "DF-RL_Target",
            "topic": "0_userdata.0.Ankleide_Dachfensterrollladen",
            "payloadType": "value",
            "onlyack": "",
            "func": "rbe",
            "gap": "",
            "fireOnStart": "false",
            "x": 170,
            "y": 180,
            "wires": [
            [
            "3af45de8.b4f5d2"
            ]
            ]
            },
            {
            "id": "6f82cd49.51f214",
            "type": "ioBroker out",
            "z": "a65f570c.ebb128",
            "name": "DF-RL_Target",
            "topic": "klf200.0.products.9.targetPosition",
            "ack": "false",
            "autoCreate": "false",
            "stateName": "",
            "role": "",
            "payloadType": "",
            "readonly": "",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 730,
            "y": 100,
            "wires": []
            },
            {
            "id": "787e06c1.468d58",
            "type": "switch",
            "z": "a65f570c.ebb128",
            "name": "DF Current Pos. ? 7",
            "property": "DF_Current",
            "propertyType": "msg",
            "rules": [
            {
            "t": "gt",
            "v": "7",
            "vt": "num"
            },
            {
            "t": "lte",
            "v": "7",
            "vt": "num"
            }
            ],
            "checkall": "true",
            "repair": false,
            "outputs": 2,
            "x": 750,
            "y": 180,
            "wires": [
            [],
            [
            "3a21b42e.6db8ac"
            ]
            ]
            },
            {
            "id": "3a21b42e.6db8ac",
            "type": "ioBroker out",
            "z": "a65f570c.ebb128",
            "name": "klf200.0.products.9.targetPosition",
            "topic": "klf200.0.products.9.targetPosition",
            "ack": "false",
            "autoCreate": "false",
            "stateName": "",
            "role": "",
            "payloadType": "",
            "readonly": "",
            "stateUnit": "",
            "stateMin": "",
            "stateMax": "",
            "x": 1030,
            "y": 180,
            "wires": []
            },
            {
            "id": "6b2dbcb2.b8e6e4",
            "type": "ioBroker in",
            "z": "a65f570c.ebb128",
            "name": "DF_Current",
            "topic": "0_userdata.0.Ankleide_Dachfenster",
            "payloadType": "value",
            "onlyack": "",
            "func": "rbe",
            "gap": "",
            "fireOnStart": "false",
            "x": 160,
            "y": 240,
            "wires": [
            [
            "3af45de8.b4f5d2"
            ]
            ]
            }
            ]

            f641acde-7015-4914-acf9-9b1194059d51-image.png

            Btw. Mega cooler Support hier!

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

            @sascho sagte in bshb - Rollladensteuerung mit yhka Homekit:

            Bzgl. des bedingten Schließung der Dachfensterrollladen habe ich noch mal eine Grafik gemalt. Es ist etwas komplizierter:
            47bb1ec2-02f9-4ab8-ad76-43371be3455d-image.png

            Ich habe Dir doch eine Flow unten zur Verfügung gestellt, der das macht.

            Allerdings, wenn nichts gemacht werden soll - dann muss man es auch nicht implementieren.

            2d9ddc9d-8b20-4b6f-85ea-d6d4d22be74b-image.png

            Die Nachrichten wie gesagt warten nicht auf Dich - deswegen nutzt es nicht, wenn Du 3 Trigger in Deinem Flow nutz. Der Vergleich wird nie erfolgreich sein, weil es jedesmal neue Nachrichtenobjekte sind.

            Deswegen hier noch mal der FLOW für Dich, den ich Dir gestern zur Verfügung gestellt habe und der Dir Deine blaue Grafik zur Verfügung stellt.

            Allerdings hast Du aus meiner Sicht trotzdem ein Fehler. Du schließt nur wenn das Target unter 7 ist. Wenn Du von 100 auf 40 schließen willst, schließt Du das Fenster nicht.

            Im Prinzip hab ich doch so verstanden, dass der Rollladen nur geschlossen werden soll, wenn der Target unter 7 ist, aber in jedem Fall das Fenster immer auf das Target eingestellt werden soll, egal ob geschlossen oder geöffnet werden soll.

            be08f841-896c-4487-952e-1cc0eb7ddba4-image.png

            [
               {
                   "id": "64916d25.85ac54",
                   "type": "ioBroker in",
                   "z": "dce8fa20.2e93c8",
                   "name": "targetValue",
                   "topic": "targetValue",
                   "payloadType": "value",
                   "onlyack": "",
                   "func": "all",
                   "gap": "",
                   "fireOnStart": "false",
                   "x": 230,
                   "y": 3720,
                   "wires": [
                       [
                           "dec4374.9f7f8c8"
                       ]
                   ]
               },
               {
                   "id": "dec4374.9f7f8c8",
                   "type": "ioBroker get",
                   "z": "dce8fa20.2e93c8",
                   "name": "hole current",
                   "topic": "current",
                   "attrname": "current",
                   "payloadType": "value",
                   "x": 440,
                   "y": 3720,
                   "wires": [
                       [
                           "3af45de8.b4f5d2"
                       ]
                   ]
               },
               {
                   "id": "3af45de8.b4f5d2",
                   "type": "switch",
                   "z": "dce8fa20.2e93c8",
                   "name": "Fenster öffnen schliessen",
                   "property": "payload",
                   "propertyType": "msg",
                   "rules": [
                       {
                           "t": "lt",
                           "v": "current",
                           "vt": "msg"
                       },
                       {
                           "t": "gt",
                           "v": "current",
                           "vt": "msg"
                       }
                   ],
                   "checkall": "true",
                   "repair": false,
                   "outputs": 2,
                   "x": 660,
                   "y": 3720,
                   "wires": [
                       [
                           "ad50345b.ef7b08"
                       ],
                       [
                           "e3fda95f.74b768",
                           "ad50345b.ef7b08"
                       ]
                   ]
               },
               {
                   "id": "e3fda95f.74b768",
                   "type": "switch",
                   "z": "dce8fa20.2e93c8",
                   "name": "Rollladen schließen nur bei target < 7",
                   "property": "payload",
                   "propertyType": "msg",
                   "rules": [
                       {
                           "t": "lt",
                           "v": "7",
                           "vt": "num"
                       }
                   ],
                   "checkall": "true",
                   "repair": false,
                   "outputs": 1,
                   "x": 950,
                   "y": 3800,
                   "wires": [
                       [
                           "c4409b3c.c55ff8"
                       ]
                   ]
               },
               {
                   "id": "ad50345b.ef7b08",
                   "type": "ioBroker out",
                   "z": "dce8fa20.2e93c8",
                   "name": "Fenster auf target setzen egal ob öffnen oder schliessen",
                   "topic": "",
                   "ack": "false",
                   "autoCreate": "false",
                   "stateName": "",
                   "role": "",
                   "payloadType": "",
                   "readonly": "",
                   "stateUnit": "",
                   "stateMin": "",
                   "stateMax": "",
                   "x": 1070,
                   "y": 3720,
                   "wires": []
               },
               {
                   "id": "c4409b3c.c55ff8",
                   "type": "ioBroker out",
                   "z": "dce8fa20.2e93c8",
                   "name": "Rollladen schließen",
                   "topic": "",
                   "ack": "false",
                   "autoCreate": "false",
                   "stateName": "",
                   "role": "",
                   "payloadType": "",
                   "readonly": "",
                   "stateUnit": "",
                   "stateMin": "",
                   "stateMax": "",
                   "x": 1280,
                   "y": 3800,
                   "wires": []
               }
            ]
            

            Importiere mal den Flow und dann wirst Du sehen, wie das implementiert wurde.

            Dein Flow mit current und target Trigger wird nichtfunktionieren, da Du für Vergleiche nur Werte in einem Nachrichtenobjekt vergleichen kannst.

            Ich habe das schon mehrfach geschrieben - du hast bei Vergleichen von variablen Werten grundsätzlich 2 Möglichkeiten:

            1. Du speicherst Dir Werte in Flow Variablen ab, dann stehen Dir diese jederzeit zum Vergleich zur Verfügung.
            2. Du fügst Eigenschaften Deinem Nachrichten Objekt in einer Kette hinzu und schliefst damit alle benötigten Werte mit, damit sie Dir in Echtzeit zum Vergleich zur Verfügung stehen.

            Ich finde es nicht mehr wo ich das ganze Nachrichtenobjekt mal erklärt habe.

            Das Nachrichtenobjekt ist ein Javaobjekt in Node Red mit dem Namen: msg
            Das hat nun mehrere Eigenschaften: In der Regel eine payload (also msg.payload) und ein topic (msg.topic).

            Man kann aber auch andere Eigenschaften definieren.

            In dem Flow, den ich Dir zur Verfügung gestellt habe ist in der msg.payload der target wert (getriggert über einen iobroker IN-Node).
            Mit der iobroker GET-Node addiere ich zum msg Objekt eine Eigenschaft current (also msg.current) und das kann dann in der switch Node verglichen werden, da beide Eigenschaften Bestandteil des Nachrichtenobjektes sind.

            Hier siehst Du ähnliche Problemstellungen, die entweder über Flow-Variablen oder zusätzliche Eigenschaften im Nachrichtenobjekt gelöst wurden,

            https://forum.iobroker.net/topic/45662/wait-until-ähnliche-node-arbeit-mit-context/2
            https://forum.iobroker.net/topic/45737/mehrere-datenpunkte-mit-einer-variablen-vergleichen/25
            https://forum.iobroker.net/topic/43480/gelöst-poolsteuerung-anfänger-braucht-e-hilfe

            Merke einfach die Nachrichtenobjekte warten nicht aufeinander und der switch vergleicht nur in Echtzeit!!!

            screen.png

            Deshalb kann Dein Flow nicht funktionieren.

            Das schöne an NodeRed ist ja - dass man Deine Grafik schön in Node Red abbilden kann.

            screen.png

            Ich habe ja mal das Mapping eingezeichnet. Wenn Du unten nicht mit target sondern mit current vergleichen willst musst halt die switch Node ändern. Und ob Du nun die Fenster oder die Rollläden auf die target Postition setzen willst - das machst Du halt wie Du es brauchst.

            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
            • S sascho

              @mickym

              Der Flow für den Reboot des KLF200 Steuergeräts hat super geklappt! Jetzt wäre noch die Frage, ob man die KLF200 Instanz mit einem Delay gleich mit Rebooten kann. Dann würde ich mir ein CRON Pattern sparen:


              [
              {
              "id": "82ca0ab4.a55f68",
              "type": "tab",
              "label": "Velux_Reboot",
              "disabled": false,
              "info": ""
              },
              {
              "id": "984211f3.c0ec",
              "type": "inject",
              "z": "82ca0ab4.a55f68",
              "name": "Velux_Reboot",
              "props": [
              {
              "p": "payload"
              },
              {
              "p": "topic",
              "vt": "str"
              }
              ],
              "repeat": "86400",
              "crontab": "",
              "once": false,
              "onceDelay": 0.1,
              "topic": "",
              "payload": "true",
              "payloadType": "bool",
              "x": 350,
              "y": 140,
              "wires": [
              [
              "5b75e740.57fd68",
              "f88d0df7.40fa2"
              ]
              ]
              },
              {
              "id": "5b75e740.57fd68",
              "type": "ioBroker out",
              "z": "82ca0ab4.a55f68",
              "name": "KLF200_Stgt_Reboot",
              "topic": "klf200.0.gateway.RebootGateway",
              "ack": "false",
              "autoCreate": "false",
              "stateName": "",
              "role": "",
              "payloadType": "",
              "readonly": "",
              "stateUnit": "",
              "stateMin": "",
              "stateMax": "",
              "x": 630,
              "y": 140,
              "wires": []
              },
              {
              "id": "f88d0df7.40fa2",
              "type": "delay",
              "z": "82ca0ab4.a55f68",
              "name": "Delay 60 Sekunden",
              "pauseType": "delay",
              "timeout": "60",
              "timeoutUnits": "seconds",
              "rate": "1",
              "nbRateUnits": "1",
              "rateUnits": "second",
              "randomFirst": "1",
              "randomLast": "5",
              "randomUnits": "seconds",
              "drop": false,
              "x": 610,
              "y": 260,
              "wires": [
              [
              "d1df10f6.56b6b"
              ]
              ]
              },
              {
              "id": "d1df10f6.56b6b",
              "type": "ioBroker out",
              "z": "82ca0ab4.a55f68",
              "d": true,
              "name": "KLF200_Adapter_Reboot",
              "topic": "",
              "ack": "false",
              "autoCreate": "false",
              "stateName": "",
              "role": "",
              "payloadType": "",
              "readonly": "",
              "stateUnit": "",
              "stateMin": "",
              "stateMax": "",
              "x": 870,
              "y": 260,
              "wires": []
              }
              ]

              b5213f35-56c2-4095-b75e-6d9f55507a3b-image.png

              Bzgl. des bedingten Schließung der Dachfensterrollladen habe ich noch mal eine Grafik gemalt. Es ist etwas komplizierter:
              47bb1ec2-02f9-4ab8-ad76-43371be3455d-image.png
              Ich habe den Flow mal gebaut. Aktuell sehe ich noch das Problem, dass bei der 7% Prüfung des Dachfensters, der Dachfensterwert weitergegeben wird, nicht der Dachfensterrollladenwert - siehe zweiter Switch. Kann dieser Switch den einen Wert prüfen, aber einen anderen ausgeben?


              [
              {
              "id": "a65f570c.ebb128",
              "type": "tab",
              "label": "DF-RL_Test",
              "disabled": false,
              "info": ""
              },
              {
              "id": "dec4374.9f7f8c8",
              "type": "ioBroker get",
              "z": "a65f570c.ebb128",
              "name": "DF-RL_Current",
              "topic": "klf200.0.products.9.currentPosition",
              "attrname": "current",
              "payloadType": "value",
              "x": 180,
              "y": 120,
              "wires": [
              [
              "3af45de8.b4f5d2"
              ]
              ]
              },
              {
              "id": "3af45de8.b4f5d2",
              "type": "switch",
              "z": "a65f570c.ebb128",
              "name": "DF-RL_Target ? DF-RL_Current",
              "property": "DF-RL_Target",
              "propertyType": "msg",
              "rules": [
              {
              "t": "lt",
              "v": "DF-RL_Current",
              "vt": "msg"
              },
              {
              "t": "gt",
              "v": "DF-RL_Current",
              "vt": "msg"
              }
              ],
              "checkall": "true",
              "repair": false,
              "outputs": 2,
              "x": 450,
              "y": 180,
              "wires": [
              [
              "6f82cd49.51f214"
              ],
              [
              "787e06c1.468d58"
              ]
              ]
              },
              {
              "id": "6a3a7def.160224",
              "type": "ioBroker in",
              "z": "a65f570c.ebb128",
              "name": "klf200.0.products.9.currentPosition",
              "topic": "klf200.0.products.8.currentPosition",
              "payloadType": "value",
              "onlyack": false,
              "func": "rbe",
              "gap": "",
              "fireOnStart": "true",
              "x": 230,
              "y": 360,
              "wires": [
              [
              "1666ec7c.670934"
              ]
              ]
              },
              {
              "id": "1666ec7c.670934",
              "type": "ioBroker out",
              "z": "a65f570c.ebb128",
              "name": "0_userdata.0.Ankleide_Dachfensterrollladen",
              "topic": "0_userdata.0.Ankleide_Dachfensterrollladen",
              "ack": "true",
              "autoCreate": "false",
              "stateName": "",
              "role": "",
              "payloadType": "",
              "readonly": "",
              "stateUnit": "",
              "stateMin": "",
              "stateMax": "",
              "x": 790,
              "y": 360,
              "wires": []
              },
              {
              "id": "23dda429.aa8b1c",
              "type": "ioBroker in",
              "z": "a65f570c.ebb128",
              "name": "DF-RL_Target",
              "topic": "0_userdata.0.Ankleide_Dachfensterrollladen",
              "payloadType": "value",
              "onlyack": "",
              "func": "rbe",
              "gap": "",
              "fireOnStart": "false",
              "x": 170,
              "y": 180,
              "wires": [
              [
              "3af45de8.b4f5d2"
              ]
              ]
              },
              {
              "id": "6f82cd49.51f214",
              "type": "ioBroker out",
              "z": "a65f570c.ebb128",
              "name": "DF-RL_Target",
              "topic": "klf200.0.products.9.targetPosition",
              "ack": "false",
              "autoCreate": "false",
              "stateName": "",
              "role": "",
              "payloadType": "",
              "readonly": "",
              "stateUnit": "",
              "stateMin": "",
              "stateMax": "",
              "x": 730,
              "y": 100,
              "wires": []
              },
              {
              "id": "787e06c1.468d58",
              "type": "switch",
              "z": "a65f570c.ebb128",
              "name": "DF Current Pos. ? 7",
              "property": "DF_Current",
              "propertyType": "msg",
              "rules": [
              {
              "t": "gt",
              "v": "7",
              "vt": "num"
              },
              {
              "t": "lte",
              "v": "7",
              "vt": "num"
              }
              ],
              "checkall": "true",
              "repair": false,
              "outputs": 2,
              "x": 750,
              "y": 180,
              "wires": [
              [],
              [
              "3a21b42e.6db8ac"
              ]
              ]
              },
              {
              "id": "3a21b42e.6db8ac",
              "type": "ioBroker out",
              "z": "a65f570c.ebb128",
              "name": "klf200.0.products.9.targetPosition",
              "topic": "klf200.0.products.9.targetPosition",
              "ack": "false",
              "autoCreate": "false",
              "stateName": "",
              "role": "",
              "payloadType": "",
              "readonly": "",
              "stateUnit": "",
              "stateMin": "",
              "stateMax": "",
              "x": 1030,
              "y": 180,
              "wires": []
              },
              {
              "id": "6b2dbcb2.b8e6e4",
              "type": "ioBroker in",
              "z": "a65f570c.ebb128",
              "name": "DF_Current",
              "topic": "0_userdata.0.Ankleide_Dachfenster",
              "payloadType": "value",
              "onlyack": "",
              "func": "rbe",
              "gap": "",
              "fireOnStart": "false",
              "x": 160,
              "y": 240,
              "wires": [
              [
              "3af45de8.b4f5d2"
              ]
              ]
              }
              ]

              f641acde-7015-4914-acf9-9b1194059d51-image.png

              Btw. Mega cooler Support hier!

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

              @sascho sagte in bshb - Rollladensteuerung mit yhka Homekit:

              Btw. Mega cooler Support hier!

              Danke schön. Mache ich gerne - bei den vielen Projekten lerne ich ja selbst auch. ;)

              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.

              S 1 Antwort Letzte Antwort
              0
              • mickymM mickym

                @sascho sagte in bshb - Rollladensteuerung mit yhka Homekit:

                Btw. Mega cooler Support hier!

                Danke schön. Mache ich gerne - bei den vielen Projekten lerne ich ja selbst auch. ;)

                S Offline
                S Offline
                sascho
                schrieb am zuletzt editiert von sascho
                #49

                @mickym

                Du bist aber hier schon fast Red Node Key Account Berater :-).

                Also das Rebooten des KLF200 Adapters klappt jetzt. Das ist super... so kann ich regelmäßig Adapter rebooten, wenn sie hängen bleiben sollten. Klasse.

                Bzgl. des Flows... ich habe den gerade mal importiert. So ganz scheint es noch nicht zu passen, oder ich stehe einfach auf der Leitung. Ich vermute aber, dass noch ein Missverständnis vorliegt.
                Die Dachfenster selbst sollen über diesen Flow nie angesteuert werden. Es soll nur geprüft werden, ob sie offen sind. Nur die Dachfensterrollladen sollen angesteuert werden - und hier soll geprüft werden ob sie geschlossen werden sollen oder öffnen sollen. Öffnen dürfen sie immer, aber schließen nicht wenn die Dachfenster offen sind.

                Ich habe Deinen Flow mal dahingehend angepasst und er scheint zu funktionieren:
                d5bba601-e9a3-4118-94c1-8a7dbad0a2ea-image.png

                836d622d-cb2e-4545-8bb4-06ca1ca633b4-image.png

                d9b7c4bc-2862-4842-b17b-496f8b749db1-image.png


                [
                {
                "id": "9bc15394.e1382",
                "type": "switch",
                "z": "626ad550.a646cc",
                "name": "Rollladen öffnen schliessen",
                "property": "payload",
                "propertyType": "msg",
                "rules": [
                {
                "t": "lt",
                "v": "currentPosition_DF-RL",
                "vt": "msg"
                },
                {
                "t": "gt",
                "v": "currentPosition_DF-RL",
                "vt": "msg"
                }
                ],
                "checkall": "true",
                "repair": false,
                "outputs": 2,
                "x": 580,
                "y": 160,
                "wires": [
                [
                "d13c3e8b.58f49"
                ],
                [
                "24dd6c35.6132c4"
                ]
                ]
                }
                ]

                Das einzige, was noch nicht funktioniert ist, auf der IQontrol Oberfläche eine Notification erscheinen zu lassen die so etwas schreibt wie "Dachfenster offen. Rollladen kann nur geöffnet werden!". Das wäre die Kirsche auf der Sahnetorte :-). Wie findest Du das?

                mickymM 1 Antwort Letzte Antwort
                0
                • S sascho

                  @mickym

                  Du bist aber hier schon fast Red Node Key Account Berater :-).

                  Also das Rebooten des KLF200 Adapters klappt jetzt. Das ist super... so kann ich regelmäßig Adapter rebooten, wenn sie hängen bleiben sollten. Klasse.

                  Bzgl. des Flows... ich habe den gerade mal importiert. So ganz scheint es noch nicht zu passen, oder ich stehe einfach auf der Leitung. Ich vermute aber, dass noch ein Missverständnis vorliegt.
                  Die Dachfenster selbst sollen über diesen Flow nie angesteuert werden. Es soll nur geprüft werden, ob sie offen sind. Nur die Dachfensterrollladen sollen angesteuert werden - und hier soll geprüft werden ob sie geschlossen werden sollen oder öffnen sollen. Öffnen dürfen sie immer, aber schließen nicht wenn die Dachfenster offen sind.

                  Ich habe Deinen Flow mal dahingehend angepasst und er scheint zu funktionieren:
                  d5bba601-e9a3-4118-94c1-8a7dbad0a2ea-image.png

                  836d622d-cb2e-4545-8bb4-06ca1ca633b4-image.png

                  d9b7c4bc-2862-4842-b17b-496f8b749db1-image.png


                  [
                  {
                  "id": "9bc15394.e1382",
                  "type": "switch",
                  "z": "626ad550.a646cc",
                  "name": "Rollladen öffnen schliessen",
                  "property": "payload",
                  "propertyType": "msg",
                  "rules": [
                  {
                  "t": "lt",
                  "v": "currentPosition_DF-RL",
                  "vt": "msg"
                  },
                  {
                  "t": "gt",
                  "v": "currentPosition_DF-RL",
                  "vt": "msg"
                  }
                  ],
                  "checkall": "true",
                  "repair": false,
                  "outputs": 2,
                  "x": 580,
                  "y": 160,
                  "wires": [
                  [
                  "d13c3e8b.58f49"
                  ],
                  [
                  "24dd6c35.6132c4"
                  ]
                  ]
                  }
                  ]

                  Das einzige, was noch nicht funktioniert ist, auf der IQontrol Oberfläche eine Notification erscheinen zu lassen die so etwas schreibt wie "Dachfenster offen. Rollladen kann nur geöffnet werden!". Das wäre die Kirsche auf der Sahnetorte :-). Wie findest Du das?

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

                  @sascho Na gut, dann weißt Du ja nun wie es prinzipiell funktioniert. ;) - Jedenfalls glaube ich, dass Du das nun alles verstanden hast und selbst Deine Flows machen kannst. :)

                  Bzgl. IQontrol kann ich Dir leider nicht weiterhelfen. Da gibt es aber einen Thread. Da könntest ja mal Deine Frage stellen. ;)

                  Wahrscheinlich muss man auch nur was in einen Datenpunkt schreiben, oder man definiert einen Datenpunkt, der eine Notification auslöst, wenn man da was reinschreibt. ;)

                  Die notification im NR Dashboard hast ja easy hinbekommen.

                  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.

                  S 2 Antworten Letzte Antwort
                  0
                  • mickymM mickym

                    @sascho Na gut, dann weißt Du ja nun wie es prinzipiell funktioniert. ;) - Jedenfalls glaube ich, dass Du das nun alles verstanden hast und selbst Deine Flows machen kannst. :)

                    Bzgl. IQontrol kann ich Dir leider nicht weiterhelfen. Da gibt es aber einen Thread. Da könntest ja mal Deine Frage stellen. ;)

                    Wahrscheinlich muss man auch nur was in einen Datenpunkt schreiben, oder man definiert einen Datenpunkt, der eine Notification auslöst, wenn man da was reinschreibt. ;)

                    Die notification im NR Dashboard hast ja easy hinbekommen.

                    S Offline
                    S Offline
                    sascho
                    schrieb am zuletzt editiert von
                    #51

                    @mickym

                    Ich bin zufrieden, wie das System nun läuft. Das UI sieht wirklich gut aus - auch ohne das Pop-Up ist klar, warum ein Rollladen nicht fährt. Ich denke, ich lasse es so.

                    Jetzt würde ich mich mal an die Programmierung der Szenarien machen - Regelmäßiges Dachfenster öffnen, Alarmanlage usw. :-). Es gibt ja immer etwas zu tun.

                    1 Antwort Letzte Antwort
                    0
                    • mickymM mickym

                      @sascho Na gut, dann weißt Du ja nun wie es prinzipiell funktioniert. ;) - Jedenfalls glaube ich, dass Du das nun alles verstanden hast und selbst Deine Flows machen kannst. :)

                      Bzgl. IQontrol kann ich Dir leider nicht weiterhelfen. Da gibt es aber einen Thread. Da könntest ja mal Deine Frage stellen. ;)

                      Wahrscheinlich muss man auch nur was in einen Datenpunkt schreiben, oder man definiert einen Datenpunkt, der eine Notification auslöst, wenn man da was reinschreibt. ;)

                      Die notification im NR Dashboard hast ja easy hinbekommen.

                      S Offline
                      S Offline
                      sascho
                      schrieb am zuletzt editiert von sascho
                      #52

                      @mickym

                      Hi!
                      Ich bin jetzt mit Fenstern, Rollläden usw. weitgehend durch. Demnächst mache ich mich an die Umsetzung des Alarmanlage.
                      Leider stürzt der Velux KLF200 Adapter noch regelmäßig ab. Ich konnte das noch nicht abstellen.
                      Per manuellen Neustart klappt dann wieder alles.
                      Das Log enthält auch eine Fehlermeldung.
                      Gibt es in Node red eine Möglichkeit, das Log auszulesen? Per trigger würde ich dann bei einer bestimmten Fehlermeldung den Neustart auslösen.
                      :-).

                      P.S. iqcontrol kann Meldungen per Pop up ausgeben, wenn man einen Datenpunkt mit einem Wert füllt.

                      mickymM 1 Antwort Letzte Antwort
                      0
                      • S sascho

                        @mickym

                        Hi!
                        Ich bin jetzt mit Fenstern, Rollläden usw. weitgehend durch. Demnächst mache ich mich an die Umsetzung des Alarmanlage.
                        Leider stürzt der Velux KLF200 Adapter noch regelmäßig ab. Ich konnte das noch nicht abstellen.
                        Per manuellen Neustart klappt dann wieder alles.
                        Das Log enthält auch eine Fehlermeldung.
                        Gibt es in Node red eine Möglichkeit, das Log auszulesen? Per trigger würde ich dann bei einer bestimmten Fehlermeldung den Neustart auslösen.
                        :-).

                        P.S. iqcontrol kann Meldungen per Pop up ausgeben, wenn man einen Datenpunkt mit einem Wert füllt.

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

                        @sascho sagte in bshb - Rollladensteuerung mit yhka Homekit:

                        @mickym

                        Hi!
                        Ich bin jetzt mit Fenstern, Rollläden usw. weitgehend durch. Demnächst mache ich mich an die Umsetzung des Alarmanlage.
                        Leider stürzt der Velux KLF200 Adapter noch regelmäßig ab. Ich konnte das noch nicht abstellen.
                        Per manuellen Neustart klappt dann wieder alles.
                        Das Log enthält auch eine Fehlermeldung.
                        Gibt es in Node red eine Möglichkeit, das Log auszulesen? Per trigger würde ich dann bei einer bestimmten Fehlermeldung den Neustart auslösen.
                        :-).

                        P.S. iqcontrol kann Meldungen per Pop up ausgeben, wenn man einen Datenpunkt mit einem Wert füllt.

                        Ehrlich gesagt verstehe ich nicht warum Du den Aufwand betreibst mit dem Adapter, mit täglichen Neustarts und nun getriggerten Neustarts, da würde ich erst mal die Nodes unten ausprobieren bevor ich da mit dem Adapter weiter rumärgere:
                        https://flows.nodered.org/node/node-red-contrib-velux.

                        aa8f1f00-efb1-4e31-8c5e-aaff8de1f280-image.png

                        Das hat überhaupt nichts mit der UI zu tun.

                        Wie gesagt ich würde es nicht machen - sondern erst die Velux Nodes anstelle des Adapters ausprobieren.

                        Ansonsten hast Du Glück, da ich schon mal einen Flow gebastelt hatte, der das Log ausliest und jeder Eintrag den Flow triggert. Du musst Dir halt eine Tail-Node installieren. Ich habe für mich mal die einfachste genommen:

                        https://flows.nodered.org/node/node-red-node-tail

                        Die Logzeilen habe ich dann mit folgendem Flow aufbereitet und analysiert:

                        0363c0ab-6f4d-463c-92aa-1230cf33bae8-image.png

                        Das kannst nun natürlich weiter mit einem Switch filtern und dann auf einzelne Ereignisse reagieren. Als Filter würde ich dann einfach auf das vorhandensein eines Textes reagieren.

                        26e66aee-247c-4054-8204-93a1ea09e01e-image.png

                        Ich lad das mal als Datei hoch - weil sonst der Import fehlschlägt. Der Import über die Zwischenablage stört sich immer an den eckigen Klammern.

                        iobroker log auslesen.json

                        Wie gesagt die Datei runterladen, abspeichern und den Import dann über die Datei machen:
                        5cb6e8d2-11ec-40f5-9904-8e2e09ed3ec6-image.png

                        Aber wie gesagt vorher die tail Node installieren.

                        Es gibt auch noch andere tail Nodes mit mehr Funktionen, wie diese hier:
                        https://flows.nodered.org/node/node-red-contrib-tail-file

                        aber wie gesagt - ist alles Geschmackssache

                        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.

                        S 1 Antwort Letzte Antwort
                        0
                        • mickymM mickym

                          @sascho sagte in bshb - Rollladensteuerung mit yhka Homekit:

                          @mickym

                          Hi!
                          Ich bin jetzt mit Fenstern, Rollläden usw. weitgehend durch. Demnächst mache ich mich an die Umsetzung des Alarmanlage.
                          Leider stürzt der Velux KLF200 Adapter noch regelmäßig ab. Ich konnte das noch nicht abstellen.
                          Per manuellen Neustart klappt dann wieder alles.
                          Das Log enthält auch eine Fehlermeldung.
                          Gibt es in Node red eine Möglichkeit, das Log auszulesen? Per trigger würde ich dann bei einer bestimmten Fehlermeldung den Neustart auslösen.
                          :-).

                          P.S. iqcontrol kann Meldungen per Pop up ausgeben, wenn man einen Datenpunkt mit einem Wert füllt.

                          Ehrlich gesagt verstehe ich nicht warum Du den Aufwand betreibst mit dem Adapter, mit täglichen Neustarts und nun getriggerten Neustarts, da würde ich erst mal die Nodes unten ausprobieren bevor ich da mit dem Adapter weiter rumärgere:
                          https://flows.nodered.org/node/node-red-contrib-velux.

                          aa8f1f00-efb1-4e31-8c5e-aaff8de1f280-image.png

                          Das hat überhaupt nichts mit der UI zu tun.

                          Wie gesagt ich würde es nicht machen - sondern erst die Velux Nodes anstelle des Adapters ausprobieren.

                          Ansonsten hast Du Glück, da ich schon mal einen Flow gebastelt hatte, der das Log ausliest und jeder Eintrag den Flow triggert. Du musst Dir halt eine Tail-Node installieren. Ich habe für mich mal die einfachste genommen:

                          https://flows.nodered.org/node/node-red-node-tail

                          Die Logzeilen habe ich dann mit folgendem Flow aufbereitet und analysiert:

                          0363c0ab-6f4d-463c-92aa-1230cf33bae8-image.png

                          Das kannst nun natürlich weiter mit einem Switch filtern und dann auf einzelne Ereignisse reagieren. Als Filter würde ich dann einfach auf das vorhandensein eines Textes reagieren.

                          26e66aee-247c-4054-8204-93a1ea09e01e-image.png

                          Ich lad das mal als Datei hoch - weil sonst der Import fehlschlägt. Der Import über die Zwischenablage stört sich immer an den eckigen Klammern.

                          iobroker log auslesen.json

                          Wie gesagt die Datei runterladen, abspeichern und den Import dann über die Datei machen:
                          5cb6e8d2-11ec-40f5-9904-8e2e09ed3ec6-image.png

                          Aber wie gesagt vorher die tail Node installieren.

                          Es gibt auch noch andere tail Nodes mit mehr Funktionen, wie diese hier:
                          https://flows.nodered.org/node/node-red-contrib-tail-file

                          aber wie gesagt - ist alles Geschmackssache

                          S Offline
                          S Offline
                          sascho
                          schrieb am zuletzt editiert von sascho
                          #54

                          @mickym

                          Cool, bevor ich das Log auslese, würde ich wirklich erstmal die Velux Nodes versuchen.
                          Damit ich das gleich richtig verinnerliche, man nutzt dann nicht mehr den KLF200 Adapter sondern greift mit den Velux Nodes direkt auf das KLF200 Steuergerät zu?
                          Mit dem dem Objekt "Velux Nodes" schreibe ich Werte, mit dem "Velux API" lese ich Werte aus?

                          Ich habe das gerade mal ausprobiert:

                          1. KLF 200 Adapter deaktiviert.
                          2. Eine Velux Nodes mit IP und Passwort angelegt (WLAN Passwort direkt aus dem Velux UI herauskopiert), einem IOBroker In, das eine 0 einspeist. Allerdings bekomme ich im Log Fehlerwerte ausgegeben:

                          Hier mal meine Setups:

                          c8b5bbfd-cef8-41df-8827-d30d28e9d267-image.png
                          3d16aa58-545c-4e04-9e06-a39bdc97eca1-image.png
                          26726f47-af1f-4d8d-9484-486663ddf65c-image.png
                          9a11cac8-cbee-45ae-852a-8a7ec4c73207-image.png

                          93c8e123-9503-4409-b7a7-79a33036b245-image.png

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

                            @sascho Nun das hatte ich ja unten schon vorgeschlagen - grundsätzlich baut NodeRed direkt dann zu Deiner KLF 200 eine Verbindung auf und man grundsätzlich auch anstelle der Adapter im iobroker auch direkt von NodeRed eine Verbindung mit den entsprechenden Nodes aufbauen.

                            Nun habe ich natürlich grundsätzlich das Problem, dass ich keine Velux Umgebung - Fenster habe.

                            Bei Deiner Fehlermeldung sieht aus, dass der Login nicht akzeptiert ist oder die Verbindung blockiert ist. Du musst halt erst mal sicherstellen, dass zumindest der iobroker Adapter nicht auch auf Deine Schnittstelle zugreift. Also den Adapter auf jedenfall deaktivieren - Du greifst über NodeRed direkt auf das Steuergerät zu.

                            Dann noch ein Tipp - am Anfang zum Ausprobieren - benutze einfach die Inject Nodes das ist einfacher, als immer über die iobroker Datenpunkte zu gehen und damit kann man viel schneller ausprobieren ob was funktioniert.

                            So auch wenn ich von der Velux Thematik nicht viel verstehe, lese ich mich halt bisschen ein - aber kann natürlich eben selbst nie nachprüfen, ob ich selbst alles richtig verstanden habe bzw. ob sich dann das auch richtig verhält.

                            Auf meinem Standalone System habe ich mir mal die Nodes installiert.

                            Also meines Erachtens hast Du mit der Fehlermeldung generell noch ein Verbindungsproblem.

                            Du wirst in meinen Augen hauptsächlich mit den Velux Nodes arbeiten. Mit der Velux API ist das eher low level und man kann damit wahrscheinlich noch diffiziellere Sachen machen.
                            Die API ist ja hier dokumentiert: https://velcdn.azureedge.net/-/media/com/api/klf200/technical specification for klf 200 api-ver3-18.pdf
                            auf dieser setzt sowohl der iobroker Adapter auf, als auch die Velux Node.

                            Die Velux Scenes - ist eine Node mit der Du auf in Deinem Velux System definierte Szenen abrufen kannst.

                            Ob das was schreibst oder liest hängt also von dem topic ab:

                            If the topic starts with velux: this is possible:
                            
                            velux:read Like setting, see above, the value is output from the buffer
                            
                            velux:load Like setting, see above, the value is requested and output at the KLF200
                            
                            velux:read:id:<id> -1 all values ​​or velux-node id for read. The settings are ignored.
                            
                            velux:load:id:<id> -1 all values ​​or velux-node id for load. The settings are ignored.
                            
                            velux:read:name:<name> Read the value by velux-node name. The settings are ignored.
                            
                            velux:load:name:<name> Load the value by velux-node name. The settings are ignored.
                            
                            velux:write Like setting, see above, the value is send to the velux-node
                            
                            velux:write:[name:<name>:][id:<id>:][valuetype:<valuetype>:] Overwrite the settings, the Payload must be an float value. []=optional, id and name together make no sense.
                            

                            Mit einer Inject Node - kann man so dann ein Fenster mit bestimmter ID auslesen:
                            b4e370ec-2112-43ae-8055-84fdacb28065-image.png

                            Im Prinzip würde ich mir mal an Deiner Stelle diese Beispiele hier anschauen:

                            So solltest Du über folgende Konfig:

                            49e59305-2034-4533-b3fa-69d13b5d364a-image.png der Velux Node - eben die aktuelle Position auslesen können.

                            Und so setzt Du das Fenster auf eine bestimmte Postition

                            aa074432-d960-4cdf-b37f-e12a3c342ccf-image.png

                            Die current Position kann man auch sicher nicht beschreiben, sondern eher was zum Lesen. Ich denke DU, dass Du das Target beschreiben wolltest.

                            Aber wie gesagt - erst muss mal die Kommunikation stimmen und die node selbst sollte den Status no errors detected haben.

                            In dem Link zu den Beispielen ist auch ein Beispiel, wie man die API aufruft.

                            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 1 Antwort Letzte Antwort
                            0
                            • mickymM Online
                              mickymM Online
                              mickym
                              Most Active
                              schrieb am zuletzt editiert von
                              #56

                              @sascho

                              Eine Velux Nodes mit IP und Passwort angelegt (WLAN Passwort direkt aus dem Velux UI herauskopiert), einem IOBroker In, das eine 0 einspeist. Allerdings bekomme ich im Log Fehlerwerte ausgegeben:

                              Das ist meines Erachtens falsch!!!

                              Unter den Beispielen gibt es folgenden Eintrag:

                              You can find the password on the back of the KLf. If that doesn't work, you will need to reset the device to the factory settings.
                              You can find the IP address of the KLF in the settings in the web interface when you connect via WiFi or in the device list in your router.

                              Das heißt Du musst das Passwort eingeben, was auf der Rückseite Deines KLF - Box (Gateways) aufgeklebt ist. Wenn das nicht funktioniert, dann müsste man es die Box zurücksetzen.

                              Allerdings solltest Du in meinen Augen auch im iobroker Adapter dieses Passwort doch nutzen. Kannst Du es da rauskopieren?

                              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

                                @sascho Nun das hatte ich ja unten schon vorgeschlagen - grundsätzlich baut NodeRed direkt dann zu Deiner KLF 200 eine Verbindung auf und man grundsätzlich auch anstelle der Adapter im iobroker auch direkt von NodeRed eine Verbindung mit den entsprechenden Nodes aufbauen.

                                Nun habe ich natürlich grundsätzlich das Problem, dass ich keine Velux Umgebung - Fenster habe.

                                Bei Deiner Fehlermeldung sieht aus, dass der Login nicht akzeptiert ist oder die Verbindung blockiert ist. Du musst halt erst mal sicherstellen, dass zumindest der iobroker Adapter nicht auch auf Deine Schnittstelle zugreift. Also den Adapter auf jedenfall deaktivieren - Du greifst über NodeRed direkt auf das Steuergerät zu.

                                Dann noch ein Tipp - am Anfang zum Ausprobieren - benutze einfach die Inject Nodes das ist einfacher, als immer über die iobroker Datenpunkte zu gehen und damit kann man viel schneller ausprobieren ob was funktioniert.

                                So auch wenn ich von der Velux Thematik nicht viel verstehe, lese ich mich halt bisschen ein - aber kann natürlich eben selbst nie nachprüfen, ob ich selbst alles richtig verstanden habe bzw. ob sich dann das auch richtig verhält.

                                Auf meinem Standalone System habe ich mir mal die Nodes installiert.

                                Also meines Erachtens hast Du mit der Fehlermeldung generell noch ein Verbindungsproblem.

                                Du wirst in meinen Augen hauptsächlich mit den Velux Nodes arbeiten. Mit der Velux API ist das eher low level und man kann damit wahrscheinlich noch diffiziellere Sachen machen.
                                Die API ist ja hier dokumentiert: https://velcdn.azureedge.net/-/media/com/api/klf200/technical specification for klf 200 api-ver3-18.pdf
                                auf dieser setzt sowohl der iobroker Adapter auf, als auch die Velux Node.

                                Die Velux Scenes - ist eine Node mit der Du auf in Deinem Velux System definierte Szenen abrufen kannst.

                                Ob das was schreibst oder liest hängt also von dem topic ab:

                                If the topic starts with velux: this is possible:
                                
                                velux:read Like setting, see above, the value is output from the buffer
                                
                                velux:load Like setting, see above, the value is requested and output at the KLF200
                                
                                velux:read:id:<id> -1 all values ​​or velux-node id for read. The settings are ignored.
                                
                                velux:load:id:<id> -1 all values ​​or velux-node id for load. The settings are ignored.
                                
                                velux:read:name:<name> Read the value by velux-node name. The settings are ignored.
                                
                                velux:load:name:<name> Load the value by velux-node name. The settings are ignored.
                                
                                velux:write Like setting, see above, the value is send to the velux-node
                                
                                velux:write:[name:<name>:][id:<id>:][valuetype:<valuetype>:] Overwrite the settings, the Payload must be an float value. []=optional, id and name together make no sense.
                                

                                Mit einer Inject Node - kann man so dann ein Fenster mit bestimmter ID auslesen:
                                b4e370ec-2112-43ae-8055-84fdacb28065-image.png

                                Im Prinzip würde ich mir mal an Deiner Stelle diese Beispiele hier anschauen:

                                So solltest Du über folgende Konfig:

                                49e59305-2034-4533-b3fa-69d13b5d364a-image.png der Velux Node - eben die aktuelle Position auslesen können.

                                Und so setzt Du das Fenster auf eine bestimmte Postition

                                aa074432-d960-4cdf-b37f-e12a3c342ccf-image.png

                                Die current Position kann man auch sicher nicht beschreiben, sondern eher was zum Lesen. Ich denke DU, dass Du das Target beschreiben wolltest.

                                Aber wie gesagt - erst muss mal die Kommunikation stimmen und die node selbst sollte den Status no errors detected haben.

                                In dem Link zu den Beispielen ist auch ein Beispiel, wie man die API aufruft.

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

                                Ich hab mir die Fehlermeldung nochmal genauer angeschaut.

                                Ich denke Du hast den KLF Adapter nicht richtig deaktiviert - ggf. musst Du nochmal neustarten.

                                e0adbeb4-46e6-418d-bdce-9943daf4464b-image.png

                                Der Pfad spricht nämlich dafür dass die API hier vom iobroker-Adapter benutzt wird.

                                Die API von den NodeRed Nodes sollte nämlich hier bei der Installation zu finden sein.

                                /opt/iobroker/iobroker-data/node-red/node_modules
                                

                                dort sollte es jetzt nämlich ebenfalles ein Verzeichnis Velux-KF200 -api geben. Ich gehe davon aus, dass sowohl der Adapter als auch die Node Red Nodes die gleiche API nutzen.

                                Würde halt erst mal Backups machen und dann versuchen, das NodeRed Interface zu nutzen.

                                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
                                • S sascho

                                  @mickym

                                  Cool, bevor ich das Log auslese, würde ich wirklich erstmal die Velux Nodes versuchen.
                                  Damit ich das gleich richtig verinnerliche, man nutzt dann nicht mehr den KLF200 Adapter sondern greift mit den Velux Nodes direkt auf das KLF200 Steuergerät zu?
                                  Mit dem dem Objekt "Velux Nodes" schreibe ich Werte, mit dem "Velux API" lese ich Werte aus?

                                  Ich habe das gerade mal ausprobiert:

                                  1. KLF 200 Adapter deaktiviert.
                                  2. Eine Velux Nodes mit IP und Passwort angelegt (WLAN Passwort direkt aus dem Velux UI herauskopiert), einem IOBroker In, das eine 0 einspeist. Allerdings bekomme ich im Log Fehlerwerte ausgegeben:

                                  Hier mal meine Setups:

                                  c8b5bbfd-cef8-41df-8827-d30d28e9d267-image.png
                                  3d16aa58-545c-4e04-9e06-a39bdc97eca1-image.png
                                  26726f47-af1f-4d8d-9484-486663ddf65c-image.png
                                  9a11cac8-cbee-45ae-852a-8a7ec4c73207-image.png

                                  93c8e123-9503-4409-b7a7-79a33036b245-image.png

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

                                  @sascho Falls Du es doch mit dem Logfile versuchen musst - habe ich nun die andere tail Node installiert, da die einfache tail Node den Tageswechsel, wenn die neue Datei als current log erstellt wird, nicht mitmacht. Die neue anscheinend schon. Die spuckt nur die Kommandos oder normale Statusmeldungen als Fehler aus - die kann man aber einfach mit einer Catch Node abfangen.

                                  Falls das dann aktuell wird - poste ich den Flow.

                                  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.

                                  S 1 Antwort Letzte Antwort
                                  0
                                  • mickymM mickym

                                    @sascho Falls Du es doch mit dem Logfile versuchen musst - habe ich nun die andere tail Node installiert, da die einfache tail Node den Tageswechsel, wenn die neue Datei als current log erstellt wird, nicht mitmacht. Die neue anscheinend schon. Die spuckt nur die Kommandos oder normale Statusmeldungen als Fehler aus - die kann man aber einfach mit einer Catch Node abfangen.

                                    Falls das dann aktuell wird - poste ich den Flow.

                                    S Offline
                                    S Offline
                                    sascho
                                    schrieb am zuletzt editiert von
                                    #59

                                    @mickym

                                    Also, es lag tatsächlich am Passwort. In der Velux Docu wird geschrieben, dass man das Wlan Passwort verwenden soll. Das stimmt aber nicht - man muss das WebUI Passwort nehmen. Jetzt taucht keine Fehlermeldung mehr im Log auf.
                                    Allerdings reagiert das Testdachfenster noch nicht. Ich bin gerade doch noch mit einem Datenpunkt unterwegs, da ich so die Werte zwischen 0 und 100 tauschen kann. Muss man evtl. im Topic eine Einstellung machen?

                                    67e5f701-ce77-46e5-a3fb-3daa41b79e2d-image.png

                                    3eb49878-3016-48b7-90ec-ddd77bd9b257-image.png

                                    2ab5295c-054c-4db5-92a1-b4c2da6da0f7-image.png

                                    P.S. Den Reset vom Steuergerät würde ich ungern machen, da wir DF im First haben, an die ich zum Anlernen nie wieder rankomme...

                                    mickymM 1 Antwort Letzte Antwort
                                    0
                                    • S sascho

                                      @mickym

                                      Also, es lag tatsächlich am Passwort. In der Velux Docu wird geschrieben, dass man das Wlan Passwort verwenden soll. Das stimmt aber nicht - man muss das WebUI Passwort nehmen. Jetzt taucht keine Fehlermeldung mehr im Log auf.
                                      Allerdings reagiert das Testdachfenster noch nicht. Ich bin gerade doch noch mit einem Datenpunkt unterwegs, da ich so die Werte zwischen 0 und 100 tauschen kann. Muss man evtl. im Topic eine Einstellung machen?

                                      67e5f701-ce77-46e5-a3fb-3daa41b79e2d-image.png

                                      3eb49878-3016-48b7-90ec-ddd77bd9b257-image.png

                                      2ab5295c-054c-4db5-92a1-b4c2da6da0f7-image.png

                                      P.S. Den Reset vom Steuergerät würde ich ungern machen, da wir DF im First haben, an die ich zum Anlernen nie wieder rankomme...

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

                                      @sascho Nun wenn keine Fehlermeldung mehr kommt, ist ja gut - ich würde erst mal auslesen, um zu sehen, ob die Kommunikation funktioniert und dann halt mit mehren Inject Nodes arbeiten.

                                      Konfiguriere doch erst mal die Velux Node zum Lesen und hänge eine Debug Node an:

                                      ee4e26cf-e675-42a8-b2f6-2048263b89a5-image.png

                                      und dann verstellst Du mit Schalter oder App das Fenster und schaust ob was aus der Node rauskommt.

                                      Du kannst ja mal current position und all values ausprobieren und dann im Debug Fenster schauen, was für ein Ausgabe rauskommt.

                                      2f0e84e5-5f42-437f-abe9-84d63b6d422c-image.png

                                      edd279de-ff4d-4bc3-9a6a-edb8073ac359-image.png

                                      Beim Senden machst um auf und zu zumachen - nimm 2 Inject Nodes einmal mit 100 und 0 und gib gar kein topic mit - wie in dieser Abbildung und mach das nur auf target

                                      184b1ec2-3902-441a-8e8d-ce34d7af1968-image.png

                                      Damit injizierst einmal 0 und einmal 100 durch Tastendruck und geht schneller als über den Datenpunkt:

                                      0165af1d-cc03-4628-8eb7-ee42f83a11c9-image.png

                                      [{"id":"9eb35ce72d947bc8","type":"inject","z":"5191e3c.a1ef01c","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"0","payloadType":"num","x":750,"y":840,"wires":[["574b6771bbf6c0b3"]]},{"id":"eb54f3d21b803198","type":"inject","z":"5191e3c.a1ef01c","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"100","payloadType":"num","x":750,"y":900,"wires":[["574b6771bbf6c0b3"]]},{"id":"574b6771bbf6c0b3","type":"Velux Nodes","z":"5191e3c.a1ef01c","nodevalue":"","topic":"","x":910,"y":860,"wires":[["bfa52e3e5e6c9e66"]]},{"id":"bfa52e3e5e6c9e66","type":"debug","z":"5191e3c.a1ef01c","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1180,"y":860,"wires":[]}]
                                      

                                      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.

                                      S 1 Antwort Letzte Antwort
                                      0
                                      • mickymM mickym

                                        @sascho Nun wenn keine Fehlermeldung mehr kommt, ist ja gut - ich würde erst mal auslesen, um zu sehen, ob die Kommunikation funktioniert und dann halt mit mehren Inject Nodes arbeiten.

                                        Konfiguriere doch erst mal die Velux Node zum Lesen und hänge eine Debug Node an:

                                        ee4e26cf-e675-42a8-b2f6-2048263b89a5-image.png

                                        und dann verstellst Du mit Schalter oder App das Fenster und schaust ob was aus der Node rauskommt.

                                        Du kannst ja mal current position und all values ausprobieren und dann im Debug Fenster schauen, was für ein Ausgabe rauskommt.

                                        2f0e84e5-5f42-437f-abe9-84d63b6d422c-image.png

                                        edd279de-ff4d-4bc3-9a6a-edb8073ac359-image.png

                                        Beim Senden machst um auf und zu zumachen - nimm 2 Inject Nodes einmal mit 100 und 0 und gib gar kein topic mit - wie in dieser Abbildung und mach das nur auf target

                                        184b1ec2-3902-441a-8e8d-ce34d7af1968-image.png

                                        Damit injizierst einmal 0 und einmal 100 durch Tastendruck und geht schneller als über den Datenpunkt:

                                        0165af1d-cc03-4628-8eb7-ee42f83a11c9-image.png

                                        [{"id":"9eb35ce72d947bc8","type":"inject","z":"5191e3c.a1ef01c","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"0","payloadType":"num","x":750,"y":840,"wires":[["574b6771bbf6c0b3"]]},{"id":"eb54f3d21b803198","type":"inject","z":"5191e3c.a1ef01c","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"100","payloadType":"num","x":750,"y":900,"wires":[["574b6771bbf6c0b3"]]},{"id":"574b6771bbf6c0b3","type":"Velux Nodes","z":"5191e3c.a1ef01c","nodevalue":"","topic":"","x":910,"y":860,"wires":[["bfa52e3e5e6c9e66"]]},{"id":"bfa52e3e5e6c9e66","type":"debug","z":"5191e3c.a1ef01c","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1180,"y":860,"wires":[]}]
                                        

                                        S Offline
                                        S Offline
                                        sascho
                                        schrieb am zuletzt editiert von
                                        #61

                                        @mickym

                                        Hi, ich habe Deine Vorschläge mal umgesetzt und konnte tatsächlich die Current Position auslesen und die Target Position setzen. Leider ist das Ganze noch nicht stabil. Ich bekomme immer noch Fehlermeldungen - evtl. ist das KFL200 oder der Motor überlastet:
                                        00fccf9d-9a28-47a0-a7e5-974f7d7ee1b4-image.png

                                        1107a69c-eb2b-42bf-b1cc-4bab7f385a26-image.png

                                        e1c45ba8-39d0-420b-bb82-ffd69a9426dc-image.png

                                        Ich muss mich da mal in Ruhe dransetzen...

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

                                          @sascho sagte in bshb - Rollladensteuerung mit yhka Homekit:

                                          @mickym

                                          Hi, ich habe Deine Vorschläge mal umgesetzt und konnte tatsächlich die Current Position auslesen und die Target Position setzen. Leider ist das Ganze noch nicht stabil. Ich bekomme immer noch Fehlermeldungen - evtl. ist das KFL200 oder der Motor überlastet:

                                          Nun das ist doch erst schon mal ein Riesenfortschritt. Anhand der Fehlermeldung glaube ich aber immer noch, dass der iobroker KLF200 Adapter für die Fehler verantwortlich ist. Ich würde hier einfach mal über längere Zeit den ganzen Adapter außer Betrieb setzen auch, wenn Du dann erst mal viel manuell machen musst. Warum glaube ich das?

                                          Auf Basis dieses Pfades /opt/iobroker/node_modules/.... gehe ich davon aus, dass diese Bibliothek von Deinem iobroker-Adapter stammt und nicht von den Node Red Nodes.

                                          644048b0-8a36-478e-b293-f0c1f7db85ea-image.png

                                          Die Node-Red Nodes sollten die gleiche API in diesem Pfad installiert haben:
                                          /opt/iobroker/node_modules/iobroker.node-red/node_modules
                                          Das heißt das müsste von daher kommen.

                                          Es kann auch einfach sein, dass der Adapter und die Node gleichzeitig auf die Schnittstelle zugreifen wollen, das geht natürlich auch nicht. Es wird Dir also nichts übrig bleiben für den Test den iobroker-Adapter mundtot zu machen.

                                          Also ich glaube erst mal ist wichtig, dass Du exklusiven Zugriff auf das Gateway hast.

                                          Dann hab ich noch bissi recherchiert, wie man diese API bedient.

                                          Im Prinzip gibst Du alles als Objekt in diese API Node mit.

                                          Du kannst mal versuchen ob Du damit Dein KLF200 Gateway neustarten kannst:

                                          cf90eb85-b88a-4c54-9ab3-6f095f722413-image.png

                                          [{"id":"275af5e430be8cde","type":"inject","z":"5191e3c.a1ef01c","name":"Reboot","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"apiText\":\"GW_REBOOT_REQ\"}","payloadType":"json","x":270,"y":1160,"wires":[["9c07a33961e3b586"]]},{"id":"9c07a33961e3b586","type":"Velux Api","z":"5191e3c.a1ef01c","name":"","datasource":"","api":"8196","ntf":[],"topic":"s","x":420,"y":1160,"wires":[["20a2999409a22c6b"]]},{"id":"20a2999409a22c6b","type":"debug","z":"5191e3c.a1ef01c","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":590,"y":1160,"wires":[]}]
                                          

                                          Was in dem Drop Down ist kann ich nicht sagen, weil ich ja kein Gateway habe.

                                          Aber interessant ist, dass man die API mit ganz normalen JSON Objekten - quasi im Klartext bestücken kann.

                                          Mit diesem einfachen Kommando müsste man das KLF200 neustarten können - kannst ja mal ausprobieren. ;)

                                          a3ef87b3-0b1f-4ee3-b363-96c3e56a7443-image.png

                                          Aber auch bei komplexeren API Aufrufen kann man diese API Request also in lesbarem Format absenden.

                                          85412b2c-84a8-4b72-b4ea-db758609a101-image.png

                                          Das was Du hier siehst sind die Parameter für einen Command Send Request mit den Felder, die in der API auf S. 57 beschrieben sind:

                                          0fca50e7-8cc4-4436-9d52-5ce203e86c9b-image.png

                                          Die Bedeutung muss man dann natürlich aus den Folgeseiten übernehmen. Die Fragen ist, ob man das braucht.

                                          Aber mit der API den Neutstart des Gateways zu machen - ist ja schon mal ganz praktisch.

                                          Über eine Catch Node kannst Du dann später ggf. direkt auf Fehler reagieren und ggf. das Gateway neu starten.

                                          Hier aus diesem Thread habe ich teilweise die Beispiele: https://githubmemory.com/repo/PLCHome/node-red-contrib-velux/issues

                                          So müsste man beispielsweise die Informationen aller Nodes auslesen können:
                                          f2dafbf7-6093-4adf-bb0e-7dccd248add1-image.png

                                          b1c08f03-fdf6-4953-9e5f-cd8176e867f2-image.png 848ef05e-3068-4365-b432-fcced2461a6e-image.png

                                          [{"id":"774ff8d2.0467c8","type":"Velux Nodes","z":"5191e3c.a1ef01c","name":"","datasource":"","index":"-1","nodevalue":"ALL","topic":"","x":590,"y":2020,"wires":[["209dd4dd.4e37ac"]]},{"id":"209dd4dd.4e37ac","type":"debug","z":"5191e3c.a1ef01c","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":770,"y":2020,"wires":[]},{"id":"6f16143d.f9793c","type":"inject","z":"5191e3c.a1ef01c","name":"Alle Nodes auslesen","props":[{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"velux:read","x":390,"y":2020,"wires":[["774ff8d2.0467c8"]]}]
                                          

                                          Aber wie gesagt in meinen Augen musst Du erst mal schauen, dass Du exklusiven Zugriff mit Deinen Nodes auf die Schnittstelle hast.

                                          Zudem habe ich gefunden, dass dieses Gateway wohl max. 2 Verbindungen unterstützt:

                                          The KLF sometimes does not release the Session internally if the connection is lost. Since only 2 users are allowed to connect, it can happen that you are no longer allowed to connect to the KLF. Currently I am sending a GW_REBOOT_REQ from the API from the Node-Red once a day. This ensures that there is always a free slot available for connection.

                                          Wenn das tatsächlich so ist, dann wird sich die Stabilität auch nicht verbessern, dann brauchst vielleicht doch nicht den Aufwand betreiben und nutzt weiter den Adapter und untersuchst das Log.

                                          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.

                                          S 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

                                          725

                                          Online

                                          32.7k

                                          Benutzer

                                          82.4k

                                          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