Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Lösung für eine Prüfung gesucht

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    Lösung für eine Prüfung gesucht

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

      Unbe22nannt.JPG
      Hallo zusammen, ich komme nicht weiter.
      Ich habe ein Blcokly für einen Bewegungsmelder geschrieben.

      Wird Änderung erkannt und ist die Bewegung WAHR und ist das Licht AUS und sind wir NICHT in der hellen Tageszeit, dann Licht AN.
      sonst
      Wenn Bewegung ist Falsch dann Licht aus.
      So weit funktioniert das alles.
      Was ich zusätzlich erreichen will ist:
      Befinde ich mich noch nicht im Raum, und schalte von außen per Taster das Licht an, dann will ich das Blcokyl prüft, ob das Licht vor ein paar sekunden bevor die Bewegung erkannt wurde, per Taster angeschaltet wurde. Denn wenn ich das nicht prüfen kann, dann mache ich von außen das Licht an, gehe in das Zimmer, die Bewegung wird erkannt, 3 Minuten später wenn Bewegung nicht mehr erkannt wird weil gaaaaaaanz still sitze, geht das licht wieder aus, da der Bewegungsmelder ja auf FALSCH umschaltet.

      Habt ihr dazu eine Lösung für mich oder auch eine Alternative?

      Danke!

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @schonwiederich last edited by paul53

        @schonwiederich sagte: schalte von außen per Taster das Licht an, dann will ich das Blcokyl prüft

        Siehe hier

        Bild_2021-09-02_191304.png

        Wert, Ursprung:

        Blockly_DP_Props.JPG

        S 1 Reply Last reply Reply Quote 0
        • S
          schonwiederich @paul53 last edited by

          @paul53
          Lieben Dank für die tolle Hilfe.
          Ich habe den unteren Block von Dir genutzt.
          Unbendddddddnnt.JPG

          Ich habe es dann getestet und es funktioniert. Ich habe zwar noch nicht verstanden wie "manuell_ein" ein Attribut "Ursprung" mit sich führt und wo man nachsehen kann welches was in diesem Attribut drin steht.
          Gibt es das auch bei Object ID´s ? Ich kanns nicht finden.
          Aber wichtig ist, es funktioniert.

          Den oberen Block habe ich so gelassen wie ich ihn hatte. Deinen Vorschlag verstehe ich einfach nicht. Für mich scheint es nicht logisch die Falls Bedingung die ich auf Basis der zwei Tageszeitwerte quasi als zu prüfende Bedingung bei mir drin habe in die LICHT Variable zu schreiben. Hier wird doch ein Zeitraum gegen die aktuelle Uhrzeit geprüft. Zumal Du doch dann im Folgenden prüfst ob Variable licht ungleich der Object ID Licht ist. Und dort wird doch nur wahr gegen wahr und falsch gegen falsch geprüft oder?
          Aber da kann ich mich auch irren. Ich bin kein Programmierer 🙂

          Danke und viele Grüße!

          L paul53 2 Replies Last reply Reply Quote 0
          • L
            lessthanmore @schonwiederich last edited by lessthanmore

            @schonwiederich Hab es bei mir so gelöst:
            2021-09-03_09-29-27.jpg

            Sobald die Kamera eine Bewegung erkennt geht das Licht für eine gewisse Zeit an und danach wieder aus.
            Wurde das Licht bereits vorher manuell angeschaltet, so passiert nichts bzw. es geht nicht automatisch aus.
            Zusätzlich prüfe ich, sofern weiterhin Bewegung erkannt wird, dass das Licht nicht nach 120 Sekunden ausgeht.

            S 1 Reply Last reply Reply Quote 0
            • S
              schonwiederich @lessthanmore last edited by

              @lessthanmore
              Hi, danke. Wo in deinem Script wird denn sichergestellt das wenn vorher jemand das licht angemacht hat , dieses nicht wieder nach 120 sekunden aus geht.

              PS: Bei mir ist es ein "wenig anders".
              Mein Ikea Bewegungsmelder habe ich so eingestellt , das er bei neu erkannter Bewegung den Zustand "Wahr" behält und sonst nach 3 Minuten auf "Falsch" springt.
              Da mein Trigger durch "wurde geändert" auslöst, geht das licht auch erst aus wenn der BWM auf falsch springt. Daher brauche ich keinen timeout.

              L 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @schonwiederich last edited by

                @schonwiederich sagte: Deinen Vorschlag verstehe ich einfach nicht.

                Die Variable licht wird nur wahr, wenn Bewegung UND Nacht (dunkel).

                @schonwiederich sagte in Lösung für eine Prüfung gesucht:

                ob Variable licht ungleich der Object ID Licht ist.

                Es wird geprüft, ob der Sollzustand (Variable licht) ungleich dem Istzustand (Wert vom Datenpunkt "Licht") ist, um unnötiges Senden zu vermeiden (duty cycle).

                S 1 Reply Last reply Reply Quote 0
                • L
                  lessthanmore @schonwiederich last edited by

                  @schonwiederich Über die erste Falls Abfrage, das Licht aus ist.
                  Allerdings gefällt mir das manuelle setzen über den Ursprung. Baue ich heute Abend mal noch ein.
                  Es ist bei mir aber mehr als unwahrscheinlich dass das Licht vorher automatisch angeht und ich es danach manuell anschalten möchte.
                  Zudem könnte ich noch Einbauen dass man die Automatik deaktiviert. Da fällt mir aber gerade nichts ein.
                  @paul53 Hast du da evtl. eine Idee?

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @lessthanmore last edited by

                    @lessthanmore sagte: Einbauen dass man die Automatik deaktiviert.

                    Ohne das Licht manuell einzuschalten? Dann ist ein zusätzlicher Datenpunkt erforderlich.

                    1 Reply Last reply Reply Quote 0
                    • S
                      schonwiederich @paul53 last edited by

                      @paul53
                      Das mit dem Duty Cycle sparen macht sinn.
                      "Die Variable licht wird nur wahr, wenn Bewegung UND Nacht (dunkel)."
                      Damit hast Du bestimmt recht. Nur logisch liest es sich für mich im Blockly nicht.
                      Denn man ließt ja eiegntlich falls nicht manuell ein dann setze variable licht auf wert von Bewegungsmelder UND Zeit (dunkel) .
                      Logisch lesen würde ich es wenn dort nicht stünde UND Zeit dunkel sondern FALLS Zeit (dunkel).

                      Denn der gesamt "setze licht auf" Block steht ja im "mache" des vorangestellten Falls blocks und damit erkenne ich optisch garkeine falls Zeit dunkel prüfung. Aber das ist bestimmt so in Blockly.
                      Ist für mich als Anfänger nur nicht leicht nachzuvollziehen.
                      Danke Dir

                      1 Reply Last reply Reply Quote 0
                      • S
                        schonwiederich last edited by

                        Hallo zusammen,

                        ich habe mir jetzt diese Version mit Eurer Hilfe gebastelt.
                        Ich werde Sie jetzt mal testen und dann mit dem Ergebnis melden. Danke an alle.

                        Unddddd555dbenannt.JPG

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

                          @schonwiederich
                          Hi alle,
                          Ich hatte das Programm wie oben zu sehen getestet. Erst lief es augenscheinlich gut.
                          Aber seit ein paar Tagen nicht mehr.
                          Was genau geht nicht....
                          Man drückt den Taster geht ins Bad und bewegt sich 3 minuten nicht dann geht das Licht aus.
                          Das dürfte es ja nicht da das Programm ja garnichts laufen darf da man zuvor den Taster gedrückt hat.
                          Wie kann ich feststellen ob die variable die ich im Programm setze auch richtig gesetzt wird? Bzw habt ihr noch eine Idee?

                          Z paul53 3 Replies Last reply Reply Quote 0
                          • Z
                            zahnheinrich @schonwiederich last edited by

                            @schonwiederich
                            Hast du beachtet, dass ein Taster beim Drücken auf false und beim Loslassen auf true (oder umgekehrt je nach Programmierung) geht?

                            Deine Variable könnte also zweimal umschalten.

                            1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @schonwiederich last edited by

                              @schonwiederich sagte: Wie kann ich feststellen ob die variable die ich im Programm setze auch richtig gesetzt wird?

                              Debug-Block einbauen.

                              1 Reply Last reply Reply Quote 0
                              • S
                                schonwiederich last edited by

                                Hallo zusammen,
                                Ich war ausgefallen daher schreibe ich erst jetzt. Ich werte nicht den Taster aus sondern den Aktor der vom Taster geschaltet wird.
                                Das debug zeigt sauber an das die variable auf Treue und falls gesetzt wird wenn man den Taster bzw den Aktor schaltet. Dennoch geht das Licht nach 3 Minuten aus. Ich finde den Fehler nicht.
                                Habt ihr noch eine Idee?

                                1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @schonwiederich last edited by paul53

                                  @schonwiederich sagte: Man drückt den Taster geht ins Bad und bewegt sich 3 minuten nicht dann geht das Licht aus.

                                  Schaltet der Taster direkt das Licht oder über ein Skript?

                                  S 1 Reply Last reply Reply Quote 0
                                  • S
                                    schonwiederich @paul53 last edited by

                                    @paul53
                                    Eine homematic direktverknüpfung

                                    paul53 1 Reply Last reply Reply Quote 0
                                    • paul53
                                      paul53 @schonwiederich last edited by

                                      @schonwiederich sagte: Eine homematic direktverknüpfung

                                      Dann muss es funktionieren. Die Variable manuell_ein wird korrekt gesetzt? Zwischen "BM_Bad presence" und den Licht-Aktoren gibt es keine Direktverknüpfung?

                                      S 2 Replies Last reply Reply Quote 0
                                      • S
                                        schonwiederich @paul53 last edited by

                                        @paul53 nein der bm ist von Ikea und wird nur über iobroker angesprochen.

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          schonwiederich @paul53 last edited by

                                          @paul53 Sooooo, ich glaube und hoffe ich habe nun den fehlerteufel.
                                          ![0_1633374257603_IMG_20211004_210134.jpg](Uploading 100%)

                                          Drückt man den Taster der dann den Aktor schaltet, welcher dann die variable auf True setzt, geht aber sehr schnell dabei ins Bad, so dass die bewegungserkennung das bewegungsprogramm triggert bevor die variable gesetzt werden kann, steht die variable weiter auf false. So auch zu sehen in dem Screenshot in Orange eingefärbt.

                                          Ich denke das ist das Problem.
                                          In kurz... Bewegung triggert, bevor die variable auf True gesetzt werden kann.

                                          Habe ich eine chance das technisch abzufangen oder geht das nur durch einweisen der Familie =
                                          Knopf drücken, 1 Sekunde warten, rein gehen?

                                          Danke vielmals vorab.

                                          S paul53 2 Replies Last reply Reply Quote 0
                                          • S
                                            schonwiederich @schonwiederich last edited by

                                            @schonwiederich IMG_20211004_210134.jpg

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            824
                                            Online

                                            32.0k
                                            Users

                                            80.5k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            37
                                            1782
                                            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