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

      ich folgendes vor und brauche mal eure Hilfe. Ich habe für Fenster und Türen dieses Basic - Value list html style widget. So das bei offener Tür das Kästchen rot ist mit dem Text "offen" und wenn die Tür zu ist ist der Kasten grün mit dem Text "geschlossen".

      Jetzt möchte ich es aber auch auf dem Wandtablet angezeigt bekommen. So wie oben beschrieben mit roten Kasten und Text drin wenn die Blumen gegossen werden müssen (z.B. alle zwei Tage) . Wollte es dann mit einem Virtuellen Taster bestätigen . Dann soll wieder ein grüner Kasten kommen mit dem Text "erledigt".

      Wie müsste ich da vorgehen?

      1 Reply Last reply Reply Quote 0
      • 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

                          471
                          Online

                          31.7k
                          Users

                          79.7k
                          Topics

                          1.3m
                          Posts

                          3
                          11
                          2453
                          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