ioBroker Forum


Nutzungsbedingungen |Datenschutzrichtlinie
Cloud |Dokumentation
Aktuelle Zeit: 19.11.2017, 09:29

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 16 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: (Frage) logik Problem Blocky
BeitragVerfasst: 14.11.2017, 17:03 
Offline
professional

Registriert: 22.03.2016, 15:42
Beiträge: 151
Hat sich bedankt: 27 Mal
Danksagung erhalten: 6 Mal
Hallo,
ich komme gerade nicht weiter:
Ich möchte nen Schalter für zwei Rolladen bauen. Die Rolladen sollen immer gemeinsam fahren. Sie fahren immer auf 0%- oder 100%-Stellung. Der Schalter soll nur einen Pfeil runter zeigen, wenn die Rolladen oben sind, und nur einen Pfeil nach oben, wenn sie unten sind.
Ich habe gerade schon mit zwei Variablen gebastelt, einer für den Status, einer für den Taster, aber irgendwie sind mir die Bulb-funktionen (Extrasteuerung) auch zu unklar um da richtig weiter zu kommen.#
Vielleicht habt ihr ja einen viel besseren Weg... ich hoffe einfach mal! :-)


Nach oben
   
 Betreff des Beitrags: Re: (Frage) logik Problem Blocky
BeitragVerfasst: 14.11.2017, 18:25 
Offline
professional

Registriert: 22.02.2017, 16:31
Beiträge: 339
Wohnort: Rathenow
Hat sich bedankt: 20 Mal
Danksagung erhalten: 19 Mal
Hast du HM Aktoren oder andere? Wenn andere zeig doch mal die Datenpuntke davon. Bei HM kannst auf die Bewegung triggern und den anderen Rollanden mitfahren lassen.

Enrico


Nach oben
   
 Betreff des Beitrags: Re: (Frage) logik Problem Blocky
BeitragVerfasst: 14.11.2017, 20:04 
Offline
professional

Registriert: 22.03.2016, 15:42
Beiträge: 151
Hat sich bedankt: 27 Mal
Danksagung erhalten: 6 Mal
RappiRN hat geschrieben:
Hast du HM Aktoren oder andere? Wenn andere zeig doch mal die Datenpuntke davon. Bei HM kannst auf die Bewegung triggern und den anderen Rollanden mitfahren lassen.
Ja, habe Homamtic. Wie würdest du das machen?

Ich hab jetzt gerade mal (ohne deinen Hinweis) diesen Block gemacht:
Dateianhang:
blocky_rolladen_1.GIF
blocky_rolladen_1.GIF [ 44.09 KiB | 79 mal betrachtet ]


Dann funktioniert zwar wenn ich den schalter "rolladen_kueche_oben" umschalte, und ich kann die Grafik einfach über true/false umswitchen, aber was passiert, wenn jemand von Hand die Rolladen bedient? Dann stimmt plötzlich die Variable nicht und die Rolladen fahren direkt wieder zurück... ??


Nach oben
   
 Betreff des Beitrags: Re: (Frage) logik Problem Blocky
BeitragVerfasst: 14.11.2017, 20:18 
Offline
professional

Registriert: 22.03.2016, 15:42
Beiträge: 151
Hat sich bedankt: 27 Mal
Danksagung erhalten: 6 Mal
Mit diesem zusätzlichen Block sollte es gehen...
Dateianhang:
blocky_rolladen_2.GIF
blocky_rolladen_2.GIF [ 40.17 KiB | 77 mal betrachtet ]

Dann wird bei Veränderungen der Rolladen immer 1 Minute gewartet (bis sie zum Ziel gefahren sind) und dann wird bei Abweichungen der Datenpunkt umgeschaltet.
Oder habe etwas vergessen?


Nach oben
   
 Betreff des Beitrags: Re: (Frage) logik Problem Blocky
BeitragVerfasst: 14.11.2017, 20:21 
Offline
professional

Registriert: 10.08.2014, 19:15
Beiträge: 851
Hat sich bedankt: 37 Mal
Danksagung erhalten: 67 Mal
mrMuppet hat geschrieben:
Dann funktioniert zwar wenn ich den schalter "rolladen_kueche_oben" umschalte, und ich kann die Grafik einfach über true/false umswitchen, aber was passiert, wenn jemand von Hand die Rolladen bedient? Dann stimmt plötzlich die Variable nicht und die Rolladen fahren direkt wieder zurück... ??

