Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter shuttercontrol v2.0.x

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    Test Adapter shuttercontrol v2.0.x

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators @Bostil last edited by

      @bostil sagte in Test Adapter shuttercontrol v1.2.x:

      Also, wenn zB Aussentemperatur > 20 Grad, dann Rollade halb schließen, bei erreichen eines höheren Schwellenwertes dann komplett runter

      die Sinnhaftigkeit dieses Vorhabens erschliesst sich mir nicht.
      Bei Sonneneinstrahlung dringt die IR-Komponente unabhängig von der Außentemperatur ins Zimmer.

      Anders sähe es aus, wenn durch den Sonnenstand und damit zusammenhängendem variablem Schattenwurf die Beschattung angeglichen werden sollte.

      1 Reply Last reply Reply Quote 0
      • Negalein
        Negalein Global Moderator @da_Woody last edited by

        @da_woody sagte in Test Adapter shuttercontrol v1.2.x:

        brav bei sunrise rauf, state richtig gesetzt.

        das funktioniert bei mir auch.
        Aber eben nicht, dass er bei m Sonnenschutz wieder hochfährt, wenn Temp. unterschritten wird.
        Da bleibt er stur im Manu_Mode hängen.

        simatec 1 Reply Last reply Reply Quote 0
        • simatec
          simatec Developer Most Active @Negalein last edited by

          @negalein
          Manumode ist auch nicht Sonnenschutz.
          Du solltest genau prüfen, wann sich der Status in Manumode ändert und die Ursache suchen.

          D3ltoroxp Negalein 2 Replies Last reply Reply Quote 0
          • D3ltoroxp
            D3ltoroxp @simatec last edited by

            @simatec So zweite Tag heute, an dem dein Adapter die Rollo Steuerung übernommen hat.
            So ganz rund scheint das bei mir noch nicht zu laufen, entweder falsche Einstellungen oder vom Adapter so gewollt.

            • Shading Mode, sobald ich hier die Türe öffnet oder das Fenster, fährt er hoch, aber nicht mehr runter. Im DP steht dann manu mode. Gibt es hier keine erneute Prüfung auf Sonnenschutz ? Macht der Adapter das nur einmal und wenn er einmal in sunprotect war und man manuell eingreift, war's das ?

            • Nach der Nachtfahrt, wenn ich das Fenster von offen auf kippen stelle, bekommt der Sensor ja kurz Kontakt, so nach 10 Sekunden fährt der Rollo hoch. Denke das ist so gewollt ? Ich dachte die Verzögerung betrifft den Status des Fensterkontakts, sprich wenn ich innerhalb der 10 sek, das Fenster von offen auf kipp stelle, ist danach der Status ja wieder gleich offen und das Rollo sollte sich nicht bewegen.

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

              @d3ltoroxp sagte in Test Adapter shuttercontrol v1.2.x:

              Shading Mode, sobald ich hier die Türe öffnet oder das Fenster, fährt er hoch, aber nicht mehr runter.

              kann ich bestätigen!
              ich suche hier auch noch meine falsche Konfiguration.
              Hab aber bisher nichts gefunden

              D3ltoroxp 1 Reply Last reply Reply Quote 0
              • D3ltoroxp
                D3ltoroxp @Homoran last edited by

                @homoran vllt wird das auch noch nicht Berücksichtigt. Wenn er sich im sunprotect befindet und man macht manuell was, z.b. mit der Tür oder dem Fenster, wäre das super, wenn er einfach wieder in die letzte Pos fährt, also die vom Sunprotect.

                Das gleiche wenn die Rollos abends schließen. Entweder falsch eingestellt, oder der Adapter gibt das noch nicht her.

                Gefühlt wird die Automatik bis zum nächsten Schaltpunkt unterbrochen, wenn man hier manuell eingreift. Klar wenn ich von Hand fahre, weiß der Adapter ja nicht warum, dann würde ich das auch so lassen. Vllt will man das ja offen haben. Aber wenn man eben nur die Tür kurz öffnet, weil man halt einfach raus muss und sie danach wieder zu macht, wäre es schon schön.

                F 1 Reply Last reply Reply Quote 0
                • F
                  FoxRo @D3ltoroxp last edited by

                  @d3ltoroxp said in Test Adapter shuttercontrol v1.2.x:

                  Gefühlt wird die Automatik bis zum nächsten Schaltpunkt unterbrochen, wenn man hier manuell eingreift. Klar wenn ich von Hand fahre, weiß der Adapter ja nicht warum, dann würde ich das auch so lassen. Vllt will man das ja offen haben. Aber wenn man eben nur die Tür kurz öffnet, weil man halt einfach raus muss und sie danach wieder zu macht, wäre es schon schön.

                  Ich denke Dein Anliegen ist in der Doku zu finden...:

                  Rollladen fahren bei Änderung des Fenster/Tür Zustandes:
                  Pulldown zur Auswahl der Funktion, die bei Bewegung des Fenster/Tür Sensors
                  durchgeführt werden soll:

                  Aus: keine Bewegung
                  Öffnen: Beim Öffnen der Tür fährt der Rollladen auf und verbleibt dort
                  Schließen: Nach Schließen der Tür fährt der Rollladen auf die Verdunklungsposition
                  Öffnen und Schließen: Der Rollladen öffnet sich mit der Tür und fährt mit dem Schließen wieder runter

                  Wenn er dies nicht tut - prüfe den Status und was Dein Rolle bei der entsprechenden Handlung zurückmeldet.
                  Viel Erfolg!

                  Homoran D3ltoroxp 2 Replies Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @FoxRo last edited by

                    @foxro sagte in Test Adapter shuttercontrol v1.2.x:

                    Öffnen und Schließen: Der Rollladen öffnet sich mit der Tür und fährt mit dem Schließen wieder runter

                    und genau das habe ich eingestellt!
                    Macht er aber nicht! er bleibt nach dem Schließen oben

                    1 Reply Last reply Reply Quote 0
                    • Negalein
                      Negalein Global Moderator @simatec last edited by Negalein

                      @simatec sagte in Test Adapter shuttercontrol v1.2.x:

                      Manumode ist auch nicht Sonnenschutz.
                      Du solltest genau prüfen, wann sich der Status in Manumode ändert und die Ursache suchen.

                      Das hat doch @FoxRo schon gefunden.

                      Der HmIP-BROLL und HmIP-FROLL schreibt den Wert nicht mehrfach.
                      Zum Beispiel Startwert 100, Sollwert 50
                      Start 100
                      Zwischenwert (vermutlich von CCU) zB 98,4 (nicht gewollt und keine Ahnung obs vom HM-Entwickler geändert wird oder geändert werden kann)
                      Endwert 50

                      Und durch diesen doofen Zwischenwert hauts den Shuttercontrol in den Manu_Mode. Somit fährt der Rollo nach unterschreiten der Temperatur nicht mehr automatisch hoch.

                      Dies wurde hier schon mehrfach besprochen (bin bestimmt nicht der einzige mit HmIP-Rollos) sowie auch im anderen Thread.

                      simatec F 2 Replies Last reply Reply Quote 0
                      • simatec
                        simatec Developer Most Active @Negalein last edited by simatec

                        @negalein
                        Ich hab bei einem Kumpel mit HMIP Aktoren eingerichtet und keine Probleme mit den Werten feststellen können.
                        Überprüfung der Aktoren nach 60 Sekunden und alles funktioniert.

                        Werde aber in meiner Testumgebung das ganze mal simulieren und loggen

                        Negalein 1 Reply Last reply Reply Quote 0
                        • Negalein
                          Negalein Global Moderator @simatec last edited by Negalein

                          @simatec sagte in Test Adapter shuttercontrol v1.2.x:

                          Werde aber in meiner Testumgebung das ganze mal simulieren und loggen

                          soll ich dir meinen Export schicken?

                          Ich hab bei einem Kumpel mit HMIP Aktoren eingerichtet und keine Probleme mit den Werten feststellen können.

                          Überprüfung der Aktoren nach 60 Sekunden und alles funktioniert.

                          Bei mir sind sie an der CCU3 angelernt.

                          Überprüfung der Aktoren hab ich schon auf 120 raufgedreht.

                          simatec 1 Reply Last reply Reply Quote 0
                          • simatec
                            simatec Developer Most Active @Negalein last edited by

                            @negalein
                            Poste mal deine Config hier. Dann kann ich es nachstellen

                            Negalein 1 Reply Last reply Reply Quote 0
                            • Negalein
                              Negalein Global Moderator @simatec last edited by

                              @simatec sagte in Test Adapter shuttercontrol v1.2.x:

                              Poste mal deine Config hier. Dann kann ich es nachstellen

                              system.adapter.shuttercontrol.0.json

                              1 Reply Last reply Reply Quote 0
                              • F
                                FoxRo @Negalein last edited by

                                @negalein said in Test Adapter shuttercontrol v1.2.x:

                                Und durch diesen doofen Zwischenwert hauts den Shuttercontrol in den Manu_Mode. Somit fährt der Rollo nach unterschreiten der Temperatur nicht mehr automatisch hoch.

                                Dies wurde hier schon mehrfach besprochen (bin bestimmt nicht der einzige mit HmIP-Rollos) sowie auch im anderen Thread.

                                Hallo
                                Habe keine Ahnung in welcher Reihenfolge dieser Update von Höhe und Workin Signal passiert. Was ich bis jetzt gelernt habe ist, dass es bei HM einen DP gibt, welcher die aktuelle Position liefert und ein DP welcher anzeigt, ob er am fahren ist oder nicht.
                                .. evtl könnte sowas helfen? (mal Testweise)
                                1de2a205-03a9-4aba-853e-00f945bf36e6-image.png
                                Damit würdest einen weiteren DP (müsstest testweise von Hand anlegen) nur mit der gültigen Höhe "Füttern". Diesen kannst dann im Alias als aktuell gültige Höhe einbinden und nicht der vom CCU gelieferte. Der neue DP wird nur geupdatet, wenn das working Signal "false" ist - der Rollo also steht und dann die Pos. von CCU daher kommt. Je nach Reihenfolge der beiden Signale müsstest evtl den Trigger auf nicht auf die CCU Höhe, sondern auf das Working Signal legen.
                                Wenn das tatsächlich funktioniert, wäre es zumindest mal ein Workaround, damit Du Shuttercontrol korrekt betreiben kannst.
                                Viel Erfolg!

                                Negalein 1 Reply Last reply Reply Quote 0
                                • D3ltoroxp
                                  D3ltoroxp @FoxRo last edited by

                                  @foxro Eben, die Doku bin ich durch, selbst beim Einstellen ist es eigentlich schon selbsterklärend. Öffnen/Schließen ist eingestellt.

                                  F 1 Reply Last reply Reply Quote 0
                                  • Ullulaki
                                    Ullulaki @dirkhe last edited by

                                    @dirkhe sagte in Test Adapter shuttercontrol v1.2.x:

                                    Zum Thema Button vs Level. Ich habe den adapter noch nicht getestet, aber ich habe hier ein Script geschrieben, was ein Level simuliert. Damit kann ich meine rolladen zb. Auf 50% fahren. Vlt hilft es dir ja

                                    (function(){
                                        // interne Funktion
                                        function drive(idActive, idPassive, runtime) {
                                            setState(idPassive, false);
                                            setState(idActive, true);
                                            setStateDelayed(idActive,false,runtime);
                                        }
                                    
                                        /**
                                         * initialisiert eine SOnOff Rolladensteuerung, zb ein T1
                                         * @param {string} id_DeviceBase Die ID des Basisobjektes
                                         * @param {string} stateUpName Der Name des Schalter für Auf, zb. "POWER1"
                                         * @param {string} stateDownName  Der Name des Schalter für Zu, zb. "POWER2"
                                         * @param {number} runtimeUp Die Laufzeit (in sec), bis die Rollade komplett aufgefahren ist
                                         * @param {number} runtimeDown Die Laufzeit (in sec), bis die Rollade komplett zugefahren ist
                                         */
                                        function initRollade(id_DeviceBase, stateUpName, stateDownName, runtimeUp, runtimeDown){
                                            var id_deviceDown= id_DeviceBase + '.' + stateDownName;
                                            var id_deviceUp= id_DeviceBase + '.' + stateUpName;
                                            var id_deviceLevel= id_DeviceBase + '.level';
                                    
                                            if (getState(id_deviceLevel).notExist){
                                                //setState(id_deviceLevel,0,true,function(){
                                                    extendObject(id_deviceLevel,{type:"state",common:{
                                                            "type": "number",    
                                                            "name": "Level",
                                                            "def":   0,                      // optional,  default 0
                                                            "read":  true,                   // mandatory, default true
                                                            "write": true,                   // mandatory, default true
                                                            "min":   0,                      // optional,  default 0
                                                            "max":   100,                    // optional,  default 100
                                                            "unit":  "%",                    // optional,  default %
                                                            "role":  "level.blind"           // mandatory,
                                                        }        
                                                    },function(){
                                                        log("create " + id_deviceLevel);
                                                        setStateDelayed(id_deviceLevel,0,true,100);
                                                    });
                                                //});
                                            }
                                    
                                            on({id: id_deviceUp, change: "ne", val:false}, function (obj) {
                                                let pos= getState(id_deviceLevel).val 
                                                    + Math.round((100 / (runtimeUp * 1000)) * (obj.state.ts - obj.oldState.ts));
                                                if (pos > 100) {
                                                    pos = 100;
                                                }
                                                setState(id_deviceLevel, pos, true);
                                            });
                                            on({id: id_deviceDown, change: "ne", val:false}, function (obj) {
                                                let pos= getState(id_deviceLevel).val 
                                                    - Math.round((100 / (runtimeDown * 1000)) * (obj.state.ts - obj.oldState.ts));
                                                if (pos < 0) {
                                                    pos = 0;
                                                }
                                                setState(id_deviceLevel, pos,true);
                                            });
                                            
                                            on({id: id_deviceLevel, ack:false}, function (obj) {
                                                if (getState(id_DeviceBase + ".alive").val) {
                                                    setState(id_deviceLevel,obj.oldState.val,true);
                                                    if (obj.state.val <= 0)
                                                        drive(id_deviceDown, id_deviceUp, runtimeDown * 1000 + 1000);
                                                    else if (obj.state.val >= 100)
                                                        drive(id_deviceUp, id_deviceDown, runtimeUp * 1000 + 1000);
                                                    else {
                                                        let diff = obj.oldState.val - obj.state.val;
                                                        if (diff > 0)
                                                            drive(id_deviceDown, id_deviceUp, diff * (runtimeDown / 0.1));
                                                        else
                                                            drive(id_deviceUp, id_deviceDown, Math.abs(diff) * (runtimeUp / 0.1));
                                                    }
                                                }
                                            });
                                        }
                                    
                                        initRollade("sonoff.0.Rollade/Florian", "POWER1", "POWER2",15,10);
                                        //initRollade('sonoff.0.DVES_AD871717', 'POWER2', 'POWER1',18,16);
                                    
                                    })();
                                    

                                    Daaanke, habe die ganze Zeit nach einer Lösung für meinen Sonoff Touch 2ch mit Tasmota gesucht, damit ist es mir möglich, ohne den Adapter zu arbeiten. (brauche lediglich das Level für den IOT-Adapter/Alexa. 🙂

                                    1 Reply Last reply Reply Quote 0
                                    • Negalein
                                      Negalein Global Moderator @FoxRo last edited by

                                      @foxro sagte in Test Adapter shuttercontrol v1.2.x:

                                      Habe keine Ahnung in welcher Reihenfolge dieser Update von Höhe und Workin Signal passiert.

                                      Hallo

                                      Ich versteh das Blockly nicht richtig.

                                      Ich zeig dir mal ein Gif, wie sich die DP verhalten.
                                      Vielleicht kannst du mir dann das Blockly erklären.

                                      Es geht von 0 auf 30. Dann wieder von 30 auf 0.

                                      log.gif

                                      F 1 Reply Last reply Reply Quote 0
                                      • F
                                        FoxRo @D3ltoroxp last edited by

                                        @d3ltoroxp said in Test Adapter shuttercontrol v1.2.x:

                                        @foxro Eben, die Doku bin ich durch, selbst beim Einstellen ist es eigentlich schon selbsterklärend. Öffnen/Schließen ist eingestellt.

                                        Dann bleibt Dir nur noch, was ich auch geschrieben hatte..
                                        Wenn er dies nicht tut - prüfe den Status und was Dein Rollo bei der entsprechenden Handlung zurückmeldet.
                                        Hast Du auch HM IP Aktoren im Einsatz? wie verläuft der Update der zurück gemeldeten Position? Fällt er in den Manu_Mode, wenn Du das Fenster öffnest / schliesst?

                                        1 Reply Last reply Reply Quote 0
                                        • F
                                          FoxRo @Negalein last edited by

                                          @negalein said in Test Adapter shuttercontrol v1.2.x:

                                          Hallo

                                          Ich versteh das Blockly nicht richtig.

                                          Ich zeig dir mal ein Gif, wie sich die DP verhalten.
                                          Vielleicht kannst du mir dann das Blockly erklären.

                                          Es geht von 0 auf 30. Dann wieder von 30 auf 0.

                                          Danke für das GIF - das erleichtert es um einiges.
                                          Habe das Blockly umgeschrieben und mit den DPs erstellt, wie sie im GIF genannt werden.
                                          82e2784b-f4f9-4a8d-bbd7-708768af5107-image.png

                                          Was macht das Ding:
                                          Es lauscht auf den Datenpunkt Process und beginnt zu laufen, wenn sich dieser ändert.
                                          Wenn der Wert des DP Prozess == 1 ist, dann läuft der Rollo und der DP "HoeheGueltig" auf dem aktuellen Wert wird belassen (Kein Update).
                                          Sobald der DP Process ändert und == 0 ist, dann wird der aktuelle Wert aus Level an den DP HoeheGueltig weiter gereicht.
                                          Den DP HoeheGueltig ist ein neuer eigener DP und müsstest dann als "Actual" im Alias einbinden, an der Stelle wo aktuell den "Level" eingebunden hast.
                                          Hoffe das war verständlich. 🙂
                                          Bin gespannt ob dies bei dir Funktioniert.
                                          Wenn weitere Hilfe dazu benötigst lass es mich wissen, dann macht es evtl Sinn, mal zusammen in einer gemeinsamen Session drauf zu schauen - wenn Du das willst.
                                          Viel Erfolg!

                                          Negalein 1 Reply Last reply Reply Quote 1
                                          • Negalein
                                            Negalein Global Moderator @FoxRo last edited by

                                            @foxro sagte in Test Adapter shuttercontrol v1.2.x:

                                            Hoffe das war verständlich.

                                            Danke, war sehr hilfreich.
                                            DP wird brav ohne Zwischenschritt aktualisiert.

                                            log.gif

                                            Im Alias-Script check ich noch nicht, wo nun dieser DP eingetragen werden muss.

                                            .3.LEVEL = Status
                                            .4.LEVEL ist zum schalten

                                            Script ist jetzt zwar von einem anderen Alias-Rollo. Aber alle sind HmIP.

                                            // Original-Datenpunkt
                                            const idOrigin = 'hm-rpc.0.00111A49914A48.4.LEVEL'/*Rollo Kinderzimmer :4 LEVEL*/ 
                                            // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
                                            // Bei Nicht-Verwendung Leerstring '' zuweisen
                                            const idRead = 'hm-rpc.0.00111A49914A48.3.LEVEL'/*Rollo Kinderzimmer :3 LEVEL*/
                                             
                                            // Alias-Datenpunkt
                                            const idAlias = 'Rollos.Rollo_Kinderzimmer';
                                             
                                            var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
                                             
                                            // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
                                            nameAlias = 'Rollo Kinderzimmer';
                                            desc = 'per Script erstellt';
                                            // typeAlias = 'boolean'; // oder 'number'
                                            // read = "val < 0 ? -val : 0"; // Erkennung "Aus" --> false erfolgt automatisch  
                                            // write = "val ? String(1) : String(0)";
                                            // role = 'value';
                                            // min = 0; // nur Zahlen
                                            // max = 100; // nur Zahlen
                                            // unit = '%'; // nur für Zahlen
                                            // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
                                            custom = {}; // verhindert doppelte Ausführung von history, ...
                                            // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
                                            // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
                                             
                                            // Ab hier nichts ändern !!
                                            function createAlias(idDst, idSrc, idRd) {
                                               if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                                               else {
                                                  var obj = {};
                                                  obj.type = 'state';
                                                  obj.common = getObject(idSrc).common;
                                                  obj.common.alias = {};
                                                  if(idRd) {
                                                      obj.common.alias.id = {};
                                                      obj.common.alias.id.read = idRd;
                                                      obj.common.alias.id.write = idSrc;
                                                      obj.common.read = true;
                                                  } else obj.common.alias.id = idSrc;
                                                  if(typeAlias) obj.common.type = typeAlias;
                                                  if(obj.common.read !== false && read) obj.common.alias.read = read;
                                                  if(obj.common.write !== false && write) obj.common.alias.write = write;
                                                  if(nameAlias) obj.common.name = nameAlias;
                                                  if(role) obj.common.role = role;
                                                  if(desc) obj.common.desc = desc;
                                                  if(obj.common.type == 'number') {
                                                     if(min !== undefined) obj.common.min = min;
                                                     if(max !== undefined) obj.common.max = max;
                                                     if(unit) obj.common.unit = unit;
                                                  } else {
                                                     if(obj.common.min !== undefined) delete obj.common.min;
                                                     if(obj.common.max !== undefined) delete obj.common.max;
                                                     if(obj.common.unit) delete obj.common.unit;
                                                  }
                                                  if(states) obj.common.states = states;
                                                  if(custom && obj.common.custom) obj.common.custom = custom;
                                                  obj.native = {};
                                                  setObject(idDst, obj, function() {
                                                     if(idRd) setState(idRd, getState(idRd).val, true);
                                                     else setState(idSrc, getState(idSrc).val, true); 
                                                  });
                                                  if(raum && existsObject('enum.rooms.' + raum)) {
                                                     let obj = getObject('enum.rooms.' + raum)
                                                     obj.common.members.push(idDst);
                                                     setObject('enum.rooms.' + raum, obj);
                                                  }
                                                  if(gewerk && existsObject('enum.functions.' + gewerk)) {
                                                     let obj = getObject('enum.functions.' + gewerk)
                                                     obj.common.members.push(idDst);
                                                     setObject('enum.functions.' + gewerk, obj);
                                                  }
                                               } 
                                            }
                                             
                                            createAlias('alias.0.' + idAlias, idOrigin, idRead);
                                            
                                            
                                            F 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            905
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            rollladen rollladensteuerung shuttercontrol
                                            325
                                            7256
                                            6594476
                                            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