Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Abfrage ob heute schon einmal true?

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    783

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    6.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Abfrage ob heute schon einmal true?

Scheduled Pinned Locked Moved Unsolved JavaScript
javascript
9 Posts 5 Posters 672 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • PeoplesP Offline
    PeoplesP Offline
    Peoples
    wrote on last edited by
    #1

    Hi,
    ich möchte um 12 Uhr abfragen ob mein Sauger entweder manuell oder automatisch schon einmal gestartet wurde.
    Ich frage im Bestandsscript zyklisch verschiedene Vorraussetzungen für den automatischen Start ab (bspw. Autostart nur wenn keiner zu Hause)

    Nun möchte ich aber durch eine weiter Abfrage eine Telegram-Frage (ja/nein) senden die versendet wird wenn um 12 der Sauger noch nicht gefahren ist weil jemand als anwesend erkannt wird (Homeoffice / Handy vergessen).

    Das wollte ich wie folgt machen:

    if(new Date().getHours() >= 12 && getState('mihome-vacuum.0.control.start').lc < Date.now()){
                sendQuestion('vacuumCleanerOn')
            }
    

    Hier fehlt mir aber die Abfrage ob der state heute schon mal true war und mir fällt gerade nicht wirklich eine effektive Lösung ein das abzufragen.

    Vielleicht hat ja einer von euch eine Idee :-)
    Danke schonmal

    Ich beantworte keine Fragen zu Themen via PN

    Samson71S paul53P OliverIOO 3 Replies Last reply
    0
    • PeoplesP Peoples

      Hi,
      ich möchte um 12 Uhr abfragen ob mein Sauger entweder manuell oder automatisch schon einmal gestartet wurde.
      Ich frage im Bestandsscript zyklisch verschiedene Vorraussetzungen für den automatischen Start ab (bspw. Autostart nur wenn keiner zu Hause)

      Nun möchte ich aber durch eine weiter Abfrage eine Telegram-Frage (ja/nein) senden die versendet wird wenn um 12 der Sauger noch nicht gefahren ist weil jemand als anwesend erkannt wird (Homeoffice / Handy vergessen).

      Das wollte ich wie folgt machen:

      if(new Date().getHours() >= 12 && getState('mihome-vacuum.0.control.start').lc < Date.now()){
                  sendQuestion('vacuumCleanerOn')
              }
      

      Hier fehlt mir aber die Abfrage ob der state heute schon mal true war und mir fällt gerade nicht wirklich eine effektive Lösung ein das abzufragen.

      Vielleicht hat ja einer von euch eine Idee :-)
      Danke schonmal

      Samson71S Offline
      Samson71S Offline
      Samson71
      Global Moderator
      wrote on last edited by
      #2

      @peoples sagte in Abfrage ob heute schon einmal true?:

      Hier fehlt mir aber die Abfrage ob der state heute schon mal true war und mir fällt gerade nicht wirklich eine effektive Lösung ein das abzufragen.

      Spontan und ohne Garantie:
      Eine Variable beim Start des Saugers automatisch auf true setzen und um kurz nach Mitternacht automatisch (Zeitplan) wieder auf false setzen lassen. Diese Variable dann abfragen. Bei true wurde der Sauger heute schonmal gestartet und bei false eben noch nicht.

      Markus

      Bitte beachten:
      Hinweise für gute Forenbeiträge
      Maßnahmen zum Schutz des Forums

      1 Reply Last reply
      0
      • PeoplesP Peoples

        Hi,
        ich möchte um 12 Uhr abfragen ob mein Sauger entweder manuell oder automatisch schon einmal gestartet wurde.
        Ich frage im Bestandsscript zyklisch verschiedene Vorraussetzungen für den automatischen Start ab (bspw. Autostart nur wenn keiner zu Hause)

        Nun möchte ich aber durch eine weiter Abfrage eine Telegram-Frage (ja/nein) senden die versendet wird wenn um 12 der Sauger noch nicht gefahren ist weil jemand als anwesend erkannt wird (Homeoffice / Handy vergessen).

        Das wollte ich wie folgt machen:

        if(new Date().getHours() >= 12 && getState('mihome-vacuum.0.control.start').lc < Date.now()){
                    sendQuestion('vacuumCleanerOn')
                }
        

        Hier fehlt mir aber die Abfrage ob der state heute schon mal true war und mir fällt gerade nicht wirklich eine effektive Lösung ein das abzufragen.

        Vielleicht hat ja einer von euch eine Idee :-)
        Danke schonmal

        paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by paul53
        #3

        @peoples sagte: state heute schon mal true war

        const start = getState('mihome-vacuum.0.control.start');
        if(new Date().getHours() >= 12 && !start.val && start.lc < new Date().setHours(0, 0, 0, 0)) {
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        PeoplesP 1 Reply Last reply
        0
        • PeoplesP Peoples

          Hi,
          ich möchte um 12 Uhr abfragen ob mein Sauger entweder manuell oder automatisch schon einmal gestartet wurde.
          Ich frage im Bestandsscript zyklisch verschiedene Vorraussetzungen für den automatischen Start ab (bspw. Autostart nur wenn keiner zu Hause)

          Nun möchte ich aber durch eine weiter Abfrage eine Telegram-Frage (ja/nein) senden die versendet wird wenn um 12 der Sauger noch nicht gefahren ist weil jemand als anwesend erkannt wird (Homeoffice / Handy vergessen).

          Das wollte ich wie folgt machen:

          if(new Date().getHours() >= 12 && getState('mihome-vacuum.0.control.start').lc < Date.now()){
                      sendQuestion('vacuumCleanerOn')
                  }
          

          Hier fehlt mir aber die Abfrage ob der state heute schon mal true war und mir fällt gerade nicht wirklich eine effektive Lösung ein das abzufragen.

          Vielleicht hat ja einer von euch eine Idee :-)
          Danke schonmal

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          wrote on last edited by
          #4

          @peoples
          noch eine alternative wäre es die historisierung für den datenpunkt zu aktivieren und dann die daten seit 0 Uhr abrufen und prüfen ob da true enthalten ist.

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          1 Reply Last reply
          0
          • paul53P paul53

            @peoples sagte: state heute schon mal true war

            const start = getState('mihome-vacuum.0.control.start');
            if(new Date().getHours() >= 12 && !start.val && start.lc < new Date().setHours(0, 0, 0, 0)) {
            
            PeoplesP Offline
            PeoplesP Offline
            Peoples
            wrote on last edited by
            #5

            @paul53
            genial!

            Danke an euch alle

            Ich beantworte keine Fragen zu Themen via PN

            AsgothianA 1 Reply Last reply
            0
            • PeoplesP Peoples

              @paul53
              genial!

              Danke an euch alle

              AsgothianA Offline
              AsgothianA Offline
              Asgothian
              Developer
              wrote on last edited by Asgothian
              #6

              @peoples Bei der Lösung von @paul53 (und deinem Lösungsvorschlag) fehlt mir etwas.

              Wie / wann wird dieser Skriptschnipsel ausgeführt ?

              ich würde das insgesamt so lösen:

              schedule("0 12 * * *", async () => { 
              const start =  getState('mihome-vacuum.0.control.start');
              if (!start.val && start.lc > new Date().setHours(0, 0, 0, 0)) { 
                   console.log("letzte Änderung war nach heute morgen 0 Uhr") 
                }
              });
              

              Dann wird täglich um 12 geschaut ob der Datenpunkt am gleichen Tag schon einmal wahr war.

              Den code von @paul53 zyklisch abzuarbeiten macht IMHO keinen Sinn.

              A.

              ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
              "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

              PeoplesP 1 Reply Last reply
              0
              • AsgothianA Asgothian

                @peoples Bei der Lösung von @paul53 (und deinem Lösungsvorschlag) fehlt mir etwas.

                Wie / wann wird dieser Skriptschnipsel ausgeführt ?

                ich würde das insgesamt so lösen:

                schedule("0 12 * * *", async () => { 
                const start =  getState('mihome-vacuum.0.control.start');
                if (!start.val && start.lc > new Date().setHours(0, 0, 0, 0)) { 
                     console.log("letzte Änderung war nach heute morgen 0 Uhr") 
                  }
                });
                

                Dann wird täglich um 12 geschaut ob der Datenpunkt am gleichen Tag schon einmal wahr war.

                Den code von @paul53 zyklisch abzuarbeiten macht IMHO keinen Sinn.

                A.

                PeoplesP Offline
                PeoplesP Offline
                Peoples
                wrote on last edited by
                #7

                @asgothian
                Das ist ein Teil einer Funktion, die wie oben geschrieben sowieso zyklisch ausgeführt wird, da halbstündlich verschiedene Gegebenheiten abgefragt werden und je nach dem wird einer der Sauger gestartet und reinigt nur spezielle Bereiche.

                Abhängig davon wer, wann zu Hause ist.
                Eine Prüfung zu einer festen Zeit erfüllt hier nicht den Zweck.

                Ich beantworte keine Fragen zu Themen via PN

                AsgothianA 1 Reply Last reply
                0
                • PeoplesP Peoples

                  @asgothian
                  Das ist ein Teil einer Funktion, die wie oben geschrieben sowieso zyklisch ausgeführt wird, da halbstündlich verschiedene Gegebenheiten abgefragt werden und je nach dem wird einer der Sauger gestartet und reinigt nur spezielle Bereiche.

                  Abhängig davon wer, wann zu Hause ist.
                  Eine Prüfung zu einer festen Zeit erfüllt hier nicht den Zweck.

                  AsgothianA Offline
                  AsgothianA Offline
                  Asgothian
                  Developer
                  wrote on last edited by
                  #8

                  @peoples sagte in Abfrage ob heute schon einmal true?:

                  Eine Prüfung zu einer festen Zeit erfüllt hier nicht den Zweck.

                  das widerspricht dem was du tun willst - um 12 schauen ob der Staubsauger schon gelaufen ist. Das muss genau 1 mal um 12 gemacht werden. Wenn du es im regelmässigen Ablauf lassen willst, sollte die IF abfrage so aussehen:

                  if(new Date().getHours() >= 12) {
                    const start = getState('mihome-vacuum.0.control.start');
                    if (!start.val && start.lc < new Date().setHours(0, 0, 0, 0)) 
                    {
                    }
                  }
                  

                  damm holst du das Objekt mihome-vacuum.0.control.start nicht jedesmal obwohl der Test gar nicht gewünscht ist.

                  A.

                  ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                  "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                  PeoplesP 1 Reply Last reply
                  0
                  • AsgothianA Asgothian

                    @peoples sagte in Abfrage ob heute schon einmal true?:

                    Eine Prüfung zu einer festen Zeit erfüllt hier nicht den Zweck.

                    das widerspricht dem was du tun willst - um 12 schauen ob der Staubsauger schon gelaufen ist. Das muss genau 1 mal um 12 gemacht werden. Wenn du es im regelmässigen Ablauf lassen willst, sollte die IF abfrage so aussehen:

                    if(new Date().getHours() >= 12) {
                      const start = getState('mihome-vacuum.0.control.start');
                      if (!start.val && start.lc < new Date().setHours(0, 0, 0, 0)) 
                      {
                      }
                    }
                    

                    damm holst du das Objekt mihome-vacuum.0.control.start nicht jedesmal obwohl der Test gar nicht gewünscht ist.

                    A.

                    PeoplesP Offline
                    PeoplesP Offline
                    Peoples
                    wrote on last edited by Peoples
                    #9

                    @asgothian
                    Die Sauger fahren in Abwesenheit der Bewohner automatisch zwischen 8 und 16 Uhr wenn keiner zu Hause ist.
                    Wenn ich Homeoffice habe fährt der Keller Sauger nicht, wenn jemand im EG zu Hause ist, startet der nicht, gleiches gilt fürs OG.
                    Um 12 / 16 / 18 Uhr bekomme ich, meine Frau oder die Kinder eine Telegramm Nachricht ob der Sauger im KG / EG / DG gestartet werden soll da er heute noch nicht automatisch gestartet wurde (weil jemand Anwesend ) dies kann dann mit Ja oder Nein beantworten und je nach dem startet der jeweilige Sauger oder nicht.

                    Mit deiner Änderung hast du recht, das baue ich so noch um, danke.

                    Ich beantworte keine Fragen zu Themen via PN

                    1 Reply Last reply
                    0

                    Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                    Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                    With your input, this post could be even better 💗

                    Register Login
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    320

                    Online

                    32.8k

                    Users

                    82.7k

                    Topics

                    1.3m

                    Posts
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Home
                    • Recent
                    • Tags
                    • Unread 0
                    • Categories
                    • Unreplied
                    • Popular
                    • GitHub
                    • Docu
                    • Hilfe