Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Rolladensteuerung errechnen des Standes

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    823

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

Rolladensteuerung errechnen des Standes

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
38 Beiträge 13 Kommentatoren 8.0k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • AlCalzoneA Offline
    AlCalzoneA Offline
    AlCalzone
    Developer
    schrieb am zuletzt editiert von
    #6

    Das sieht soweit gut aus. Würde nur die Vergleiche auf "größer als letzter"/"kleiner als letzter" durch wahr/falsch ersetzen und boolean-States für die Schalter verwenden.

    Warum ich dich speziell nach Blockly-Code gefragt habe:

    Dein Code im ersten Code legt die Gefahr nahe, auf einen typischen NodeJS/JavaScript-Anfängerfehler hereinzufallen. Dazu gabs erst vor kurzem ein Thema.

    Es gibt auf dieser Platform nämlich keine Möglichkeit eine Schleife für eine bestimmte Zeit zu pausieren. Ein Konstrukt wie

    var start = Date.now();
    while (Date.now() - start < 10000) {
    	setTimeout(/* irgendein Schaltvorgang */, 1000);
    }
    
    

    sorgt dafür, dass du geschätzte 1.000.000 Timeouts erstellst, die von 1 bis 11ms nach Start nahezu gleichzeitig ausgeführt werden und dein System lahmlegen.

    Stattdessen musst du (wie du es jetzt gelöst hast) mit setInterval arbeiten oder in jedem Callback vom Timeout einen neuen starten.

    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

    1 Antwort Letzte Antwort
    0
    • W Offline
      W Offline
      wecker6789
      schrieb am zuletzt editiert von
      #7

      Ich danke euch trotzdem.

      Ja das hast du Recht ich bin leider nie dazu gekommen mich mit JavaScript zu befassen.

      Bin immer nur bei C++ geblieben.

      Dadurch war ich froh das es Blockly gibt.

      Aber in die Feinheiten muss ich mich noch ein arbeiten.

      Das mit dem True und False muss ich noch erledigen das stimmt.

      Nun probiere ich mich nur noch an Sommer und Winterzeit.

      Wie macht ihr das ?

      Abhängig vom Datum oder macht ihr zwei Programme und schaltet dann per Hand zum richtigen Zeitpunkt um?

      Ich habe leider keine Temperatur/Helligkeitssensoren außen am Haus.

      Die Lage der elektrischen Rollos würde das eh nicht helfen, da ich selten direkte Sonneneinstrahlung durch diese Fenster habe.

      Mir würde es eher um Einbruchschutz und Energie Gewinnung / Verlust im Winter und Sommer gehen.

      1 Antwort Letzte Antwort
      0
      • rantanplanR Offline
        rantanplanR Offline
        rantanplan
        schrieb am zuletzt editiert von
        #8

        @wecker6789:

        Gibt es denn überhaupt die Möglichkeit in einem Scipt mitlesen zu lassen wie lange ein gewählter Ausgang angesteuert wird? `
        Es gibt so etwas wie "letzte Änderung". Habe aber jetzt kein Beispiel.

        So könnte es auch gehen.
        147_beispiel.png

        @wecker6789:

        Aber wenn die Laufzeiten unterschiedlich sind zum Hoch oder Runter fahren könnte man das ja gegen rechnen. `
        So einfach ist es leider nicht ;)

        Selbst wenn wir sagen "Der Motor läuft in einer Richtung immer gleich schnell"

        Aber das sichtbare Ende des Rollos bewegt sich unterschiedlich schnell.

        Der Durchmesser der Rolle auf dem das Rollo auf- oder abgedreht wird ändert sich.

        Wenn man IMMER NUR KOMPLETT auf und zu fährt geht das.

        Aber wenn man von 0% auf 10% auf 40% auf 20% auf 50% usw. fährt geht's ins Auge.

        Selbst HM Aktoren machen bei so etwas zwischendurch Kontrollfahrten.

        D.h. sie fahren zwischendurch eine Endposition an.

        Grüße

        Rantanplan

        CCU3 / MS Server 2019(VM) / Scripten mit Blockly

        1 Antwort Letzte Antwort
        0
        • W Offline
          W Offline
          wecker6789
          schrieb am zuletzt editiert von
          #9

          Mist stimmt die fahren ja nicht gleichmäßig herunter.

          Den Gedanken hatte ich mal.

          Müsste ich ggf. durch eine Formel lösen die natürlich pro Fenster unterschiedlich wäre.

          ich habe quasi 3 Klassen von Fenstern mit unterschiedlichen Größen.

          Heißt sechs Formeln aufstellen.

          Damit beschäftige ich mich mal morgen.

          Danke euch.

          Und eine Gute Nacht.

          1 Antwort Letzte Antwort
          0
          • rantanplanR Offline
            rantanplanR Offline
            rantanplan
            schrieb am zuletzt editiert von
            #10

            @wecker6789:

            Nun probiere ich mich nur noch an Sommer und Winterzeit.

            Wie macht ihr das ? `
            Anderes Thema. Bitte neuen Thread erstellen.

            Grüße

            Rantanplan

            CCU3 / MS Server 2019(VM) / Scripten mit Blockly

            1 Antwort Letzte Antwort
            0
            • rantanplanR Offline
              rantanplanR Offline
              rantanplan
              schrieb am zuletzt editiert von
              #11

              @wecker6789:

              Heißt sechs Formeln aufstellen.

              Damit beschäftige ich mich mal morgen. `
              Na, auf diese Formel bin ich mal gespannt.

              Durchmesser der Walzenrolle, Wandstärke des Rollos, Durchmesser Rollorolle, Länge des Rollos, Bewegung rauf oder runter usw. usw.usw.

              Falls gelöst und Dein Rechner während der Echtzeitberechnung noch Zeit für etwas hat, bitte hier posten ;)

              Grüße

              Rantanplan

              CCU3 / MS Server 2019(VM) / Scripten mit Blockly

              1 Antwort Letzte Antwort
              0
              • AlCalzoneA Offline
                AlCalzoneA Offline
                AlCalzone
                Developer
                schrieb am zuletzt editiert von
                #12

                Der Geschwindigkeitsunterschied in Abhängigkeit vom Motor-Winkel sollte sich näherungsweise über Volumenkonstanz berechnen lassen.

                "Rohr"volumen des Rollos im Kasten + "Platten"volumen des Rollos vorm Fenster = konstant.
                

                So schrecklich aufwändig ist das nicht in der Berechnung, erfordert aber etwas Hirnschmalz.

                Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                1 Antwort Letzte Antwort
                0
                • rantanplanR Offline
                  rantanplanR Offline
                  rantanplan
                  schrieb am zuletzt editiert von
                  #13

                  @AlCalzone:

                  Der Geschwindigkeitsunterschied in Abhängigkeit vom Motor-Winkel sollte sich näherungsweise über Volumenkonstanz berechnen lassen.

                  "Rohr"volumen des Rollos im Kasten + "Platten"volumen des Rollos vorm Fenster = konstant.
                  

                  So schrecklich aufwändig ist das nicht in der Berechnung, erfordert aber etwas Hirnschmalz. `

                  Ein paar Parameter fehlen mir da aber noch.

                  Allein die "Anfangsparameter" zu ermitteln ist fast unmöglich.

                  Ich habe z.B. auf einer Etage 17 Rollos. Und fast alle sind unterschiedlich (Altbau).

                  Wenn die Rollos unten sind, sind einige mehr oder weniger von der Motorwalze abgerollt.

                  Einige sind komplett abgerollt und 10 bis 20 cm Metallzugbänder liegen zwischen Motorwalze und Rollo.

                  Allein da hast Du schon 2 unterschiedliche "Platten"volumen. So ein Metallband ist nur ca. 1 mm stark.

                  Ich bin kein Mathematiker. Aber immer interessiert. ;)

                  Passt ja alles noch zum Thema dieses Threads :D

                  Vielleicht findest Du (oder jemand anders) die richtige Formel.

                  E=mc zum Quadrat ist ja auch nicht so kompliziert. :D

                  Grüße

                  Rantanplan

                  CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                  1 Antwort Letzte Antwort
                  0
                  • AlCalzoneA Offline
                    AlCalzoneA Offline
                    AlCalzone
                    Developer
                    schrieb am zuletzt editiert von
                    #14

                    @rantanplan:

                    Ich habe z.B. auf einer Etage 17 Rollos. Und fast alle sind unterschiedlich (Altbau). `
                    Ich habe nicht behauptet dass die Parameteridentifikation einfach wäre :lol:

                    Ein Ansatz wäre folgender, ob er funktioniert muss sich noch zeigen:

                    • Formel aufstellen und nach %Position(Zeit, Max-Zeit) umstellen. Mit Max-Zeit könnte die unterschiedliche Geschwindigkeit hoch/runter berücksichtigt werden.

                    • So viele wie mögliche Unbekannte zu einer "Rollladenkonstante" zusammenfassen

                    Für jeden Rollladen wäre dann folgendes zu tun:

                    • Ein paar Messwerte aufstellen durch Anfahren bestimmter Positionen aus dem Nullpunkt

                    • Durch Curve-Fitting die Rollladenkonstante bestimmen.

                    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                    1 Antwort Letzte Antwort
                    0
                    • snotechS Offline
                      snotechS Offline
                      snotech
                      schrieb am zuletzt editiert von
                      #15

                      Hallo,

                      bin gerade beim gleichen Thema, Hat es bei einem denn nun geklappt?

                      Kann jemand von euch denn den fertigen Code hier posten?

                      Ob die Rollladen nun bei 50% reell bei 55% steht ist mir nicht wirklich wichtig und macht sicher auch nur bei sehr langen Rollladen was aus.

                      Durchmesser = Umfang/ Pi

                      Gruß

                      SNO

                      1 Antwort Letzte Antwort
                      0
                      • paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #16

                        @wecker6789:

                        Bin immer nur bei C++ geblieben. `

                        Dann sollte Dir Javascript nicht schwer fallen.

                        @wecker6789:

                        Gibt es denn überhaupt die Möglichkeit in einem Scipt mitlesen zu lassen wie lange ein gewählter Ausgang angesteuert wird?

                        Ja, einfach ist die Abfrage der Einschaltdauer im Zeitpunkt des Ausschaltens.

                        const idHoch = '...';  // Aktor "hoch fahren"
                        const idPos = '...';  // Postion
                        const faktor = ...;  // Faktor Umrechnung dt(ms) --> dPos(%)
                        
                        var pos = getState(idPos).val; // Position bei Skriptstart
                        
                        on(idHoch, function(dp) {
                           if(!dp.state.val) {  // Aktor schaltet aus
                              var thoch = dp.state.lc - dp.oldState.lc;  // Einschaltdauer im ms
                              pos = pos + faktor * thoch;  // neue Postion
                              setState(idPos, pos, true);
                           }
                        });
                        

                        Runterfahren funktioniert analog.

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        1 Antwort Letzte Antwort
                        0
                        • snotechS Offline
                          snotechS Offline
                          snotech
                          schrieb am zuletzt editiert von
                          #17

                          Ja wie bekomme ich dies nun in Blocky? :?:

                          Bei Import zeigt er mir einen Fehler, weil es ja kein Java ist.

                          Gruß SNO

                          1 Antwort Letzte Antwort
                          0
                          • B Offline
                            B Offline
                            bishop
                            schrieb am zuletzt editiert von
                            #18

                            das würde mich auch interessieren wie man das hin bekommt.

                            1 Antwort Letzte Antwort
                            0
                            • snotechS Offline
                              snotechS Offline
                              snotech
                              schrieb am zuletzt editiert von
                              #19

                              Hallo

                              ich habe etwas gebraucht um nun alles zu programieren.

                              Man braucht unter Objekten 4 Variablen. Im meinen fall sind dies:

                              Rollo_Bad (Art:Zahl 0-100)

                              Rollo_Bad_Richtung (Art: Zeichenkette auf/zu)

                              Rollo_Bad_Schalter (Art: Logikwert)

                              Rollo_Bad_Soll (Art:Zahl 0-100)

                              https://www.bilder-upload.eu/bild-b720ea-1541794454.png.html ~~Die "Schalter" sind:

                              Rollade Bad zu

                              Rollade Bad auf

                              zum Importieren im Skript:
                              ` > <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">

                              <block type="on" id="-hk[!J4+#8`b#1q/4]@1" x="-37" y="-337"><field name="OID">admin.0.Rollo_Bad_Soll</field>

                              <field name="CONDITION">ne</field>

                              <statement name="STATEMENT"><block type="timeouts_clearinterval" id="f]HBYG*K(=-v.dS-g?VD"><field name="NAME">unsereSchleife</field>

                              <next><block type="comment" id="awGc9FNE!0|4f8r7)jJk"><field name="COMMENT">Falls Schalter ein = ein dann schalte Motor aus und Schalter aus</field>

                              <next><block type="controls_if" id="MCuL(lHsfnfQDj}DV2hl"><value name="IF0"><block type="get_value" id="-Gl~mJe;TN+k%(Iw^x(2"><field name="ATTR">val</field>

                              <field name="OID">admin.0.Rollo_Bad_Schalter</field></block></value>

                              <statement name="DO0"><block type="update" id="Zm5UmM@kZow{jwL]./^:"><mutation delay_input="false"></mutation>

                              <field name="OID">admin.0.Neues_Objekt</field>

                              <field name="WITH_DELAY">FALSE</field>

                              <value name="VALUE"><block type="logic_boolean" id="V2D}sN!5!T{+UoJzc%PS"><field name="BOOL">TRUE</field></block></value>

                              <next><block type="controls_if" id="tYCDMgP;ffC`1d6h(;u)"><mutation else="1"></mutation>

                              <value name="IF0"><block type="logic_compare" id="zTc+?_%f1zN{5?7Txyy;"><field name="OP">EQ</field>

                              <value name="A"><block type="get_value" id="f/%q~^7}G8Jet6M,oT+~"><field name="ATTR">val</field>

                              <field name="OID">admin.0.Rollo_Bad_Richtung</field></block></value>

                              <value name="B"><block type="text" id="1|b`xNcJE)8E5oc[f5O]"><field name="TEXT">zu</field></block></value></block></value>

                              <statement name="DO0"><block type="toggle" id="{A:CeIf?#uKBIf{9NhxX"><mutation delay_input="false"></mutation>

                              <field name="OID">broadlink.0.learnedSignals.Rollade Bad zu</field>

                              <field name="WITH_DELAY">FALSE</field></block></statement>

                              <statement name="ELSE"><block type="toggle" id="|9,:zHv*YDCAt~Bsu9mI"><mutation delay_input="false"></mutation>

                              <field name="OID">broadlink.0.learnedSignals.Rollade Bad auf</field>

                              <field name="WITH_DELAY">FALSE</field></block></statement>

                              <next><block type="control" id="]Rd=9XO%jtM8E6.x*yGD"><mutation delay_input="false"></mutation>

                              <field name="OID">admin.0.Rollo_Bad_Schalter</field>

                              <field name="WITH_DELAY">FALSE</field>

                              <value name="VALUE"><block type="logic_boolean" id="[[M#TNHtXz}W6CB}d+N-"><field name="BOOL">FALSE</field></block></value></block></next></block></next></block></statement>

                              <next><block type="variables_set" id="B7o=+#^;E:inQxfXLXx="><field name="VAR">counter</field>

                              <value name="VALUE"><block type="get_value" id="Yd,v6dy3n+o#NB`g:8~Q"><field name="ATTR">val</field>

                              <field name="OID">admin.0.Rollo_Bad</field></block></value>

                              <next><block type="comment" id="ut(S}7vCe;0gXa;1A86;"><field name="COMMENT">Prüfe Richtung / Schalte Motor / Schalte Schalter / Speicher Richtung</field>

                              <next><block type="controls_if" id="}Tc[x6-r-We.*]#7;jPP"><mutation elseif="1"></mutation>

                              <value name="IF0"><block type="logic_compare" id="h(U(pOI6[8Bcr{J_Mldf"><field name="OP">LT</field>

                              <value name="A"><block type="get_value" id="V6d+wMK88Xr?le}6U#o!"><field name="ATTR">val</field>

                              <field name="OID">admin.0.Rollo_Bad_Soll</field></block></value>

                              <value name="B"><block type="get_value" id="kHzj#w6l2ceAJ1|wBUlv"><field name="ATTR">val</field>

                              <field name="OID">admin.0.Rollo_Bad</field></block></value></block></value>

                              <statement name="DO0"><block type="variables_set" id="!wFi^Iw0}bFVGTf}r?/z"><field name="VAR">richtung</field>

                              <value name="VALUE"><block type="math_number" id="S:#VTX+#[dIZU:0WG=b{"><field name="NUM">-1</field></block></value>

                              <next><block type="toggle" id="J(-*+5mgUSiz%!E@ljs7"><mutation delay_input="true"></mutation>

                              <field name="OID">broadlink.0.learnedSignals.Rollade Bad zu</field>

                              <field name="WITH_DELAY">TRUE</field>

                              <field name="DELAY_MS">700</field>

                              <field name="UNIT">ms</field>

                              <field name="CLEAR_RUNNING">FALSE</field>

                              <next><block type="control" id="Z%#8`8Vzxg6{tDeNP[x_"><mutation delay_input="false"></mutation>

                              <field name="OID">admin.0.Rollo_Bad_Schalter</field>

                              <field name="WITH_DELAY">FALSE</field>

                              <value name="VALUE"><block type="logic_boolean" id="MmWqv/n8#k73vUL`BpYr"><field name="BOOL">TRUE</field></block></value>

                              <next><block type="update" id=";%p[[s2Gwwk+aVAgRwO#"><mutation delay_input="false"></mutation>

                              <field name="OID">admin.0.Rollo_Bad_Richtung</field>

                              <field name="WITH_DELAY">FALSE</field>

                              <value name="VALUE"><block type="text" id="Xd-dwd4As,E1C.:p.!Js"><field name="TEXT">zu</field></block></value></block></next></block></next></block></next></block></statement>

                              <value name="IF1"><block type="logic_compare" id="JBN*igDsyu|e0Am!R8Yn"><field name="OP">GT</field>

                              <value name="A"><block type="get_value" id="bNZ8{hmyy!w(iS)DjqQ_"><field name="ATTR">val</field>

                              <field name="OID">admin.0.Rollo_Bad_Soll</field></block></value>

                              <value name="B"><block type="get_value" id="2Ye37!J|Sunn8{+g/Kjc"><field name="ATTR">val</field>

                              <field name="OID">admin.0.Rollo_Bad</field></block></value></block></value>

                              <statement name="DO1"><block type="variables_set" id="o0nK17BbK[o8j|Jsmc_1"><field name="VAR">richtung</field>

                              <value name="VALUE"><block type="math_number" id="Ns-Qe5gi1*(/nHScjWkZ"><field name="NUM">1</field></block></value>

                              <next><block type="toggle" id="lpj{5gS?^hg~4M,fdfk|"><mutation delay_input="true"></mutation>

                              <field name="OID">broadlink.0.learnedSignals.Rollade Bad auf</field>

                              <field name="WITH_DELAY">TRUE</field>

                              <field name="DELAY_MS">700</field>

                              <field name="UNIT">ms</field>

                              <field name="CLEAR_RUNNING">FALSE</field>

                              <next><block type="control" id="TfpbWV?LIl[Df%~^/~rQ"><mutation delay_input="false"></mutation>

                              <field name="OID">admin.0.Rollo_Bad_Schalter</field>

                              <field name="WITH_DELAY">FALSE</field>

                              <value name="VALUE"><block type="logic_boolean" id="[D^-5I=-zE0Qc;wW|xo/"><field name="BOOL">TRUE</field></block></value>

                              <next><block type="update" id="}b|}p_*@pc(#Xu=0;tW8"><mutation delay_input="false"></mutation>

                              <field name="OID">admin.0.Rollo_Bad_Richtung</field>

                              <field name="WITH_DELAY">FALSE</field>

                              <value name="VALUE"><block type="text" id="b;KFd90|IQEuaN(?R;"><field name="TEXT">auf</field></block></value></block></next></block></next></block></next></block></statement>

                              <next><block type="comment" id="b_;Ju]{ELW;i]{59,fG]"><field name="COMMENT">Zustand aktualisieren und Ende wenn Soll erreicht oder max (min fehlt noch)</field>

                              <next><block type="timeouts_setinterval" id="w]h?In(s!~d]I7QmfTd;"><field name="NAME">unsereSchleife</field>

                              <field name="INTERVAL">700</field>

                              <field name="UNIT">ms</field>

                              <statement name="STATEMENT"><block type="math_change" id="Fqr?I-7F()/dgF}wm:k9"><field name="VAR">counter</field>

                              <value name="DELTA"><shadow type="math_number" id=":c]qbMuR*(79!fD=t8l*"><field name="NUM">1</field></shadow>

                              <block type="variables_get" id="GNi4=q!R,!_Y*NJe7mcj"><field name="VAR">richtung</field></block></value>

                              <next><block type="control_ex" id="+BX6DN?T!Mk~`;W-Gzdf"><field name="TYPE">true</field>

                              <field name="CLEAR_RUNNING">FALSE</field>

                              <value name="OID"><shadow type="field_oid" id="{r/:GqC=J.*~jm;B.EmA"><field name="oid">admin.0.Rollo_Bad</field></shadow></value>

                              <value name="VALUE"><shadow type="logic_boolean" id="uPjr7F%~]C)m-@x#fCY8"><field name="BOOL">TRUE</field></shadow>

                              <block type="variables_get" id="4b2yl12okSme#F1|M5`r"><field name="VAR">counter</field></block></value>

                              <value name="DELAY_MS"><shadow type="math_number" id="K@BUQtiO,0ixd^%~xX|y"><field name="NUM">0</field></shadow></value>

                              <next><block type="controls_if" id="|PmR)v+f1fTNuF-jwq/t"><value name="IF0"><block type="logic_compare" id=".=a8}2|b=IagAT(IcHvn"><field name="OP">EQ</field>

                              <value name="A"><block type="variables_get" id="oJ]wUkRi305|L4Eb=R.7"><field name="VAR">counter</field></block></value>

                              <value name="B"><block type="get_value" id="NJ0i:.g}8z8nK_iz~~"><field name="ATTR">val</field>

                              <field name="OID">admin.0.Rollo_Bad_Soll</field></block></value></block></value>

                              <statement name="DO0"><block type="controls_if" id="?)00a5]PBzo!.-e@uP8_"><mutation elseif="1"></mutation>

                              <value name="IF0"><block type="logic_compare" id="bK#T3t10hj|iY/ynh{#*"><field name="OP">EQ</field>

                              <value name="A"><block type="variables_get" id="}~P#d6He`.2OnQJpIQel"><field name="VAR">richtung</field></block></value>

                              <value name="B"><block type="math_number" id="j:d_/wiP}M^B^rF)@+~p"><field name="NUM">-1</field></block></value></block></value>

                              <statement name="DO0"><block type="toggle" id="]eWfOnW!.Vyqlz.RC?ku"><mutation delay_input="false"></mutation>

                              <field name="OID">broadlink.0.learnedSignals.Rollade Bad zu</field>

                              <field name="WITH_DELAY">FALSE</field>

                              <next><block type="control" id="(~oMiIm[VMzq!iJLS.zz"><mutation delay_input="false"></mutation>

                              <field name="OID">admin.0.Rollo_Bad_Schalter</field>

                              <field name="WITH_DELAY">FALSE</field>

                              <value name="VALUE"><block type="logic_boolean" id="/wOr*aMbI~Y#+|`9Nk@k"><field name="BOOL">FALSE</field></block></value></block></next></block></statement>

                              <value name="IF1"><block type="logic_compare" id="u!^KI*te/sQ)-FCt`WEQ"><field name="OP">EQ</field>

                              <value name="A"><block type="variables_get" id=".rNO3Y}X4S;?1.5^MTCs"><field name="VAR">richtung</field></block></value>

                              <value name="B"><block type="math_number" id="MU`jx6Ns=o};Qvl!1o_7"><field name="NUM">1</field></block></value></block></value>

                              <statement name="DO1"><block type="toggle" id="Mq3c}.%ajCvNiDF-Ao83"><mutation delay_input="false"></mutation>

                              <field name="OID">broadlink.0.learnedSignals.Rollade Bad auf</field>

                              <field name="WITH_DELAY">FALSE</field>

                              <next><block type="control" id="%c|Ve@)S+w!iCqNEE.1N"><mutation delay_input="false"></mutation>

                              <field name="OID">admin.0.Rollo_Bad_Schalter</field>

                              <field name="WITH_DELAY">FALSE</field>

                              <value name="VALUE"><block type="logic_boolean" id="*jWSJ|l=0XP8-GUNjVCd"><field name="BOOL">FALSE</field></block></value></block></next></block></statement>

                              <next><block type="timeouts_clearinterval" id="DCt0zTxKV#udTsqNd90x"><field name="NAME">unsereSchleife</field></block></next></block></statement>

                              <next><block type="controls_if" id="WJDqh;fUDlnlZBuXoLp{"><value name="IF0"><block type="logic_compare" id="XeA0m#q.5UI%J1]jW6"><field name="OP">EQ</field>

                              <value name="A"><block type="variables_get" id="=h[@TF=f#}NWpW{ugFa["><field name="VAR">counter</field></block></value>

                              <value name="B"><block type="math_number" id="@|9RCDK(KI,3EB+w!y,+"><field name="NUM">101</field></block></value></block></value>

                              <statement name="DO0"><block type="timeouts_clearinterval" id="*Y6H)Sz]Vl717wjw7LP#"><field name="NAME">unsereSchleife</field></block></statement></block></next></block></next></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement>

                              <next><block type="comment" id="q?Sa)Lu@zN|9etj.9YG}"><field name="COMMENT">rolllade variabel</field></block></next></block></xml> `

                              Ich hoffe ihr könnt was damit anfangen.

                              Rollo_Bad_Soll (Art:Zahl 0-100) kann nun in Vis eingefügt werden und schon funktioniert es. :D~~ 5992_rolllade.png

                              A 1 Antwort Letzte Antwort
                              0
                              • S Offline
                                S Offline
                                Skrella
                                schrieb am zuletzt editiert von
                                #20

                                Hallo,

                                Ich hänge gerade etwas mit meiner Rolladensteuerung in der Luft und wäre über frischen Input / Erfahrungsaustausch sehr dankbar.

                                Hier kurz etwas zum aktuellen Stand der Dinge:

                                Ich habe Jarolift Rolladen im ganzen Haus verbaut und steuere diese über ein an der Jarolift-Fernbedienung angeschlossenes Sonoff 4Ch Modul.

                                Die Darstellung der Rolldadenposition habe ich über ein an der Rollade befestigten Fensterkontakt und seitlich an der Führungsschiene angebrachte Magnete realisiert. Fährt das Rollo runter, startet ein Skript und zählt die abgefahrenen Magnete. Anschließend wird die Position in VIS über das hqwidget Window and Shutter dargestellt. Das funktioniert soweit auch ganz gut…

                                Jetzt zu meinem Prolem:

                                Momentan dient das HQ-Widget "nur" als Output/Anzeige der aktuellen Position. Über das Widget kann man nun ja auch einen Wert dem Rollo übergeben. Das wollte ich nun noch mit in VIS implementieren und stoße an meine Grenzen. Da ich nun ein und dieselbe Variable (Rolloposition) sowohl als Output für die visuelle Anzeige in VIS als auch als Input für das ansteuern des Rollos habe. Das klappt natürlich nicht... zumindest weiss ich nicht wie :oops:

                                Ist es möglich z.B. zwei hqwidget's in VIS übereinander zulegen, das untere (z-Ebene 0) nur als optische Anzeige zu verwenden (wie es momentan schon läuft) und das zweite (z-Ebene 1) transparent darüber zu legen? Über das transparente würde dann der Input für die Rolloposition erfolgen. Bedeutet natürlich auch, dass das zweite Widget nur in der Fenter-Anzeige transparent sein darf. Nachdem man darauf klickt und sich das Rollo offnet in dem man die Position übergibt, müsste es natürlich sichtbar werden. Das hätte den Charme, dass ich einem Rollo 2 Variablen zuordnen könnte.

                                Vielleicht gibt es ja noch eine elegantere Methode mein Vorhaben umzusetzen... Bin für jede Hilfe sehr Dankbar

                                1 Antwort Letzte Antwort
                                0
                                • snotechS Offline
                                  snotechS Offline
                                  snotech
                                  schrieb am zuletzt editiert von
                                  #21

                                  Inerreasnnter Ansatz mit den Fensterkontakt aber is dies nicht zu kostenintensiev?

                                  Wie viele Kontakte hast du den an einer Rollade verbaut?

                                  Mit den Variabelen wäre es doch einfacher die zu trennen.

                                  Gruß

                                  SNO

                                  1 Antwort Letzte Antwort
                                  0
                                  • J Offline
                                    J Offline
                                    Jan1
                                    schrieb am zuletzt editiert von
                                    #22

                                    Also das ganze über die Zeit zu bestimmen ist recht simpel und wenn mans schon mit nem Sonoff macht, gibt's von StefanBode eine Fork der Tasmota, da braucht man nicht mal ein Script dazu, weil das schon die Tasmota intern macht. Einziges Problem, der Sonoff Adapter verwendet das MQT Topic der aktuellen Position des Rollladen von Tasmota nicht und legt folglich auch keinen DP für den aktuellen Stand an. Dazu habe ich aber auch schon ein Issues auf Github geschrieben, allerdings hat sich dazu leider noch keiner geäußert.

                                    1 Antwort Letzte Antwort
                                    0
                                    • D Offline
                                      D Offline
                                      dos1973
                                      schrieb am zuletzt editiert von
                                      #23

                                      @Skrella:

                                      Die Darstellung der Rolldadenposition habe ich über ein an der Rollade befestigten Fensterkontakt und seitlich an der Führungsschiene angebrachte Magnete realisiert. Fährt das Rollo runter, startet ein Skript und zählt die abgefahrenen Magnete. Anschließend wird die Position in VIS über das hqwidget Window and Shutter dargestellt. Das funktioniert soweit auch ganz gut… `

                                      Du Fuchs!! Das finde ich super genial,

                                      du hast den Kontakt aussen am Rolladen angebracht? Welche hast du genutzt und wie siehts mit der Batterie Laufzeit aus, mit Hinblick auf Minustemperaturen im Winter

                                      1 Antwort Letzte Antwort
                                      0
                                      • J Offline
                                        J Offline
                                        Jan1
                                        schrieb am zuletzt editiert von
                                        #24

                                        Na dann beachte mal den Aufwand wenn so ca. 15 Rollläden auswerten willst :lol:

                                        Warum nicht der FW das überlassen und einfach den DP danach fragen?

                                        1 Antwort Letzte Antwort
                                        0
                                        • S Offline
                                          S Offline
                                          Skrella
                                          schrieb am zuletzt editiert von
                                          #25

                                          @snotech:

                                          Inerreasnnter Ansatz mit den Fensterkontakt aber is dies nicht zu kostenintensiev?

                                          Wie viele Kontakte hast du den an einer Rollade verbaut?

                                          Mit den Variabelen wäre es doch einfacher die zu trennen.

                                          Gruß

                                          SNO `

                                          ein Fensterkontakt (Xiaomi) und an der Seite 4 Magnete geklebt die beim vobeifahren des Rollos den Fensterkontakt auslösen.

                                          Zum trennen der Variablen, wüsste ich im Moment nicht wie. Über das Rolladen-Widget habe ich momentan die Ausgabe und möchte in Zukunft darüber auch das Rollo steuern… sprich ich hätte eine zweite Variable. Wie soll das gehen?

                                          Gruß

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          389

                                          Online

                                          32.6k

                                          Benutzer

                                          81.9k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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