Nun,dann wird 1x die Optik (Widget) nicht stimmen.
Du fragst ja, richtigerweise, den Level vorher ab.

Grüße

_________________
Rantanplan
CCU2 (2.29.18) * ioBroker.vis
ioBrocker auf Win10/64 bit Enterprise (VM)
Scripten mit Blockly


Nach oben
   
 Betreff des Beitrags: Re: (Frage) logik Problem Blocky
BeitragVerfasst: 14.11.2017, 20:25 
Offline
professional

Registriert: 10.08.2014, 19:15
Beiträge: 851
Hat sich bedankt: 37 Mal
Danksagung erhalten: 67 Mal
mrMuppet hat geschrieben:
Dann wird bei Veränderungen der Rolladen immer 1 Minute gewartet (bis sie zum Ziel gefahren sind) und dann wird bei Abweichungen der Datenpunkt umgeschaltet.
Oder habe etwas vergessen?

???? :roll:
Sage doch einfach mal in Worten was Dein Script macht.

Grüße

_________________
Rantanplan
CCU2 (2.29.18) * ioBroker.vis
ioBrocker auf Win10/64 bit Enterprise (VM)
Scripten mit Blockly


Nach oben
   
 Betreff des Beitrags: Re: (Frage) logik Problem Blocky
BeitragVerfasst: 14.11.2017, 21:09 
Offline
professional

Registriert: 22.02.2017, 16:31
Beiträge: 339
Wohnort: Rathenow
Hat sich bedankt: 20 Mal
Danksagung erhalten: 19 Mal
Ich bin noch bis 22 Uhr arbeiten, wenn ich zu Hause bin, schreib ich mal meine Gedanken dazu.

Enrico


Nach oben
   
BeitragVerfasst: 14.11.2017, 21:13 
Offline
professional

Registriert: 22.03.2016, 15:42
Beiträge: 151
Hat sich bedankt: 27 Mal
Danksagung erhalten: 6 Mal
RappiRN hat geschrieben:
Ich bin noch bis 22 Uhr arbeiten, wenn ich zu Hause bin, schreib ich mal meine Gedanken dazu.

Enrico
Sehr gerne! Danke.

Gesendet von meinem ONEPLUS A3003 mit Tapatalk


Nach oben
   
BeitragVerfasst: 14.11.2017, 21:49 
Offline
professional

Registriert: 10.08.2014, 19:15
Beiträge: 851
Hat sich bedankt: 37 Mal
Danksagung erhalten: 67 Mal
mrMuppet hat geschrieben:
Sehr gerne! Danke.


Stell doch mal einen Export rein.
Dann können wir besser basteln.

Grüße

_________________
Rantanplan
CCU2 (2.29.18) * ioBroker.vis
ioBrocker auf Win10/64 bit Enterprise (VM)
Scripten mit Blockly


Nach oben
   
 Betreff des Beitrags: Re: (Frage) logik Problem Blocky
BeitragVerfasst: 14.11.2017, 22:40 
Offline
professional

Registriert: 22.03.2016, 15:42
Beiträge: 151
Hat sich bedankt: 27 Mal
Danksagung erhalten: 6 Mal
Gerne.

