Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Lichtautomatik Garage Blockly

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Lichtautomatik Garage Blockly

    This topic has been deleted. Only users with topic management privileges can see it.
    • MarkusSR1984
      MarkusSR1984 @NRW-Hydro last edited by MarkusSR1984

      @nrw-hydro, natürlich ist sowas problemlos mit iobroker möglich, der langweilt sich eher bei solen problemstellungen XD

      Ich persönlich arbeite nicht gern mit blockly weil mir das zu umständlich und undurchsichtig ist deswegen gebe ich dir eine Beschreibung wie ich das Programmieren würde. Komplizierte locks usw. erspaare ich dir lieber und gestalte das ganze so einfach wie möglich damit du die Logik in Blockly nachbauen kannst.

      Nachdem ich nun eine Weile versucht habe es so zu erklären wie es in Blockly zusammengestellt werden sollte hab ichs dir nun kurz zusammengeklickt.
      Du bekommst damit aber nur eine Grundfunktion ohne Prüfungen etc. Diese sollten aber auf längere sicht definitiv hinzugefügt werden.
      Was ich damit meine wirst du mit der Zeit sicher feststellen und ich hoffe das dir die Vorlage etwas beim Verständniss hilft.

      Den folgenden Code einfach unter Blöcke importieren einfügen 😉
      Viel Spass damit

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="H?.AkXx5?F=T3Tzb)ndc">ObjektID Garagentor</variable>
          <variable id="|!T%#,wK,7/lS8Lh:y,0">ObjektID Taster</variable>
          <variable id="~[dwP{rgw^:HJu#zQP1k">ObjektID Beleuchtung</variable>
        </variables>
        <block type="comment" id="1=r%FEDglRSQW:#.+%]t" x="138" y="-62">
          <field name="COMMENT">Hier die Passenden IDs setzen</field>
          <next>
            <block type="variables_set" id="A7s:5fm@bczD,wo$@Xrm">
              <field name="VAR" id="H?.AkXx5?F=T3Tzb)ndc">ObjektID Garagentor</field>
              <value name="VALUE">
                <block type="field_oid" id="u}ikk!nj/oJrFy*opGV`">
                  <field name="oid">default</field>
                </block>
              </value>
              <next>
                <block type="variables_set" id="=WsMUR5d1+w.ye;ugMvC">
                  <field name="VAR" id="|!T%#,wK,7/lS8Lh:y,0">ObjektID Taster</field>
                  <value name="VALUE">
                    <block type="field_oid" id=";`$xqS_Dq.E@oL//)RO=">
                      <field name="oid">default</field>
                    </block>
                  </value>
                  <next>
                    <block type="variables_set" id="E6Pex-tV7)aGxw?kGix^">
                      <field name="VAR" id="~[dwP{rgw^:HJu#zQP1k">ObjektID Beleuchtung</field>
                      <value name="VALUE">
                        <block type="field_oid" id="fX11Y},7[(.BW3_qW$II">
                          <field name="oid">default</field>
                        </block>
                      </value>
                      <next>
                        <block type="comment" id="T@a8|:10~=0pC$HJqc]b">
                          <field name="COMMENT">Diese Gruppe Schaltet das Licht beim öffnen des </field>
                          <next>
                            <block type="comment" id="uMwP:)OX+y{!+T(u!j5w">
                              <field name="COMMENT">Garagentors ein und nach 10 Minuten wieder aus</field>
                              <next>
                                <block type="on_ext" id="Yl=e==]/22`W1o2q--:8">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                  <field name="CONDITION">true</field>
                                  <field name="ACK_CONDITION"></field>
                                  <value name="OID0">
                                    <shadow type="field_oid" id="3tN;p5cV,,Qx}(ie7Au2">
                                      <field name="oid">default</field>
                                    </shadow>
                                    <block type="variables_get" id="U1GoRH7xJ!OiwM!}|)+0">
                                      <field name="VAR" id="H?.AkXx5?F=T3Tzb)ndc">ObjektID Garagentor</field>
                                    </block>
                                  </value>
                                  <statement name="STATEMENT">
                                    <block type="control_ex" id="r9~dPARdX%D3!30S1Ov|">
                                      <field name="TYPE">false</field>
                                      <field name="CLEAR_RUNNING">FALSE</field>
                                      <value name="OID">
                                        <shadow type="field_oid" id="UjuomN$_-ZVsrcbK$c4m">
                                          <field name="oid">Object ID</field>
                                        </shadow>
                                        <block type="variables_get" id="|J1bz{}TYxy$0hI]qH2q">
                                          <field name="VAR" id="~[dwP{rgw^:HJu#zQP1k">ObjektID Beleuchtung</field>
                                        </block>
                                      </value>
                                      <value name="VALUE">
                                        <shadow type="logic_boolean" id="kLlr|qL,HjXum=]p9[HF">
                                          <field name="BOOL">TRUE</field>
                                        </shadow>
                                      </value>
                                      <value name="DELAY_MS">
                                        <shadow type="math_number" id="DGi+ku(27Vg|zURPpuf%">
                                          <field name="NUM">0</field>
                                        </shadow>
                                      </value>
                                      <next>
                                        <block type="control_ex" id="Nto@|`?_}ex(RH]:evTD">
                                          <field name="TYPE">false</field>
                                          <field name="CLEAR_RUNNING">TRUE</field>
                                          <value name="OID">
                                            <shadow type="field_oid">
                                              <field name="oid">Object ID</field>
                                            </shadow>
                                            <block type="variables_get" id="]PAYY~9htD/33XE2U]8Q">
                                              <field name="VAR" id="~[dwP{rgw^:HJu#zQP1k">ObjektID Beleuchtung</field>
                                            </block>
                                          </value>
                                          <value name="VALUE">
                                            <shadow type="logic_boolean" id="rX$9[W=hPX@!3.1*V1Q6">
                                              <field name="BOOL">FALSE</field>
                                            </shadow>
                                          </value>
                                          <value name="DELAY_MS">
                                            <shadow type="math_number" id="BweZ=pxAfuBVq:QW:lQB">
                                              <field name="NUM">0</field>
                                            </shadow>
                                            <block type="math_arithmetic" id="!+Y^W3UelwwIxP!VKhLR">
                                              <field name="OP">MULTIPLY</field>
                                              <value name="A">
                                                <shadow type="math_number" id="Vz`Hq#Rn.Gf$Ua+){RVB">
                                                  <field name="NUM">10</field>
                                                </shadow>
                                              </value>
                                              <value name="B">
                                                <shadow type="math_number" id="Er+QVWDrB3Awq+KnA83j">
                                                  <field name="NUM">1</field>
                                                </shadow>
                                                <block type="math_arithmetic" id="|LR`-uXEb:Yp?)g3phi{">
                                                  <field name="OP">MULTIPLY</field>
                                                  <value name="A">
                                                    <shadow type="math_number" id="!{h/Jh4;_#E9XM88PdDA">
                                                      <field name="NUM">60</field>
                                                    </shadow>
                                                  </value>
                                                  <value name="B">
                                                    <shadow type="math_number" id="^E6]aeRHPSs|dPh#.tQY">
                                                      <field name="NUM">1000</field>
                                                    </shadow>
                                                  </value>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                        </block>
                                      </next>
                                    </block>
                                  </statement>
                                  <next>
                                    <block type="comment" id="#Fkh?ukW*nYzR!*GNbcH">
                                      <field name="COMMENT">Diese Gruppe schaltet das lich mit hilfe des Tasters</field>
                                      <next>
                                        <block type="on_ext" id="K!jz~8/ggv!)B[](?fz5">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                          <field name="CONDITION">true</field>
                                          <field name="ACK_CONDITION"></field>
                                          <value name="OID0">
                                            <shadow type="field_oid" id="F@4R5`gbOnd)LR!%m|yu">
                                              <field name="oid">default</field>
                                            </shadow>
                                            <block type="variables_get" id="MgAHzRo^vDMOsUa;!D*H">
                                              <field name="VAR" id="|!T%#,wK,7/lS8Lh:y,0">ObjektID Taster</field>
                                            </block>
                                          </value>
                                          <statement name="STATEMENT">
                                            <block type="control_ex" id="_rN@::/|V1PG2%H.,xRR">
                                              <field name="TYPE">false</field>
                                              <field name="CLEAR_RUNNING">FALSE</field>
                                              <value name="OID">
                                                <shadow type="field_oid">
                                                  <field name="oid">Object ID</field>
                                                </shadow>
                                                <block type="variables_get" id="Fbp3]agGVauyw3u:r3wj">
                                                  <field name="VAR" id="~[dwP{rgw^:HJu#zQP1k">ObjektID Beleuchtung</field>
                                                </block>
                                              </value>
                                              <value name="VALUE">
                                                <shadow type="logic_boolean" id="l#qN6$t(vB#*c]qp+P|l">
                                                  <field name="BOOL">TRUE</field>
                                                </shadow>
                                                <block type="logic_negate" id="Y.-?MSCgX^U=]Zv2T25M">
                                                  <value name="BOOL">
                                                    <block type="get_value_var" id="5b?fXx,#fTDuBNu`Mj^D">
                                                      <field name="ATTR">val</field>
                                                      <value name="OID">
                                                        <shadow type="text" id="jEZzEfsSbZm?RMYUI3O|">
                                                          <field name="TEXT"></field>
                                                        </shadow>
                                                        <block type="variables_get" id="|D?mKs%=VJ}BMJ)yQV?Q">
                                                          <field name="VAR" id="~[dwP{rgw^:HJu#zQP1k">ObjektID Beleuchtung</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                              <value name="DELAY_MS">
                                                <shadow type="math_number" id="kUM4)%C-n+{1@x.%r,}d">
                                                  <field name="NUM">0</field>
                                                </shadow>
                                              </value>
                                            </block>
                                          </statement>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </next>
        </block>
      </xml>
      
      H 1 Reply Last reply Reply Quote 0
      • H
        Hydro88 @MarkusSR1984 last edited by Hydro88

        @markussr1984
        Hallo Markus, vielen lieben Dank schon mal. Das werde ich morgen direkt mal ausprobieren.
        Werde dann berichten.
        Schönen Abend und Grüße
        Bernd

        Guten Morgen,
        ich habe mal Deinen Code importiert. vermutlich habe ich mich unverständlich ausgedrückt. Bei mir gibt es nicht 3 Objekt ID`s.
        d.h. ich habe 1 Object ID für die Beleuchtung und eine Objekt ID für das Garagentor. Die Sache mit der Zeitautomatik gefällt mir schon ganz gut, nun ist es bei uns oftmals so, dass wir das Auto in die Garage stellen und dann abends erst die Garage schließen. So schaltet sich das Licht permanent an und aus.
        Mein Wunsch wäre, das Tor öffnet sich und das Licht bleibt an. Mit dem normalen Taster taste ich das Licht wieder aus. Schließe ich die Garage wieder bleibt das Licht aus, bis zum nächsten Öffnen. Wäre es evtl. eine Möglichkeit ein weiteres Shelly Relais dazu zu nutzen um es nur an den Taster und nicht an die Beleuchtung anzuschließen ? So hätte ich meine dritte Objekt ID. Nachteil wäre natürlich, fällt mein iObroker aus, kann ich auch kein Licht einschalten, oder bei Fehlfunktion nicht ausschalten.

        Bildschirmfoto 2023-04-09 um 09.11.41.png

        Grüße Bernd

        MarkusSR1984 1 Reply Last reply Reply Quote 0
        • MarkusSR1984
          MarkusSR1984 @Hydro88 last edited by

          @hydro88
          Wie hast du denn das alles verdrahtet und welche firmware hast du auf dem shelly drauf ? Also die Originale oder Tasmota ? und welche Shelly(s) hast du da im Einsatz ?
          Ich persönlich würde da Tasmota bevorzugen da es ohne Cloud läuft, der Nachteil ist dann natürlich das die Shelly App am Handy nicht mehr geht.
          Vorteil währe das man damit mit ein paar Kniffen komplett ohne Smart Home Zentrale auskommen würde und die Funktion somit so lange gesichert ist wie die Komponenten untereinander kommunizieren können.

          H 1 Reply Last reply Reply Quote 0
          • H
            Hydro88 @MarkusSR1984 last edited by Hydro88

            @markussr1984
            Guten Morgen,
            ich habe mal eine kleine Skizze gemacht, wie ich das Licht, den Taster und den Lichttaster (Lichtschranke) verdrahtet habe. Der "Taster" ist ein handelsüblicher Taster, der den Shelly 1 direkt tasten kann. Dieser sollte nur dazu dienen unabhängig von der Automatik das Licht dauerhaft ein oder auszuschalten. Der Lichttaster (Lichtschranke) gibt mir die Meldung ob das Tor offen ist oder nicht. Da ich in meiner Visu sehen möchte ob das Tor auf oder zu ist, habe ich mich für einen Sensor entschieden, den ich im iObroker auslesen kann.
            Wenn ich jetzt anstelle des Tasters einen Schalter nehmen würde und direkt an die Lampe anschließen würde, müsste ich mich entscheiden. Will ich permanent einschalten (überbrücken) oder permanent ausschalten (unterbrechen).
            Ich benutze einen "alten" Shelly1 und ein Shelly Platine Shelly Uni. Auf den Shellys ist Cloud deaktiviert, die App nutze ich gar nicht.
            Die Bedienung mache ich ausschließlich über die Visualisierung des iOBrokers.
            Von einem cloudbasierten System halte ich übrigens gar nichts.
            Deshalb möchte ich auch all meine Lichtschalter und Rolladenaktoren auch bei Internetausfall zumindest manuell bedienen können.
            Die Shelly`s kommunizieren untereinander über MQTT über den Shelly Adapter von Matthias Kleine.

            Garage Schaltplan.jpeg

            Handy Visu Garagen.png

            Grüße Bernd

            MarkusSR1984 1 Reply Last reply Reply Quote 0
            • MarkusSR1984
              MarkusSR1984 @Hydro88 last edited by

              @hydro88 sagte in Lichtautomatik Garage Blockly:

              @markussr1984
              Guten Morgen,
              ich habe mal eine kleine Skizze gemacht, wie ich das Licht, den Taster und den Lichttaster (Lichtschranke) verdrahtet habe. Der "Taster" ist ein handelsüblicher Taster, der den Shelly 1 direkt tasten kann. Dieser sollte nur dazu dienen unabhängig von der Automatik das Licht dauerhaft ein oder auszuschalten. Der Lichttaster (Lichtschranke) gibt mir die Meldung ob das Tor offen ist oder nicht. Da ich in meiner Visu sehen möchte ob das Tor auf oder zu ist, habe ich mich für einen Sensor entschieden, den ich im iObroker auslesen kann.
              Wenn ich jetzt anstelle des Tasters einen Schalter nehmen würde und direkt an die Lampe anschließen würde, müsste ich mich entscheiden. Will ich permanent einschalten (überbrücken) oder permanent ausschalten (unterbrechen).
              Ich benutze einen "alten" Shelly1 und ein Shelly Platine Shelly Uni. Auf den Shellys ist Cloud deaktiviert, die App nutze ich gar nicht.
              Die Bedienung mache ich ausschließlich über die Visualisierung des iOBrokers.
              Von einem cloudbasierten System halte ich übrigens gar nichts.
              Deshalb möchte ich auch all meine Lichtschalter und Rolladenaktoren auch bei Internetausfall zumindest manuell bedienen können.
              Die Shelly`s kommunizieren untereinander über MQTT über den Shelly Adapter von Matthias Kleine.

              Garage Schaltplan.jpeg

              Handy Visu Garagen.png

              Grüße Bernd

              Sieht soweit ja ganz gut aus, da brauchst du eigentlich nur die Gruppe für den Taster aus dem Blockly nehmen die wird in dieser Konstellation nicht benötigt.
              Was mir allerdings aufgefallen ist, ist das du die Ausschaltverzögerung auf 4000ms gesetzt hast, das sind hald nur 4 Sekunden was dann wiederum dazu führt das das Licht ständig an und aus geht während der Garagentorsensor getriggert wird. Dies passiert vermutlich solang sich das Tor bewegt ?! aber kommt darauf an wie du das realisiert hast. Ich kann zwar aus deinem Plan entnehmen das du das mit einem Stromstoßschalter machst aber wie der angesteuert wird ist für mich nicht klar ersichtlich und ich kenne ehrlich gesagt das Symbol das du für die Betätigung verwendet hast nicht.

              Ob die Shellyeigene Firmware auch ohne Cloud funktioniert kann ich nicht sagen weil ich nur einen einzigen Shelly 1 besitze und der noch vor der ersten inbetriebnahme mit Tasmota geflasht wurde.

              H 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @NRW-Hydro last edited by paul53

                @nrw-hydro sagte: Blocky Script erstellt, wenn der Uni wahr wird, soll er das Shelly 1 Relais auch einschalten.

                Zeigen!
                Der Taster am Shelly 1 schaltet um (ohne ioBroker)?

                @nrw-hydro sagte in Lichtautomatik Garage Blockly:

                Licht automatisch eingeschaltet wird, sobald das Garagentor geöffnet ist.

                Nur beim Öffnen einschalten? Dann triggere auf "ist größer als letztes".

                Blockly_temp.JPG

                Wenn das Licht auch beim Schließen ausgeschaltet werden soll, dann triggere auf "wurde geändert".

                Blockly_temp.JPG

                H 1 Reply Last reply Reply Quote 0
                • H
                  Hydro88 @MarkusSR1984 last edited by

                  @markussr1984
                  Hallo Markus,
                  die 4000 ms habe ich eingetragen um das ganze auszuprobieren... wollte nicht 10 Minuten warten.
                  Der Shelly ist quasi der "Stromstoßschalter". Das Symbol in der Zeichnung soll den Lichttaster darstellen, der sagt ob das Tor auf oder zu ist.
                  Ja die Shelly`s klappen ohne Cloud. Habe mehrere im Einsatz.
                  Wie gesagt die App nutze ich gar nicht. Deaktiviert man die Cloud, ist die App eigentlich nicht mehr zu nutzen. Brauche ich aber auch nicht. Nutze nur die Visu des iObroker. Sollte ich aus der "Ferne" mal drauf zugreifen wollen, mache ich das via VPN Verbindung und öffne dann die Visu.

                  Die Lösung von Paul53 funktioniert!
                  Jetzt möchte ich Paul nur bitten zu erklären warum 😉

                  Ich möchte mich ganz herzlich bei Dir bedanken! Ohne Euch hätte ich das nie hinbekommen.
                  Vielleicht bis bald mal!
                  Viele Grüße Bernd 🙂

                  1 Reply Last reply Reply Quote 0
                  • H
                    Hydro88 @paul53 last edited by Hydro88

                    @paul53
                    Hallo Paul,
                    halleluja es funktioniert.
                    Aber jetzt hätte ich gerne gewusst warum.

                    Bildschirmfoto 2023-04-11 um 19.57.20.png

                    Also das Triggern "ist größer als letztes" kann ich irgendwie noch nachvollziehen.
                    Ich habe zunächst bei Ausschalten eingegeben steure switch mit "falsch".
                    das bringt nicht die Lösung.
                    Aber dieses steuere switch mit "Wert", klappt. Nun wüsste ich gerne warum.
                    Vielen Dank an Markus und Dich, dass Ihr mir helft.
                    Echt super Jungs!
                    Viele Grüße Bernd

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @Hydro88 last edited by paul53

                      @hydro88
                      Wenn der untere Trigger auf "wurde geändert" verwendet wird, ist der obere Trigger überflüssig und sollte gelöscht werden!

                      @hydro88 sagte in Lichtautomatik Garage Blockly:

                      Aber dieses steuere switch mit "Wert", klappt. Nun wüsste ich gerne warum.

                      Wert enthält den Wert vom "Schalter" zum Trigger-Zeitpunkt und wird einfach auf "Switch" übertragen.

                      @nrw-hydro sagte in Lichtautomatik Garage Blockly:

                      Wenn ich in diesem Zustand mit dem Taster den Shelly Plus schalte, geht das Licht aus, aber nach einer undefinierten Zeit wieder an. Und Umgekehrt bei geschlossenem Tor.

                      Du hattest vermutlich auf "wurde aktualisiert" (oder "wahr" bzw. "falsch") getriggert. Offenbar wird der Datenpunkt "Schalter" nicht nur bei Wertänderung aktualisiert, sondern auch zyklisch.

                      H 1 Reply Last reply Reply Quote 0
                      • H
                        Hydro88 @paul53 last edited by Hydro88

                        @paul53
                        Hallo Paul,
                        genau so wie Du es beschrieben hast, hatte ich es vorher gemacht.
                        Bildschirmfoto 2023-04-13 um 08.27.25.png

                        Habe auf "wahr" und "falsch" des Lichtsensors (bzw. Eingang des Shelly Uni getriggert). Dann konnte ich zwar das Licht ausschalten aber der Shelly Uni hat zyklisch nachgetriggert. Genau!
                        Ich habe nun den oberen Block (Deines Scripts) entfernt und nur diesen gespeichert.
                        So klappt es perfekt.
                        Ich muss noch viel lernen. Aber es macht Spaß, wenn es dann funktioniert.

                        (so funktioniert es)

                        Bildschirmfoto 2023-04-13 um 08.34.38.png

                        Nochmals vielen Dank!

                        Viele Grüße Bernd 🙏

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        867
                        Online

                        31.9k
                        Users

                        80.1k
                        Topics

                        1.3m
                        Posts

                        4
                        11
                        841
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo