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. Countdown täglich zur selben Zeit für 30 Minuten

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    9
    1
    84

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

Countdown täglich zur selben Zeit für 30 Minuten

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
11 Beiträge 4 Kommentatoren 2.7k Aufrufe
  • Ä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.
  • H Offline
    H Offline
    hofi77
    schrieb am zuletzt editiert von
    #1

    Hallo allerseits!

    Ich habe da einen ganz speziellen Wunsch.

    Ist es möglich einen Count-down ablaufen zu lassen der von Montag bis Freitag um die selbe Zeit von 30 Minuten runter zählt?

    Ich schätze mal wenn es möglich ist dann mit einem Skript. Da ich jedoch mit Skripten mich nicht wirklich gut auskenne dachte ich ich frag einfach mal ob mir da jemand sagen kann Ob sowas möglich ist.

    Ich danke euch für eure Hilfe!

    LG

    Manuel

    LG

    Manuel

    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      pix
      schrieb am zuletzt editiert von
      #2

      Hallo Manuel,
      @hofi77:

      Ist es möglich einen Count-down ablaufen zu lassen der von Montag bis Freitag um die selbe Zeit von 30 Minuten runter zählt? ` kannst du etwas präzisieren?

      Soll der Countdown angezeigt werden in VIS?

      Sollen die Minuten oder auch die Sekunden angezeigt werden?

      Soll eine Aktion ausgelöst werden, wenn der Countdown abgelaufen ist?

      Und soll der Countdown von irgendwas unterbrochen werden können?

      Welche Uhrzeit?

      @hofi77:

      Ich schätze mal wenn es möglich ist dann mit einem Skript. `
      Ja.

      Gruß

      Pix

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      1 Antwort Letzte Antwort
      0
      • H Offline
        H Offline
        hofi77
        schrieb am zuletzt editiert von
        #3

        Gerne!

        Mein Wunsch ist folgender:

        Von Montag bis Freitag jeweils um 6:48 Uhr soll ein Count-down starten der runter zählt bis 7:18 Uhr (müssen nur Minuten sein Sekunden sind nicht nötig).

        Als Text soll davor stehen: Bus kommt in XXX Minuten.

        Unterbrochen muss er nicht werden.

        Schriftfarbe soll weiß sein. Außer in den letzten 5 Minuten auf Rot umstellen.

        Schriftgröße circa 25px.

        Und ein zweiter von 7:40 weg 30min mit dem Text: zum Bus gehen in XXX Minuten. Gleiche Parameter.

        Die Texte könnte ich auch separat davor und danach platzieren.

        Danke für deine Hilfe :)

        Lg

        Manuel

        LG

        Manuel

        1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          pix
          schrieb am zuletzt editiert von
          #4

          Hallo,

          hier mein Skript (Stand 1.10.2015 14:19h)

          ! ````
          /* Bus Countdown 1
          Startet einen Countdown bei Erreichen einer Uhrzeit
          ! 30.09.2015 erstellt von Pix nach Vorgabe aus dem Forum http://forum.iobroker.net/viewtopic.php?f=21&t=972&p=7615
          */
          ! createState('Countdown.1.countdown', 0, {name: 'Countdown 1 - Restzeit in Minuten', unit: 'min'});
          createState('Countdown.1.afterCount', false, {name: 'Countdown 1 - Countdown abgelaufen'});
          createState('Countdown.1.countTrigger', false, {name: 'Countdown 1 - Countdown ausloesen'});
          createState('Countdown.1.schlussspurt', false, {name: 'Countdown 1 - Schlussspurt letzte 5min'});
          ! var interval = null;
          var countdown = 30; // Zeit in minuten
          ! function count() {
          // remove trigger
          if (getState('javascript.0.Countdown.1.countTrigger').val) {
          setState('javascript.0.Countdown.1.countTrigger', false);
          }
          // Runterzählen
          if (countdown > 1) {
          if (countdown < 6) setState('javascript.0.Countdown.1.schlussspurt', true);
          setState('javascript.0.Countdown.1.countdown', --countdown);
          } else {
          clearInterval(interval);
          interval = null;
          setState('javascript.0.Countdown.1.countdown', countdown);
          setState('javascript.0.Countdown.1.afterCount', true);
          }
          }
          ! // Start des Countdown
          on( {
          id:'javascript.0.Countdown.1.countTrigger',
          change: 'ne'
          }, function (obj) {
          if (obj.newState.val === true || obj.newState.val === 'true' || obj.newState.val == 1) {
          log('Count Trigger gestartet');
          setState('javascript.0.Countdown.1.countdown', countdown);
          setState('javascript.0.Countdown.1.afterCount', false);
          setState('javascript.0.Countdown.1.schlussspurt', false);
          if (!interval) {
          count();
          interval = setInterval(count, 60000); //1000 wäre ein Sekunde, 60s = 1min
          }
          }
          });
          ! // Auslösung des Starts durch Uhrzeit
          // Mo-Fr 06:48Uhr von Mo(Tag1) bis Fr(Tag 5)
          schedule("48 6 * * 1-5", function () {
          setState('javascript.0.Countdown.1.countTrigger', true);
          log('Countdown 1 gestartet');
          });
          ! // Aktionen nach Ablauf des Countdown
          on( 'javascript.0.Countdown.1.afterCount', function (obj) {
          if (obj.newState.val === true || obj.newState.val === 'true') { // wenn Countdown abgelaufen
          log('Countdown 30min abgelaufen', 'info');
          setState('javascript.0.Countdown.1.afterCount', false);
          setState('javascript.0.Countdown.1.schlussspurt', false);
          setState('javascript.0.Countdown.1.countTrigger', 0);
          setState('javascript.0.Countdown.1.countdown', 0);
          // hier können noch anderen Befehl eingetragen werden

          }
          

          });

          ! // Schlussspurt
          on( 'javascript.0.Countdown.1.schlussspurt', function (obj) {
          if (obj.newState.val === true || obj.newState.val === 'true') { // wenn nur noch 5min bis Bus fährt
          log('Countdown 5min vor Ablauf -> Schlussspurt', 'info');

              // Sayit einbauen?
          

          ! // hier können noch anderen Befehl eingetragen werden
          }
          });
          ! // Bei Scriptstart
          setState('Countdown.1.countdown',0);
          setState('Countdown.1.schlussspurt',false);
          ! ````
          Es basiert auf einem Skript, das wir http://forum.iobroker.net/viewtopic.php?f=21&t=972&p=7615 schon mal hatten. Damals ging es um Sekunden, heute habe ich es auf Minuten gestellt (Zeile 12). Die Uhrzeit ist in Zeile 49 nach Cron eingestellt.

          Wenn du das ganze zweimal brauchst, bitte einfach das Skript duplizieren und (ganz wichtig) alle "Countdown.1." durch "Countdown.2." ersetzen und die Uhrzeit anpassen.

          <u>Anleitung zum Einbauen des Skriptes in ioBroker</u> <list type="decimal">4. Reiter Adapter: Javascript Adapter installieren

          1. Reiter Instanzen: Javascript Adapter aktivieren

          2. neuer Reiter Skripte: * (links unten) drücken und neues Skript erstellen. Obiges Skript einfügen und speichern (rechts unten). Skript aktivieren. Sollte jetzt im Log zB *schlussspurt not found stehen, dann im Reiter Instanzen den Javascript-Adapter neu starten (zwei Pfeile).

          3. Im Reiter Objekte unter ID mal "count" eintippen. Sollte dann so aussehen:
            261_bildschirmfoto_2015-09-30_um_17.36.50.jpg
            Das Skript berechnet nur die Restzeit in Minuten und setzt zusätzlich eine Variable "http://www.duden.de/rechtschreibung/Schlussspurt" auf true, wenn die letzten 5min laufen. Die Ausgabe in VIS machen wir in einem Basic Bool Widget. Da wird dann Schlussspurt (false;true) berücksichtigt und entsprechend die Farbe des Textes geändert. Der Wert aus dem Counter kommt über ein https://github.com/ioBroker/ioBroker.vis/blob/master/README.md in den Text.

          VIS Editor öffnen und dieses Widget importieren:

          [{"tpl":"tplValueBool","data":{"oid":"javascript.0.Countdown.1.schlussspurt","visibility-cond":"==","visibility-val":1,"html_prepend":"","html_append":"","html_false":"Bus kommt in {javascript.0.Countdown.1.countdown} Minuten","html_true":"Bus kommt in {javascript.0.Countdown.1.countdown} Minuten"},"style":{"left":"227px","top":"768px","z-index":"20","font-size":"25px","width":"318px","height":"108px"},"widgetSet":"basic"}]
          

          261_bildschirmfoto_2015-09-30_um_17.46.13.jpg
          Wenn du das für den zweiten Countdown auch einbaust, musst du auch entsprechen ".1." durch ".2." austauschen.

          Hoffe, das ist verständlich und hilft dir!

          Gruß,

          Pix

          Edit: Natürlich kannst du über die "Sichtbarkeit" in VIS den ganzen Text ausblenden, wenn der Countdown 0 ist. Dann steht da nicht den ganzen Tag "Bus kommt in 0 Minuten".````
          [{"tpl":"tplValueBool","data":{"oid":"javascript.0.Countdown.1.schlussspurt","visibility-cond":"!=","visibility-val":"0","html_prepend":"","html_append":"","html_false":"Bus kommt in {javascript.0.Countdown.1.countdown} Minuten","html_true":"Bus kommt in {javascript.0.Countdown.1.countdown} Minuten","visibility-oid":"javascript.0.Countdown.1.countdown"},"style":{"left":"1082px","top":"327px","z-index":"20","font-size":"25px","width":"318px","height":"108px"},"widgetSet":"basic"}]

          
          ****Edit2****: Nach [http://forum.iobroker.org/viewtopic.php?f=21&amp;t=1455&amp;p=12591#p12591](http://forum.iobroker.org/viewtopic.php?f=21&amp;t=1455&amp;p=12591#p12591) das Skript entsprechend korrigiert

          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

          1 Antwort Letzte Antwort
          0
          • T Offline
            T Offline
            tesso
            schrieb am zuletzt editiert von
            #5

            Im Skrip scheint ein Fehler im schedule zu sein.

                // Auslösung des Starts durch Uhrzeit
                // Mo-Fr 06:48Uhr von Mo(Tag2) bis Fr(Tag 6)
                schedule("48 6 * * 2-6", setState('javascript.0.Countdown.1.countTrigger', true));
            
            

            Nach meinem Verständnis sollte dort 1-5 stehen.

            0 und 7 ist Sonntag. Montag ist 1 usw.

            1 Antwort Letzte Antwort
            0
            • derAugeD Offline
              derAugeD Offline
              derAuge
              schrieb am zuletzt editiert von
              #6

              Super sache

              da kann man etwas lernen "

              habe es mal für die Mittagspause angepasst ;)

              bekommen beim Start:

              • 2015-09-30 18:56:28.880 - error: javascript.0 script.js.Countdown_Mittag: schedule callback missing
              2015-09-30 18:56:28.888 - info: javascript.0 script.js.Countdown_Mittag: registered 2 subscriptions and 0 schedules
              
              2015-09-30 18:56:28.959 - info: javascript.0 script.js.Countdown_Mittag: Count Trigger gestartet 
              

              und der Counter läuft

              nun muss ich mal 30 Min warten was so passiert.

              Gedanken: :roll: um 5 vor könnte dann eine Ansage über SayIt mit Sonos kommen :roll:

              Gruß

              Jürgen

              1 Antwort Letzte Antwort
              0
              • derAugeD Offline
                derAugeD Offline
                derAuge
                schrieb am zuletzt editiert von
                #7

                mit ROT in den leztzten Minuten funktioniert

                nach dem Ablauf stehen die Werte aud "false" undd der Counzter auf "1 min"

                Das Ausblenden funktionier nicht

                Gruß

                Jürgen

                1 Antwort Letzte Antwort
                0
                • derAugeD Offline
                  derAugeD Offline
                  derAuge
                  schrieb am zuletzt editiert von
                  #8

                  @tesso:

                  Im Skrip scheint ein Fehler im schedule zu sein.

                      // Auslösung des Starts durch Uhrzeit
                      // Mo-Fr 06:48Uhr von Mo(Tag2) bis Fr(Tag 6)
                      schedule("48 6 * * 2-6", setState('javascript.0.Countdown.1.countTrigger', true));
                  
                  

                  Nach meinem Verständnis sollte dort 1-5 stehen.

                  0 und 7 ist Sonntag. Montag ist 1 usw. `

                  ` > Hier ist noch kurz eine Übersicht, wie sich der Cronjob aufbaut:

                          • Befehl der ausgeführt werden soll

                  | | | | |

                  | | | | +–--- Wochentag (0 - 7) (Sonntag ist 0 und 7; oder Namen, siehe unten)

                  | | | +------- Monat (1 - 12)

                  | | +--------- Tag (1 - 31)

                  | +----------- Stunde (0 - 23)

                  +------------- Minute (0 - 59; oder Namen, siehe unten) `

                  1 Antwort Letzte Antwort
                  0
                  • P Offline
                    P Offline
                    pix
                    schrieb am zuletzt editiert von
                    #9

                    @derAuge:

                    @tesso:

                    Im Skrip scheint ein Fehler im schedule zu sein.

                        // Auslösung des Starts durch Uhrzeit
                        // Mo-Fr 06:48Uhr von Mo(Tag2) bis Fr(Tag 6)
                        schedule("48 6 * * 2-6", setState('javascript.0.Countdown.1.countTrigger', true));
                    
                    

                    Nach meinem Verständnis sollte dort 1-5 stehen.

                    0 und 7 ist Sonntag. Montag ist 1 usw. `

                    ` > Hier ist noch kurz eine Übersicht, wie sich der Cronjob aufbaut:

                            • Befehl der ausgeführt werden soll

                    | | | | |

                    | | | | +–--- Wochentag (0 - 7) (Sonntag ist 0 und 7; oder Namen, siehe unten)

                    | | | +------- Monat (1 - 12)

                    | | +--------- Tag (1 - 31)

                    | +----------- Stunde (0 - 23)

                    +------------- Minute (0 - 59; oder Namen, siehe unten)

                    Ist natürlich richtig. Ich ändere das oben im Skript. Danke für den Hinweis.
                    @derAuge:

                    Das Ausblenden funktionier nicht `
                    Setze nach Ablauf den Coutdown noch auf 0, dann wird auch ausgeblendet.
                    @derAuge:

                    Gedanken: um 5 vor könnte dann eine Ansage über SayIt mit Sonos kommen `
                    Kein Problem: einfach eine weitere Funktion anfügen, die schlussspurt überwacht. Wenn Schlussspurt = true Dann Sayit ("noch 5 minuten bis der Bus fährt")

                    Gruß,

                    Pix
                    999_blockly_multiplizieren.jpg

                    ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                    1 Antwort Letzte Antwort
                    0
                    • P Offline
                      P Offline
                      pix
                      schrieb am zuletzt editiert von
                      #10

                      Habe noch zwei kleine Veränderungen vorgenommen. Da gerade am Anfang in der Testphase das Skript immer wieder neugestartet wird, kommt es schnell durcheinander. Daher werden ganz unten im Skript noch zwei Zeilen zum Zurücksetzen der wichtigsten Variablen beim Neustart des Skriptes angefügt. Ausserdem habe ich die Schedule Funktion auf einen Mehrzeiler gebracht (hatte das Gefühl, der Einzeiler läuft nicht korrekt und jetzt kann auch noch geloggt werden). Und die Cron Schreibweise wurde endgültig korrigiert (Fr = 5!).

                      Änderungen oben im Skript

                      Gruß,

                      Pix

                      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                      1 Antwort Letzte Antwort
                      0
                      • derAugeD Offline
                        derAugeD Offline
                        derAuge
                        schrieb am zuletzt editiert von
                        #11

                        Super

                        Werde ich nachher testen

                        Der Start heute mittag hatte nicht funktioniert.

                        Bis später

                        Gesendet von meinem BLOOM mit Tapatalk

                        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

                        795

                        Online

                        32.5k

                        Benutzer

                        81.7k

                        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