Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Mehrere Rollos gleichzeitig steuern mit Jarvis

NEWS

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

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

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

Mehrere Rollos gleichzeitig steuern mit Jarvis

Geplant Angeheftet Gesperrt Verschoben Visualisierung
25 Beiträge 3 Kommentatoren 2.4k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M MCU

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

    SLang77S Offline
    SLang77S Offline
    SLang77
    schrieb am zuletzt editiert von
    #21

    @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 Antwort Letzte Antwort
    0
    • SLang77S SLang77

      @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 Online
      M Online
      MCU
      schrieb am zuletzt editiert von MCU
      #22

      @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"}
      

      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      SLang77S 1 Antwort Letzte Antwort
      0
      • M 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"}
        
        SLang77S Offline
        SLang77S Offline
        SLang77
        schrieb am zuletzt editiert von
        #23

        @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 Antwort Letzte Antwort
        0
        • SLang77S SLang77

          @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 Online
          M Online
          MCU
          schrieb am zuletzt editiert von
          #24

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

          NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
          Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

          M 1 Antwort Letzte Antwort
          0
          • M MCU

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

            M Online
            M Online
            MCU
            schrieb am zuletzt editiert von MCU
            #25

            @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

            NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
            Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            535

            Online

            32.7k

            Benutzer

            82.5k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe