Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Script wenn mehr als 30min true

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Script wenn mehr als 30min true

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

      Gibt es ein Blockly oder Script, das wenn ein Datenpunkt mehr als 30min true ist, mich benachrichtigt?

      Meine Freundin und ich vergessen regelmäßig das Licht im Keller abzuschalten, da wäre eine Erinnerung sinnvoll!

      Leider würde ich gerne nicht nur 1 Datenpunkt überprüfen sondern 10-20 Datenpunkte, quasi das ganze Haus!

      DJMarc75 1 Reply Last reply Reply Quote 0
      • DJMarc75
        DJMarc75 @mrhary last edited by

        @mrhary im Keller könnte ja noch Sinn machen aber ALLE Lichter ? Stell Dir vor Du bist für ne lange Sitzung "unterwegs" und plötzlich kannst Du das Klopapier nicht mehr finden weil dunkel 🙄 💩

        für eine Lampe (die muss natürlich smart sein):

        Screenshot 2023-01-29 224426.png

        M V 3 Replies Last reply Reply Quote 0
        • M
          mrhary @DJMarc75 last edited by

          @djmarc75

          Er soll ja nichts automatisch ausschalten sondern nur Informieren, hilft da ID von Selektor?

          1 Reply Last reply Reply Quote 0
          • V
            vitaminc @DJMarc75 last edited by

            @djmarc75

            Hab das mal gerade probiert. Was für ein Datenpunkt muss hier vorhanden sein, ich habe es mit einer Lampe probiert die false/true setzt. Funktioniert aber so nicht.

            0c5dfb45-280c-4f62-bd82-572223a12813-image.png

            Ich hatte es auch mal so probiert, allerdings da empfange ich dann alle 2 Minuten eine Nachricht, anstatt nur 1mal.

            5795cff1-9d21-45ef-8586-8bcbe654ed04-image.png

            1 Reply Last reply Reply Quote 0
            • V
              vitaminc @DJMarc75 last edited by

              @djmarc75 said in Script wenn mehr als 30min true:

              @mrhary im Keller könnte ja noch Sinn machen aber ALLE Lichter ? Stell Dir vor Du bist für ne lange Sitzung "unterwegs" und plötzlich kannst Du das Klopapier nicht mehr finden weil dunkel 🙄 💩

              für eine Lampe (die muss natürlich smart sein):

              Screenshot 2023-01-29 224426.png

              pardon, das Script funktioniert doch.
              Allerdings hab ich einen anderen Anwendungsfall, ich will die Information weiterverarbeiten, wenn keiner der Motion Sensoren im Haus für z.B. 30min nicht mehr aktualisiert hat.

              V 1 Reply Last reply Reply Quote 0
              • V
                vitaminc @vitaminc last edited by

                Komisch, es hat einmal funktioniert, und jetzt wieder nicht mehr.. hmm.

                13263109-a5af-43aa-8593-ba462944a633-image.png

                V 1 Reply Last reply Reply Quote 0
                • V
                  vitaminc @vitaminc last edited by

                  glaube so passt es jetzt:

                  ad07a961-52b7-4d9c-9b3c-77541878759b-image.png

                  Cephalopod 1 Reply Last reply Reply Quote 0
                  • Cephalopod
                    Cephalopod @vitaminc last edited by Cephalopod

                    @vitaminc

                    Ähnliche Anwendung:
                    Falls ein offenes Fenster (HomaticIP Fensterkotakt) länger als X Minuten offen steht, dann bitte über die Alexa in dem Raum einen Spruch sagen.
                    Wenn es nach weiteren Y Minuten immer noch offen steht, dann über eine andere Alexa einen Spruch sagen.
                    Wenn es inzwischen geschlossen wurde, dann natürlich nicht mehr.

                    Wäre das das gleiche Script?

                    M V 2 Replies Last reply Reply Quote 0
                    • M
                      mrhary @Cephalopod last edited by

                      @cephalopod von der Logik her ja, denn ob es eine Ausgabe via Alexa oder Telegram ist, ist völlig egal!

                      1 Reply Last reply Reply Quote 1
                      • V
                        vitaminc @Cephalopod last edited by

                        Ich bin gerade dabei folgendes aufzubauen:
                        Wenn KEIN Licht im Haus für eine bestimmte Zeit eingeschaltet ist, schreibe ich eine 1 in einen Datenpunkt.
                        Wenn wieder Licht brennt, dann schreibe ich eine 0 in den Datenpunkt.
                        Hintergrund ist, ich möchte es als zusätzliches Objekt für Präsenz benutzen.

                        Macht das so in etwa Sinn?
                        Funktionieren tut es so, aber leider triggert er mir den "sonst Ausführen timeout2" leider mehrfach:
                        22:56:06.437 info javascript.0 (212) script.js.common.Demo_9: Licht ist an
                        22:56:06.437 info javascript.0 (212) script.js.common.Demo_9: Licht ist an
                        22:56:06.437 info javascript.0 (212) script.js.common.Demo_9: Licht ist an
                        22:56:06.438 info javascript.0 (212) script.js.common.Demo_9: Licht ist an
                        22:56:06.438 info javascript.0 (212) script.js.common.Demo_9: Licht ist an
                        22:56:06.438 info javascript.0 (212) script.js.common.Demo_9: Licht ist an
                        22:56:06.438 info javascript.0 (212) script.js.common.Demo_9: Licht ist an
                        22:56:06.439 info javascript.0 (212) script.js.common.Demo_9: Licht ist an
                        22:56:06.439 info javascript.0 (212) script.js.common.Demo_9: Licht ist an
                        22:56:06.439 info javascript.0 (212) script.js.common.Demo_9: Licht ist an

                        91c16512-57ea-45a2-b209-6ce7a8d76b56-image.png

                        Asgothian DJMarc75 2 Replies Last reply Reply Quote 0
                        • Asgothian
                          Asgothian Developer @vitaminc last edited by Asgothian

                          @vitaminc Computer sind leider nicht schlau. Sie machen genau das was du ihnen sagst (auch wenn es Schwachsinn ist).

                          Was Dein Skript macht:

                          Alle 30 Minuten fügst du einen weiteren Trigger in die Triggerliste ein, die alle deine AnyOn Objekte überprüft. Wenn das Skript lange genug läuft wird der JS Adapter sich verabschieden.

                          Nicht elegant.

                          Es hilft sich 2 Dinge zu merken:

                          • Trigger in Trigger ist Mist. Das geht nur in besonderen Fällen, und gilt für fast alle (Haupt)Bausteine aus dem Trigger Bereich.
                          • Ein Trigger ist keine "Falls Bedingung mache" abfrage. Es ist die Aufforderung eine Bedingung dauerhaft zu überwachen. Dabei wird prinzipiell nicht überprüft wie oft die identische Bedingung überwacht wird.

                          Ansonsten hast du das Problem das die Methode für 1 Lampe geht, für mehrere so nicht, da das ausschalten einer beliebigen Lampe eine 0 Einträgt.

                          Was du wirklich willst:

                          Screenshot 2023-02-02 at 08.37.38.png

                          Intern zählt das Skript die Lampen die an sind. Zählen tut er die Lampen sofort, nur das Schreiben in deinen AnyOn Datenpunkt passiert erst nach 1 Minute. (oder nach 20, wenn jemand 19 Minuten lang alle 50 Sekunden eine beliebige Lampe schaltet 🙂 )

                          Nachtrag:

                          Bei Skriptstart muss das Skript natürlich alle Lampen abfragen, um zu ermitteln welche an sind. Macht es auch.

                          V 1 Reply Last reply Reply Quote 0
                          • DJMarc75
                            DJMarc75 @vitaminc last edited by

                            @vitaminc sagte in Script wenn mehr als 30min true:

                            Macht das so in etwa Sinn?

                            Trigger in Trigger ---> geht nicht.
                            Mach erstmal ganz einfach so:

                            Screenshot 2023-02-02 085616.png

                            V 1 Reply Last reply Reply Quote 0
                            • V
                              vitaminc @DJMarc75 last edited by

                              Guten Morgen,

                              da ich Philips Hue überall benutze, muss ich nicht ALLE Lampen einzelne abfragen.
                              Hue hat bereits ein Objekt welches mittels Wert definiert, ob irgendeine Lampe also Any noch leuchtet oder nicht.

                              Allerdings ist mir das mit der Zeitsteuerung noch nicht klar, da ich natürlich erst nach einer bestimmten Zeit z.B. 30min, erfassen möchte, dass seitdem auch wirklich keine Änderung mehr stattgefunden hat.

                              Werde mit eure Vorschläge heute Abend mal ansehen, Danke.

                              Cephalopod 1 Reply Last reply Reply Quote 0
                              • Cephalopod
                                Cephalopod @vitaminc last edited by

                                So, mein Script funktioniert soweit

                                ee2ce029-b8f0-4e17-9338-ba5840837a1c-image.png

                                Wie füge ich eine weitere Bedingung ein, dass die Außentemperatur unterhalb von 15 °C sein muss, damit alarmiert wird?

                                DJMarc75 paul53 Cephalopod 3 Replies Last reply Reply Quote 0
                                • DJMarc75
                                  DJMarc75 @Cephalopod last edited by

                                  @cephalopod sagte in Script wenn mehr als 30min true:

                                  die Außentemperatur unterhalb von 15 °C sein muss, damit alarmiert wird

                                  Screenshot 2023-02-07 190543.png

                                  1 Reply Last reply Reply Quote 1
                                  • paul53
                                    paul53 @Cephalopod last edited by

                                    @cephalopod sagte: Außentemperatur unterhalb von 15 °C sein muss

                                    Blockly_temp.JPG

                                    Cephalopod 1 Reply Last reply Reply Quote 1
                                    • Cephalopod
                                      Cephalopod @paul53 last edited by

                                      @paul53
                                      @DJMarc75

                                      Super, ihr seid klasse, danke.
                                      Ich habe die zweite Variante genommen, ist "eleganter".

                                      b066d2d1-9ed8-4066-9a3e-9d64a41f9a8c-image.png

                                      Frage:
                                      Ihr habt beide nur

                                      Falls Wert
                                      

                                      geschrieben.
                                      Muss man nicht

                                      Falls Wert = wahr
                                      

                                      schreiben?

                                      DJMarc75 mickym 2 Replies Last reply Reply Quote 0
                                      • DJMarc75
                                        DJMarc75 @Cephalopod last edited by

                                        @cephalopod sagte in Script wenn mehr als 30min true:

                                        Ich habe die zweite Variante genommen, ist "eleganter".

                                        Die zweite von @paul53 startet den Timer wenn beim Öffnen des Fensters die Temperatur weniger 15 Grad ist.
                                        Bei meiner Variante startet der Timer immer wenn das Fenster geöffnet wird, aber es erfolgt nur eine Nachricht wenn nach Ablauf des Timers die Aussentemperatur weniger 15 Grad ist.

                                        Bei "wert" wird immer "true" ("wahr") abgefragt.

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

                                          @cephalopod sagte in Script wenn mehr als 30min true:

                                          Ihr habt beide nur
                                          Falls Wert

                                          geschrieben.
                                          Muss man nicht
                                          Falls Wert = wahr

                                          schreiben?

                                          Du musst Dir grundsätzlich vorstellen, dass jeder Ausdruck daraufhin überprüft wird, ob er wahr wird. Also ist eine Bedinung wahr wenn 0=0 ist oder gelb=gelb. Wenn der Wert an sich wahr ist dann wird also immer ausgeführt. Das heißt es muss nicht mal ein Ausdruck ausgewertet werden, wenn der Wert wahr ist. Also wenn Wert=wahr kann man sich deshalb sparen, wenn die Bedingung sowieso wahr ist, weil der Wert wahr ist. Mit anderen Worten: Lieber Computer Du musst gar nichts auswerten, ich sag Dir direkt ob die Bedingung wahr oder falsch ist.

                                          1 Reply Last reply Reply Quote 1
                                          • V
                                            vitaminc @Asgothian last edited by

                                            @asgothian

                                            Danke für deinen Input. Habe das mal umgesetzt, in dem ich alle Bewegungsmelder auf Veränderung prüfen möchte und mir dann in ein Datenpunkt eine 0 oder 1 schreiben möchte, je nachdem ob sich z.B. nach 1 Minute etwas verändert hat oder nicht. Habe für die Bewegungsmelder eine Funktion angelegt:

                                            604241e4-8915-4f8f-afcc-c7e237dccf5b-image.png

                                            Zudem einen Datenpunkt als Zahl namens Any_MotionSensor, dort will ich eine 0 oder 1 haben.

                                            Hier das Script, das ich nach deiner Anleitung nachgebaut habe:
                                            dfa5f9ee-6b84-45cc-9120-9c82a5931982-image.png

                                            Dann kommt:
                                            10:29:09.997 error javascript.0 (187) script.js.common.Bewegungsmelder_V1 Error by subscription (trigger): empty ID defined. All states matched.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.1k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            27
                                            1269
                                            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