Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [Gelöst] Garagentor Status Unterstützung

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Gelöst] Garagentor Status Unterstützung

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      FireFrog last edited by FireFrog

      Hallo zusammen,
      bis jetzt konnte ich hier immer Hilfe finden, daher erst einmal vielen Dank.
      Jetzt muss ich aber mein ersten Post machen, da ich leider über die Suche nicht fündig geworden bin.

      Ich habe ein Garagentor.
      Dort ist ein Shelly Plus 1 angeschlossen inkl. Addon und Magnetkontakt.
      Über iobroker und yahka Adatper soll das ganze ins Homekit eingebunden werden.
      Das funktioniert auch soweit. Auch öffnen und schließen ist kein Problem.

      Nur der Status will nicht so recht.

      Ich habe zwei Datenpunkte im iobroker erstellt
      92eaf3e5-d4c5-4b7e-ad72-331d7f80edfd-grafik.png

      Der Yahka Eintrag sieht wie folgt aus
      9a226cbb-29fd-4fc2-bd16-9051cd5d7dab-grafik.png

      Hier ist mein Blokly-Skript
      d023a955-7672-419f-812d-dc669b0f6f72-grafik.png
      Input100 = Magnetkontakt

      Das Tor öffnet ganz normal. Nach 20 Sekunden wird aber der Wert von CurrentDoorState auf 1 gesetzt. Was aber nur passieren soll, wenn der Wert von Magnetkontakt (Input100) auf false verändert wird. Also beim Schließen.
      Dadurch wird mir natürlich der Status im HomeKit nicht korrekt angezeigt.

      Der Magnetkontakt schließt korrekt und der Wert ändert sich auch nur dann wenn ich schalte.

      Ich hatte vorher eine Shelly der ersten Generation inkl. Addon. Da hat alles korrekt funktioniert.

      Eventuell hat hier jemand einen freundlichen Rat für mich.

      Vielen Dank
      LG FireFrog

      F T 2 Replies Last reply Reply Quote 0
      • F
        FireFrog @FireFrog last edited by

        Hat keiner eine Idee?

        Cinimod MartinP 2 Replies Last reply Reply Quote 0
        • Cinimod
          Cinimod Most Active @FireFrog last edited by Cinimod

          @firefrog

          Hast du noch ein anderes Skript was auf diese Datenpunkte zugreift ?
          Der "input100" ist von typ boolean ?

          Den selben Datenpunkt ausgewählt im Skript? Der kann ja nicht beide gegensätzlichen Abfragen mit wahr beantworten. Vielleicht den falschen Datenpunkt angeklickt (kann ja auch den selben Namen haben u.U.)

          So ist es auch etwas hübscher vielleicht, und du kannst sicher sein das sich alle Abfragen auf den Trigger Datenpunkt beziehen :

          8be7a0e4-5cbd-4687-916c-13cfa16e7e6d-image.png

          Die Verzögerung macht für mich auf den ersten blick auch keinen Sinn, aber vielleicht ja für dich

          F 1 Reply Last reply Reply Quote 0
          • MartinP
            MartinP @FireFrog last edited by

            @firefrog

            Wo wird "Schalter" wieder auf "falsch" gesetzt?
            Hast Du womöglich im vorigen Shelly einen Shelly-Internen Timer genutzt?

            Wieso manipulierst Du "TargetDoorState" im Trigger auf den Türzustand?
            Änderungen des Soll-Zustandes getriggert durch Änderungen des Ist-Zustandes bergen immer die Gefahr der Instabilität (Feedbackschleife, Oszillation)

            F 1 Reply Last reply Reply Quote 0
            • F
              FireFrog @MartinP last edited by FireFrog

              @martinp
              Hallo danke schon mal für das Feedback
              ich hab direkt im Shelly "automatisch ausschalten" nach 1 Sekunde gemacht. Dadurch wird "Schalter wieder auf "falsch" gesetzt. So hatte ich es auch beim Vorgänger.

              Bei deinem zweiten Punkt, stehe ich leider auf dem Schlauch. Wie meinst du das?

              Für eine andere Garage, habe ich das Skritp genau so. Da funktioniert alles. Dort ist allerdings noch Shelly 1 der ersten Generation inkl. Addon.

              Ich bin leider kein Profi was das Skripten mit Blockly angeht. Ich hatte hier vor langer Zeit mal ein Skript gefunden und an meine Bedürfnisse angepasst.

              Es sollte eigentlich folgendes passieren.
              Wenn ObjektID "TargetDoorState" verändert wird -> Shelly schalten
              TargetDoorState wird über den yahka Adapter angesprochen.
              Dass funktioniert wunderbar.

              Dann soll mittels Magnetkontakt geprüft werden ob das Tor geöffnet/geschlossen wird bzw. offen/geschlossen ist.
              Wenn ObjektID Input100 (Wert des Magnetkontakts) verändert wird
              -> falls der Wert gleich "wahr" ist, soll CurrentDoorState und TargetDoorState 0 werden
              -> falls der Wert gleich "falsch" ist, soll CurrentDoorState und TargetDoorState 1 werden

              Hoffe man kann mir folgen 🙂

              1 Reply Last reply Reply Quote 1
              • F
                FireFrog @Cinimod last edited by

                @cinimod

                Auch dir vielen Dank für deine Unterstützung.

                Datenpunkte habe ich auch erst gedacht, aber hab es mehrfach geprüft. Habe den korrekten Datenpunkt ausgewählt.

                Ja input100 ist Typ boolean. Sollte das nicht so sein?

                Die Verzögerung habe ich drin, damit mir angezeigt wird, dass Tor schließt gerade und es dauert 20 Sekunden bis es geschlossen ist.
                Der Magnetkontakt ist geschlossen wenn das Tor offen ist. Somit wäre so wie das Tor ein paar cm geschlossen wäre der Magnetkontakt nicht mehr geschlossen und ich bekomme den Status "Tor geschlossen". Da wollte ich mit der Verzögerung entgegenwirken.

                F 1 Reply Last reply Reply Quote 1
                • F
                  FireFrog @FireFrog last edited by

                  kann hier wirklich keiner weiterhelfen?
                  Mich wundert halt, dass es mit dem Shelly der ersten Generation genau so funktioniert hat.

                  Cinimod 1 Reply Last reply Reply Quote 0
                  • Cinimod
                    Cinimod Most Active @FireFrog last edited by Cinimod

                    @firefrog Was mich immernoch etwas wundert, der Magnetkontakt ist geschlossen wenn die Garage offen ist, laut deinem Skript.
                    Müsste es nicht genau anders herum sein?

                    Du hast einen Magnetschalter am Addon vom dem Shelly ja ? Und der Magnet ist am Garagentor und bewegt sich mit?!

                    Der Kontakt meldet offen wenn der Magnet sich vor dem Gegenstück/Schalter befindet ? Oder ist es genau anders herum ?

                    Ist der Magnet vom dem Kontakt wenn das Tor ganz auf oder ganz zu ist ? ("wenn Tor zu" währe eindeutig die sinnvollere Lösung)

                    Tausch doch mal true und false zum testen! Es kann ja nicht sein das sich da was selbstständig macht, und dann genau nach den 20 Sekunden die du eingebaut hast.
                    de9aa7cf-08bb-414d-9d00-87a9ec7dc4c1-image.png

                    F 1 Reply Last reply Reply Quote 0
                    • T
                      Taddy81 @FireFrog last edited by

                      @firefrog was hast du für einen Garagenmotor und wie hast du den Shelly angeschlossen? Ich habe es bei mir probiert und es hat bunt funktioniert PXL_20240607_134526774.jpg

                      Beim Bild hatte ich door und emrg verbunden, aber steuern konnte ich den Motor nicht.

                      1 Reply Last reply Reply Quote 0
                      • F
                        FireFrog @Cinimod last edited by

                        @cinimod said in Garagentor Status Unterstützung:

                        @firefrog Was mich immernoch etwas wundert, der Magnetkontakt ist geschlossen wenn die Garage offen ist, laut deinem Skript.
                        Müsste es nicht genau anders herum sein?
                        Theoretisch ja aber ich habe es tatsächlich genau andersrum. So habe ich mir ein Kabel zum anderen Ende des Garagentors gespart
                        Du hast einen Magnetschalter am Addon vom dem Shelly ja ? Und der Magnet ist am Garagentor und bewegt sich mit?!
                        Genau so ist es
                        Der Kontakt meldet offen wenn der Magnet sich vor dem Gegenstück/Schalter befindet ? Oder ist es genau anders herum ?
                        Ich glaube das sollte egal sein, da ich das ja mit dem Script abfrage. Wenn "wahr" dann geschlossen und umgekehrt. Aber aktuell ist es so eingestellt, dass mir der Kontakt geschlossen meldet wenn das Gegenstück NICHT am Schalter ist. Das ist aber nur so damit mit auch die Shelly-App das Garagenbild offen bzw. geschlossen anzeigt. Ich habe es aber auch schon andersrum/invertiert versucht
                        Ist der Magnet vom dem Kontakt wenn das Tor ganz auf oder ganz zu ist ? ("wenn Tor zu" währe eindeutig die sinnvollere Lösung)
                        Ich gebe dir absolut Recht, dass wäre die sinnvoller Lösung. Da kommt wieder das Kabel ins spiel was ich eigentlich vermeiden wollte
                        Tausch doch mal true und false zum testen! Es kann ja nicht sein das sich da was selbstständig macht, und dann genau nach den 20 Sekunden die du eingebaut hast.
                        Habe ich auch schon versucht. Dann wird zum einen der Status genau falschrum angezeigt (offen wäre geschlossen) aber der eigentliche Fehler bleibt auch hier bestehen.
                        de9aa7cf-08bb-414d-9d00-87a9ec7dc4c1-image.png

                        Cinimod 1 Reply Last reply Reply Quote 0
                        • Cinimod
                          Cinimod Most Active @FireFrog last edited by

                          @firefrog sagte in Garagentor Status Unterstützung:

                          Vielleicht zeigst du uns mal die drei Datenpunkte im Detail.

                          Wenn ich es recht im Sinn habe kann Homekit auch ein Tor in Bewegung darstellen mit der 2

                          F 1 Reply Last reply Reply Quote 0
                          • F
                            FireFrog @Cinimod last edited by

                            @cinimod

                            729fc332-e6d3-4560-807a-e8a50a8909a8-grafik.png

                            a22479f5-a8ce-4e8e-bebb-27028cfdd309-grafik.png

                            Meinst du das so?
                            Ich danke dir jetzt schon mal, dass du so Unterstützt!

                            Cinimod 1 Reply Last reply Reply Quote 0
                            • Cinimod
                              Cinimod Most Active @FireFrog last edited by Cinimod

                              @firefrog Ich meinte eher den Inhalt des Datenpunktes. So:

                              1e6b7945-c809-4a0f-b4d3-1aed34cbf2e4-image.png

                              Speziell den Datenpunkt input100, da muss ja irgendwas faul sein.

                              Hattest du es mal so umgebaut wie ich es dir gezeigt hatte ? oben den input100 rein !?

                              8be7a0e4-5cbd-4687-916c-13cfa16e7e6d-image.png

                              Du sagst ja der currentState verändert sich nach 20 sekunden wieder auf 1 obwohl der input100 wahr ist und bleibt? verhält sich der targetState auch so ? geht der auch zurück auf 1 ?

                              F 1 Reply Last reply Reply Quote 0
                              • F
                                FireFrog @Cinimod last edited by

                                @cinimod

                                input100 ist kein selbst erstellter Datenpunkt. Das ist direkt der Datempunkt vom Shelly bzw. der vom Magnetschalter/Kontakt

                                Ne hatte ich nicht getestet.
                                4bd047c8-88e2-4819-b026-d6fa0472ff97-grafik.png
                                Hier würde ich doch aber gar nicht den Schalter vom Shelly auslösen, wenn ich oben input100 einsetze.

                                ich habe aber gerade noch was gesehen, als ich dir die Datenpunkte geschickt hatte. Die standen auf "state" habe es jetzt mal auf "value" geändert. kann das aber erst heute Nachmittag testen, wenn ich wieder zu hause bin.

                                Cinimod 1 Reply Last reply Reply Quote 0
                                • Cinimod
                                  Cinimod Most Active @FireFrog last edited by Cinimod

                                  @firefrog sagte in Garagentor Status Unterstützung:

                                  @cinimod

                                  input100 ist kein selbst erstellter Datenpunkt. Das ist direkt der Datempunkt vom Shelly bzw. der vom Magnetschalter/Kontakt

                                  Zeig doch trotzdem mal den Inhalt bitte. Musst du den Expertenmodus einschalten

                                  Ne hatte ich nicht getestet.
                                  4bd047c8-88e2-4819-b026-d6fa0472ff97-grafik.png
                                  Hier würde ich doch aber gar nicht den Schalter vom Shelly auslösen, wenn ich oben input100 einsetze.

                                  Das soll nur den unteren teil ersetzen. Den oberen Trigger so lassen!

                                  ich habe aber gerade noch was gesehen, als ich dir die Datenpunkte geschickt hatte. Die standen auf "state" habe es jetzt mal auf "value" geändert. kann das aber erst heute Nachmittag testen, wenn ich wieder zu hause bin.

                                  State geht schon klar!

                                  Du sagst ja der currentState verändert sich nach 20 Sekunden wieder auf 1 obwohl der input100 "wahr" ist und bleibt (hast du das beobachtet?) ? verhält sich der targetState auch so ? geht der auch zurück auf 1 ?

                                  F 1 Reply Last reply Reply Quote 0
                                  • F
                                    FireFrog @Cinimod last edited by

                                    @cinimod
                                    bbe2620f-e789-4261-b5da-c5c95538f60c-grafik.png

                                    0ca51373-3977-423c-bba3-6963db35365d-grafik.png

                                    Es läuft wie folgt ab
                                    Tor ist geschlossen
                                    CurrentState = 1
                                    TargetState = 1
                                    ich öffne
                                    TargetState geht sofort auf =0
                                    Input100 geht sobald Tor komplett offen ist auf true, dadurch geht dann auch Current auf 0
                                    nach 20 sek geht current aber wieder auf 1
                                    Input100 bleibt permant auf true

                                    Cinimod 1 Reply Last reply Reply Quote 0
                                    • Cinimod
                                      Cinimod Most Active @FireFrog last edited by

                                      @firefrog ist ja echt verrückt, vor allem weil da genau deine 20 Sekunden Verzögerung das Auslöser ist. Wenn du den auf 10 Sekunden änderst passiert das auch nach 10 Sekunden ja ? Was denn du die Verzögerung mal ganz weg machst?

                                      Den Inhalt von Input100 würd ich gern mal sehen noch, wenn du es einrichten kannst. (Expertenmodus einschalten)

                                      Bau den unteren Teil mal so um mit dem TimeoutBlock statt der Verzögerung:

                                      b97bc354-ae8e-4d64-9760-4cdf652c1f79-image.png

                                      1 Reply Last reply Reply Quote 0
                                      • Cinimod
                                        Cinimod Most Active last edited by Cinimod

                                        war doppelt

                                        F 1 Reply Last reply Reply Quote 0
                                        • F
                                          FireFrog @Cinimod last edited by

                                          @cinimod

                                          habe gestern Abend noch etwas getestet.
                                          Die Verzögerung hatte ich vorher auch schon mal getestet. Wenn ich dort beispielsweise 10 Sekunden eintrage, passiert genau alles nach 10 Sekunden.

                                          Ich habe jetzt mal deinen Vorschlage getestet
                                          84420f9e-59ce-4e07-8491-0db5c04d21fb-grafik.png

                                          Das funktioniert soweit.
                                          Ich habe hier noch eine Vergzögerung eingebaut, damit soll das Tor erst "geschlossen" anzeigen wenn es nach 20 sekunden zugefahren ist
                                          45470316-98d9-434d-9293-16ae7476f17b-grafik.png
                                          Das klappt allerdings gar nicht. Die Werte Current/TargetState ändern sich sofort wenn der Magnetkontakt unterbrochen wird.
                                          Ich muss mal noch mit deinem Timeout veruschen.
                                          Ich weiß aber nicht warum du ein "stop Timout" eingebaut hast? Was macht das an dieser Stelle?

                                          Kannst du mir noch erklären was an dieser Stelle passiert?
                                          1617ac81-cdbb-4681-bc38-b42396684467-grafik.png
                                          Was wird in dem Objekt "Wert" gemacht?

                                          Und noch mal, Tausend Dank schon mal!

                                          Cinimod 1 Reply Last reply Reply Quote 0
                                          • Cinimod
                                            Cinimod Most Active @FireFrog last edited by Cinimod

                                            @firefrog

                                            Der Block "wert" gehört zu dem Trigger und beinhaltet den wert der Trigger Datenpunktes.
                                            Ist der Trigger Datenpunkt True, ist es der "Wert Block" auch, und anders herum.

                                            Die "falls-abfrage" braucht immer ein "true" als Rückmeldung/bzw. als Ergebnis um die Aktion auszuführen.

                                            In deinem Beispiel hier ist das Ergebnis deiner Auswertung auch "true":
                                            ee562eab-107e-4255-992e-6bd521b65f69-image.pngfalls wert von input100=wahr (Ergebnis stimmt/true!)

                                            Dort könnte auch beispielsweise ne größer oder kleiner abfrage sein. (Bspw. falls wert von xx größer ist als 10), und das ergebnis bei der abfrage ist dann richtig/true wenn der wert halt größer als 10 ist.

                                            In dem vorgeschlagenen Skrip von mir bekommt er halt auf direktem weg vom Trigger ein "true". Da der Input100 ja nur true/false kann, ist das Ergebnis eben true zum ausführen des oberen Part´s und wenn es nicht true ist läuft das "sonst" durch.

                                            Ich hoffe es ist halbwegs verständlich.

                                            Der Stop Timeout soll den Timeout halt stoppen, falls er noch läuft, ist in deinem fall nicht sehr relevant, sollte man zur Fehlervermeidung aber immer an einbauen.
                                            Wenn du jetzt schnelle Änderungen hättest, angenommen der input100 ist auf false gegangen, und innerhalb der 20 Sekunden aber wieder true wird der timeout abgebrochen. Hast du den nicht läuft dein timeout einfach weiter und führt die Aktion trotzdem aus, auch wenn input100 bereits wieder true ist.
                                            Je nach dem wie oft und schnell diese Änderungen erfolgen oder auch längere Timer hat, hat man unter umständen mehrfach den selben timeout gleichzeitig am laufen und sucht dann aber den Fehler.

                                            Versuch es mal damit! Ich hatte auch schon mal Ärger mit den Verzögerungen, seither nutze ich die gar nicht mehr.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            755
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            22
                                            1073
                                            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