Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Blumen gießen , zeitgesteuert, basic - value list html style

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Blumen gießen , zeitgesteuert, basic - value list html style

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

      Hallo

      hat das noch keiner gemacht ?

      1 Reply Last reply Reply Quote 0
      • P
        pix last edited by

        Hallo audioconcept,

        mit fallen da zwei Lösungen ein:

        Lösung 1 (Skript mit https://de.wikipedia.org/wiki/Cron und VIS-Widget, feste Wochentage)

        // Variable anlegen
        createState('Blumen_giessen', {name: 'Blumen gießen'});
        
        // Mo, Mi, Fr um 10 Uhr auf wahr setzen 
        schedule("0 10 * * 1,3,5", setState('Blumen_giessen', true));
        

        VIS Widget HTML-State (setzt bei Klick auf unwahr)

        [{"tpl":"tplBasicState","data":{"oid":"javascript.0.Bluemen_giessen","visibility-cond":"==","visibility-val":"true","html":"
        
        Blumen gießen
        
        ","value":"false","visibility-oid":"javascript.0.Blumen_giessen","name":"Blumen giessen","comment":"nur bei true, dann mit klick aus"},"style":{"left":"8px","top":"463px","width":"124px","height":"46px","z-index":"15","background-color":"rgba(150,150,250,0.8)"},"widgetSet":"basic"}]
        

        Lösung 2 (ical-Adapter)

        Nutze den ical Adapter und lege im Kalender für jeden Tag, an dem gegossen werden soll einen Termin "Blumen giessen" an. Trage den Kalender nach Anleitung im iCal-Adapter ein. Unter ical-Adapter/Ereignis legst du mit + ein neues Ereignis "Blumen giessen" an und setzt aktiviert auf true und anzeigen auf false.

        Dann nutz du dieses VIS Widget HTML-State

        [{"tpl":"tplBasicState","data":{"oid":"ical.0.events.Blumen","visibility-cond":"==","visibility-val":"true","html":"
        
        Blumen gießen
        
        ","value":"false","visibility-oid":"ical.0.events.Blumen","name":"Blumen gießen","comment":"nur bei true, dann mit klick aus"},"style":{"left":"8px","top":"463px","width":"124px","height":"46px","z-index":"15","background-color":"rgba(150,150,250,0.8)"},"widgetSet":"basic"}]
        

        Wenn der Termin erreicht ist, leuchtet das Widget auf. Mit Druck auf das Widget setzt du es auf unwahr und es verschwindet bis zur nächsten Auslösung. Geht nicht nur für Blumen giessen :lol:

        Gruß

        Pix

        PS: Der OCC-Adapter könnte dir auch helfen, aber da bin ich noch nicht so firm.

        Edit: Hab mal die Cron Zeit angepasst

        1 Reply Last reply Reply Quote 0
        • Bluefox
          Bluefox last edited by

          Du brauchst Skript:

          var intervall;
          createState('giessenZeit', 0);  // wann zuletz wurde gegossen (ack gedrückt) 
          createState('giessenAck', 0);   // ob es gegossen wurde (1 - ja(gegossen), 0 - nein(nicht gegossen))
          
          function checkIntervall() {
               var time = getState('giessenZeit').val || 0;
               // falls es gegossen wurde => prüfe wann
               if (getState('giessenAck').val) {
                    var now = (new Date()).getTime();
          
                    // falls mehr als 24 Stunden vergangen
                    if (now - time > 24 * 60 * 60 * 1000) { // 24 Stunden, 60 Minuten, 60 Sekunden , 1000 ms
                         // Wir brauchen kein Timer mehr
                         if (intervall) clearInterval(intervall);
                         intervall = null;
                         // setze dass es nicht gegossen ist
                         setState('giessenAck', 0, true);
                    } else if (!intervall) {
                       // falls timer nicht läuft => start timer
                       intervall = setInterval(checkIntervall, 60 * 60 * 1000); // jede Stunde
                    }
               } else if (intervall) {
                    // es wurde nicht gegossen, aber timer läuft => stopp den
                    clearInterval(intervall);
                    intervall = null;
               }
          }
          
          on('giessenAck', function (obj) {
              if (!obj.newState.ack) {
                   setState('giessenZeit', (new Date()).getTime(), true, function () {
                        checkIntervall();
                   });         
              }
          });
          
          checkIntervall();
          
          

          Jetzt nur noch zwei widgets erzeugen:

          [{"tpl":"tplValueListHtml8","data":{"oid":"javascript.0.giessenAck","visibility-cond":"==","visibility-val":1,"count":"2","value0":"giessen","value1":"gegossen","test_list":"1","style0":"color: red","style1":"color: green"},"style":{"left":"62px","top":"32.5px"},"widgetSet":"basic"},{"tpl":"tplJquiButtonState","data":{"oid":"javascript.0.giessenAck","visibility-cond":"==","visibility-val":"0","buttontext":"Bestätigen","padding":"5","value":"1","visibility-oid":"javascript.0.giessenAck"},"style":{"left":"145px","top":"31px"},"widgetSet":"jqui"}]
          

          P.S. pix war schneller 🙂

          1 Reply Last reply Reply Quote 0
          • P
            pix last edited by

            @Bluefox:

            pix war schneller `
            Aber Bluefox hat die Frage korrekt und irgendwie professioneller beantwortet.

            Bei ihm löst die Meldung zu einer festen Zeit nach dem Tastendruck aus.

            Bei mir zu festen Zeiten, egal, ob Taste gedrückt oder nicht (Wenn du Mo nicht giesst, sondern erst Di, meldet sich VIS trotzdem am Mi wieder)

            Gruß

            Pix

            1 Reply Last reply Reply Quote 0
            • A
              audioconcept last edited by

              Danke euch. Werde es gleich mal testen.

              1 Reply Last reply Reply Quote 0
              • A
                audioconcept last edited by

                Den Code trage ich dann bei dem Widget CTRL HTML State ein bei HTML oder Wert? Muss ich noch Objekt iD auswählen? (den Ical Adapter?)

                1 Reply Last reply Reply Quote 0
                • P
                  pix last edited by

                  @audioconcept:

                  Den Code trage ich dann bei dem Widget CTRL HTML State ein bei HTML oder Wert? Muss ich noch Objekt iD auswählen? (den Ical Adapter?) `

                  Den Code fürs VIS-Widget kannst du bei Widgets importieren einfügen. 261_bildschirmfoto_2015-08-26_um_15.41.18.jpg
                  Danach sind alle Einstellungen schon ausgefüllt.

                  Gruß

                  Pix

                  1 Reply Last reply Reply Quote 0
                  • A
                    audioconcept last edited by

                    Ich danke euch. Sieht sehr gut aus.

                    1 Reply Last reply Reply Quote 0
                    • A
                      audioconcept last edited by

                      Hallo danke . Hab mich jetzt für das von Bluefox entschieden, da es zu meinen anderen besser passt.

                      Noch mal eine Frage.

                      Angenommen ich habe es auf 48 Std eingestellt und ich gieße es erst am dritten Tag (72 Std.) und bestätige es auch erst dann. Wird dann ab der Bestätigung wieder 48 Std. gezählt ?

                      1 Reply Last reply Reply Quote 0
                      • Bluefox
                        Bluefox last edited by

                        @audioconcept:

                        Hallo danke . Hab mich jetzt für das von Bluefox entschieden, da es zu meinen anderen besser passt.

                        Noch mal eine Frage.

                        Angenommen ich habe es auf 48 Std eingestellt und ich gieße es erst am dritten Tag (72 Std.) und bestätige es auch erst dann. Wird dann ab der Bestätigung wieder 48 Std. gezählt ? `
                        Ja.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        518
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        3
                        11
                        2458
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo