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 @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
                                          • F
                                            FireFrog @Cinimod last edited by

                                            @cinimod

                                            hast es gut erklärt. Gaaanz unwissend bin ich auch nicht 😉 Hab halt nur wenig Erfahrung direkt mit Blockly.

                                            Aber summa summarum mit dem Timeout funktioniert es jetzt genau wie es soll.

                                            Vielen Vielen Dank!!

                                            Cinimod 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            601
                                            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