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. [gelöst] Einfacher Countdown in VIS von festem Datum gesucht

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    503

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

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

[gelöst] Einfacher Countdown in VIS von festem Datum gesucht

Scheduled Pinned Locked Moved JavaScript
javascript
72 Posts 6 Posters 9.9k Views 9 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.
  • liv-in-skyL liv-in-sky

    der einstieg ist immer das schlimmste - war bei mir auch so -

    das widget - diesmal nicht als test sondern richtig in meine vis eingebunden

    • ich habe noch einen alarm datenpunkt eingeführt - dieser geht von false auf true, wenn es unter 5 stunden sind. damit kann man dann etwas schalten - ich zeige z.b. unter 5 stunden einen größeren text in der vis an. das wird damit gesschalten - siehe weiter unten (kann man natürlich im script ändern) - außerdem - wenn man alexa, google oder andere soundausgabe hat, kann man dann auch dort eine audioausgabe starten!
    • zusätzlich gibt es noch einen datenpunkt "Fertig".

    ich bin in sachen vis kein wirklicher profi - es gibt einige forum themen die wirklich tolle andsichten haben z.b https://forum.iobroker.net/topic/19611/vorstellung-meine-zweite-visualisierung/181

    [{"tpl":"tplFrame","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","title":"","title_color":"black","title_top":"-10","title_left":"15","header_height":"0","header_color":"black","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"110px","top":"490px","background-color":"#180c0c","width":"459px","height":"46px","border-radius":"15px","z-index":"0"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.0.Countdown.Termin.Rest.Tage","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"294px","top":"493px","width":"59px","height":"35px","font-weight":"bold","font-size":"xx-large","color":"#72f769","z-index":"15","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.0.Countdown.Termin.Rest.Stunden","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"364px","top":"493px","width":"46px","height":"38px","font-weight":"bold","font-size":"xx-large","color":"#2cc33a","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.0.Countdown.Termin.Rest.Minuten","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"419px","top":"493px","width":"49px","height":"39px","font-weight":"bold","font-size":"xx-large","color":"#13771c","text-align":"right"},"widgetSet":"basic"},{"tpl":"tplJquiInput","data":{"oid":"javascript.0.Countdown.Termin.Datum","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","label":"","digits":"0","size":"22","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"asString":true},"style":{"left":"125px","top":"500px","color":"#998f8f","width":"150px","height":"33px","background-color":"#180c0c","z-index":"15","text-align":"center","font-weight":"bold","font-size":"smaller"},"widgetSet":"jqui"},{"tpl":"tplJquiInput","data":{"oid":"javascript.0.Countdown.Termin.Name","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","label":"","digits":"0","size":"22","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"asString":true},"style":{"left":"477px","top":"500px","color":"#998f8f","width":"75px","height":"33px","background-color":"#180c0c","z-index":"15","font-weight":"bold","font-size":"smaller","text-align":"center"},"widgetSet":"jqui"}]
    

    und so sieht es aus Image 7.png

    und so, wenn der alarm (unter 5 stunden) aktiv ist Image 8.png

    M Offline
    M Offline
    mehrwiedu
    wrote on last edited by
    #16

    @liv-in-sky sagte in Einfacher Countdown in VIS von festem Datum gesucht:

    der einstieg ist immer das schlimmste - war bei mir auch so -

    das widget - diesmal nicht als test sondern richtig in meine vis eingebunden

    • ich habe noch einen alarm datenpunkt eingeführt - dieser geht von false auf true, wenn es unter 5 stunden sind. damit kann man dann etwas schalten - ich zeige z.b. unter 5 stunden einen größeren text in der vis an. das wird damit gesschalten - siehe weiter unten (kann man natürlich im script ändern) - außerdem - wenn man alexa, google oder andere soundausgabe hat, kann man dann auch dort eine audioausgabe starten!
    • zusätzlich gibt es noch einen datenpunkt "Fertig".

    Vielen Dank dafür. Ich freue mich schon auf nachher, wenn ich es einbinden kann.

    ich bin in sachen vis kein wirklicher profi - es gibt einige forum themen die wirklich tolle andsichten haben z.b https://forum.iobroker.net/topic/19611/vorstellung-meine-zweite-visualisierung/181

    Ja, Kuddels View ist wirklich toll und echt umfangreich. Davon habe ich viel lernen und selbstverständlich auch profitieren können. Ich habe das quasi für mich auch 1:1 in Teilen übernommen, weil ich auch das Layout absolut gelungen finde. Meine eigenen Vorstellungen habe ich dann ergänzt. Durch austauschen oder adaptieren. Die beiliegenden Skripte sind auch eine Bereicherung gewesen.
    Nur, wenn man einmal damit anfängt, sprudeln die Ideen nur so heraus und man wird sich erstmal bewusst darüber, was trotz solch umfangreicher Vorlagen für den eigenen Bedarf noch alles fehlt. Das ist erschreckend.
    Ich habe wieder angefangen, Sachen aus meinem Keller zu holen, von denen ich dachte, ich brauche sie gar nicht mehr.

    Habe jetzt noch eine ganze Palette von ToDo`s auf meinem Zettel, die ich umsetzen möchte und die Liste wird immer länger. :)
    Meine Frau hat schon mehrmals ungläubig geschaut, als ich die alten Bose Soundtouch wieder auf dem Schreibtisch stehen hatte und so weiter. ;)

    1 Reply Last reply
    0
    • liv-in-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      wrote on last edited by
      #17

      kann ich absolut nachvollziehen - bei mir ist die vis immer die letzte baustelle - sowas wie kuddels vis werd ich wohl nie haben - bin immer mehr an etwas progrmmieren oder eine neue günstige hardware/sensor interessiert

      die vis habe ich eigentlich erst beachtet, als alexa ausgefallen war und ich quasi nichts steuern konnte - da war der morgen nicht nur verschlafen sondern quaotisch :-)

      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

      1 Reply Last reply
      1
      • liv-in-skyL Offline
        liv-in-skyL Offline
        liv-in-sky
        wrote on last edited by
        #18

        übrigens: wenn mir das scripten in javascript zu anstrengend ist, hilft mit oft nodered

        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

        M 1 Reply Last reply
        0
        • liv-in-skyL liv-in-sky

          übrigens: wenn mir das scripten in javascript zu anstrengend ist, hilft mit oft nodered

          M Offline
          M Offline
          mehrwiedu
          wrote on last edited by
          #19

          @liv-in-sky sagte in Einfacher Countdown in VIS von festem Datum gesucht:

          übrigens: wenn mir das scripten in javascript zu anstrengend ist, hilft mit oft nodered

          Und da habe ich noch gar nichts mit gemacht, weil ich dachte, dass wäre noch komplexer.
          Bin ja froh, dass ich einfache Sachen mit Blockly umsetzen kann und mit viel Hilfe, wie jetzt von Dir, auch mal das ein oder andere Javascript eingebunden und angepasst kriege.

          1 Reply Last reply
          0
          • M Offline
            M Offline
            mehrwiedu
            wrote on last edited by mehrwiedu
            #20

            Kann das sein, dass das Skript irgendwie eine Stunde vor geht? Hehe...
            Ich habe im System die richtige Zeit. 22:57UHr und der Timer zeigt 0 Stunden an.

            Bildschirmfoto 2019-02-25 um 22.57.57.png

            Mal gleich in 3 Minuten gucken, ob da dann 23 Stunden stehen.

            /edit
            Jepp.
            Springt um auf 198 Tage, 23 Stunden und 59 Minuten. Funktioniert also, hat nur eine falsche Zeitzone. ;)

            Bildschirmfoto 2019-02-25 um 23.01.16.png

            Wobei meine Systemzeit korrekt ist.

            Bildschirmfoto 2019-02-25 um 23.03.26.png

            1 Reply Last reply
            0
            • M Offline
              M Offline
              mehrwiedu
              wrote on last edited by
              #21

              Ich finde keinen Fehler bei mir. Alles was irgendwie ne Zeitzone beinhalten könnte, hat die richtige Zeitzone.
              Javascript Adapter steht auf Systemzeit, Systemzeit ist korrekt.

              Ich habe jetzt dem Skript einfach eine Uhrzeit mitgegeben. Und zwar 13.09.2019 01:00:00. Also eine Stunde vorgestellt. ;)
              Jetzt passt es.

              Muss ich nur dran denken, wenn ich mal irgendwann was anderes per Astrozeit oder so timen will. Das wäre dann nicht so schön.

              Also wissen, woran sowas liegt, würde ich schon ganz gerne. Wenn also jemand das hier mal liest und weiß, was zu tun ist, bin ich sehr dankbar.

              1 Reply Last reply
              0
              • liv-in-skyL Offline
                liv-in-skyL Offline
                liv-in-sky
                wrote on last edited by liv-in-sky
                #22

                es könnte sein, dass man bei der zeitabfrage noch etwas einfügen muss - werd mal nachkucken - vermute sommerzeit thematik

                wenn das baby in der winterzeit kommen könnte - wäre das für unsere programm besser

                hübscher baby timer !

                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                1 Reply Last reply
                0
                • M Offline
                  M Offline
                  mehrwiedu
                  wrote on last edited by
                  #23

                  Also für mich ist es für genau diesen einen Timer nun auch nicht wichtig. Ich habe ihm ne Stunde mehr gegeben und nun passt es ja auch.

                  Insgesamt allerdings für andere Skripte, die dann auf die korrekte Zeit angewiesen sind, wäre das natürlich fatal.
                  Von daher suche ich auch bei mir mal weiter.

                  Und nochmal vielen Dank für Deine Mühe. Ich freue mich, dass ich nun diesen Timer in der VIS habe.
                  Das Baby bekommt übrigens meine Schwester. Ich bin mit drei Kindern in allen Altersstufen vom Kindergarten bis zur Ausbildung bereits fertig und tue mir das nicht mehr an. ;)

                  Ach so. Kann ich das Logging eigentlich irgendwo ausschalten im Skript, oder kommt das von der Javascript Instanz?
                  Hab jetzt jede Sekunde im Log die Ausgabe der Restzeit über alle Datenpunkte.

                  1 Reply Last reply
                  0
                  • liv-in-skyL Offline
                    liv-in-skyL Offline
                    liv-in-sky
                    wrote on last edited by
                    #24

                    zeile 2 - logging = false setzen - dann sollte es weg sein

                    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                    1 Reply Last reply
                    0
                    • liv-in-skyL Offline
                      liv-in-skyL Offline
                      liv-in-sky
                      wrote on last edited by
                      #25

                      hatte diese sommertime problem schon mal bei einem wemos d1 arduino project - zum haareraufen

                      mir ist aber eigentlich aufgefallen, das es keinen wirklichen unterschied macht, denn die now-zeit geht ja mit - dh. geht man über die sommer/winterzeit-grenze stimmt der countdown wieder und man hat am ende die richtige restzeit

                      aber - ich habe es trotzdem mal probiert und mit diesem script sollte es jetzt funktionieren/richtig sein

                      /* Termin Skript zählt bis Termin runter   erstellt: 26.01.2016 von Pix  */ 
                      /* weiterverarbeitet 26-2-2019 von liv-in-sky  */ 
                      var instanz = 'javascript.0'; var logging = false;  
                      // ab hier nix mehr ändern  
                      createState('Countdown.Termin.Datum', '9/4/2019', { name: 'Termin Datum', desc: 'Datum des Termins (als Objekt)', type: 'string' }); 
                      createState('Countdown.Termin.Datum.String', '3.12.2019', { name: 'Termin Datum (als String)', desc: 'Datum des Termins als Zeichenkette', type: 'string' }); 
                      createState('Countdown.Termin.Name', 'Name des Termins', { name: 'Termin Name', desc: 'Bezeichnung des Termins', type: 'string' }); 
                      createState('Countdown.Termin.Rest.TotalText', 'Termingesamt', { name: 'TotalText', desc: 'TotalText', type: 'string' }); 
                      createState('Countdown.Termin.Rest.Total', { name: 'Millisekunden bis zum Termin', desc: 'Restliche Millisekunden bis zum Datum des Termins', type: 'number', unit: 'ms' }); 
                      createState('Countdown.Termin.Rest.Tage', { name: 'Tage bis zum Termin', desc: 'Restliche Tage bis zum Datum des Termins', type: 'number', unit: 'Tage' }); 
                      createState('Countdown.Termin.Rest.Minuten', { name: 'Minuten bis zum Termin', desc: 'Restliche Tage bis zum Datum des Termins', type: 'number', unit: 'Minuten' }); 
                      createState('Countdown.Termin.Rest.Stunden', { name: 'Stunden bis zum Termin', desc: 'Restliche Tage bis zum Datum des Termins', type: 'number', unit: 'Stunden' });
                      createState('Countdown.Termin.Rest.Wochen', { name: 'Wochen bis zum Termin', desc: 'Restliche Wochen bis zum Datum des Termins', type: 'number', unit: 'Wochen' });  
                      createState('Countdown.Termin.Rest.Alarm', { name: 'Alarm', desc: 'Alarm bis zum Datum des Termins', type: 'boolean' });
                      createState('Countdown.Termin.Rest.Fertig', { name: 'Fertig', desc: 'Fertig', type: 'boolean' });
                      var idFertig = instanz + '.Countdown.Termin.Rest.Fertig', idAlarm = instanz + '.Countdown.Termin.Rest.Alarm', idStunden = instanz + '.Countdown.Termin.Rest.Stunden', idMinuten = instanz + '.Countdown.Termin.Rest.Minuten', idTotalText = instanz + '.Countdown.Termin.Rest.TotalText', idTerminDatum = instanz + '.Countdown.Termin.Datum', idTerminDatumString = instanz + '.Countdown.Termin.Datum.String', idTerminName = instanz + '.Countdown.Termin.Name', idTotal = instanz + '.Countdown.Termin.Rest.Total', idTage = instanz + '.Countdown.Termin.Rest.Tage', idWochen = instanz + '.Countdown.Termin.Rest.Wochen';  
                      var deadline;  
                       
                      function getTimeRemaining(endtime) { 
                      
                      var virttime = new Date();
                      
                      
                      var virt2time=formatDate(virttime);
                      var t = Date.parse(endtime) - Date.parse(virttime);
                      
                      if (virttime.getTimezoneOffset() == -60 && virttime.getTimezoneOffset() == -120  ){t=t+3600000};
                      if (virttime.getTimezoneOffset() == -120 && virttime.getTimezoneOffset() == -60  ){t=t-3600000};
                      var seconds = Math.floor( (t/1000) % 60 ); 
                      var minutes = Math.floor( (t/1000/60) % 60 ); 
                      var hours = Math.floor( (t/(1000*60*60)) % 24 ); 
                      var days = Math.floor( t/(1000*60*60*24) ); 
                      var weeks = Math.floor( t/(1000*60*60*24*7) ); 
                      return { 'total': t, 'days': days, 'hours': hours, 'minutes': minutes, 'seconds': seconds, 'weeks' : weeks }; 
                      
                      }
                      function restzeit() { 
                       
                      if (deadline) deadline = new Date(getState(idTerminDatum).val); 
                      setState(idTerminDatumString, formatDate(deadline)); 
                      setState(idTage, getTimeRemaining(deadline).days); 
                      setState(idWochen, getTimeRemaining(deadline).weeks); 
                      setState(idTotal, getTimeRemaining(deadline).total); 
                      setState(idMinuten, getTimeRemaining(deadline).minutes);
                      setState(idStunden, getTimeRemaining(deadline).hours);
                      //log(deadline.getTimezoneOffset());
                      
                      setState(idTotalText,  getTimeRemaining(deadline).days.toString() + " Tag(e) " +getTimeRemaining(deadline).hours.toString() + " Stunde(n) " + getTimeRemaining(deadline).minutes.toString() + " Minute(n) "); 
                        setTimeout(function () { //The timer    
                       
                      if ( getState(idTage).val == 0  && getState(idStunden).val <= 4  ){setState(idAlarm, true) ;} else {setState(idAlarm, false); } //
                       }, 2000);
                       setTimeout(function () { //The timer  
                       if ( getState(idTage).val == 0  && getState(idStunden).val == 0 && getState(idMinuten).val <= 0 ){setState(idFertig, true) ;setState(idTerminName, "FERTIG");setState(idTerminDatum, "FERTIG");} else {setState(idFertig, false); } //
                       }, 3000);
                      if (logging) log(getTimeRemaining(deadline).days + ' Resttage (' + getTimeRemaining(deadline).weeks + ' Wochen) bis zum ' + formatDate(deadline) + ' (' + getState(idTerminName).val + ')'); }  
                      // Mitternacht 
                       
                      schedule('*/1 * * * *', function() { restzeit(); });  
                      // Bei Terminänderung 
                      on(idTerminDatum, function (obj ) { deadline = new Date(obj.state.val); restzeit(); });  
                      // Scriptstart 
                       
                       
                      

                      um das script besser findbar zu machen - für andere - könntest du bitte dieses script in deinen ersten post irgendwie - evt. farbig auffallend - integrieren und falls wir nochmal etwas ändern immer wieder updaten - mittlerweile sind es doch mehrere scriptvarianten, die in den posts versteckt sind - da glaube ich, dass sich niemand mehr zurecht findet !

                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                      1 Reply Last reply
                      0
                      • M Offline
                        M Offline
                        mehrwiedu
                        wrote on last edited by mehrwiedu
                        #26

                        Mach ich gleich, wenn ich daheim bin.
                        Die Formatierungsoptionen und die Tag-Syntax vom neuen Forum machen mich wahnsinnig. ;)
                        Wo muss man anstelle von "code" in eckigen oder spitzen Klammern drei Akzente eingeben oder anstelle von "b" in Klammern zwei Sternchen. ;)

                        Ich kriege aus fast allen Beiträgen kaum einen Code mehr herauskopiert, ohne dass sich alles verschiebt, verrückt oder sich Zeilen und Zeichen einschleichen, die da nicht hingehören. Eben weil die ganzen html-Tags in den alten Beiträgen nicht mehr gelten.
                        Ich finde das für ein Forum, welches eigentlich mit Code-Schnipseln lebt echt Mist, dass die alten Beiträge fast alle nicht vernünftig portiert wurden.

                        Kann natürlich grad auch aktuell hier an meinem Browser liegen (IE), dass ich das frische Skript hier nicht kopieren kann, ohne dass ich die Zeilennummern aus dem Code-Tag mit in der Zwischenablage habe. :(

                        Deshalb gleich von daheim mit einem etwas nutzerfreundlicherem Browser für das Forum.

                        1 Reply Last reply
                        0
                        • liv-in-skyL Offline
                          liv-in-skyL Offline
                          liv-in-sky
                          wrote on last edited by
                          #27

                          mit chrome habe ich da keine probleme :-)

                          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                          1 Reply Last reply
                          0
                          • liv-in-skyL Offline
                            liv-in-skyL Offline
                            liv-in-sky
                            wrote on last edited by
                            #28

                            @mehrwiedu es gibt ein update - habe festgestellt, dass nach dem booten oder nach einem neustart des adapters der countdown nicht mehr anspringt

                            damit sollte es gehen - bitte im ersten post updaten - danke
                            gruß

                            /* Termin Skript zählt bis Termin runter erstellt: 26.01.2016 von Pix /
                            /
                            weiterverarbeitet 26-2-2019 von liv-in-sky */
                            var instanz = 'javascript.0'; var logging = false;
                            // ab hier nix mehr ändern
                            createState('Countdown.Termin.Datum', '9/4/2019', { name: 'Termin Datum', desc: 'Datum des Termins (als Objekt)', type: 'string' });
                            createState('Countdown.Termin.Datum.String', '3.12.2019', { name: 'Termin Datum (als String)', desc: 'Datum des Termins als Zeichenkette', type: 'string' });
                            createState('Countdown.Termin.Name', 'Name des Termins', { name: 'Termin Name', desc: 'Bezeichnung des Termins', type: 'string' });
                            createState('Countdown.Termin.Rest.TotalText', 'Termingesamt', { name: 'TotalText', desc: 'TotalText', type: 'string' });
                            createState('Countdown.Termin.Rest.Total', { name: 'Millisekunden bis zum Termin', desc: 'Restliche Millisekunden bis zum Datum des Termins', type: 'number', unit: 'ms' });
                            createState('Countdown.Termin.Rest.Tage', { name: 'Tage bis zum Termin', desc: 'Restliche Tage bis zum Datum des Termins', type: 'number', unit: 'Tage' });
                            createState('Countdown.Termin.Rest.Minuten', { name: 'Minuten bis zum Termin', desc: 'Restliche Tage bis zum Datum des Termins', type: 'number', unit: 'Minuten' });
                            createState('Countdown.Termin.Rest.Stunden', { name: 'Stunden bis zum Termin', desc: 'Restliche Tage bis zum Datum des Termins', type: 'number', unit: 'Stunden' });
                            createState('Countdown.Termin.Rest.Wochen', { name: 'Wochen bis zum Termin', desc: 'Restliche Wochen bis zum Datum des Termins', type: 'number', unit: 'Wochen' });
                            createState('Countdown.Termin.Rest.Alarm', { name: 'Alarm', desc: 'Alarm bis zum Datum des Termins', type: 'boolean' });
                            createState('Countdown.Termin.Rest.Fertig', { name: 'Fertig', desc: 'Fertig', type: 'boolean' });
                            var idFertig = instanz + '.Countdown.Termin.Rest.Fertig', idAlarm = instanz + '.Countdown.Termin.Rest.Alarm', idStunden = instanz + '.Countdown.Termin.Rest.Stunden', idMinuten = instanz + '.Countdown.Termin.Rest.Minuten', idTotalText = instanz + '.Countdown.Termin.Rest.TotalText', idTerminDatum = instanz + '.Countdown.Termin.Datum', idTerminDatumString = instanz + '.Countdown.Termin.Datum.String', idTerminName = instanz + '.Countdown.Termin.Name', idTotal = instanz + '.Countdown.Termin.Rest.Total', idTage = instanz + '.Countdown.Termin.Rest.Tage', idWochen = instanz + '.Countdown.Termin.Rest.Wochen';
                            var deadline;

                            function getTimeRemaining(endtime) {

                            var virttime = new Date();

                            var virt2time=formatDate(virttime);
                            var t = Date.parse(endtime) - Date.parse(virttime);

                            if (virttime.getTimezoneOffset() == -60 && virttime.getTimezoneOffset() == -120 ){t=t+3600000};
                            if (virttime.getTimezoneOffset() == -120 && virttime.getTimezoneOffset() == -60 ){t=t-3600000};
                            var seconds = Math.floor( (t/1000) % 60 );
                            var minutes = Math.floor( (t/1000/60) % 60 );
                            var hours = Math.floor( (t/(10006060)) % 24 );
                            var days = Math.floor( t/(1000606024) );
                            var weeks = Math.floor( t/(1000
                            606024*7) );
                            return { 'total': t, 'days': days, 'hours': hours, 'minutes': minutes, 'seconds': seconds, 'weeks' : weeks };

                            }
                            function restzeit() {

                            if (deadline) deadline = new Date(getState(idTerminDatum).val);
                            setState(idTerminDatumString, formatDate(deadline));
                            setState(idTage, getTimeRemaining(deadline).days);
                            setState(idWochen, getTimeRemaining(deadline).weeks);
                            setState(idTotal, getTimeRemaining(deadline).total);
                            setState(idMinuten, getTimeRemaining(deadline).minutes);
                            setState(idStunden, getTimeRemaining(deadline).hours);
                            //log(deadline.getTimezoneOffset());

                            setState(idTotalText, getTimeRemaining(deadline).days.toString() + " Tag(e) " +getTimeRemaining(deadline).hours.toString() + " Stunde(n) " + getTimeRemaining(deadline).minutes.toString() + " Minute(n) ");
                            setTimeout(function () { //The timer

                            if ( getState(idTage).val == 0 && getState(idStunden).val <= 4 ){setState(idAlarm, true) ;} else {setState(idAlarm, false); } //
                            }, 2000);
                            setTimeout(function () { //The timer
                            if ( getState(idTage).val == 0 && getState(idStunden).val == 0 && getState(idMinuten).val <= 0 ){setState(idFertig, true) ;setState(idTerminName, "FERTIG");setState(idTerminDatum, "FERTIG");} else {setState(idFertig, false); } //
                            }, 3000);
                            if (logging) log(getTimeRemaining(deadline).days + ' Resttage (' + getTimeRemaining(deadline).weeks + ' Wochen) bis zum ' + formatDate(deadline) + ' (' + getState(idTerminName).val + ')'); }
                            // Mitternacht

                            schedule('*/1 * * * *', function() { restzeit(); });
                            //bei Restart
                            var datecounter = getState("javascript.0.Countdown.Termin.Datum").val;
                            if (getState("javascript.0.Countdown.Termin.Datum").val != "") {
                            setStateDelayed("javascript.0.Countdown.Termin.Datum"/Termin Datum/, datecounter, 2000, false);}
                            // Bei Terminänderung
                            on({id: 'javascript.0.Countdown.Termin.Datum', change: 'any'}, function (obj) { deadline = new Date(obj.state.val); restzeit();/log("jetzt gestartet");/ });
                            //on(idTerminDatum, function (obj ) { deadline = new Date(obj.state.val); restzeit(); });

                            // Scriptstart

                            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                            1 Reply Last reply
                            0
                            • M Offline
                              M Offline
                              mehrwiedu
                              wrote on last edited by
                              #29

                              Aktueller Stand im ersten Post eingefügt. :)
                              Danke für Deine Arbeit @liv-in-sky

                              1 Reply Last reply
                              0
                              • C Offline
                                C Offline
                                Camuri
                                wrote on last edited by
                                #30

                                Ich hab das Script mal bei mir eingefügt und einfach gestartet bekomme aber einen Fehler da ich mit Javascripten nicht viel anfangen kann vom Verständnis her frag ich hier mal nach :D wo mein Fehler liegt.

                                a37b6e1b5fb09599d29e440118533223.png

                                liv-in-skyL 1 Reply Last reply
                                0
                                • C Camuri

                                  Ich hab das Script mal bei mir eingefügt und einfach gestartet bekomme aber einen Fehler da ich mit Javascripten nicht viel anfangen kann vom Verständnis her frag ich hier mal nach :D wo mein Fehler liegt.

                                  a37b6e1b5fb09599d29e440118533223.png

                                  liv-in-skyL Offline
                                  liv-in-skyL Offline
                                  liv-in-sky
                                  wrote on last edited by
                                  #31

                                  @Camuri

                                  hättest du auch das log vom log-tab ?

                                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                  C 1 Reply Last reply
                                  0
                                  • liv-in-skyL liv-in-sky

                                    @Camuri

                                    hättest du auch das log vom log-tab ?

                                    C Offline
                                    C Offline
                                    Camuri
                                    wrote on last edited by
                                    #32

                                    @liv-in-sky sagte in [gelöst] Einfacher Countdown in VIS von festem Datum gesucht:

                                    @Camuri

                                    hättest du auch das log vom log-tab ?

                                    habs nicht auf ein bild bekommen.

                                    c7a4a98333f76a1ed0fa661aeb16c8fa.png

                                    7c9e5a8833021c2ef777b9573a6a0df7.png

                                    liv-in-skyL 1 Reply Last reply
                                    0
                                    • C Camuri

                                      @liv-in-sky sagte in [gelöst] Einfacher Countdown in VIS von festem Datum gesucht:

                                      @Camuri

                                      hättest du auch das log vom log-tab ?

                                      habs nicht auf ein bild bekommen.

                                      c7a4a98333f76a1ed0fa661aeb16c8fa.png

                                      7c9e5a8833021c2ef777b9573a6a0df7.png

                                      liv-in-skyL Offline
                                      liv-in-skyL Offline
                                      liv-in-sky
                                      wrote on last edited by
                                      #33

                                      @Camuri

                                      du hast auch das neuste script vom ersten post geladen ?

                                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                      C 1 Reply Last reply
                                      0
                                      • liv-in-skyL liv-in-sky

                                        @Camuri

                                        du hast auch das neuste script vom ersten post geladen ?

                                        C Offline
                                        C Offline
                                        Camuri
                                        wrote on last edited by
                                        #34

                                        @liv-in-sky ja habs einmal vom ersten post und einmal vom letzten ausprobiert sollten ja die gleichen sein.

                                        liv-in-skyL 1 Reply Last reply
                                        0
                                        • C Camuri

                                          @liv-in-sky ja habs einmal vom ersten post und einmal vom letzten ausprobiert sollten ja die gleichen sein.

                                          liv-in-skyL Offline
                                          liv-in-skyL Offline
                                          liv-in-sky
                                          wrote on last edited by
                                          #35

                                          @Camuri - stimmt

                                          welche version vom js adapter ?

                                          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                          C 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          650

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          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