Spoiler: Show hidden text
Code:
<xml xmlns="http://www.w3.org/1999/xhtml">
  <block type="on_ext" id="!scELpDHGSp.3mtbL]Fl" x="337" y="-63">
    <mutation items="1"></mutation>
    <field name="CONDITION">ne</field>
    <field name="ACK_CONDITION"></field>
    <value name="OID0">
      <shadow type="field_oid" id="~=)Z(*cdxLCdqgfolX*,">
        <field name="oid">javascript.0.virtuelle_datenpunkte.rolladen_kueche_:oben</field>
      </shadow>
    </value>
    <statement name="STATEMENT">
      <block type="controls_if" id="tjFfAB)f!x{S3xOz9]`[">
        <value name="IF0">
          <block type="logic_compare" id=";Kc@i|8PVcr6TvWcSO0q">
            <field name="OP">EQ</field>
            <value name="A">
              <block type="get_value" id="Ys7!z9P@QrC*g9n7B/@.">
                <field name="ATTR">val</field>
                <field name="OID">javascript.0.virtuelle_datenpunkte.rolladen_kueche_:oben</field>
              </block>
            </value>
            <value name="B">
              <block type="logic_boolean" id="iHab!h_@Qv3w]Aj3=;:%">
                <field name="BOOL">TRUE</field>
              </block>
            </value>
          </block>
        </value>
        <statement name="DO0">
          <block type="controls_if" id="KM8EhQNmz7u~%Se,WH#;">
            <value name="IF0">
              <block type="logic_compare" id="@]nTuG+V-Wheas|7mp,8">
                <field name="OP">EQ</field>
                <value name="A">
                  <block type="get_value" id="m{~4/%(,RMGKAz4nEL/]">
                    <field name="ATTR">val</field>
                    <field name="OID">hm-rpc.0.JEQ0109063.1.LEVEL</field>
                  </block>
                </value>
                <value name="B">
                  <block type="math_number" id="Po{2+%~Pu`W6ARop}EwZ">
                    <field name="NUM">0</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="control" id="O=O)y^58]vlEy|=Oi`oG">
                <mutation delay_input="false"></mutation>
                <field name="OID">hm-rpc.0.JEQ0109063.1.LEVEL</field>
                <field name="WITH_DELAY">FALSE</field>
                <value name="VALUE">
                  <block type="math_number" id="4B*)/!]=*Rc4GutueA^x">
                    <field name="NUM">100</field>
                  </block>
                </value>
                <next>
                  <block type="control" id="s8Iir/Q^mWa{F~%Elq/}">
                    <mutation delay_input="false"></mutation>
                    <field name="OID">hm-rpc.0.JEQ0107480.1.LEVEL</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="math_number" id="u1TLD*+](oc%@h;:8s/R">
                        <field name="NUM">100</field>
                      </block>
                    </value>
                  </block>
                </next>
              </block>
            </statement>
          </block>
        </statement>
        <next>
          <block type="controls_if" id="pKZ56)aRj;fK#/w/s^x%">
            <value name="IF0">
              <block type="logic_compare" id="~=(D0{QQ,HI[qW5l+5Is">
                <field name="OP">EQ</field>
                <value name="A">
                  <block type="get_value" id="O7?d05+Lz/*6Sy~8QRrl">
                    <field name="ATTR">val</field>
                    <field name="OID">javascript.0.virtuelle_datenpunkte.rolladen_kueche_:oben</field>
                  </block>
                </value>
                <value name="B">
                  <block type="logic_boolean" id="4n/_m%haum^#e?2s!PZC">
                    <field name="BOOL">FALSE</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="controls_if" id="c+lNW=k)([MRHBM`709[">
                <value name="IF0">
                  <block type="logic_compare" id="30766Znt34%T;Kx9*J~?">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="get_value" id=")Or4_K5/ILKjtiS6Eky!">
                        <field name="ATTR">val</field>
                        <field name="OID">hm-rpc.0.JEQ0109063.1.LEVEL</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="math_number" id="zph~k]Di:s19~#48Yng3">
                        <field name="NUM">100</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="control" id="5!aUf8NkB(/W`)hGnF-5">
                    <mutation delay_input="false"></mutation>
                    <field name="OID">hm-rpc.0.JEQ0109063.1.LEVEL</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="math_number" id="JS|oFaQ,@_|.h9WkTKOd">
                        <field name="NUM">0</field>
                      </block>
                    </value>
                    <next>
                      <block type="control" id="a-^g2!M),g%j?fi~)i@7">
                        <mutation delay_input="false"></mutation>
                        <field name="OID">hm-rpc.0.JEQ0107480.1.LEVEL</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="math_number" id="^?BV^lwKI.-6]]sA1W`:">
                            <field name="NUM">0</field>
                          </block>
                        </value>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </statement>
          </block>
        </next>
      </block>
    </statement>
    <next>
      <block type="on_ext" id="o;pq.{)MMWlN#u:d|l7b">
        <mutation items="1"></mutation>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <value name="OID0">
          <shadow type="field_oid" id="EN6WTm@jpMzd!%4X/Mk(">
            <field name="oid">hm-rpc.0.JEQ0109063.1.LEVEL</field>
          </shadow>
        </value>
        <statement name="STATEMENT">
          <block type="timeouts_settimeout" id="K!=m(|?2;QssSe(V-U{L">
            <field name="NAME">timeout</field>
            <field name="DELAY">1</field>
            <field name="UNIT">min</field>
            <statement name="STATEMENT">
              <block type="controls_if" id="X!BS92E|)e:U]v;;x|SP">
                <value name="IF0">
                  <block type="logic_compare" id="hb2gfXdjQcNm9;p7aYu}">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="get_value" id="a{jIvxX(!P~DXhfxMt_w">
                        <field name="ATTR">val</field>
                        <field name="OID">javascript.0.virtuelle_datenpunkte.rolladen_kueche_:oben</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_boolean" id=";.4wyL9:o2FzO9D({kDd">
                        <field name="BOOL">TRUE</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="controls_if" id="+WO^;%uM{yDld8KpVN.7">
                    <value name="IF0">
                      <block type="logic_compare" id="jOrs=8@MLo![35/%@,[)">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="EU-XFS9q*Wu0Li_KI`13">
                            <field name="ATTR">val</field>
                            <field name="OID">hm-rpc.0.JEQ0109063.1.LEVEL</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="math_number" id="zhwR@1A8dbnGp+/Ig9HE">
                            <field name="NUM">0</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="control" id="K[){pmIa#0y!8!F!;Ztk">
                        <mutation delay_input="false"></mutation>
                        <field name="OID">javascript.0.virtuelle_datenpunkte.rolladen_kueche_:oben</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="logic_boolean" id="F]OOPX~sstIRQ!Tvt`{M">
                            <field name="BOOL">FALSE</field>
                          </block>
                        </value>
                      </block>
                    </statement>
                  </block>
                </statement>
                <next>
                  <block type="controls_if" id="q_]V~qgBZyPSS.TKas;0">
                    <value name="IF0">
                      <block type="logic_compare" id="Tk9b/AN=b#97tRD_q^Gm">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="`7V9zE[FR^.^czOxR;m}">
                            <field name="ATTR">val</field>
                            <field name="OID">javascript.0.virtuelle_datenpunkte.rolladen_kueche_:oben</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_boolean" id="SIfgPjex~N(Zd6M6n:7q">
                            <field name="BOOL">FALSE</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="controls_if" id="^{l^@LGHW*7]42ZAty:l">
                        <value name="IF0">
                          <block type="logic_compare" id=";T_g!zFZR:;?Ex`o#(h2">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="get_value" id="EU;WYFgN`#=ISwmxYrVv">
                                <field name="ATTR">val</field>
                                <field name="OID">hm-rpc.0.JEQ0109063.1.LEVEL</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_number" id="X.:_9U3X~1hEQ(f(x]^B">
                                <field name="NUM">100</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <statement name="DO0">
                          <block type="control" id="99:l#fPN/NPtCAxzg~r|">
                            <mutation delay_input="false"></mutation>
                            <field name="OID">javascript.0.virtuelle_datenpunkte.rolladen_kueche_:oben</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="j+=.Hzpz0}1o[ACRgqn4">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                          </block>
                        </statement>
                      </block>
                    </statement>
                  </block>
                </next>
              </block>
            </statement>
          </block>
        </statement>
      </block>
    </next>
  </block>
</xml>


Nach oben
   
 Betreff des Beitrags: Re: (Frage) logik Problem Blocky
BeitragVerfasst: 14.11.2017, 22:55 
Offline
professional

Registriert: 22.02.2017, 16:31
Beiträge: 339
Wohnort: Rathenow
Hat sich bedankt: 20 Mal
Danksagung erhalten: 19 Mal
So, ich fange mal an, wie ich deine Anforderung verstanden habe.
Du möchtest mit einem Schalter im vis beide Rollladen schalten, soll das auch so sein, wenn du direkt am Taster schaltest, oder soll diese "Zwangsgemeinsamkeit" abschaltbar sein, z.B. für Wartungszwecke? Ich würde das so machen.
Wenn du beide Fragen mit JA beantworten solltest, kannst du auf diesen Datenpunkt reagieren:

Spoiler: Show hidden text
Dateianhang:
Rollladen.JPG
Rollladen.JPG [ 8.61 KiB | 63 mal betrachtet ]


Die Zustände sind NONE, UP und DOWN. Also würde ich so reagieren, egal welcher Rollladen geschaltet wird, soll der andere in die gleiche Richtung gefahren werden. Damit brauchst du z.B. im vis nur einen Schalter, weil der andere Rollladen ja auch gesteuert wird.

Spoiler: Show hidden text
Dateianhang:
Rollladen 1.JPG
Rollladen 1.JPG [ 57.45 KiB | 63 mal betrachtet ]


Export:

Spoiler: Show hidden text
Code:
<xml xmlns="http://www.w3.org/1999/xhtml">
  <block id="Tvh%OC]%9flS9qajVz}8" type="comment" x="288" y="13">
    <field name="COMMENT">auf beide "Directions" reagieren</field>
    <next>
      <block id="hLG*~kY8/q-Ai#3y=@O_" type="on_ext">
        <mutation items="2"></mutation>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <value name="OID0">
          <shadow id="qoWiEAaAT,Zi(6q*1?V4" type="field_oid">
            <field name="oid">default</field>
          </shadow>
        </value>
        <value name="OID1">
          <shadow id="X-8p[)B7KTSK-8.G^3JU" type="field_oid">
            <field name="oid">default</field>
          </shadow>
        </value>
        <statement name="STATEMENT">
          <block id="1X*sc/T`4{*{EgsIXuy1" type="comment">
            <field name="COMMENT">Rolladen 1</field>
            <next>
              <block id="q.Xz]*WpU6*,(j0WQrxb" type="controls_if">
                <mutation elseif="1"></mutation>
                <value name="IF0">
                  <block id="PTN:/48ZB9wJe_-Rn`T}" type="logic_compare">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block id="gr+iT.yGJ=[VCIz5sqT%" type="get_value">
                        <field name="ATTR">val</field>
                        <field name="OID">ID auswählen</field>
                      </block>
                    </value>
                    <value name="B">
                      <block id="H:QBzZ~G*;}~`3uM-VHe" type="text">
                        <field name="TEXT">UP</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block id="d/Z;GT9QAxas?NDioihI" type="comment">
                    <field name="COMMENT">Rollladen2 Level</field>
                    <next>
                      <block id="Rr4ww}KP4d5sD)ETIQ8/" type="control">
                        <mutation delay_input="false"></mutation>
                        <field name="OID">Object ID</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block id="6;t%P+/|?,`1G-KS6UL#" type="math_number">
                            <field name="NUM">100</field>
                          </block>
                        </value>
                      </block>
                    </next>
                  </block>
                </statement>
                <value name="IF1">
                  <block id=":K-W41+a//o]y49@a,p+" type="logic_compare">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block id="+oQeB:pf!Sw))e|]-qUK" type="get_value">
                        <field name="ATTR">val</field>
                        <field name="OID">ID auswählen</field>
                      </block>
                    </value>
                    <value name="B">
                      <block id="7}]hAQ5RLh@U{a/xzSXy" type="text">
                        <field name="TEXT">DOWN</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO1">
                  <block id="h5|`T)@GWmK.N+bZ8%.?" type="comment">
                    <field name="COMMENT">Rollladen2 Level</field>
                    <next>
                      <block id="D1Mk=}5E_f=/?7a/cG8W" type="control">
                        <mutation delay_input="false"></mutation>
                        <field name="OID">Object ID</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block id="-n3Y[W9i*0zfw{S.t,*I" type="math_number">
                            <field name="NUM">0</field>
                          </block>
                        </value>
                      </block>
                    </next>
                  </block>
                </statement>
                <next>
                  <block id=";b7]{5P++]}#3!JAJkWw" type="comment">
                    <field name="COMMENT">Rollladen2</field>
                    <next>
                      <block id="6Xamo}E}l6*I`(nxAjXI" type="controls_if">
                        <mutation elseif="1"></mutation>
                        <value name="IF0">
                          <block id="j%ey!doUjsmK4_QS;-.o" type="logic_compare">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block id="jGe]6}!%4mid@c`WXJzU" type="get_value">
                                <field name="ATTR">val</field>
                                <field name="OID">ID auswählen</field>
                              </block>
                            </value>
                            <value name="B">
                              <block id="Xy|]W^PR{Ue{^57(@+5`" type="text">
                                <field name="TEXT">UP</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <statement name="DO0">
                          <block id="hIzf#u@65X-pN[3xET`{" type="comment">
                            <field name="COMMENT">Rolladen 1 Level</field>
                            <next>
                              <block id="L4:x+uSBI*|O%O?DNF/V" type="control">
                                <mutation delay_input="false"></mutation>
                                <field name="OID">Object ID</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block id="Z/Mb6u?rwk5^thGot]ww" type="math_number">
                                    <field name="NUM">100</field>
                                  </block>
                                </value>
                              </block>
                            </next>
                          </block>
                        </statement>
                        <value name="IF1">
                          <block id=")c%/1u0m#=iNpkehqxQo" type="logic_compare">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block id="^[.-yDPY@iY:b_q~BM/#" type="get_value">
                                <field name="ATTR">val</field>
                                <field name="OID">ID auswählen</field>
                              </block>
                            </value>
                            <value name="B">
                              <block id="Ba=*wb?n4nWX`N8,:5m|" type="text">
                                <field name="TEXT">DOWN</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <statement name="DO1">
                          <block id="v].nH7~-%l)OL{k{@nwd" type="comment">
                            <field name="COMMENT">Rolladen 1 Level</field>
                            <next>
                              <block id="zXW;XF!wcnqF~XJ9g)4R" type="control">
                                <mutation delay_input="false"></mutation>
                                <field name="OID">Object ID</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block id="wY;3D%OT5tP8m]C_|Zgx" type="math_number">
                                    <field name="NUM">0</field>
                                  </block>
                                </value>
                              </block>
                            </next>
                          </block>
                        </statement>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </statement>
      </block>
    </next>
  </block>
</xml>


Damit würden immer beide Rollläden gleichzeitig fahren. Wenn nötig kannst du bei "falls" noch eine zweite Bedingung, eben die oben beschriebene Abschaltung der Zwangsehe ;), einfügen.

So nun bin ich mal gespannt was ihr sagt. Zwischendurch kam ja schon der Export, den sehe ich mir mal an! :D



Enrico


Nach oben
   
 Betreff des Beitrags: Re: (Frage) logik Problem Blocky
BeitragVerfasst: 14.11.2017, 23:12 
Offline
professional

Registriert: 22.02.2017, 16:31
Beiträge: 339
Wohnort: Rathenow
Hat sich bedankt: 20 Mal
Danksagung erhalten: 19 Mal
Möchtest du die Endpunkte der Rollläden auch visualisieren? Dann würde ich auf die beiden Level triggern, wenn beide 0 dann Datenpunkt = zu wenn beide 100 dann Datenpunkt auf.
Zum schalten meines Beispiels kannst du jeden Button nehmen, mit dem du z.B. einen Wert eingeben kannst und damit einen von beiden Rollläden ansteuern. Als i-Tüpfelchen kannst du ja, falls diese Zwangsehe abschaltbar ist, noch Button für den zweiten Rollladen einblenden, wenn Zwangsehe aus! Dann können notfalls auch beide Rollläden separat geschaltet werden.

Enrico


Nach oben
   
 Betreff des Beitrags: Re: (Frage) logik Problem Blocky
BeitragVerfasst: 14.11.2017, 23:34 
Offline
professional

Registriert: 22.03.2016, 15:42
Beiträge: 151
Hat sich bedankt: 27 Mal
Danksagung erhalten: 6 Mal
Wow, das sieht schon mal super aus! Vielen Dank RappiRN!

Ich glaub ich muss jetzt ins Bett, deshalb werde ich die Umsetzung deiner Ratschläge auf morgen verschieben müssen. Trotzdem schon jetzt vielen Dank!

Damit die Intention klarer wird, hier noch ein Bild meines Views. Ich möchte halt für beide Zimmer jeweils nur noch einen Knopf anzeigen:
Dateianhang:
blocky_rolladen_3.GIF
blocky_rolladen_3.GIF [ 62.33 KiB | 55 mal betrachtet ]


Nach oben
   
 Betreff des Beitrags: Re: (Frage) logik Problem Blocky
BeitragVerfasst: 14.11.2017, 23:56 
Offline
professional

Registriert: 10.08.2014, 19:15
Beiträge: 851
Hat sich bedankt: 37 Mal
Danksagung erhalten: 67 Mal
Ich habe einen etwas anderen Ansatz als RappiRN.
Seine Idee der "Scheidung" finde ich gut.

Grundsätzlich ist es immer ein Problem wenn manuell in einen Automatismus eingegriffen wird.

Bei meiner Lösung laufen die Rollos immer in den gleichen Zustand.
Auch Beschattungshöhen sind auch möglich.
(hoffentlich sind beide Rollos gleich)

1. Bedienung über VIS / Variable "virtuelle_datenpunkte....."
Wird nicht aktualisiert wenn manuell gefahren wird.
Widget einfach klicken um den Zustand zu aktualisieren.
Da passiert nicht, weil die aktuellen Level vorher abgefragt werden.
2. Steuerung über Taster, egal welcher.
Dateianhang:
Beispiel.PNG
Beispiel.PNG [ 213.19 KiB | 49 mal betrachtet ]


Zum Importieren
Spoiler: Show hidden text
Code:
<xml xmlns="http://www.w3.org/1999/xhtml">
  <block type="on_ext" id="!scELpDHGSp.3mtbL]Fl" x="13" y="-112">
    <mutation items="1"></mutation>
    <field name="CONDITION">ne</field>
    <field name="ACK_CONDITION"></field>
    <value name="OID0">
      <shadow type="field_oid" id="~=)Z(*cdxLCdqgfolX*,">
        <field name="oid">javascript.0.virtuelle_datenpunkte.rolladen_kueche_:oben</field>
      </shadow>
    </value>
    <statement name="STATEMENT">
      <block type="controls_if" id="tjFfAB)f!x{S3xOz9]`[">
        <value name="IF0">
          <block type="logic_compare" id=";Kc@i|8PVcr6TvWcSO0q">
            <field name="OP">EQ</field>
            <value name="A">
              <block type="get_value" id="Ys7!z9P@QrC*g9n7B/@.">
                <field name="ATTR">val</field>
                <field name="OID">javascript.0.virtuelle_datenpunkte.rolladen_kueche_:oben</field>
              </block>
            </value>
            <value name="B">
              <block type="logic_boolean" id="iHab!h_@Qv3w]Aj3=;:%">
                <field name="BOOL">TRUE</field>
              </block>
            </value>
          </block>
        </value>
        <statement name="DO0">
          <block type="procedures_callnoreturn" id="R#fcEQ,w|i3I9Z,qy8N8">
            <mutation name="etwas tun">
              <arg name="Level"></arg>
            </mutation>
            <value name="ARG0">
              <block type="math_number" id="MT[73+2SEc;C,6asW{Jy">
                <field name="NUM">100</field>
              </block>
            </value>
          </block>
        </statement>
        <next>
          <block type="controls_if" id="pKZ56)aRj;fK#/w/s^x%">
            <value name="IF0">
              <block type="logic_compare" id="~=(D0{QQ,HI[qW5l+5Is">
                <field name="OP">EQ</field>
                <value name="A">
                  <block type="get_value" id="O7?d05+Lz/*6Sy~8QRrl">
                    <field name="ATTR">val</field>
                    <field name="OID">javascript.0.virtuelle_datenpunkte.rolladen_kueche_:oben</field>
                  </block>
                </value>
                <value name="B">
                  <block type="logic_boolean" id="4n/_m%haum^#e?2s!PZC">
                    <field name="BOOL">FALSE</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="procedures_callnoreturn" id="_jkhL1@9i@.5Cc*-E_WT">
                <mutation name="etwas tun">
                  <arg name="Level"></arg>
                </mutation>
                <value name="ARG0">
                  <block type="math_number" id="u?FJSD;}]-kw[d6(`J6R">
                    <field name="NUM">0</field>
                  </block>
                </value>
              </block>
            </statement>
          </block>
        </next>
      </block>
    </statement>
    <next>
      <block type="on_ext" id="o;pq.{)MMWlN#u:d|l7b">
        <mutation items="2"></mutation>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <value name="OID0">
          <shadow type="field_oid" id="EN6WTm@jpMzd!%4X/Mk(">
            <field name="oid">hm-rpc.0.JEQ0109063.1.LEVEL</field>
          </shadow>
        </value>
        <value name="OID1">
          <shadow type="field_oid" id="AYpOu;p{zWk8|j}QVdd+">
            <field name="oid">default</field>
          </shadow>
        </value>
        <statement name="STATEMENT">
          <block type="procedures_callnoreturn" id="#Pr(7/+o:!S1D!+Mb|Bh">
            <mutation name="etwas tun">
              <arg name="Level"></arg>
            </mutation>
            <value name="ARG0">
              <block type="on_source" id="6J~bvl)4q,S!^alYQw2P">
                <field name="ATTR">state.val</field>
              </block>
            </value>
          </block>
        </statement>
      </block>
    </next>
  </block>
  <block type="procedures_defnoreturn" id="Q0a1#E_-?lT|TFt@9R.." x="13" y="363">
    <mutation>
      <arg name="Level"></arg>
    </mutation>
    <field name="NAME">etwas tun</field>
    <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
    <statement name="STACK">
      <block type="controls_if" id="U7M=GzY2pWZKL6W`1-GV">
        <value name="IF0">
          <block type="logic_compare" id="@]nTuG+V-Wheas|7mp,8">
            <field name="OP">NEQ</field>
            <value name="A">
              <block type="get_value" id="m{~4/%(,RMGKAz4nEL/]">
                <field name="ATTR">val</field>
                <field name="OID">hm-rpc.0.JEQ0109063.1.LEVEL</field>
              </block>
            </value>
            <value name="B">
              <block type="variables_get" id="k[@]!12ntI0TB6Z~KE%F">
                <field name="VAR">Level</field>
              </block>
            </value>
          </block>
        </value>
        <statement name="DO0">
          <block type="control" id="5!aUf8NkB(/W`)hGnF-5">
            <mutation delay_input="false"></mutation>
            <field name="OID">hm-rpc.0.JEQ0109063.1.LEVEL</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
              <block type="variables_get" id="4V.9:,^UV:E!mUEy^r^p">
                <field name="VAR">Level</field>
              </block>
            </value>
          </block>
        </statement>
        <next>
          <block type="controls_if" id="TDgac.e{5kL`SOp|-,T3">
            <value name="IF0">
              <block type="logic_compare" id="mZ)5=0N.nhfFxOu!fa-.">
                <field name="OP">NEQ</field>
                <value name="A">
                  <block type="get_value" id="Fc|H6ESN6DBDt4DXlX6E">
                    <field name="ATTR">val</field>
                    <field name="OID">ID auswählen</field>
                  </block>
                </value>
                <value name="B">
                  <block type="variables_get" id="7cvl+lOS+t=H%-IKA%._">
                    <field name="VAR">Level</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="control" id="a-^g2!M),g%j?fi~)i@7">
                <mutation delay_input="false"></mutation>
                <field name="OID">hm-rpc.0.JEQ0107480.1.LEVEL</field>
                <field name="WITH_DELAY">FALSE</field>
                <value name="VALUE">
                  <block type="variables_get" id="k]S4x:Ng)5^z_wm19Qc_">
                    <field name="VAR">Level</field>
                  </block>
                </value>
              </block>
            </statement>
          </block>
        </next>
      </block>
    </statement>
  </block>
</xml>


Die ObjektID des zweiten Rollos muss noch eingesetzt werden.

Grüße und Gute Nacht

_________________
Rantanplan
CCU2 (2.29.18) * ioBroker.vis
ioBrocker auf Win10/64 bit Enterprise (VM)
Scripten mit Blockly


Nach oben
   
 Betreff des Beitrags: Re: (Frage) logik Problem Blocky
BeitragVerfasst: 15.11.2017, 00:19 
Offline
professional

Registriert: 22.02.2017, 16:31
Beiträge: 339
Wohnort: Rathenow
Hat sich bedankt: 20 Mal
Danksagung erhalten: 19 Mal
Da kann man wieder den Wissensstand sehen. Ich habe das ja relativ einfach gemacht, aber ich glaube auch zu verstehen was du da zusammengeklickt hast.Wir lassen mrMuppet einfach mal testen, ob das erreicht wird was er möchte!
Eine Frage hab ich noch: Was meinst du mit:

rantanplan hat geschrieben:
Grundsätzlich ist es immer ein Problem wenn manuell in einen Automatismus eingegriffen wird.
?

In welchen Automatismus wird denn deiner Meinung nach eingegriffen? Die Rollläden (oder Rollladen?) fahren doch trotzdem automatisch hoch und runter!? :?:

Enrico


Nach oben
   
 Betreff des Beitrags: Re: (Frage) logik Problem Blocky
BeitragVerfasst: 15.11.2017, 00:38 
Offline
professional

Registriert: 10.08.2014, 19:15
Beiträge: 851
Hat sich bedankt: 37 Mal
Danksagung erhalten: 67 Mal
RappiRN hat geschrieben:
In welchen Automatismus wird denn deiner Meinung nach eingegriffen? Die Rollläden (oder Rollladen?) fahren doch trotzdem automatisch hoch und runter!? :?:

Der "Automatismus" ist Variable schalten = beide Rollos fahren rauf/runter.
Man hat aber die Möglichkeit über einen Taster die Rollos manuell zu schalten.
Schon hat man eingegriffen und man muss ein Konstrukt bauen um dies wieder auszugleichen.
Und dieses Konstrukt kann sehr umfangreich werden.

Denke z.B. an die Aktualisierung der Variablen, damit der Zustand in VIS aktuell dargestellt wird.
OK. Man kann sie im Blockly entsprechen anpassen.
Die wird aber auch gleichzeitig getriggert!
Und schon geht's los. Zwischenvariable, aktuellen Zustand, vorherigen Zustand usw. usw.
Das kann schon umfangreich und unübersichtlich werden.
Und hier geht es nur um 2 Rolladen EDIT: hier stand was dummes

Grüße

_________________
Rantanplan
CCU2 (2.29.18) * ioBroker.vis
ioBrocker auf Win10/64 bit Enterprise (VM)
Scripten mit Blockly


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 16 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: NightWatcher und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu Forum:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de