Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Einfach mal zeigen will….. :-) - Teil 1

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Einfach mal zeigen will….. :-) - Teil 1

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

      @Meistertr:

      so langsam werde ich mit meiner visu auch fertig, jedoch immer kurz vorm ende wird das konzept erneut überarbeitet…

      https://youtu.be/YKiX0_cRaQE `

      Respekt und nochmal Respekt. Gefällt mir sehr gut!! Würdest du mir/ uns vielleicht sagen wie du das am Sekunde 49 mit der Rollo Steuerung gemacht hast?

      Danke und Grüße

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

        @spaceduck: zunächst mal Danke … so einfach gehts natürlich auch 😄

        Mich interessieren noch ein par Scripts von dir...

        z.B.: das zählen und der Text der LOWBATs.. das UNREACH Script wird dann vermutlich ähnlich aufgebaut sein.

        1 Reply Last reply Reply Quote 0
        • N
          noleck123 last edited by

          Eure Projekte sehen einfach nur Hammer aus… Woher habt ihr die schönen Icons ?

          1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators last edited by

            Hallo und Willkommen im Forum!
            @noleck123:

            Woher habt ihr die schönen Icons ? `
            sind zum größten Teil im Lieferunfang bei ioBroker dabei, müssen ggf. nur noch installiert und evtl. farblich angepasst werden.

            Gruß

            Rainer

            1 Reply Last reply Reply Quote 0
            • kmxak
              kmxak Most Active last edited by

              Es gibt Adapter damit kannst du dir Icon Pakete laden. Oder halt selber erstellen und hochladen

              1 Reply Last reply Reply Quote 0
              • S
                sveni_lee last edited by

                @Meistertr:

                kannst Du mir erklären, wie Du das festlegen der Mähzeiten umgesetzt hast?

                Gruß

                Sveni_Lee

                1 Reply Last reply Reply Quote 0
                • Meistertr
                  Meistertr Developer last edited by

                  @sveni_lee:

                  @Meistertr:

                  kannst Du mir erklären, wie Du das festlegen der Mähzeiten umgesetzt hast?

                  Gruß

                  Sveni_Lee `

                  hierfür laufen 3 js scripte im hinterhrund. Bin aber noch nicht ganz fertig damit, da ich die übertragung an den Landroid noch nciht implementiert habe. ist aber nur ein zweizeiler..
                  1768_editor1.txt
                  1768_editor2.txt
                  1768_editor3.txt
                  1768_widget.txt

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

                    Hier mal meine Umsetzung der Automatik-Rollosteuerung/Zeitschaltuhr .. Die Übersicht (das drum herum um die Rollosteuerung) ist noch in arbeit deswegen fehlen hier und da noch Icons..

                    Aber immerhin funktioniert schon mal die komplette Rollosteuerung.. 🙂

                    Verbesserungsvorschläge? Immer her damit - ist mein erster erstellter View! 🙂

                    3092_screenshot_rollos.png

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

                      Optik ist ja bekanntermaßen Geschmacksache - mir gefällt's.

                      Funktionell aber auch sehr schöne Idee…

                      Wie sieht den das Skript (die Skripte) hinter der Steuerung aus?

                      1 Reply Last reply Reply Quote 0
                      • BuZZy
                        BuZZy last edited by Jey Cee

                        Finde es selber schon irgendwie wieder "zu klobig".. :lol:

                        Das ist immer mein Problem. Ich mache etwas fertig und im ersten Moment denke ich "So ist es gut".. und kurze Zeit später: "Also irgendwie gefällt mir das doch nicht".. 😄

                        Habe es erst mit dem Datetime Input widget machen wollen, aber das Inputfeld war immer zu groß oder zu klein, die Uhrzeit nicht mittig und ich wollte eigentlich ohne Tastatur auskommen..

                        Das Script habe ich gestern erst geschrieben und läuft momentan noch unter Beobachtung mit jeder Menge Logausgaben. Habe also noch nicht die Wochenendzeiten testen können.

                        Unter javascript.0.Rollosteuerung habe ich die ganzen Datenpunkte. Welche Minute, Stunde in der Woche / am Wochenende & Feiertags geöffnet / geschlossen werden soll. Ob die Automatik aktiviert ist, und ob zu Sonnenaufgang / Untergang aktiviert werden soll. Die Astrozeiten (Sonnenauf-&Untergang) stehen in den Datenpunkten javascript.0.Tageszeit.[..] Habe mich da für die Astrozeit nauticalDusk bzw. nauticalDawn entschieden weil der normale Sonnenaufgang zu dunkel bzw. Sonnenuntergang zu hell war. Desweiteren extrahiere ich im Script die Stunde & Minute der Astrozeiten mit dem Zusatzmodul dateformat. Und nicht zu vergessen.. Der Feiertag-Adapter wird auch einbezogen..

                        Hier mal das Script fürs Wohnzimmer Stand 13.09.17 21:42

                        Wie gesagt, viele Logausgaben, Wochenende & Feiertag noch ungetestet.

                        Noch heiß und fettig.. :lol:

                        var dateFormat = require('dateformat');
                        var WohnzimmerDownSched = null;
                        var WohnzimmerUpSched = null;
                        var WohnzimmerUp = null;
                        var WohnzimmerDown = null;
                         var cacheSelectorRolloChange  = $("[id=javascript.0.Rollosteuerung.*]");
                        cacheSelectorRolloChange.on(function(obj) {
                           SetRolloSchedule();
                        });
                         // Funktion Rollo Wohnzimmer schließen - mit Überwachung der Terassentür. Wenn auf -> Retry eine Minute später.
                        function RolloWZRunterfahren() {
                            if (getState("hm-rpc.0.TÜRKONTAKT.1.STATE").val === false) {
                                setState("hm-rpc.0.ROLLOAKTOR.1.LEVEL",0);
                            } else {
                                setTimeout(function () {RolloWZRunterfahren();}, 60000);
                            }
                        }
                         // Funktion um Programmzeiten und Schedules zu erzeugen
                        function SetRolloSchedule() {
                            var datum = new Date();
                            var wochentag = datum.getDay();
                            log('Tag: ' + wochentag);
                        
                        	// Wohnzimmer
                            if(WohnzimmerDownSched) clearSchedule(WohnzimmerDownSched);
                            if(WohnzimmerUpSched) clearSchedule(WohnzimmerUpSched);
                            if (getState("javascript.0.Rollosteuerung.Wohnzimmer.Automatik").val === true) {
                                log('Automatikmodus Wohnzimmer ist aktiviert');
                        
                        		// Hoch fahren
                                if (getState("javascript.0.Rollosteuerung.Wohnzimmer.SunriseUP").val === true) {
                                    log('Wohnzimmer Nächstes mal hoch bei Sonnenaufgang');
                                    WohnzimmerUp = '0 ' + dateFormat('2000-01-01 ' + getState('javascript.0.Tageszeit.nauticalDawn').val,"M") + ' ' + dateFormat('2000-01-01 ' + getState('javascript.0.Tageszeit.nauticalDawn').val,"H") + ' * * *';
                                } else {
                                    if(wochentag >= 1 && wochentag <= 5 && getState("feiertage.0.heute.boolean").val === false) {
                                        if (wochentag == 5 || getState("feiertage.0.morgen.boolean").val === true) {
                                                log('Wohnzimmer Nächstes mal hoch mit Wochenendzeit');
                                                WohnzimmerUp='0 ' + getState("javascript.0.Rollosteuerung.Wohnzimmer.WeekEndMUp").val + ' ' + getState("javascript.0.Rollosteuerung.Wohnzimmer.WeekEndHUp").val + ' * * *';
                                            } else {
                                                log('Wohnzimmer Nächstes mal hoch mit Wochenzeit');
                                                WohnzimmerUp='0 ' + getState("javascript.0.Rollosteuerung.Wohnzimmer.WeekDayMUp").val + ' ' + getState("javascript.0.Rollosteuerung.Wohnzimmer.WeekDayHUp").val + ' * * *';
                                            }
                                    } else {
                                        log('Wohnzimmer Nächstes mal hoch mit Wochenendzeit');
                                        WohnzimmerUp='0 ' + getState("javascript.0.Rollosteuerung.Wohnzimmer.WeekEndMUp").val + ' ' + getState("javascript.0.Rollosteuerung.Wohnzimmer.WeekEndHUp").val + ' * * *';
                                    }
                                }
                        
                                // Runter fahren
                                if (getState("javascript.0.Rollosteuerung.Wohnzimmer.SunsetDOWN").val === true) {
                                    log('Wohnzimmer Nächstes mal runter bei Sonnenuntergang');
                                    WohnzimmerDown = '0 ' + dateFormat('2000-01-01 ' + getState('javascript.0.Tageszeit.nauticalDusk').val,"M") + ' ' + dateFormat('2000-01-01 ' + getState('javascript.0.Tageszeit.nauticalDusk').val,"H") + ' * * *';
                                } else {
                                    if(wochentag >= 1 && wochentag <= 5 && getState("feiertage.0.heute.boolean").val === false) {
                                        if (wochentag == 5 || getState("feiertage.0.morgen.boolean").val === true) {
                                                log('Wohnzimmer Nächstes mal runter mit Wochenendzeit');
                                                WohnzimmerDown='0 ' + getState("javascript.0.Rollosteuerung.Wohnzimmer.WeekEndMDown").val + ' ' + getState("javascript.0.Rollosteuerung.Wohnzimmer.WeekEndHDown").val + ' * * *';
                                            } else {
                                                log('Wohnzimmer Nächstes mal runter mit Wochenzeit');
                                                WohnzimmerDown='0 ' + getState("javascript.0.Rollosteuerung.Wohnzimmer.WeekDayMDown").val + ' ' + getState("javascript.0.Rollosteuerung.Wohnzimmer.WeekDayHDown").val + ' * * *';
                                            }
                                    } else {
                                        log('Wohnzimmer Nächstes mal runter mit Wochenendzeit');
                                        WohnzimmerDown='0 ' + getState("javascript.0.Rollosteuerung.Wohnzimmer.WeekEndMDown").val + ' ' + getState("javascript.0.Rollosteuerung.Wohnzimmer.WeekEndHDown").val + ' * * *';
                                    }
                                }
                                log('Wohnzimmer Next Hoch Uhrzeit: ' + WohnzimmerUp);
                                log('Wohnzimmer Next Runter Uhrzeit: ' + WohnzimmerDown);
                                WohnzimmerUpSched = schedule(WohnzimmerUp, cb(function(){
                                    setState("hm-rpc.0.ROLLOAKTOR.1.LEVEL",100);
                                }));
                                WohnzimmerDownSched = schedule(WohnzimmerDown, cb(function(){
                                    RolloWZRunterfahren();
                                }));
                            }
                         }
                         schedule("0 0 1 * * *", function () { SetRolloSchedule(); });
                        SetRolloSchedule();
                        
                        1 Reply Last reply Reply Quote 0
                        • P
                          pix last edited by Jey Cee

                          Hallo,

                          ich finde die Lösung mit den Kreisdiagrammen sehr schön. Hat was Wissenschaftliches 😄 Nur die roten Trennlinien passen nach meinem Geschmack farblich nicht rein.

                          Ich nutze für jeden einzelnen Raum eine eigene View mit den Increment -Widgets

                          261_bildschirmfoto_2017-09-14_um_00.09.05.jpg

                          Es gibt eine Zeitsetzung für eine erste Öffnung (etwas Licht), dann eine zweite Öffnung (ganz auf). Die Schließung erfolgt nach Sonnenstand. Diese Umsetzung braucht natürlich sehr viel Platz. Da ich aber nur sehr selten die Zeiten ändere (selten neue Eingabe mache), komme ich damit klar.

                          Gruß

                          Pix

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

                            Danke @BuZZy . Copy und paste geht bei sowas eh nicht, aber als Ansatz immer hilfreich.

                            Der @Pix haut natürlich auch gleich wieder einen raus 😉 Würdest nen Export von "Erste Öffnung" springen lassen?

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

                              Hallo andyb,

                              hier der Widget-Export:

                              widget_rolladensteuerung.txt

                              Gruß

                              Pix

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

                                Guten Morgen,

                                Das mit den inc Widgets ist natürlich auch eine gute Idee..

                                Die "roten Trennlinien" sind keine echten Trennlinien sondern nur das Hintergrundbild im View.

                                Das werde ich aber noch anpassen .. aber erstmal muss ich die ganzen Steuerungen etc fertig machen bevor es an das "finish" geht. 😄 🙂

                                Gruß

                                1 Reply Last reply Reply Quote 0
                                • S
                                  sveni_lee last edited by Jey Cee

                                  @Meistertr:

                                  hierfür laufen 3 js scripte im hinterhrund. Bin aber noch nicht ganz fertig damit, da ich die übertragung an den Landroid noch nciht implementiert habe. ist aber nur ein zweizeiler.. `

                                  ich hätte dazu noch eine Frage…

                                  function mowtimes(){
                                  
                                      var maehzeiten = JSON.parse(getState("javascript.0.Garten.Rasenmäher.Editor.Maehzeiten"/*Garten.Rasenmäher.Editor.Maehzeiten*/).val);
                                      if(logging )console.log(JSON.stringify(maehzeiten));
                                      var data = JSON.parse(getState("landroid-s.0.mower.rawResponse"/*Battery temperature*/).val);
                                      var dataTimes= data.cfg;
                                      if(logging)console.log(JSON.stringify(dataTimes));
                                  
                                          for (var i = 0; i < weekday.length; i++) {
                                              maehzeiten[i].Cut1.stunde   =  dataTimes.sc.d[i][0].split(':')[0];
                                              maehzeiten[i].Cut1.minute   =  dataTimes.sc.d[i][0].split(':')[1];
                                              if(logging)console.log("Stunde"+ i+ " ist: "+ dataTimes.sc.d[i][0].split(':')[0]);
                                              maehzeiten[i].Cut1.dauer   =  dataTimes.sc.d[i][1];
                                              maehzeiten[i].Optionen.BorderCut   =  (dataTimes.sc.d[i][2] && dataTimes.sc.d[i][2] === 1 ? true : false);
                                          }
                                      if(logging)console.log(JSON.stringify(maehzeiten));
                                      setState( jpfad + "Maehzeiten", JSON.stringify(maehzeiten));
                                  }
                                  

                                  damit bringst Du die zeiten aus dem VIS in die richtige "Form" damit sie verarbeitet werden können. Aber müsste das selbe nicht auch mit den Azsweichzeiten "Cut2" geschehen? oder habe ich da einen Denkfehler?

                                  Gruß

                                  Sveni_Lee

                                  1 Reply Last reply Reply Quote 0
                                  • Meistertr
                                    Meistertr Developer last edited by Jey Cee

                                    @sveni_lee:

                                    @Meistertr:

                                    hierfür laufen 3 js scripte im hinterhrund. Bin aber noch nicht ganz fertig damit, da ich die übertragung an den Landroid noch nciht implementiert habe. ist aber nur ein zweizeiler.. `

                                    ich hätte dazu noch eine Frage…

                                    `function mowtimes(){
                                        
                                        var maehzeiten = JSON.parse(getState("javascript.0.Garten.Rasenmäher.Editor.Maehzeiten"/*Garten.Rasenmäher.Editor.Maehzeiten*/).val);
                                        if(logging )console.log(JSON.stringify(maehzeiten));
                                        var data = JSON.parse(getState("landroid-s.0.mower.rawResponse"/*Battery temperature*/).val);
                                        var dataTimes= data.cfg;
                                        if(logging)console.log(JSON.stringify(dataTimes));
                                        
                                            for (var i = 0; i < weekday.length; i++) {
                                                maehzeiten[i].Cut1.stunde   =  dataTimes.sc.d[i][0].split(':')[0];
                                                maehzeiten[i].Cut1.minute   =  dataTimes.sc.d[i][0].split(':')[1];
                                                if(logging)console.log("Stunde"+ i+ " ist: "+ dataTimes.sc.d[i][0].split(':')[0]);
                                                maehzeiten[i].Cut1.dauer   =  dataTimes.sc.d[i][1];
                                                maehzeiten[i].Optionen.BorderCut   =  (dataTimes.sc.d[i][2] && dataTimes.sc.d[i][2] === 1 ? true : false);
                                            }
                                        if(logging)console.log(JSON.stringify(maehzeiten));
                                        setState( jpfad + "Maehzeiten", JSON.stringify(maehzeiten));
                                    }
                                    

                                    damit bringst Du die zeiten aus dem VIS in die richtige "Form" damit sie verarbeitet werden können. Aber müsste das selbe nicht auch mit den Azsweichzeiten "Cut2" geschehen? oder habe ich da einen Denkfehler?

                                    Gruß

                                    Sveni_Lee

                                    die funktion überträgt die Mähzeiten des mähers in vis also die der mäher aktuell gespeichert hat. Der Mäher an sich kann ja nur eine Mähzeit. ie zweite wird zz noch nicht verarbeitet. konnte mich für keine Lösung entscheiden. Da ich die zweite mähzeit aktuell noch nicht brauchte, habe ich das Problem vertagt. Hierfür musst du bei bedarf eine weitere Funktion schreiben, die entweder nach beenden der ersten Mähzeit die zweite mähzeit an den roboter überträgt, oder eine Funktion die jeden Tag wenn die zweite Mähzeit Aktiv ist in diesem Zeitraum den Mäher bei erreich von 90% akku zum mähen schickt.

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      sveni_lee last edited by

                                      @Meistertr:

                                      die funktion überträgt die Mähzeiten des mähers in vis also die der mäher aktuell gespeichert hat. Der Mäher an sich kann ja nur eine Mähzeit. ie zweite wird zz noch nicht verarbeitet. konnte mich für keine Lösung entscheiden. Da ich die zweite mähzeit aktuell noch nicht brauchte, habe ich das Problem vertagt. Hierfür musst du bei bedarf eine weitere Funktion schreiben, die entweder nach beenden der ersten Mähzeit die zweite mähzeit an den roboter überträgt, oder eine Funktion die jeden Tag wenn die zweite Mähzeit Aktiv ist in diesem Zeitraum den Mäher bei erreich von 90% akku zum mähen schickt. `

                                      Danke für die Erklärung, ich bau ja aus deinen Scripten meine Bewässerungssteuerung und nehme Cut1 und Cut2 für Ventil1 und Ventil2.

                                      ich habe einen Datenpunkt an den ich die Bewässerungsdauer übertragen muss, dann schaltet die Pumpe und das enstsprechende Ventil nacheinander ein…

                                      also müssten meine Funktionen die Bewässerung starten, wenn der Tag aktiv ist und das andere Ventil nicht geöffnet ist. Bei geöffnetem anderem Ventil muß das ersten Ventil hintenangestellt werden, so dass immer nur ein Ventil geöffnet ist.

                                      1 Reply Last reply Reply Quote 0
                                      • N
                                        noleck123 last edited by

                                        Guten Abend, ich bin relativ neu mit Iobrocker, ich finde eure Views total super. Wie macht ihr das mit dem, ich nenne es mal Popup bei der Heizungsteuerung etc. Also klick auf Heizungtherostat und es öffnet sich ein Popup wo man die Temperatur, Urlaub, Boost etc einstellen kann ..

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

                                          Hallo noleck123,

                                          Widgets, die dieses Popup können, heißen Dialog Widgets. Davon gibt es jede Menge in VIS. Schau zB mal bei den Metro-Widgets (ggf erst installieren).

                                          Gruß

                                          Pix

                                          1 Reply Last reply Reply Quote 0
                                          • T
                                            tempestas last edited by

                                            Anbei falls es interessiert ein paar Eindrücke meines - teils komplett teils nur marginal - überarbeiteten iobroker VIS.

                                            Ich habe u.a. viele Infos, die ich sonst als separate Infos gelistet hatte mit in die Buttons aufgenommen (z.B. low bat / unreach, Alarmmeldungen. Lampen kommen noch) und einige Dinge rausgeschmissen, die ich im ersten Überschwang ("geil, das geht ja auch") eingebaut hatte, die für mich aber irrelevant sind (z.B. Diesel Preise - ich fahre keinen Diesel, oder billigste Tankstelle im Umkreis: solange die Unterschiede nicht 20 Cent betragen, fahre ich keine 10km weiter..).

                                            Heizungssteuerung habe ich z.B. nicht drin, da unsere FBH sich vernünftig selbst reguliert und dank der Dämmung (Neubau) eh keine schnelle Anpassung möglich bzw notwendig ist. Dann noch teilweise einfach mehr an mein doch sehr kleines Display (fire hdx 7'') angepasst.

                                            filename="home1.png" index="7">~~
                                            filename="home2_alarm_aus.png" index="6">~~
                                            filename="home2_alarm_ein.png" index="5">~~
                                            filename="licht.png" index="4">~~
                                            filename="klima.png" index="3">~~
                                            filename="sicherheit_1.png" index="2">~~
                                            filename="sonos.png" index="1">~~
                                            filename="technik.png" index="0">~~

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            367
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            133
                                            649
                                            297727
                                            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