Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Mehrere Rollos gleichzeitig steuern mit Jarvis

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Mehrere Rollos gleichzeitig steuern mit Jarvis

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      MCU @SLang77 last edited by

      @slang77 ? shelly.0.xy.prozente?

      SLang77 1 Reply Last reply Reply Quote 0
      • SLang77
        SLang77 @MCU last edited by

        @mcu

        Ach so

        shelly.0.SHSW-25#483FDA8275E7#1.Shutter.Position

        und

        shelly.0.SHSW-25#40F5202D4C66#1.Shutter.Position

        M 1 Reply Last reply Reply Quote 0
        • M
          MCU @SLang77 last edited by MCU

          @slang77 Wertebereich von 0 bis 100?
          0 = auf, 100 = zu?

          SLang77 1 Reply Last reply Reply Quote 0
          • SLang77
            SLang77 @MCU last edited by

            @mcu

            genau. 0 geschlossen. 100% voll geöffnet

            M 1 Reply Last reply Reply Quote 0
            • M
              MCU @SLang77 last edited by MCU

              @slang77 Noch andere Shutter? Auf dem Bild sind es 3?

              SLang77 1 Reply Last reply Reply Quote 0
              • SLang77
                SLang77 @MCU last edited by

                @mcu

                Also ich würde ja wenn verschiedene Gruppen bilden.

                Der gesamte Sonnenschutz wäre praktisch alle Rollos:

                Schlafzimmer:
                shelly.0.SHSW-25#483FDA8275E7#1.Shutter.Position
                Wohnzimmer
                shelly.0.SHSW-25#40F5202D4C66#1.Shutter.Position
                OG
                shelly.0.SHSW-25#483FDA76428D#1.Shutter.Position
                Büro
                shelly.0.SHSW-25#40F5202D26F0#1.Shutter.Position
                Bad
                shelly.0.SHSW-25#40F520266FB2#1.Shutter.Position
                HWR
                shelly.0.SHSW-25#40F52020F1A7#1.Shutter.Position
                Esszimmer links
                shelly.0.SHSW-25#40F52020E5EB#1.Shutter.Position
                Esszimmer rechts
                shelly.0.SHSW-25#40F52027A30A#1.Shutter.Position

                Das wäre erstmal interessant, wenn m,an morgens aus dem haus geht und weiß, die Sonne wird den tag über knallen, mit einem Knopfdruck alle Rollos auf einen bestimmten Wert Fahren kann.

                Später würde ich natürlich gerne Die Rollos nach Himmelsrichtung fahren können. Also alle Süd Rollos Sonnenschutz, alle Ost / West usw...

                Interessant wäre auch Bestimmte Rollos morgens, wenn die nicht sowieso automatisch hochfahren auf Knopfdruck hochfahren zu lassen. Daher rürt die ursprüngliche Frage nach den Gruppen.

                Also zum Beispiel:
                Schlafzimmer:
                shelly.0.SHSW-25#483FDA8275E7#1.Shutter.Position
                Wohnzimmer
                shelly.0.SHSW-25#40F5202D4C66#1.Shutter.Position
                OG
                shelly.0.SHSW-25#483FDA76428D#1.Shutter.Position
                Büro
                shelly.0.SHSW-25#40F5202D26F0#1.Shutter.Position
                Bad
                shelly.0.SHSW-25#40F520266FB2#1.Shutter.Position
                HWR
                shelly.0.SHSW-25#40F52020F1A7#1.Shutter.Position

                morgens auf Knopfdruck alle hochzufahren...

                M 1 Reply Last reply Reply Quote 0
                • M
                  MCU @SLang77 last edited by MCU

                  @slang77 Hier mal ein Programm, mit dem man es machen könnte:

                  // ***************************
                  // ShutterPosition v1.0.0
                  // Copyright MCU
                  // ***************************
                  
                  let shutterDP = '0_userdata.0.jarvis.shutter';
                  let shutterArrayDP = shutterDP + '.shutterArray';
                  let shutterArrayTimeDP = shutterDP + '.shutterTimeArray'; //[{"time":"07:28","direction":"Westen","position":50}]
                  let shutterPositionDP = shutterDP + '.position';
                  let shutterDirectionDP = shutterDP + '.direction';
                  
                  createStateAsync(shutterArrayDP, {read: true, write: true, name: 'Array der Jalousien / Rollos' , type: "string", role: "", def: JSON.stringify([]) });
                  createStateAsync(shutterArrayTimeDP, {read: true, write: true, name: 'Zeit-Array der Jalousien / Rollos' , type: "string", role: "", def: JSON.stringify([]) });
                  createStateAsync(shutterDirectionDP, {read: true, write: true, name: 'Himmelsrichtung (Norden,Westen,Osten,Süden,All)' , type: "string", role: "", def: "All",
                                                  states:{"All":"All","Norden":"Norden","Westen":"Westen","Osten":"Osten","Süden":"Süden"}  });
                  createStateAsync(shutterPositionDP, {read: true, write: true, name: 'Position die angefahren werden soll' , type: "number", role: "", def: 0 });
                  
                  // Shelly automatisch einlesen in Array?
                  //[{"direction":"Westen","id":"shelly.0.SHSW-25#483FDA8275E7#1.Shutter.Position"}]
                  
                  schedule("*/2 * * * *", function () { //Alle 2 Minuten prüfen 
                      // shutterArrTime prüfen, ob etwas gemacht werden soll
                      let shutterTimeArr = getState(shutterArrayTimeDP).val;
                      shutterTimeArr = JSON.parse(shutterTimeArr);
                      let nowTime = formatDate(new Date().getTime(),'hh:mm');
                      // log(nowTime);
                      for (let x=0;x<shutterTimeArr.length;x++){
                          if (shutterTimeArr[x].time == nowTime){
                              let shutterArray = getState(shutterArrayDP).val;
                              shutterArray = JSON.parse(shutterArray);
                              // log(shutterArray);
                              for (let i=0;i<shutterArray.length;i++){
                                  if (shutterTimeArr[x].direction != undefined || shutterTimeArr[x].direction != null ){
                                      if (shutterTimeArr[x].direction == shutterArray[i].direction || shutterTimeArr[x].direction == 'All'){
                                          log(shutterArray[i].id +' wird gesetzt auf '+ shutterTimeArr[x].position);
                                          setStateAsync(shutterArray[i].id,shutterTimeArr[x].position,false);
                                      }
                                  }else{
                                      if (shutterTimeArr[x].id != undefined || shutterTimeArr[x].id != null){
                                          if (shutterTimeArr[x].id == shutterArray[i].id){
                                              log(shutterArray[i].id + ' wird gesetzt auf ' + shutterTimeArr[x].position);
                                              setStateAsync(shutterArray[i].id,shutterTimeArr[x].position,false);
                                          }
                                      }
                                  }
                              }
                          }
                      }
                  });
                  
                  
                  on({id: shutterPositionDP, change: "any"}, function (obj) {
                      let value = obj.state.val;
                      let direction = getState(shutterDirectionDP).val;
                      let shutterArray = getState(shutterArrayDP).val;
                      shutterArray = JSON.parse(shutterArray);
                      log(shutterArray);
                      for (let i=0;i<shutterArray.length;i++){
                          if (direction == shutterArray[i].direction || direction == 'All'){
                              log(shutterArray[i].id +' wird gesetzt auf '+ value);
                              setStateAsync(shutterArray[i].id,value,false);
                          }
                      }
                  });
                  

                  8b48fc21-3efa-4793-980e-215753a6e3e1-image.png

                  shutterArray hat den Aufbau:
                  Mögliche direction: Norden, Westen, Osten, Süden

                  [{"direction":"Westen","id":"shelly.0.SHSW-25#483FDA8275E7#1.Shutter.Position"},{"direction":"Osten","id":"shelly.0.SHSW-25#40F5202D26F0#1.Shutter.Position"}]
                  

                  shutterTimeArray hat den Aufbau:
                  entweder id oder direction

                  [{"time":"11:08","id":"shelly.0.SHSW-25#483FDA8275E7#1.Shutter.Position","position":80}, {"time":"11:10","direction":"Westen","position":70}]
                  

                  Zeit momentan im 2 Minuten Abstand

                  Die Datenpunkte direction und position legt man dann in jarvis an. Dort kann man dann die Direction auswählen (DropDown) und die Position angeben (Mit LevelBody oder als DropDown)
                  direction-DropDown:

                  {"All":"Alle Rollos","Norden":"Nord","Westen":"West","Osten":"Ost","Süden":"Süd"}
                  

                  position-DropDown:

                  {"10":"10","20":"20","30":"30","40":"40","50":"50","60":"60","70":"70","80":"80","90":"90","100":"100"}
                  
                  SLang77 1 Reply Last reply Reply Quote 0
                  • SLang77
                    SLang77 @MCU last edited by

                    @mcu

                    Hi, Vielen vielen Dank schonmal. Das war bestimmt viel Arbeit!
                    Ich habe aber tatsächlich absolut keine Ahnung was ich machen muss...

                    Das JavaScript ShutterPosition 1.0.0 habe ich kopiert und als shutterPosition_mcu.js gespeichert. Muss das jetzt importiert werden?

                    Die anderen JSs (shutterArray) und shutterTimeArray... keine Ahnung? Importieren?

                    In ShutterArray steht jetzt das Rollo Schlafzimmer für Westen drin. Dieses ist aber im Süden. Muss ich das Script erweitern, um die fehlenden Rollos? Was passiert wenn mehrere Rollos in einer direction liegen?

                    Also praktisch so:

                    Süd:
                    Schlafzimmer:
                    shelly.0.SHSW-25#483FDA8275E7#1.Shutter.Position
                    Wohnzimmer
                    shelly.0.SHSW-25#40F5202D4C66#1.Shutter.Position

                    West:
                    OG
                    shelly.0.SHSW-25#483FDA76428D#1.Shutter.Position
                    Esszimmer links
                    shelly.0.SHSW-25#40F52020E5EB#1.Shutter.Position
                    Esszimmer rechts
                    shelly.0.SHSW-25#40F52027A30A#1.Shutter.Position

                    Ost:
                    Büro
                    shelly.0.SHSW-25#40F5202D26F0#1.Shutter.Position
                    Bad
                    shelly.0.SHSW-25#40F520266FB2#1.Shutter.Position
                    HWR
                    shelly.0.SHSW-25#40F52020F1A7#1.Shutter.Position

                    Im Bereich Objekte in ioBroker müssen dann in Jarvis die Datenpunkte position und direction erstellt werden?

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      MCU @SLang77 last edited by

                      @slang77 Bin gerade unterwegs. Melde mich später.

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        MCU @MCU last edited by MCU

                        @SLang77
                        Erstmal das Script einfach starten.
                        Es werden dann die DPs angelegt unter 0_userdata.0.jarvis.shutter
                        Dann in das shutterArray folgendes kopieren und ersetzen:

                        [{"direction":"Westen","id":"shelly.0.SHSW-25#483FDA76428D#1.Shutter.Position"},{"direction":"Westen","id":"shelly.0.SHSW-25#40F52020E5EB#1.Shutter.Position"},{"direction":"Westen","id":"shelly.0.SHSW-25#40F52027A30A#1.Shutter.Position"},{"direction":"Osten","id":"shelly.0.SHSW-25#40F5202D26F0#1.Shutter.Position"},{"direction":"Osten","id":"shelly.0.SHSW-25#40F520266FB2#1.Shutter.Position"},{"direction":"Osten","id":"shelly.0.SHSW-25#40F52020F1A7#1.Shutter.Position"},{"direction":"Süden","id":"shelly.0.SHSW-25#483FDA8275E7#1.Shutter.Position"},{"direction":"Süden","id":"shelly.0.SHSW-25#40F5202D4C66#1.Shutter.Position"}]
                        

                        Danach kannst du mal z.B. Süden auswählen bei direction und dann eine position angeben, manuell -> 50 eingeben und bestätigen. Dann sollten alle Rollos von Süden auf 50% fahren.
                        Vorausgesetzt, dass die Rollos mit dem Eintrag auf Position dann auch losfahren, so hab ich es bislang verstanden.

                        Wann sollen welche Rollos morgens hochfahren? also auf 100?
                        Beispiel: für morgen 07:00 Süden auf 100 (auf), abends 22:00 auf 0 (zu) -> shutterTimeArray

                        [{"time":"07:00","direction":"Süden","position":100},{"time":"22:00","direction":"Süden","position":0}]
                        

                        Wichtig Zeiten dürfen momentan nur 07:00,07:02, 07:04 also alle 2 Minuten sein, wird sonst nicht erkannt!

                        JARVIS
                        Die DPs anlegen von oben
                        direction DP
                        0_userdata.0.jarvis.shutter.direction

                        direction-DropDown (Anzeigevariante):

                        {"All":"Alle Rollos","Norden":"Nord","Westen":"West","Osten":"Ost","Süden":"Süd"}

                        ActionElement: DropDownAction

                        position-DP
                        0_userdata.0.jarvis.shutter.position

                        position-DropDown(Anzeigevariante):

                        {"10":"10","20":"20","30":"30","40":"40","50":"50","60":"60","70":"70","80":"80","90":"90","100":"100"}

                        ActionElement: DropDownAction

                        Es gibt anscheinend auch Probleme mit der position?
                        https://github.com/iobroker-community-adapters/ioBroker.shelly/issues/477

                        volkerrichert created this issue in iobroker-community-adapters/ioBroker.shelly

                        closed falsche Angabe der Rolloposition beim shelly 2.5 #477

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        453
                        Online

                        31.9k
                        Users

                        80.2k
                        Topics

                        1.3m
                        Posts

                        3
                        25
                        1571
                        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