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@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test Adapter shuttercontrol v2.0.x

    This topic has been deleted. Only users with topic management privileges can see it.
    • simatec
      simatec Developer Most Active @Homoran last edited by

      @Homoran sagte in [Aufruf] Neuer Adapter ioBroker.shuttercontrol:

      @simatec
      Auch wäre schön einen offset einstellen zu können.

      Was meinst du mit offset?
      Für Astro kannst du ein offset einstellen.
      Standard sind in der Config 30 Minuten.

      Für das fahren von mehreren Rollläden aus einer Funktion gibt es auch einen offset zum einstellen. Standard ist hier auf 10 Sekunden eingestellt

      Homoran 1 Reply Last reply Reply Quote 0
      • D
        dos1973 @simatec last edited by

        @simatec
        ist es für mich realistisch zeitnah auf die Funktion mit den Button zu hoffen?
        keine Ahnung welche Ideen und Anforderungen du noch hast.

        Bei mir werden alle Rolladen mit Funk und eben nur mit Buttons angesprochen, ohne diese Funktion wird der Adapter dann für mich leider nicht nutzbar sein.

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

          @simatec sagte in [Aufruf] Neuer Adapter ioBroker.shuttercontrol:

          Was meinst du mit offset?

          Ich meine eigentlich unterschiedloche offsets je zimmer.
          Da dein Adapter jedoch nicht zimmerbezogen arbeitet vielleicht je Gruppe.

          Meiner Meinung nach ergibt diese Gruppierung nicht für alle Anwender einen Sinn.
          Wenn für jedes Zimmer separate Einstellungen gemacht werden sollen (schlafräume der Kinder waren da sehr speziell) ergibt andererseits die ganze enums-Sache nur bedingt Sinn.

          Mein Schlafzimmer geht zur Straße, da soll nicht im winter schon der Rollladen hochgehen, wenn ich beim Aufstehen noch Licht anmachen muss. Man will die Leute ja nicht erschrecken!
          Ebenso die Küche. Die ist 3m von dem Fusweg weg, hier soll abends der Rolladen schon runtergehen bevor die Sonne ganz unten ist, wenn ich schon Licht zum arbeiten brauche.
          Auf der anderen Seite ist das große Wohnzimmerfenster, da möchte meine Holde gerne im Sommer beim TV noch den Abendhimmel beim/nach Sonnenuntergang sehen.

          Mir schwebte eine Konfiguration in Tabellenform, ähnlich ping oder parser, vor, ganz zu Ende hatte ich es aber auch noch nicht gedacht.
          Alle Räume eine Zeile, bei mehreren Rollläden ggf. Gruppen.
          Es gibt ja auch Räume, die Fenster in verschiedene Himmelsrichtungen haben.

          Bei Beschattung ergibt die Aufteilung nach Raumfunktionen gar kei en Sinn, wenn die Räume gleixher Funktion in alle Himmelsrichtungen zeigen.

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

            @Homoran
            Die Idee hatte ich Anfangs auch, das ganze in Tabellenform zu machen.
            grundsätzlich ist diese Version nur eine erste Idee.
            Ich hatte da auch schon mit @Dutchman drüber diskutiert.
            Da kamen wir zu der Meinung, dass enums im Prinzip das sinnvollste wäre.

            Aber es ist eine erste Beta und wir können noch viele Ideen einfließen lassen.

            1 Reply Last reply Reply Quote 0
            • D
              dirkhe Developer last edited by dirkhe

              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);
              
              })();
              
              Ullulaki 1 Reply Last reply Reply Quote 1
              • simatec
                simatec Developer Most Active @dos1973 last edited by

                @dos1973

                So hat doch etwas gedauert ... Jetzt kannst du die shellys mal testen.

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

                  @Homoran
                  Hallo Rainer,

                  ich habe nun mal angefangen und das ganze in Tabellenform gemacht.
                  Die Überlegung wäre noch, ob man enums und Tabelle anbietet (als Vorauswahl)
                  Da überlege ich aber noch.
                  Aktuell gibt es das noch nicht auf Github, da ich zwar die Tabelle hinbekomme ubd man auch Zeilen einfügen kann, aber das schreiben der ID des Rolladens noch manuell erfolgen muss.

                  Ich sitze seit Tagen dran, bekomme aber diese blöde Dialogabfrage nicht zum laufen, damit man die ID Auswahl über das Popup wie z.B. im Cloud Adapter machen kann.

                  Im Moment geht also nur copy & paste ☹️

                  Kannst du ml bitte deine Ideen in Stichpunkten hier zusammenfassen, was für Auswahlmöglichkeiten die Tabelle bieten sollte?
                  Aktuell gibt es die ID mit edit-Button (noch ohne Funktion😖), eine checkbox für an/aus, eine delete-Button, und hoch/runter Button zum Reihenfolge ändern.
                  Ich würde noch eine Auswahl für Zuordnung der unterschiedlichen Bereiche vorschlagen.

                  Noch weitere Ideen?

                  Homoran 1 Reply Last reply Reply Quote 1
                  • JohGre
                    JohGre last edited by

                    Hallo, möchte auch meine Erfahrungen einbringen zu meiner derzeitigen Steuerung.

                    Mein Aussen-Raffstores werden über Azimut, Elevation und Lux (HM Helligkeitssensor) gesteuert.
                    Sind die entsprechenden Parameter true bzw. über einer definierten Höhe werden zB. alle Südseitigen auf 2% gesetzt und die anderen (Westseitigen) auf 0%. Nordseitige beachte ich in meinem Script nicht, da sie für die Beschattung keine Relevanz haben.
                    Das entsprechende Script lasse ich nur zwischen 9:00 und 18:00 Uhr laufen, außerhalb dieser Zeit brauch ich die Funktion nicht.
                    Zusätzlich beachte ich auch ob einer meiner Fernseher läuft, denn da möchte ich ja nicht dass diese wieder aufgehen.
                    Auch meinen Windmesser lasse ich in die Funktion miteinfließen, möchte ja nicht, dass bei Sturm die Raffstores runterfahren.

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

                      @simatec sagte in [Aufruf] Neuer Adapter ioBroker.shuttercontrol:

                      Kannst du ml bitte deine Ideen in Stichpunkten hier zusammenfassen, was für Auswahlmöglichkeiten die Tabelle bieten sollte?

                      Gerne, aber da war ich mit mir selber noch nicht einig 😂

                      Wie du selber richtig schriebst, muss das ganze noch halbwegs übersixhtlich u d bedienbar bleiben, soll aber alle möglichen Optionen enthalten KÖNNEN.

                      Optimal wären dann optionale Editier/Konfigurierpopups, wie sie z.b. im Parser Adapter sind.

                      Ich setze mich mal heute hin und versuche das zu formulieren, passend zu den Wünschen zu Beginn des Threads, gemäß: wie soll ich wissen was ich meine, bevor ich lese was ich schrieb.

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

                        @JohGre
                        Das deckt sich ja schon mal weitestgehend mit meinen "Grundanforderungen"

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

                          @Homoran sagte in [[Aufruf] Neuer Adapter

                          wie soll ich wissen was ich meine, bevor ich lese was ich schrieb.

                          😂😂

                          1 Reply Last reply Reply Quote 0
                          • D
                            dos1973 @simatec last edited by

                            @simatec
                            klappt noch nicht...

                            shuttercontrol.0	2019-05-18 14:39:30.799	warn	undefined
                            shuttercontrol.0	2019-05-18 14:39:30.798	info	starting. Version 0.1.0 in /opt/iobroker/node_modules/iobroker.shuttercontrol, node: v8.15.0
                            host.ioBroker	2019-05-18 14:39:30.089	info	instance system.adapter.shuttercontrol.0 started with pid 20445
                            host.ioBroker	2019-05-18 14:39:00.079	info	Restart adapter system.adapter.shuttercontrol.0 because enabled
                            host.ioBroker	2019-05-18 14:39:00.079	error	instance system.adapter.shuttercontrol.0 terminated with code 0 (OK)
                            Caught	2019-05-18 14:39:00.079	error	by controller[0]: at Timer.listOnTimeout (timers.js:290:5)
                            Caught	2019-05-18 14:39:00.078	error	by controller[0]: at tryOnTimeout (timers.js:323:5)
                            Caught	2019-05-18 14:39:00.078	error	by controller[0]: at ontimeout (timers.js:498:11)
                            Caught	2019-05-18 14:39:00.078	error	by controller[0]: at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.shuttercontrol/main.js:510:52)
                            Caught	2019-05-18 14:39:00.078	error	by controller[0]: TypeError: Cannot read property 'common' of undefined
                            shuttercontrol.0	2019-05-18 14:39:00.053	info	terminating
                            shuttercontrol.0	2019-05-18 14:39:00.049	info	cleaned everything up...
                            shuttercontrol.0	2019-05-18 14:39:00.048	error	at Timer.listOnTimeout (timers.js:290:5)
                            shuttercontrol.0	2019-05-18 14:39:00.048	error	at tryOnTimeout (timers.js:323:5)
                            shuttercontrol.0	2019-05-18 14:39:00.048	error	at ontimeout (timers.js:498:11)
                            shuttercontrol.0	2019-05-18 14:39:00.048	error	at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.shuttercontrol/main.js:510:52)
                            shuttercontrol.0	2019-05-18 14:39:00.048	error	TypeError: Cannot read property 'common' of undefined
                            shuttercontrol.0	2019-05-18 14:39:00.047	error	uncaught exception: Cannot read property 'common' of undefined
                            shuttercontrol.0	2019-05-18 14:38:02.678	warn	undefined
                            shuttercontrol.0	2019-05-18 14:38:02.658	info	starting. Version 0.1.0 in /opt/iobroker/node_modules/iobroker.shuttercontrol, node: v8.15.0
                            host.ioBroker	2019-05-18 14:38:02.053	info	instance system.adapter.shuttercontrol.0 started with pid 20385
                            host.ioBroker	2019-05-18 14:37:59.579	info	instance system.adapter.shuttercontrol.0 terminated with code 0 (OK)
                            shuttercontrol.0	2019-05-18 14:37:59.547	info	cleaned everything up...
                            host.ioBroker	2019-05-18 14:37:59.539	info	stopInstance system.adapter.shuttercontrol.0 killing pid 20290
                            host.ioBroker	2019-05-18 14:37:59.539	info	stopInstance system.adapter.shuttercontrol.0
                            shuttercontrol.0	2019-05-18 14:37:59.540	info	cleaned everything up...
                            

                            Bildschirmfoto 2019-05-18 um 14.38.19.png

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

                              @dos1973
                              Zeig mal deine Config für den Wohnbereich?

                              D 1 Reply Last reply Reply Quote 0
                              • D
                                dos1973 @simatec last edited by

                                @simatec

                                die Settings finde ich sehr verwirrend und nicht selbsterklärend...
                                Bildschirmfoto 2019-05-18 um 15.44.26.png

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

                                  @dos1973
                                  Da du Automatik für den Wohnbereich und Wohnbereich den gleichen enum hast, schalte mal autoliving auf false.

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

                                    @dos1973 sagte in [Aufruf] Neuer Adapter ioBroker.shuttercontrol:

                                    @simatec

                                    die Settings finde ich sehr verwirrend und nicht selbsterklärend...

                                    Da wird es noch Änderungen geben

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

                                      Hallo zusammen,

                                      erst mal vielen Dank für den Adapter. Ich habe ihn installiert und eingerichtet. Lief alles ohne Probleme. Allerdings funktioniert er noch nicht mit Shelly 2.5 Schaltern. Der Adapter trägt den Wert richtig im Objekt ein, der Rollo fährt aber nicht.

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

                                        @SWeimar
                                        Zeige mal bitte ein Screenshot deiner Config.
                                        Aktuell habe ich da etwas gebastelt, was aber noch nicht alles funktioniert.

                                        Ich werde für die Testversionen am besten mal ein separaten Branch einrichten

                                        SWE1008 1 Reply Last reply Reply Quote 0
                                        • SWE1008
                                          SWE1008 @simatec last edited by

                                          @simatec
                                          Hier die Screenshots meiner config:

                                          Anmerkung 2019-05-22 074430.jpg
                                          Anmerkung 2019-05-22 074528.jpg
                                          Anmerkung 2019-05-22 074632.jpg Anmerkung 2019-05-22 074729.jpg

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

                                            @SWeimar
                                            Ja das konnte ich mir denken.
                                            Die tabelle habe ich gestern gebastelt ... Allerdingsnoch ohne Funktion.
                                            Mir ging es erstmal um die Tabelle ansich und dem Aufruf des Object-ID Baum.

                                            Die Funktion baue ich die nächste Tage mal zum testen ein.
                                            Aktuell musst du deine Rolläden in den enums, die du ausgewählt hast, abgelegt haben, damit sie angesteuert werden.
                                            Dies wird sich aber auf Wunsch ändern und zukünftig über die Tabellenfunktion laufen

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            987
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            rollladen rollladensteuerung shuttercontrol
                                            326
                                            7281
                                            8225997
                                            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