Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Node-red iobroker Objekte in homekit einbinden

    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

    Node-red iobroker Objekte in homekit einbinden

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

      @mickym Ok. Danke für die Info. Ich tue mich halt sehr schwer mit den Change Nodes. Da habe ich keine Ahnung was ich da wie "mappen" muss.

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

        @minta79 Das ist nicht so schwer da helfe ich Dir gerne - weil es fundamentales Verständnis ist.

        Schau mal die haben die Doku sogar überarbeitet und mit Beispielflows geliefert:

        https://nrchkb.github.io/wiki/service/window-covering/

        M 1 Reply Last reply Reply Quote 0
        • M
          Minta79 @mickym last edited by

          @mickym Das wäre natürlich supernett! Mir fehlen glaube ich nur 2-3 Beispiele, dann kann ich es bestimmt adaptieren. Habe mir z.B. gerade eine dimmbare Lampe angeschaut, da kommt das Thema "Brightness" z.B. vor und das Beispiel vom Türkontaktsensor. Da sind dann schon ein paar mehr Parameter dabei.

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

            @minta79 Also grundsätzlich arbeitet Du mit Nachrichtenobjekten die durch die Nodes geschickt werden.

            Ein Objekt ist ein Javascript-Objekt, das bestimmte Eigenschaften hat

            https://www.w3schools.com/js/js_objects.asp

            Statt dem Auto hast Du in Node Red eben ein msg Objekt.

            Am Bekanntesten hast Du meist ein topic und ein payload in Deinem Nachrichtenobjekt.

            Am Besten Du schaust immer in Deinen Debug Nodes - das komplette Nachrichtenobjekt an:
            Wenn Du also mal das Debug Fenster anschaust - und ich habe mal eine Debug Node nur mit der payload und das komplette Nachrichtenobjekt genommen:

            efeda1a9-01c3-4829-9c50-0f2a805dbca0-image.png

            Beim kompletten Objekt siehst Du also dass die payload nur eine Eigenschaft des Nachrichtenobjektes ist und die payload wiederum ein Objekt mit der Eigenschaft TargetPosition hat.

            Möchtest Du die TargetPosition diekt haben, dann setzt Du die payload direkt auf die Eigenschaft: payload.TargetPosition

            Bei den Rollläden siehst Du in der HomeApp solange den rollladen sich bewegen bis CurrentPosition = TargetPosition ist.

            M 1 Reply Last reply Reply Quote 0
            • M
              Minta79 @mickym last edited by

              @mickym Ok. Grundsätzlich habe ich das verstanden. Aber mir fehlt noch der richtige Ansatz, also wie ich von A nach B komme. Das mit dem Debug Node ist klar und auch das mit den Eigenschaften , aber die "Übersetzung" bekomme ich noch nicht auf die Reihe. Brauche ich dann immer nen Change Node? In dem Beispiel von vorhin mit der Lampe bekomme ich sie jetzt mit dem Change Node an- und ausgeschaltet. Aber wie nehme ich nun noch das Thema Brightness auf, so dass es auch an mein ioBroker Objekt übergeben wird? In dem gleichen Change Node? Sorry für die evtl. blöden Fragen.

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

                @minta79 Nun die Change NOde ist doch das Wichtigste um Deine Nachrichten so anzupassen, wie es Dein Zielgerät brauchst.

                Also wir betrachten jetzt mal nur eine Richtung:

                Sprich Du triggerst steuerst über Deine HomeApp. Die Node spukt eine Nachricht aus und nun musst Du die Nachricht so modifizieren (deshalb brauchst Du die Change Nodes) damit Dein Zielgerät es versteht.

                Sprich Du hast ein Lampe, die Du dimmen kannst. Du bekommst aus Deiner Homekit Node ein payload mit einer Eigenschaft Brightness. Nun hängt es doch von Deiner Lampe ab, wie Du die Brightness steuerst und dem entsprechende modifizierst Du die payload in dem Du nun den Wert der Eigenschaft brightness in den Datenpunkt schreibst.
                Also wichtig:
                A. Was bekommst Du für Informationen aus der Homekit Node
                B. Was brauchst Du um die Lampe zu steuern.

                Bei den Shellies musst Du neben der Brightness noch die Lampe einschalten. Aber wie gesagt, Du weißt am Besten, was Deine Lampen brauchen und das werden wir versuchen über einen Flow zu erledigen.

                M 1 Reply Last reply Reply Quote 0
                • M
                  Minta79 @mickym last edited by Minta79

                  @mickym Ich glaube so langsam wird es was. Nur passiert noch nicht ganz das was es soll.
                  Hier mein Beispiel:
                  Das ist eine von meinen Lampen:
                  Bildschirmfoto 2021-12-23 um 21.32.54.png
                  Das habe ich gebastelt:
                  Bildschirmfoto 2021-12-23 um 21.33.18.png

                  Bildschirmfoto 2021-12-23 um 21.33.31.png

                  Bildschirmfoto 2021-12-23 um 21.33.43.png

                  Die Lampe geht auch an, aber nicht mit 100%.
                  Ich muss doch nun noch "Brightness" in etwas "übersetzen", das meine Lampe versteht richtig? Nur wie? Der Schritt ist mir noch nicht klar. Wenn ich den Dreh raus habe, kann ich es ja wahrscheinlich auf alles andere anwenden.

                  Wenn ich in der HomeApp dimme erscheint das hier im Debug:
                  Bildschirmfoto 2021-12-23 um 21.40.15.png

                  Vielen Dank, dass du mir so geduldig hilfst!!!

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

                    @minta79 Na Du hast doch unterschiedliche States in deiner Lampe. Also kannst Du doch nicht alles in einen Datenounkt schreiben.

                    On off miss in den switch
                    dann hast Du einen Datenpunkt für die Farbe usw.

                    Da gibt es sicher noch einen Datenpunkt für die Helligkeit. Also Du musst verschiedene Datenpunkte befüllen und Du holst die Infos aus einer payload. Also poste mal alle Datenpunkte zu Deiner Lampe.

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      Minta79 @mickym last edited by Minta79

                      @mickym Sorry. Jetzt hab ich es. Ich muss natürlich verschiedene Datenpunkte ansteuern! Das war der Fehler! Jetzt funktioniert es. An/Aus + Brightness. Das war der Denkfehler, den ich die ganze Zeit drin hatte.

                      Eine Frage noch: Du hast geschrieben "Am Besten Du schaust immer in Deinen Debug Nodes - das komplette Nachrichtenobjekt an:" Wie komme ich an das komplette Nachrichtenobjekt?

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

                        @minta79 Na ich sehe - meist ist doch alles in der payload. Aber ansonsten kannst Du in der Debug Node angeben, ob Du nur die payload oder das komplette Nachrichtenobjekt ausgegeben werden soll.

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          Minta79 @mickym last edited by

                          @mickym Wahrscheinlich stehe ich wieder auf dem Schlauch. Meine Frage ist, wie ich an alle "Eigenschaften" eines Typs wie z.B. Window Covering komme, wie in deinem Screenshot zu sehen:
                          Bildschirmfoto 2021-12-23 um 21.53.12.png

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

                            @minta79 Nun das habe ich doch aus dem WIKI - das ich Dir gepostet habe. Da steht ja auch eine BEschreibung zu den Parametern.

                            Hier ist doch zu dem Service angegeben, welche Parameter erforderlich sind (Position State meines Erfahrung nach nicht, aber egal).

                            395e002c-29a4-4433-8070-1f60db92ecb7-image.png

                            In den Flows - die zu dem Service angehängt sind, siehst Du doch die Beispiele.

                            M 1 Reply Last reply Reply Quote 0
                            • M
                              Minta79 @mickym last edited by

                              @mickym Oh sorry, den Link hatte ich total übersehen! Stimmt da ist alles was ich brauche.

                              M 1 Reply Last reply Reply Quote 0
                              • M
                                Minta79 @Minta79 last edited by

                                @mickym Ich bräuchte noch mal Hilfe. Ich komme einfach nicht weiter. Der Rolladen fährt zwar hoch und runter, aber der Kringel bleibt und dreht sich endlos im HomeKit.
                                Ich habe hier (https://nrchkb.github.io/wiki/service/window-covering/) folgendes gelesen: "When Current State and Target State are not equal, you will get the spinning icon in Home.app. The messages may be sent together in a single payload or with a delay between to show “opening” and “closing” in the Home.app."
                                Genau das bekomme ich einfach nicht hin. Hier bräuchte ich bitte Hilfe. Hat jemand evtl. ein Beispiel, dass ich mir in NodeRed importieren kann?
                                Ich möchte einen Rolladen (Shelly 2.5) aus iobroker in HomeKit über NodeRed einbinden. Schalter und Lichter bekomme ich mittlerweile hin, aber der Rolladen will einfach nicht.

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

                                  @minta79 Nun Du musst halt den Datenpunkt Deines Shellies, die den aktuellen Status ausgibt in die Node füttern. Also such Dir den Datenpunkt im Shelly, der Dir die aktuelle Position angibt oder vielleicht gibts auch ein Datenpunkt, wo der Shelly meldet, wenn er sich nicht mehr bewegt keine Ahnung - alles steht und hängt von Deinen Datenpunkten Deines Shellies ab.

                                  Wenn Dir das nicht wichtig ist setzt Du halt gleich den CurrentState - ist halt nicht so schön.
                                  Dann nimmst Du halt das was aus TargetState raus kommst und gibts es als CurrentState in die Node -

                                  M 1 Reply Last reply Reply Quote 0
                                  • M
                                    Minta79 @mickym last edited by

                                    @mickym Danke! Ich glaube ich habe es hinbekommen. Manchmal hilft ein kleiner Denkanstoß.

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      Minta79 last edited by

                                      Ich habe noch ein Problem. Ab und zu kommt es vor, dass es aussieht als wäre der Shelly in einer Endlosschleife gefangen. Die Werte fangen an hin- und her zu flackern. Heute ist es zum Beispiel nach einem Neustart des ioBrokers aufgetaucht.
                                      Hier mein Modell:
                                      Bildschirmfoto 2021-12-31 um 22.27.40.png

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

                                        @minta79 Na mit 2 Function Nodes - die Du meiden sollst wo Du kannst, kann das schlecht was werden, wenn Du Nachrichten aufteilst und dann wieder in die gleiche Node laufen lässt. Und leider kann niemand von hier sehen, was Du für Dinge in diesen Function NOdes treibst. Wenn Du es Dir einfach machen willst dann hänge einfach hinter die iobroker-in Node eine Delay Node von 4-5 Sekunden, dann dreht sich das Rad halt immer eine konstante Zeit.

                                        M 1 Reply Last reply Reply Quote 0
                                        • M
                                          Minta79 @mickym last edited by

                                          @mickym Sorry, klar. Hier Screenshots von den beiden functions. Ich habe die Umwandlung von String auf das Zielformat nicht hinbekommen und bin auf diese function gestoßen. Ich habe den Flow auch exportiert.
                                          Bildschirmfoto 2022-01-01 um 13.14.57.png Bildschirmfoto 2022-01-01 um 13.15.04.png
                                          flows.json

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

                                            @minta79 Also Du darfst natürlich nur die Current Position setzen. Die Target Position setzt Du ja in Deiner Home App.

                                            Mit der Target Position musst Du dann Deinen Shelly ansteuern.
                                            Den jeweiligen Status meldest Du dann an den Node über die Current Position zurück, damit diese weiß, ob sie sich noch drehen muss oder nicht. Sobald die Current Position erreicht wurde, ist das Ziel (Target Position) ja erreicht und es dreht sich nichts mehr in der App.

                                            Und wie Du die CurrenPosition mittels eine Change Node setzt - also ohne Function Node siehst Du hier.

                                            0791e743-161c-4f47-8ced-4ca786b5c647-image.png

                                            Also keine TargetPosition in der Node setzen, dass machst Du über die Home App und die Target Position ist die Zielposition mit der Du Deinen Rollladen ansteuern sollst.

                                            Ach und wenn Du für Zahlenwerte Strings aus Deinem Datenpunkt raus bekommst, dann solltest Du das schleunigst in den NodeRed Adapter Einstellungen ändern, sonst darfst Du immer wieder konvertieren.

                                            M 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

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

                                            863
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            72
                                            3747
                                            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