Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. PING Smartphone WLAN Energiesparmodus berücksichtigen

    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

    PING Smartphone WLAN Energiesparmodus berücksichtigen

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

      @athomic_arts Ich verhindere das - in dem ich bei false einfach 10 Minuten warte bis, ich das als bestätigt annehme.
      Also mach einfach einen Timer in Deinen false Ast. Den Timer löscht Du im True Ast, sodass kein falscher Alarm gesendet wird.

      Kannst natürlich auch 2 Min nehmen - letztlich ist das egal wie lange Du den Timer einstellst - hängt halt davon ab, wieviel Fehlalarme Du hast.

      Also den ganzen falsch Ast führst Du erst nach einem Timeout aus.

      2a0c71e0-6c15-457f-8651-9ad0dcd59ded-image.png

      Im True Ast löscht Du den Timer wieder - so dass die fehlerhafte Meldung unterbleibt und dieser auch weiterhin sofort reagiert:

      dc95a89f-8869-4d8d-b7fb-d50965fcfc6b-image.png

      Im Prinzip funktioniert es also so, dass man nach 2 Minuten nicht nochmals überprüft, sondern wenn innerhalb dieser Zeit sich das Telefon wieder meldet unterbleibt die Abwesensheitsmeldung.

      A 1 Reply Last reply Reply Quote 1
      • A
        AlyxAbyss @mickym last edited by AlyxAbyss

        @mickym Dankeschön. Das hat ein Großteil des Problems lösen können.

        Jetzt bekomme ich bei "false" nicht mehr direkt ne Falschmeldung.
        Bei "true" wird das Script sofort ausgeführt.

        Da ich das Ganze jetzt allerdings ja auch so ausbauen möchte, dass sich beim nachhause kommen die Lichter einschalten, werde ich allerdings wohl bald vor einem anderen Problem stehen:

        Nehmen wir mal an, ich (oder meine Tochter) sitzen zuhause und schauen ein Film und schalten dafür manuell die Lichter aus. Der WLAN Wert springt nun plötzlich wieder fälschlicherweise auf false. Die Lichter bleiben aus, was ja auch gut so ist.

        Aber er springt kurze Zeit später ja wieder auf True und schaltet dann ungewollt die Lichter wieder ein.

        Theoretisch müsste das Script prüfen ob der Wert "false" nur kurzzeitig gesetzt war und das darauffolgende "true" dann nicht direkt nochmal ausführen.

        Bisschen tricky denk ich mal. Aber vielleicht hat ja jemand eine Idee wie man das lösen könnte.

        So sieht mein Script aktuell aus:

        chrome_iF41S1SrtP.jpg

        mickym paul53 2 Replies Last reply Reply Quote 0
        • mickym
          mickym Most Active @AlyxAbyss last edited by

          @athomic_arts Ich meine Du kannst das immer weiter so treiben, Du kannst natürlich hinter den Timer im False Ast eine Variable auf false setzen, einen neuen Timer kreieren, der nach Ablauf Deiner Zeit diese Variable wieder auf true setzt und dass dann als Bedingung für Deinen True Ast nehmen.

          Du wirst aber irgendwann in Teufelsküche kommen.

          Ich halte es für sinnvoller (wenn Dein Fernseher zum Beispiel im WLAN) ist oder irgendwelche anderen Dinge, diese in eine Ausnahmeliste - zu bringen, die Deine Automatik einfach deaktiviert. Bei bleiben umgekehrt bestimmte Lichter an, wenn der Fernseher läuft auch wenn in dem Zimmer keine Bewegung registriert wird usw.

          Jedenfalls ist so was leichter logisch zu handeln. Wie gesagt Du kannst es so machen, wie ich am Anfang beschrieben habe, aber ich möchte nicht wissen, wie oft dann Deine Lichter nicht angehen, wenn sie angehen sollen, aber gerade die Überprüfung auf kurz aus, aktiv ist.

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

            @athomic_arts sagte: prüfen ob der Wert "false" nur kurzzeitig gesetzt war

            Bild_2022-01-16_175453.png

            A 1 Reply Last reply Reply Quote 1
            • A
              AlyxAbyss @paul53 last edited by

              @paul53 Hat prima funktioniert. Dankeschön 🙂

              Das Script sieht nun so aus:

              chrome_RVlT1Q0fy6.jpg

              Jetzt habe ich noch einige manuelle Datenpunkte erstellt. Der Wert wird bei der jeweiligen Person auf True gestellt, wenn diese Zuhause ist. Das klappt auch.

              Alex = false
              Paula = true
              Lilo = false
              Amy = false

              Nun erstelle ich ein neues Script.
              Dafür benötige ich einen Trigger der prüft ob eine der jeweiligen Personen zuhause ist. Schließlich sollen sich die Lichter erst abschalten wenn alle Personen auf "false" stehen bzw. sich einschalten wenn einer oder mehr "true" ist.

              Ist bestimmt nicht schwer, aber ich als Anfänger komme nicht drauf wie man das am einfachsten umsetzt.
              Alle Lösungen die mir einfallen, würden zu einem überladenen Skript führen. 😄

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

                @alyxabyss

                Hy, denke das du nach so langer Zeit schon eine entsprechende Lösung gefunden hast aber da ich grade erst diesen Beitrag gesehen habe (habe mal ganz dreißt dein Skript kopiert 😄 ) dachte ich schreib mal wie ich das gelöst habe:

                Als erstes habe ich, ähnlich wie du, allen ein eigenes Objekt gegeben (Anwesenheit XX: true/false) welches ich durch mehrere Skripte steuere (Ping, Kamera usw.). Durch diese Objekte werden wiederum andere Skripte gesteuert für die einzelnen Dinge die passieren sollen wenn XX anwesend ist.

                Zusätzlich habe ich zwei allgemeines Objekte: "Status" und "Status manuell". Hier wird (bei "Status"), wenn mindestens eine Person anwesend ist "Zuhause" eingetragen, wenn alle weg sind "Abwesend". Gesteuert durch ein separates Skript, welches sich auf die "Anwesenheit" Objekte bezieht.
                Das Objekt "Status manuell" ist für die Visualisierung gedacht, damit hier eben "manuell" zumindest die allgemeine Anwesenheit/Abwesenheit angeklickt werden kann. Ein Skript wiederum überträgt das auf den normalen "Status".

                Das Skript zum Abfragen der "Anwesenheit" und Eintragung vom "Status" lauf über mehrere ODER-Verknüpfungen und beinhaltet noch Dinge wie Telegram-Nachricht bzgl. "Status" und die Urlaubsmeldung.

                Gruß
                Jan

                S 1 Reply Last reply Reply Quote 1
                • S
                  Schlumpf @Schlumpf last edited by

                  An alle die Ahnung haben: Würde das in diesem Beispiel nicht auch funktionieren? Ich weiß das hierbei nur eins der Objekte sich ändern muss um den Trigger zu triggern. Würde aber die Abfrage nach dem Wert auch beinhalten das nur eins der Objekte Wahr sein müsste?

                  69275817-bf45-4640-b286-2ed901b0b908-grafik.png

                  Ist jetzt nur so dahin "geschmiert", daher keine Eintragungen, geht hier nur darum das ihr versteht was ich meine.

                  Antwort wäre schön, könnte das durchaus auch in anderen Bereichen einsetzen wenn es so funktioniert.

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

                    @schlumpf sagte: Würde aber die Abfrage nach dem Wert auch beinhalten das nur eins der Objekte Wahr sein müsste?

                    Nein, es muss eine ODER-Verknüpfung aller Werte erfolgen, wenn man erfassen will, dass kein Wert wahr ist. Bei so vielen Datenpunkten verwendet man besser eine Schleife über eine Liste, ähnlich wie hier.

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

                      @paul53

                      Ok, wenn ich das richtig verstehe funktioniert das nicht weil er nicht alle zusammen abfragt sondern jedes einzeln.

                      Das was du geschrieben hast hatte ich mir auch schon angeguckt und versucht nachzubauen, hab es aber nicht hinbekommen. Ich denke das liegt daran, dass, wenn ich es richtig verstanden habe, die Aufzählungen abgefragt werden. Diese nutze ich allerdings nicht, daher scheint es bei mir nicht zu funktionieren.

                      Könnte man sowas nicht auch mit einer Liste oder Änlichem bewerkstellen?

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

                        @schlumpf sagte: Könnte man sowas nicht auch mit einer Liste oder Änlichem bewerkstellen?

                        Bild_2022-04-06_161720959.png

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

                          @paul53

                          WOW, so einfach? Oh mann!!! 😄

                          Also, ich habe zwar noch nicht ganz verstand "warum" aber es funktioniert!

                          Vielen Dank Paul, du bist der Beste!

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

                            @paul53

                            Hallo Paul, ich schon wieder. 😞

                            Habe versucht das Blockly oben für ein anderes Projekt umzubauen, komme aber grade nicht weiter und hoffe du bist so geduldig und hilfst mir nochmal.

                            Eigentlich wollte ich einfach nur 2 Lampen in vorher über mein VIS zu definierenden Farbein blinken lassen. Soweit so gut, hat eigentlich auch alles soweit funktioniert. Ich habe mir ein Skript geschrieben, welches die Werte aus 4 Benutzerdefinierten Objekten nimmt und sie zu einem Comando für die beiden Hue-Lampen umwandelt und mit dem "alert:lselect" zum Blinken bringt. Hier habe ich 2 Skripte zusammen gebaut.

                            In der Theorie (nach ein paar Versuchen) klappt es auch, nur leider nur mit einer Lampe anstatt beiden. Sicher einfach nur ein dummer denkfehler oder fehlendes Wissen, aber ich komme einfach nicht drauf.

                            Blinken.jpg

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

                              @schlumpf sagte: leider nur mit einer Lampe anstatt beiden.

                              Nimm die Blöcke "die Schleife abbrechen" raus.

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

                                @paul53

                                Oh.....

                                Ja, jetzt klappt es. 😄

                                Wie immer vielen Dank Paul.

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                454
                                Online

                                31.9k
                                Users

                                80.2k
                                Topics

                                1.3m
                                Posts

                                4
                                15
                                682
                                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