Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
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

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Abfrage ob heute schon einmal true?

Geplant Angeheftet Gesperrt Verschoben Ungelöst JavaScript
javascript
9 Beiträge 5 Kommentatoren 630 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • PeoplesP Offline
    PeoplesP Offline
    Peoples
    schrieb am zuletzt editiert von
    #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 Antworten Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #5

            @paul53
            genial!

            Danke an euch alle

            Ich beantworte keine Fragen zu Themen via PN

            AsgothianA 1 Antwort Letzte Antwort
            0
            • PeoplesP Peoples

              @paul53
              genial!

              Danke an euch alle

              AsgothianA Offline
              AsgothianA Offline
              Asgothian
              Developer
              schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                    0
                    Antworten
                    • In einem neuen Thema antworten
                    Anmelden zum Antworten
                    • Älteste zuerst
                    • Neuste zuerst
                    • Meiste Stimmen


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    727

                    Online

                    32.6k

                    Benutzer

                    82.0k

                    Themen

                    1.3m

                    Beiträge
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Anmelden

                    • Du hast noch kein Konto? Registrieren

                    • Anmelden oder registrieren, um zu suchen
                    • Erster Beitrag
                      Letzter Beitrag
                    0
                    • Home
                    • Aktuell
                    • Tags
                    • Ungelesen 0
                    • Kategorien
                    • Unreplied
                    • Beliebt
                    • GitHub
                    • Docu
                    • Hilfe