Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. bshb - Rollladensteuerung mit yhka Homekit

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    bshb - Rollladensteuerung mit yhka Homekit

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

      @sascho WIe gesagt, die iobroker Cloud kenn ich nicht und bist (ohne es genau zu wissen auf VIS als Oberfläche festgelegt).

      Ansonsten bist Du halt mit einer VPN Lösung am flexibelsten, weil Du dann auch von außen so arbeiten kannst, als wärst Du in Deinem Heimnetz. (Damit ist auch jede Visualisierung nutzbar).

      Solltest Du noch einer der Glücklichen mit einer IPv4 Adresse sein, dann kannst Du direkt ein VPN über Deine FritzBox herstellen (kostet in dem Fall gar nichts), falls nicht dann habe ich momentan eine Lösung über OpenVPN, feste-ip.net seit über einem Jahr am Laufen und bin ganz zufrieden. Dazu müsste man halt erst mal wissen, wie denn Deine Internetverbindung aussieht.

      Mit der Reverse Proxy Lösung bin ich ehrlich gesagt eher gescheitert und ist auch ein Riesenaufwand einen neuen Dienst einzubinden.

      S 1 Reply Last reply Reply Quote 0
      • S
        sascho @mickym last edited by

        @mickym

        Wir haben hier Glasfaser von der Dt. Telekom. Auf den Ip-Ident-Seiten tauchen eine IP6 und IP4 Adresse auf:
        e77ed53a-1a2f-4b19-bf2b-29b76b932a04-image.png.

        Ich müsste mal schauen, ob sich die IP4 ändert. Parallel schaue ich mal, ob man eine feste IP bei der Telekom bekommen kann. Die VPN Einrichtung läuft dann über die Fritzbox und/oder die NAS?

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

          @sascho
          Wenn Du eine Fritzbox hast dann brauchst keine feste IP, sondern Du machst Dein VPN über MyFRITZ auf. Alternativ suchst Dir ein DDNS Anbieter dann musst Dich halt mit Deinem Router auskennen. Bei DDNS bzw. MyFRITZ machst Du Dein VPN über den Namen auf. Die Zuordnung zu Deiner IP erfolgt dynamisch sprich mit jedem Verbindungsaufbau. Meist ist das wesentliche günstiger als eine feste IP.

          S 1 Reply Last reply Reply Quote 0
          • S
            sascho @mickym last edited by

            @mickym

            Der Tipp mit der Fritzbox war gut. Ich konnte einen VPN öffnen und auf iQontrol zugreifen. So gut wie das aussieht, wäre es evtl. wirklich eine Alternative zum Homekit. Ich teste das mal ein paar Tage.

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

              @sascho Na freut mich, dass Du das mit dem VPN hinbekommen hast.

              Kannst ja bissi mit IQontrol spielen. Ich kann Dir dazu wenig sagen.
              Ansonsten kannst halt wie ich das NodeRed Dashboard nutzen - da hast halt den schnellsten Erfolg zwischen Steuerung und Logik. Mit dem VPN stehen Dir ja nun alle Möglichkeiten der Visualisierungen offen.

              Meine Wetterseite hatte ich ja schon gepostet und auch meine Homepage oder Heizungssteuerung habe ich ja schon mal gepostet.

              Wie gesagt, wenn das VPN erst mal läuft - Du brauchst Dich auch nicht auf eine Visualisierung festlegen. Ich habe die Ausgaben des Flotadapters in das NodeRed Dashboard eingebunden.

              Und auch mal eine VIS Seite mit Grundriss gebastelt. Schaut Dir alles in Ruhe an. Wie gesagt durch das VPN bist ja nicht mehr festgelegt. 😉

              S 1 Reply Last reply Reply Quote 0
              • S
                sascho @mickym last edited by

                @mickym

                iQcontrol ist schon ganz nett. Lichtschalter einbauen ging einfach, Rollladensteuerungen ist etwas tricky. Von der Bedienung her ist es schon sehr komfortabel. Allerdings stellt sich schon die Frage ob dauerhaft zwei Systeme Sinn machen: a) Yahka für die Homekit Integration b) Node Red für die Spezialfälle oder iQcontrol statt Yahka unter a).

                Wenn Node Red alles könnte, mit etwas Mehraufwand, wäre das für die nächsten Jahre sicher besser.
                Ich habe mal mit Node Red begonnen. Gibt es irgendwo ein frei zu gängliches Wiki?

                d8b551da-6a48-4377-850c-21bd7b5c06ad-image.png

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

                  @sascho Das NR Dashboard bietet Dir auf die schnelle halt die Möglichkeit Deine Logik mit den Schaltern abzubilden und wenn Du es später grafisch aufwendiger gestalten willst, dann geht das auch.

                  Über die template Nodes mit etwas HTML Programmierung ist aber auch hier durchaus einiges drin. Damit habe ich mich zuletzt in dem Thread etwas beschäftigt. 😉 - Aber ansonsten hast Du mit dem NR Dashboard ein Material Design Dashboard (Google - Android Standard), mit responsive Design. Wenn Du Deine Gruppen mit 6 Einheiten Breite belässt, kann man die auf dem Handy wie auf dem Tablett anschauen. Aber wie gesagt die Grafik ist hier nicht das Besondere.

                  Ansonsten kann ich Dir für NR folgende Quellen empfehlen ,die ich hier schon mal zusammen getragen habe:
                  https://forum.iobroker.net/topic/35699/geräte-per-datenpunkt-schalten/93?_=1625002546844. Auf der Hausautomationsseite (M. Kleine) gibts ja auch mehrere Tutorials. Er hat sich ja mit verschiedenen IoT Systemen beschäftigt.

                  Insbesondere die Videos von Steve finde ich sehr lehrreich und sein Englisch ist in meinen Augen gut verständlich.

                  Ansonsten hier die offizielle Dokumentation mit Tutorials und allem Drum und Dran:
                  https://nodered.org/docs/ inkl. Forum. NodeRed war ursprünglich mal eine Entwicklung der IBM bevor es von der Open Source Community übernommen wurde.

                  NodeRed in Kombination mit dem iobroker zur Datenspeicherung, Datenbank und dem History Adapter ist das in meinen Augen eines der besten Systeme, die man auf dem frei verfügbaren Markt erhalten kann.

                  Und ein weiterer Vorteil des iobrokers, weil Du geschrieben hast:

                  stellt sich schon die Frage ob dauerhaft zwei Systeme Sinn machen: a) Yahka für die Homekit Integration b) Node Red für die Spezialfälle oder iQcontrol statt Yahka unter a).

                  iobroker kann alle die Systeme gut miteinander verknüpfen, so dass man ja gar nicht erkennt, welche Systeme an einer Ausgabe beteiligt sind. 😉
                  Das ist ja das Geniale am iobroker.

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    sascho @mickym last edited by sascho

                    @mickym

                    Hi,

                    ich bin mir noch nicht so sicher, ob ich mir den Aufbau eines kompletten UI mit NR zutraue. Ich arbeite ja auch noch, richte das Haus ein, und kämpfe gerade auch mit der Hardware (die NAS braucht ein RAM Upgrade da der Bosch Adapter ständig crashed) und den Adaptern (der Bosch Adapter und KLF200 Adapter crashed regelmäßig).

                    Ich habe den iqControl Adaptergerade ganz gut hingekommen und konnte eigentlich alles auf die Oberfläche bringen.
                    An zwei entscheidenden Punkte arbeite ich noch:

                    Kann Node Red auch Bedingungen verarbeiten? Die Dachfensterrollläden dürfen nicht zufahren, wenn die Dachfenster weiter geöffnet sind als die Lüfungsklappe (7%).... Der Befahl wäre also:
                    If Dachfenster > 7% then Keine Aktion else Dachfensterrollladen = schließen (100%).

                    Kann ich im Iobroker den das Velux KLF200 Steuergerät über die API neu starten? Es hängt sich regelmäßig auf und der Adapter funktioniert dann nicht. In der API Beschreibung gibt es so einen Befehl - 6.5: https://velcdn.azureedge.net/-/media/com/api/klf200/technical specification for klf 200 api-ver3-18.pdf

                    Tausend Dank für Deine Hilfe

                    mickym 1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @sascho last edited by 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.

                      3s1d created this issue in PLCHome/node-red-contrib-velux

                      closed Example required #1

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        sascho @mickym last edited by 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 ✌

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

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

                          1 Reply Last reply Reply Quote 0
                          • S
                            sascho last edited by 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!

                            mickym 3 Replies Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @sascho last edited by

                              @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

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

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

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

                                  @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 1 Reply Last reply Reply Quote 0
                                  • S
                                    sascho @mickym last edited by 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?

                                    mickym 1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active @sascho last edited by 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 2 Replies Last reply Reply Quote 0
                                      • S
                                        sascho @mickym last edited by

                                        @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 Reply Last reply Reply Quote 0
                                        • S
                                          sascho @mickym last edited by 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.

                                          mickym 1 Reply Last reply Reply Quote 0
                                          • mickym
                                            mickym Most Active @sascho last edited by 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 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            657
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

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