Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter shuttercontrol v2.0.x

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Test Adapter shuttercontrol v2.0.x

Scheduled Pinned Locked Moved Tester
rollladenrollladensteuerungshuttercontrol
7.5k Posts 334 Posters 10.7m Views 255 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F FoxRo

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

    Eventuell kann @simatec dies als Kontrolle in den Adapter einbauen.
    Sind ja sicher einige mit Homematic Komponenten.

    Möchte hier keinen Streit vom Zaun brechen - ist eher ein wenig "Religion", muss aber anfügen, so wie ich das iOBroker Konzept bis jetzt verstehe, und wie andere Adapter ihre Endgeräte Spezifika in iOBroker integrieren, dann müsste dies der HM Adapter übernehmen und nicht jeder Adapter, welcher möglicherweise HM Geräte steuert.
    Da hält sich zb. der KNX Adapter penibel daran, keine KNX spezifischen Verhaltensweisen in iOBroker rein zu bringen.
    Aus meiner Sicht müsste also der HM Adapter dafür sorgen, dass es auf dem Positions DP kein Update gibt, solange der Working DP true ist. Denn wie @foxriver76 selbst schreibt, sind die Werte am Positions DP während dem Fahren ungültig. Ich meinte hier schon Logs gesehen zu haben, wo es während dem Fahren fortlaufend zu Updates kam.

    Wie geschrieben, die Extra-Einstellung wird an dieser Stelle ausgehebelt, da der DP für die Höhe von Shuttercontrol sogenannt "abonniert" wird und deshalb Änderungen da drauf direkt und ohne Delay in die Logik mit einbezogen werden. Wenn man diese Änderungen durch die Extra-Settings ganz ausblenden würde, dann wäre Shuttercontrol auf dem DP während dieser Extra-Einstellungen Zeit bei jeder Fahrt komplett blind und würde da nichts mit bekommen, egal was passiert. Dh. die Extra-Einstellungen würden wohl plötzlich zu einem kritischen "Fine-Tune" Element. Gute Ideen wären also gefragt, wenn der HM Adapter dies nicht übernimmt ;-)

    Projektleiter von Shuttercontrol ist und bleibt @simatec und deshalb überlasse ich es ihm, ob und wie er zu diesem Verhalten eine Lösung anbieten will.

    NegaleinN Offline
    NegaleinN Offline
    Negalein
    Global Moderator
    wrote on last edited by
    #3229

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

    muss aber anfügen, so wie ich das iOBroker Konzept bis jetzt verstehe, und wie andere Adapter ihre Endgeräte Spezifika in iOBroker integrieren, dann müsste dies der HM Adapter übernehmen und nicht jeder Adapter, welcher möglicherweise HM Geräte steuert.

    Aus meiner Sicht müsste also der HM Adapter dafür sorgen, dass es auf dem Positions DP kein Update gibt, solange der Working DP true ist.

    Da bin ich voll deiner Meinung.
    Wenn es beim KNX-Adapter geht, kann es @foxriver76 vielleicht doch im HM-Adapter irgendwie bewerkstelligen.
    Es betrifft bestimmt noch andere Adapter oder in Zukunft welche, die mit dem Problem zu kämpfen haben.

    Ich bin kein Entwickler, kenne mich also 0 aus ob das möglich ist.
    Muss oder kann nur @foxriver76 entscheiden.

    ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
    ° Node.js Fixer ---> iob nodejs-update
    ° Fixer ---> iob fix

    K I 2 Replies Last reply
    0
    • NegaleinN Negalein

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

      muss aber anfügen, so wie ich das iOBroker Konzept bis jetzt verstehe, und wie andere Adapter ihre Endgeräte Spezifika in iOBroker integrieren, dann müsste dies der HM Adapter übernehmen und nicht jeder Adapter, welcher möglicherweise HM Geräte steuert.

      Aus meiner Sicht müsste also der HM Adapter dafür sorgen, dass es auf dem Positions DP kein Update gibt, solange der Working DP true ist.

      Da bin ich voll deiner Meinung.
      Wenn es beim KNX-Adapter geht, kann es @foxriver76 vielleicht doch im HM-Adapter irgendwie bewerkstelligen.
      Es betrifft bestimmt noch andere Adapter oder in Zukunft welche, die mit dem Problem zu kämpfen haben.

      Ich bin kein Entwickler, kenne mich also 0 aus ob das möglich ist.
      Muss oder kann nur @foxriver76 entscheiden.

      K Offline
      K Offline
      Kuddel
      wrote on last edited by
      #3230

      Hallo zusammen,

      aktuell habe ich meine Rollo-Steuerung per Blockly realisiert und wollte mir jetzt mal diesen Adaopter anschauen.

      Bevor ich anfange zu testen, habe ich direkt mal eine Frage:

      Kann man Fenstersensoren integrieren, damit die ROllos nur auf z.B. 25% fahren, wenn ein Fenster gekippt ist?

      B da_WoodyD 2 Replies Last reply
      0
      • K Kuddel

        Hallo zusammen,

        aktuell habe ich meine Rollo-Steuerung per Blockly realisiert und wollte mir jetzt mal diesen Adaopter anschauen.

        Bevor ich anfange zu testen, habe ich direkt mal eine Frage:

        Kann man Fenstersensoren integrieren, damit die ROllos nur auf z.B. 25% fahren, wenn ein Fenster gekippt ist?

        B Offline
        B Offline
        bishop
        wrote on last edited by
        #3231

        @kuddel
        ja, ist möglich!

        K 1 Reply Last reply
        0
        • K Kuddel

          Hallo zusammen,

          aktuell habe ich meine Rollo-Steuerung per Blockly realisiert und wollte mir jetzt mal diesen Adaopter anschauen.

          Bevor ich anfange zu testen, habe ich direkt mal eine Frage:

          Kann man Fenstersensoren integrieren, damit die ROllos nur auf z.B. 25% fahren, wenn ein Fenster gekippt ist?

          da_WoodyD Offline
          da_WoodyD Offline
          da_Woody
          wrote on last edited by
          #3232

          @kuddel die frage ist eher umgekehrt, können deine rollos alles das, was shuttercontrol kann! :D

          gruß vom Woody
          HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

          M 1 Reply Last reply
          1
          • da_WoodyD da_Woody

            @kuddel die frage ist eher umgekehrt, können deine rollos alles das, was shuttercontrol kann! :D

            M Offline
            M Offline
            Muchul
            wrote on last edited by
            #3233

            @da_woody
            Welches Rollo kann das denn?
            Grinsduckundwech

            1 Reply Last reply
            0
            • T Offline
              T Offline
              tobitobsta
              wrote on last edited by
              #3234

              nochmal eine Frage zu den Shuttercontrol States:

              soll es denn eigentlich so sein, dass jedes manuelle Hochfahren auf das Level 100%, den Status auf "none" ziehen soll und somit Sunprotect funktionieren sollte?

              Bei mir ist das am Tag nur der Fall, wenn morgens das erste manuelle "hoch" gesetzt wird. Wenn im laufe des Tages einmal manuell runter und dann wieder manuell hoch (auf 100%) dann bleibt der State "ManuMode" (und SunProtect geht nicht mehr)
              Soll das so? Oder mache ich was falsch? Ist das ein Bug?

              da_WoodyD 1 Reply Last reply
              0
              • B bishop

                @kuddel
                ja, ist möglich!

                K Offline
                K Offline
                Kuddel
                wrote on last edited by
                #3235

                @bishop okay, habe die Einstellung gefunden.

                Problem ist nur, dass ich teilweise pro Rollo zwei Fenster und zwei Densoren habe.

                Kann man auch zwei Sensoren pro Rollo-Aktor hinterlegen?

                da_WoodyD 1 Reply Last reply
                0
                • T tobitobsta

                  nochmal eine Frage zu den Shuttercontrol States:

                  soll es denn eigentlich so sein, dass jedes manuelle Hochfahren auf das Level 100%, den Status auf "none" ziehen soll und somit Sunprotect funktionieren sollte?

                  Bei mir ist das am Tag nur der Fall, wenn morgens das erste manuelle "hoch" gesetzt wird. Wenn im laufe des Tages einmal manuell runter und dann wieder manuell hoch (auf 100%) dann bleibt der State "ManuMode" (und SunProtect geht nicht mehr)
                  Soll das so? Oder mache ich was falsch? Ist das ein Bug?

                  da_WoodyD Offline
                  da_WoodyD Offline
                  da_Woody
                  wrote on last edited by
                  #3236

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

                  "ManuMode"

                  an dem problem wird im moment rumgerätselt, wie man in diversen postings lesen kann...

                  gruß vom Woody
                  HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                  1 Reply Last reply
                  0
                  • K Kuddel

                    @bishop okay, habe die Einstellung gefunden.

                    Problem ist nur, dass ich teilweise pro Rollo zwei Fenster und zwei Densoren habe.

                    Kann man auch zwei Sensoren pro Rollo-Aktor hinterlegen?

                    da_WoodyD Offline
                    da_WoodyD Offline
                    da_Woody
                    wrote on last edited by
                    #3237

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

                    Kann man auch zwei Sensoren pro Rollo-Aktor hinterlegen?

                    grundsätzlich mal nicht. wird ohne trixxen nicht lösbar sein. (blockly für beide sensoren, die einen DP füllen.)

                    gruß vom Woody
                    HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                    1 Reply Last reply
                    0
                    • NegaleinN Negalein

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

                      muss aber anfügen, so wie ich das iOBroker Konzept bis jetzt verstehe, und wie andere Adapter ihre Endgeräte Spezifika in iOBroker integrieren, dann müsste dies der HM Adapter übernehmen und nicht jeder Adapter, welcher möglicherweise HM Geräte steuert.

                      Aus meiner Sicht müsste also der HM Adapter dafür sorgen, dass es auf dem Positions DP kein Update gibt, solange der Working DP true ist.

                      Da bin ich voll deiner Meinung.
                      Wenn es beim KNX-Adapter geht, kann es @foxriver76 vielleicht doch im HM-Adapter irgendwie bewerkstelligen.
                      Es betrifft bestimmt noch andere Adapter oder in Zukunft welche, die mit dem Problem zu kämpfen haben.

                      Ich bin kein Entwickler, kenne mich also 0 aus ob das möglich ist.
                      Muss oder kann nur @foxriver76 entscheiden.

                      I Offline
                      I Offline
                      IT-Veteran
                      wrote on last edited by
                      #3238

                      @negalein Hallo zusammen,

                      ich werde das Gefühl nicht los, dass die Ursache (mal wieder) an der Implementierung der Homematic Aktoren liegt. Ich hatte das hier schon mal thematisiert.

                      Die HmIP-Aktoren BROLL und FROLL benutzen den Kanal 3, um den IST-Zustand darzustellen. Die Kanäle 4, 5 und 6 werden benutzt, um SOLL zu setzen. Da Shuttercontrol nur einen Kanal verwenden kann, muss dies logischerweise 4, 5 oder 6 sein (ich verwende im Folgenden mal Kanal 4). Und genau da fängt das Problem an, denn Kanal 4 und Kanal 3 werden in der CCU nicht synchronisiert. Der richtige Wert nach dem Stopp des Rolladens steht deshalb ausschließlich in Kanal 3. In Kanal 4 steht der Sollwert, auch, wenn die Fahrt aus beliebigem Grund vorher gestoppt wurde. Hinzu kommt, dass nach dem Losfahren die Werte in Kanal 3 zufällig wechseln können. Nachdem der Rolladen angehalten hat, dauert es einige Zeit, bis in Kanal 3 der IST-Wert eingetragen wird.

                      Ich habe mal versucht, das durch ein kleines Skript in den Griff zu bekommen, das einfach den Status des Rolladens überprüft und, sobald dieser angehalten hat, mit einer Verzögerung von einigen Sekunden den Wert aus Kanal 3 in den Kanal 4 schreibt. Das hat jedoch aus nicht nachvollziehbaren Gründen nur teilweise funktioniert, weshalb ich es wieder aufgegeben habe.

                      Wollte man das Thema zuverlässig lösen, so müssten m.E. in Shuttercontrol zwei Kanäle (IST=3, SOLL=4 oder 5 oder 6) verwendet werden. Wie aufwändig diese Änderung wäre, kann ich natürlich nicht einmal ahnen.

                      Pi4b, 4GB, mit OpenCCU.
                      Pi4b, 4GB, mit ioBroker.
                      100+ Aktoren und Sensoren (Homematic IP, Shelly, Kasa, selbst gebaut auf ESP32-Basis)

                      M NegaleinN 2 Replies Last reply
                      0
                      • I IT-Veteran

                        @negalein Hallo zusammen,

                        ich werde das Gefühl nicht los, dass die Ursache (mal wieder) an der Implementierung der Homematic Aktoren liegt. Ich hatte das hier schon mal thematisiert.

                        Die HmIP-Aktoren BROLL und FROLL benutzen den Kanal 3, um den IST-Zustand darzustellen. Die Kanäle 4, 5 und 6 werden benutzt, um SOLL zu setzen. Da Shuttercontrol nur einen Kanal verwenden kann, muss dies logischerweise 4, 5 oder 6 sein (ich verwende im Folgenden mal Kanal 4). Und genau da fängt das Problem an, denn Kanal 4 und Kanal 3 werden in der CCU nicht synchronisiert. Der richtige Wert nach dem Stopp des Rolladens steht deshalb ausschließlich in Kanal 3. In Kanal 4 steht der Sollwert, auch, wenn die Fahrt aus beliebigem Grund vorher gestoppt wurde. Hinzu kommt, dass nach dem Losfahren die Werte in Kanal 3 zufällig wechseln können. Nachdem der Rolladen angehalten hat, dauert es einige Zeit, bis in Kanal 3 der IST-Wert eingetragen wird.

                        Ich habe mal versucht, das durch ein kleines Skript in den Griff zu bekommen, das einfach den Status des Rolladens überprüft und, sobald dieser angehalten hat, mit einer Verzögerung von einigen Sekunden den Wert aus Kanal 3 in den Kanal 4 schreibt. Das hat jedoch aus nicht nachvollziehbaren Gründen nur teilweise funktioniert, weshalb ich es wieder aufgegeben habe.

                        Wollte man das Thema zuverlässig lösen, so müssten m.E. in Shuttercontrol zwei Kanäle (IST=3, SOLL=4 oder 5 oder 6) verwendet werden. Wie aufwändig diese Änderung wäre, kann ich natürlich nicht einmal ahnen.

                        M Offline
                        M Offline
                        Muchul
                        wrote on last edited by
                        #3239

                        @it-veteran
                        Müsste sich das nicht durch Alias'e umgehen lassen?

                        simatecS 1 Reply Last reply
                        0
                        • M Muchul

                          @it-veteran
                          Müsste sich das nicht durch Alias'e umgehen lassen?

                          simatecS Offline
                          simatecS Offline
                          simatec
                          Developer Most Active
                          wrote on last edited by
                          #3240

                          @muchul
                          Genau durch Alias wurde das Thema hier schon einige male beschrieben. Für den Aktor einen Alias anlegen, indem IST und SOLL Werte des Aktors verknüpft werden und es läuft in shuttercontrol.
                          Im Prinzip wurde Alias genau für solche Anwendungen geschaffen

                          • Besuche meine Github Seite
                          • Beitrag hat geholfen oder willst du mich unterstützen
                          • HowTo Restore ioBroker
                          B H 2 Replies Last reply
                          0
                          • I IT-Veteran

                            @negalein Hallo zusammen,

                            ich werde das Gefühl nicht los, dass die Ursache (mal wieder) an der Implementierung der Homematic Aktoren liegt. Ich hatte das hier schon mal thematisiert.

                            Die HmIP-Aktoren BROLL und FROLL benutzen den Kanal 3, um den IST-Zustand darzustellen. Die Kanäle 4, 5 und 6 werden benutzt, um SOLL zu setzen. Da Shuttercontrol nur einen Kanal verwenden kann, muss dies logischerweise 4, 5 oder 6 sein (ich verwende im Folgenden mal Kanal 4). Und genau da fängt das Problem an, denn Kanal 4 und Kanal 3 werden in der CCU nicht synchronisiert. Der richtige Wert nach dem Stopp des Rolladens steht deshalb ausschließlich in Kanal 3. In Kanal 4 steht der Sollwert, auch, wenn die Fahrt aus beliebigem Grund vorher gestoppt wurde. Hinzu kommt, dass nach dem Losfahren die Werte in Kanal 3 zufällig wechseln können. Nachdem der Rolladen angehalten hat, dauert es einige Zeit, bis in Kanal 3 der IST-Wert eingetragen wird.

                            Ich habe mal versucht, das durch ein kleines Skript in den Griff zu bekommen, das einfach den Status des Rolladens überprüft und, sobald dieser angehalten hat, mit einer Verzögerung von einigen Sekunden den Wert aus Kanal 3 in den Kanal 4 schreibt. Das hat jedoch aus nicht nachvollziehbaren Gründen nur teilweise funktioniert, weshalb ich es wieder aufgegeben habe.

                            Wollte man das Thema zuverlässig lösen, so müssten m.E. in Shuttercontrol zwei Kanäle (IST=3, SOLL=4 oder 5 oder 6) verwendet werden. Wie aufwändig diese Änderung wäre, kann ich natürlich nicht einmal ahnen.

                            NegaleinN Offline
                            NegaleinN Offline
                            Negalein
                            Global Moderator
                            wrote on last edited by
                            #3241

                            @it-veteran sagte in Test Adapter shuttercontrol v1.2.x:

                            Ich habe mal versucht, das durch ein kleines Skript in den Griff zu bekommen, das einfach den Status des Rolladens überprüft und, sobald dieser angehalten hat, mit einer Verzögerung von einigen Sekunden den Wert aus Kanal 3 in den Kanal 4 schreibt. Das hat jedoch aus nicht nachvollziehbaren Gründen nur teilweise funktioniert, weshalb ich es wieder aufgegeben habe.

                            Ja, ging mir auch so.
                            Bis ich den obigen Thread aufgemacht habe.
                            Mit dem Alias sind die Werte passend.

                            Leider hat es nichts mit dem aktuellen HM Problem zu tun.

                            ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                            ° Node.js Fixer ---> iob nodejs-update
                            ° Fixer ---> iob fix

                            1 Reply Last reply
                            0
                            • simatecS simatec

                              @muchul
                              Genau durch Alias wurde das Thema hier schon einige male beschrieben. Für den Aktor einen Alias anlegen, indem IST und SOLL Werte des Aktors verknüpft werden und es läuft in shuttercontrol.
                              Im Prinzip wurde Alias genau für solche Anwendungen geschaffen

                              B Offline
                              B Offline
                              bishop
                              wrote on last edited by bishop
                              #3242

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

                              @muchul
                              Genau durch Alias wurde das Thema hier schon einige male beschrieben. Für den Aktor einen Alias anlegen, indem IST und SOLL Werte des Aktors verknüpft werden und es läuft in shuttercontrol.
                              Im Prinzip wurde Alias genau für solche Anwendungen geschaffen

                              gibt es hier für ein Beispiel?
                              Wären dann 2 Datenpunkte in einem oder?

                              NegaleinN 1 Reply Last reply
                              0
                              • B bishop

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

                                @muchul
                                Genau durch Alias wurde das Thema hier schon einige male beschrieben. Für den Aktor einen Alias anlegen, indem IST und SOLL Werte des Aktors verknüpft werden und es läuft in shuttercontrol.
                                Im Prinzip wurde Alias genau für solche Anwendungen geschaffen

                                gibt es hier für ein Beispiel?
                                Wären dann 2 Datenpunkte in einem oder?

                                NegaleinN Offline
                                NegaleinN Offline
                                Negalein
                                Global Moderator
                                wrote on last edited by
                                #3243

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

                                gibt es hier für ein Beispiel?

                                // Original-Datenpunkt
                                const idOrigin = 'hm-rpc.0.00115A49A5B2BE.4.LEVEL'/*Rollo Wohnzimmer :4 LEVEL*/ 
                                // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
                                // Bei Nicht-Verwendung Leerstring '' zuweisen
                                const idRead = 'hm-rpc.0.00115A49A5B2BE.3.LEVEL'/*Rollo Wohnzimmer :4 LEVEL*/
                                 
                                // Alias-Datenpunkt
                                const idAlias = 'Rollos.Rollo_Wohnzimmer';
                                 
                                var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
                                 
                                // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
                                nameAlias = 'Rollo Wohnzimmer';
                                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);
                                
                                

                                ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                                ° Node.js Fixer ---> iob nodejs-update
                                ° Fixer ---> iob fix

                                B 1 Reply Last reply
                                0
                                • NegaleinN Negalein

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

                                  gibt es hier für ein Beispiel?

                                  // Original-Datenpunkt
                                  const idOrigin = 'hm-rpc.0.00115A49A5B2BE.4.LEVEL'/*Rollo Wohnzimmer :4 LEVEL*/ 
                                  // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
                                  // Bei Nicht-Verwendung Leerstring '' zuweisen
                                  const idRead = 'hm-rpc.0.00115A49A5B2BE.3.LEVEL'/*Rollo Wohnzimmer :4 LEVEL*/
                                   
                                  // Alias-Datenpunkt
                                  const idAlias = 'Rollos.Rollo_Wohnzimmer';
                                   
                                  var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
                                   
                                  // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
                                  nameAlias = 'Rollo Wohnzimmer';
                                  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);
                                  
                                  
                                  B Offline
                                  B Offline
                                  bishop
                                  wrote on last edited by bishop
                                  #3244

                                  @negalein

                                  besten Dank :)

                                  ist das auch mit dem alias-manager zu machen?

                                  1 Reply Last reply
                                  0
                                  • H Offline
                                    H Offline
                                    Harry94
                                    wrote on last edited by
                                    #3245

                                    Hallo zusammen,

                                    erstmal vielen Dank für den tollen Adapter. :)

                                    Meine Frage hierzu ist jetzt folgende, ich hätte gerne eine Beschattung abhängig von Himmelsrichtung und Lichtsensor.
                                    Da jede Beschattung im Dropdown einen Temperatursensor verlangt habe ich bei Temperatur eine Wert von -50 eingetragen. Damit wollte ich erreichen, dass die Beschattung auch im Winter fährt.
                                    Der Adapter Scheint mit dem Negativen wert aber nichts anfangen zu können. eine Fahrt findet nicht statt.
                                    Auch die Temperaturwerte einfach leer lassen hat nicht funktioniert.
                                    Hat jemand eine Idee?

                                    Vielen dank schonmal

                                    B HomoranH 2 Replies Last reply
                                    0
                                    • H Harry94

                                      Hallo zusammen,

                                      erstmal vielen Dank für den tollen Adapter. :)

                                      Meine Frage hierzu ist jetzt folgende, ich hätte gerne eine Beschattung abhängig von Himmelsrichtung und Lichtsensor.
                                      Da jede Beschattung im Dropdown einen Temperatursensor verlangt habe ich bei Temperatur eine Wert von -50 eingetragen. Damit wollte ich erreichen, dass die Beschattung auch im Winter fährt.
                                      Der Adapter Scheint mit dem Negativen wert aber nichts anfangen zu können. eine Fahrt findet nicht statt.
                                      Auch die Temperaturwerte einfach leer lassen hat nicht funktioniert.
                                      Hat jemand eine Idee?

                                      Vielen dank schonmal

                                      B Offline
                                      B Offline
                                      bishop
                                      wrote on last edited by bishop
                                      #3246

                                      @harry94
                                      Das war eigentlich mal "oder" verknüpft, ist es aber nicht mehr ist "und" verknüpft ist mir auch aufgefallen.
                                      Ich habe eine sehr niedrige Außentemperatur mit einer hohen Hysterese gewählt, soweit funktioniert es mal.
                                      Vielleicht liegt es am negativen Wert, versuch mal ein Positiven Wert!

                                      1 Reply Last reply
                                      0
                                      • H Harry94

                                        Hallo zusammen,

                                        erstmal vielen Dank für den tollen Adapter. :)

                                        Meine Frage hierzu ist jetzt folgende, ich hätte gerne eine Beschattung abhängig von Himmelsrichtung und Lichtsensor.
                                        Da jede Beschattung im Dropdown einen Temperatursensor verlangt habe ich bei Temperatur eine Wert von -50 eingetragen. Damit wollte ich erreichen, dass die Beschattung auch im Winter fährt.
                                        Der Adapter Scheint mit dem Negativen wert aber nichts anfangen zu können. eine Fahrt findet nicht statt.
                                        Auch die Temperaturwerte einfach leer lassen hat nicht funktioniert.
                                        Hat jemand eine Idee?

                                        Vielen dank schonmal

                                        HomoranH Do not disturb
                                        HomoranH Do not disturb
                                        Homoran
                                        Global Moderator Administrators
                                        wrote on last edited by Homoran
                                        #3247

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

                                        Da jede Beschattung im Dropdown einen Temperatursensor verlangt habe ich bei Temperatur eine Wert von -50 eingetragen. Damit wollte ich erreichen, dass die Beschattung auch im Winter fährt.
                                        Der Adapter Scheint mit dem Negativen wert aber nichts anfangen zu können. eine Fahrt findet nicht statt.
                                        Auch die Temperaturwerte einfach leer lassen hat nicht funktioniert.
                                        Hat jemand eine Idee?

                                        den Lichtsensor als Außentemperatur verwenden

                                        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                        H 1 Reply Last reply
                                        0
                                        • HomoranH Homoran

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

                                          Da jede Beschattung im Dropdown einen Temperatursensor verlangt habe ich bei Temperatur eine Wert von -50 eingetragen. Damit wollte ich erreichen, dass die Beschattung auch im Winter fährt.
                                          Der Adapter Scheint mit dem Negativen wert aber nichts anfangen zu können. eine Fahrt findet nicht statt.
                                          Auch die Temperaturwerte einfach leer lassen hat nicht funktioniert.
                                          Hat jemand eine Idee?

                                          den Lichtsensor als Außentemperatur verwenden

                                          H Offline
                                          H Offline
                                          Harry94
                                          wrote on last edited by
                                          #3248

                                          @homoran
                                          so einfach und doch so genial.... Danke :D
                                          Ich habe aber mittlerweile gefunden warum meine ganzen Tests nicht funktionieren. Der Rollladen bleibt auch nach Adapter Neustart im Manuellen Modus.... Ich weiß das wurde hier schon mal diskutiert aber eine Lösung habe ich nicht gefunden (oder überlesen).
                                          Wie kann ich die Automatik wieder zurücksetzen ohne einen Tag lang zu warten?

                                          HomoranH 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          392

                                          Online

                                          32.6k

                                          Users

                                          82.1k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe