Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. zeitliche Ausnahme bei Steckdosenschaltung

    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

    zeitliche Ausnahme bei Steckdosenschaltung

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      mading last edited by mading

      Hallo zusammen,

      Ich überwache mit dem fullykiosk Adapter das Baterielevel meines Tablets und lasse die Tasmota Schaltsteck bei 20% oder weniger einschalten und bei 80% oder mehr ausschalten. Soweit so gut.

      Da ich nachts ein automatisches Backup meines iobroker pi durchführe, das mind. eine Stunde dauert, ist es schon vor gekommen, dass der Strom am Tablet zu der Zeit aus war, iobroker lief nicht und hat den Strom nicht eingeschaltet. Das Tablet war am Morgen leer. Das möchte ich vermeiden.

      Anforderung ist also, dass zwischen z.B: 0 Uhr und 3 Uhr die Steckdose auf jeden Fall eingeschaltet sein soll, danach wieder mit o.g. Logik.

      Ich habe es wie folgt umgesetzt, was aber nicht funktioniert.

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="trv$uyYCiS,qS6A(Xd)$">BatteryLevel</variable>
          <variable id="GjzYplH_dd.|oM}2^z:)">SchaltSteckANAUSStatus</variable>
        </variables>
        <block type="comment" id="cjhq6NmJ!IgWeNVsBy`|" x="-962" y="-137">
          <field name="COMMENT">Schaltsteck VIS Samsung Tablet bei &lt;= 20% anschalten, bei &gt;=80% aus</field>
          <next>
            <block type="comment" id="a2q[vsGImjVo4GKt5eye">
              <field name="COMMENT">nicht von 3-0 ausschalten da Backup gezogen wird und iobroker aus ist</field>
              <next>
                <block type="controls_if" id="LpWL`E_u}gs{4i,LxfTN">
                  <mutation elseif="1"></mutation>
                  <value name="IF0">
                    <block type="time_compare" id="yk`/@9k]P#3J8ety2A$7">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation>
                      <field name="OPTION">between</field>
                      <field name="START_TIME">03:00</field>
                      <field name="END_TIME">00:00</field>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="on" id="M/1I0JFtwMgk.h56XQDa">
                      <field name="OID">fullybrowser.0.192_168_253_58.Info.batteryLevel</field>
                      <field name="CONDITION">ne</field>
                      <field name="ACK_CONDITION"></field>
                      <statement name="STATEMENT">
                        <block type="variables_set" id="_r]}Vk}MEQB(lJWm/E):">
                          <field name="VAR" id="trv$uyYCiS,qS6A(Xd)$">BatteryLevel</field>
                          <value name="VALUE">
                            <block type="get_value" id="2#I:^JH(G^ofayTg]5uZ">
                              <field name="ATTR">val</field>
                              <field name="OID">fullybrowser.0.192_168_253_58.Info.batteryLevel</field>
                            </block>
                          </value>
                          <next>
                            <block type="variables_set" id="aOJB29]*j|#HQeqNS*.2">
                              <field name="VAR" id="GjzYplH_dd.|oM}2^z:)">SchaltSteckANAUSStatus</field>
                              <value name="VALUE">
                                <block type="get_value" id="Bqz45,_@k3@tY}$?#aOA">
                                  <field name="ATTR">val</field>
                                  <field name="OID">sonoff.0.TasmotaSteckVIS.POWER</field>
                                </block>
                              </value>
                              <next>
                                <block type="controls_if" id="S+umOpA1!*-,2rOB]fZf">
                                  <mutation elseif="2"></mutation>
                                  <value name="IF0">
                                    <block type="logic_operation" id="NQZWE{X(Q`yz8n+B-,qi">
                                      <field name="OP">AND</field>
                                      <value name="A">
                                        <block type="logic_compare" id="VsECD,Jn;|$fzg}eSJh%">
                                          <field name="OP">GTE</field>
                                          <value name="A">
                                            <block type="variables_get" id="ox[49$~wy4]n2O{WYsP$">
                                              <field name="VAR" id="trv$uyYCiS,qS6A(Xd)$">BatteryLevel</field>
                                            </block>
                                          </value>
                                          <value name="B">
                                            <block type="math_number" id="0eZx6Q;H#yI^/eLTK4F#">
                                              <field name="NUM">80</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="logic_compare" id="`sd]n/hYwq3m[:eK[Nu!">
                                          <field name="OP">EQ</field>
                                          <value name="A">
                                            <block type="variables_get" id="Lc/82@R-*JsRrkMt1a#J">
                                              <field name="VAR" id="GjzYplH_dd.|oM}2^z:)">SchaltSteckANAUSStatus</field>
                                            </block>
                                          </value>
                                          <value name="B">
                                            <block type="logic_boolean" id="^]NmbW5m0ckZWH8|Gl*T">
                                              <field name="BOOL">TRUE</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <statement name="DO0">
                                    <block type="control" id="~8o,B[GqEH+PLyh/EY^X">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                      <field name="OID">sonoff.0.TasmotaSteckVIS.POWER</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="logic_boolean" id="dXB1j-~$[ID({-)m0|Lm">
                                          <field name="BOOL">FALSE</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="telegram" id="+;7!R0k:!lwUf2s2;wFL">
                                          <field name="INSTANCE"></field>
                                          <field name="LOG"></field>
                                          <field name="SILENT">FALSE</field>
                                          <field name="PARSEMODE">default</field>
                                          <value name="MESSAGE">
                                            <shadow type="text" id="iYLGT^x=FnA:iF`D49L:">
                                              <field name="TEXT">text</field>
                                            </shadow>
                                            <block type="text" id="}FD;%S~NSM#iT1^xw9hZ">
                                              <field name="TEXT">VIS Tablet Batterie bei über 80%. Schalte Strom aus.</field>
                                            </block>
                                          </value>
                                        </block>
                                      </next>
                                    </block>
                                  </statement>
                                  <value name="IF1">
                                    <block type="logic_operation" id="#O;O`c{IJW#HP]@AgI|a">
                                      <field name="OP">AND</field>
                                      <value name="A">
                                        <block type="logic_compare" id="D+SL)3+_DC}=Z|-_F`r8">
                                          <field name="OP">LTE</field>
                                          <value name="A">
                                            <block type="variables_get" id="C~9w_ujw}%$^,(QZ{5Iq">
                                              <field name="VAR" id="trv$uyYCiS,qS6A(Xd)$">BatteryLevel</field>
                                            </block>
                                          </value>
                                          <value name="B">
                                            <block type="math_number" id="7|(86eTz/C{rPvk=R*s;">
                                              <field name="NUM">20</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="logic_compare" id="V,irmDTWGR?SQuv4~n%|">
                                          <field name="OP">EQ</field>
                                          <value name="A">
                                            <block type="variables_get" id="I5aQV?H:$L*pl@JYy:2]">
                                              <field name="VAR" id="GjzYplH_dd.|oM}2^z:)">SchaltSteckANAUSStatus</field>
                                            </block>
                                          </value>
                                          <value name="B">
                                            <block type="logic_boolean" id="iHW;W-{VNI~55Ld~EWK6">
                                              <field name="BOOL">FALSE</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <statement name="DO1">
                                    <block type="control" id=",N}^}`V[}||kn#p9N?sJ">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                      <field name="OID">sonoff.0.TasmotaSteckVIS.POWER</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="logic_boolean" id="wT,h5m!RIU]gewP?|XPX">
                                          <field name="BOOL">TRUE</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="telegram" id="uR2o@KVkF.?Az-.j5u$y">
                                          <field name="INSTANCE"></field>
                                          <field name="LOG"></field>
                                          <field name="SILENT">FALSE</field>
                                          <field name="PARSEMODE">default</field>
                                          <value name="MESSAGE">
                                            <shadow type="text">
                                              <field name="TEXT">text</field>
                                            </shadow>
                                            <block type="text" id="I5Kb@z+SQ38rf8tP8Xe#">
                                              <field name="TEXT">VIS Tablet Batterie bei unter 20%. Schalte Strom an.</field>
                                            </block>
                                          </value>
                                        </block>
                                      </next>
                                    </block>
                                  </statement>
                                  <value name="IF2">
                                    <block type="logic_compare" id="7b,?HC?8P2b7Fpdv;,r#">
                                      <field name="OP">LTE</field>
                                      <value name="A">
                                        <block type="variables_get" id="xI,1BGm(`BjSmk^+q%/[">
                                          <field name="VAR" id="trv$uyYCiS,qS6A(Xd)$">BatteryLevel</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="math_number" id="vzDe%ZbE8LhZKpk5Lic;">
                                          <field name="NUM">5</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <statement name="DO2">
                                    <block type="telegram" id="Yr9)gKs;#Xu,L!n`3D-C">
                                      <field name="INSTANCE"></field>
                                      <field name="LOG"></field>
                                      <field name="SILENT">FALSE</field>
                                      <field name="PARSEMODE">default</field>
                                      <value name="MESSAGE">
                                        <shadow type="text">
                                          <field name="TEXT">text</field>
                                        </shadow>
                                        <block type="text" id="$fdrw|e)4]Fk9xjL{fG=">
                                          <field name="TEXT">VIS Tablet hat weniger als 5% Batterieladung!</field>
                                        </block>
                                      </value>
                                    </block>
                                  </statement>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </statement>
                    </block>
                  </statement>
                  <value name="IF1">
                    <block type="time_compare" id=".SLY~l6N2AP/V]vU8o63">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation>
                      <field name="OPTION">between</field>
                      <field name="START_TIME">00:01</field>
                      <field name="END_TIME">02:59</field>
                    </block>
                  </value>
                  <statement name="DO1">
                    <block type="comment" id="A@yvzNZb,XqShRI#WoA8">
                      <field name="COMMENT">während iobroker Backup an</field>
                      <next>
                        <block type="variables_set" id="12kYkO^2}UxL!O*?j7Qz">
                          <field name="VAR" id="GjzYplH_dd.|oM}2^z:)">SchaltSteckANAUSStatus</field>
                          <value name="VALUE">
                            <block type="get_value" id="$p9PWn}Zlh98_Q!+s`[/">
                              <field name="ATTR">val</field>
                              <field name="OID">sonoff.0.TasmotaSteckVIS.POWER</field>
                            </block>
                          </value>
                          <next>
                            <block type="variables_set" id="H0vBILc2#Dee#41vGb[[">
                              <field name="VAR" id="trv$uyYCiS,qS6A(Xd)$">BatteryLevel</field>
                              <value name="VALUE">
                                <block type="get_value" id="O=M5=-q_.~P;dynkq:`H">
                                  <field name="ATTR">val</field>
                                  <field name="OID">fullybrowser.0.192_168_253_58.Info.batteryLevel</field>
                                </block>
                              </value>
                              <next>
                                <block type="telegram" id="=AH-MP0U-;a|*#UAn`u$">
                                  <field name="INSTANCE"></field>
                                  <field name="LOG"></field>
                                  <field name="SILENT">FALSE</field>
                                  <field name="PARSEMODE">default</field>
                                  <value name="MESSAGE">
                                    <shadow type="text" id="^.Fb}gR!h(Zi+|%0OpM,">
                                      <field name="TEXT">text</field>
                                    </shadow>
                                    <block type="text_join" id="xnAWHDg1@gv%#{[mS$_/">
                                      <mutation items="7"></mutation>
                                      <value name="ADD0">
                                        <block type="text" id="@:Hg^7(+1Er[ig/8IL~@">
                                          <field name="TEXT">zwischen 0 und 3 Uhr</field>
                                        </block>
                                      </value>
                                      <value name="ADD1">
                                        <block type="text_newline" id="!M|yQOh;6(CoDiuhC}uQ">
                                          <field name="Type">\n</field>
                                        </block>
                                      </value>
                                      <value name="ADD2">
                                        <block type="variables_get" id="9)mfkp1LQ~oR!St,bJ%@">
                                          <field name="VAR" id="trv$uyYCiS,qS6A(Xd)$">BatteryLevel</field>
                                        </block>
                                      </value>
                                      <value name="ADD3">
                                        <block type="text" id="~7|gbwm|cqia)ILE(,G~">
                                          <field name="TEXT">%</field>
                                        </block>
                                      </value>
                                      <value name="ADD4">
                                        <block type="text_newline" id="D:aTxXfJ2Q`}r_SiaG(b">
                                          <field name="Type">\n</field>
                                        </block>
                                      </value>
                                      <value name="ADD5">
                                        <block type="text" id="){b/V#q;6TQcVaT9tP7u">
                                          <field name="TEXT">Steckdose </field>
                                        </block>
                                      </value>
                                      <value name="ADD6">
                                        <block type="variables_get" id="v0qv.:Mwt92)h:^b7S6Q">
                                          <field name="VAR" id="GjzYplH_dd.|oM}2^z:)">SchaltSteckANAUSStatus</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="control" id="Z-$NIAazfT3o1R{xPlEm">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                      <field name="OID">sonoff.0.TasmotaSteckVIS.POWER</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="logic_boolean" id="0(=j6+(i]a(ZBgpHy1LY">
                                          <field name="BOOL">TRUE</field>
                                        </block>
                                      </value>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </next>
        </block>
      </xml>
      

      Hier ein Ausschnitt des Blockly:
      63cbd486-923f-459d-9dde-e43992fd2ee8-image.png

      Was mache ich falsch?

      Danke!

      Dr. Bakterius Asgothian 2 Replies Last reply Reply Quote 0
      • Dr. Bakterius
        Dr. Bakterius Most Active @mading last edited by

        @mading Dein Skript greift nur, wenn du es zu diesen Zeiten startest. Du brauchst einen Cron-Trigger.

        blockly.png

        Den Teil außerhalb der Zeit, also bei niedrigem Batteriestand, lässt du wie gehabt.

        M 1 Reply Last reply Reply Quote 0
        • M
          mading @Dr. Bakterius last edited by

          @dr-bakterius danke dir. nur im Missverständnisse zu vermeiden: ich möchte dass zwischen 0 und 3 Uhr der Strom an ist und zwischen 3:01 und 23:59 die Logik zieht dass bei 20% Batterielevel der Strom an geschaltet wird etc. Der Trigger für die Zeit zwischen 3 Uhr und 23:59 Uhr fehlt doch dann, oder?

          Meister Mopper crunchip Dr. Bakterius 3 Replies Last reply Reply Quote 0
          • Meister Mopper
            Meister Mopper @mading last edited by

            @mading sagte in zeitliche Ausnahme bei Steckdosenschaltung:

            Der Trigger für die Zeit zwischen 3 Uhr und 23:59 Uhr fehlt doch dann, oder?

            Ich würde die cron-trigger mit deinem Skript kombinieren, da der iobroker ja nicht drei Stunden-Backups macht, er kann die Energieversorgung dann übernehmen, wenn er wieder on ist.

            1 Reply Last reply Reply Quote 0
            • crunchip
              crunchip Forum Testing Most Active @mading last edited by

              @mading schalte doch einfach 1 oder 2 Stunden vor deinem Backup per cron die Steckdose an, dann ist genug Zeit zum laden bis zum Backup.
              anders gefragt, warum funktioniert die Logik des Adapters nicht während deines Backups?

              M 1 Reply Last reply Reply Quote 0
              • M
                mading @crunchip last edited by

                @crunchip ich stoppe iobroker während des Backups, um sicher zu gehen, dass es konsistent ist. Das Backup mache ich mit dd.

                1 Reply Last reply Reply Quote 0
                • Dr. Bakterius
                  Dr. Bakterius Most Active @mading last edited by

                  @mading Außerhalb der drei Stunden macht das Skript das du bisher hattest seinen Dienst. Aber @Meister-Mopper hat recht. Schalte doch den Strom ein bevor ioBroker gestoppt wird und nach dem Neustart einfach wieder aus. Dann ist das Tablet genau während des Backup versorgt.

                  1 Reply Last reply Reply Quote 0
                  • Asgothian
                    Asgothian Developer @mading last edited by Asgothian

                    @mading
                    Was machst Du falsch:

                    • Die Zeitbedingung passt nicht. Der Baustein Zeit zwischen A und B erwartet das A < B. Diese Regel verletzt du in deinem Falls. Besser wäre hier gewesen: nicht Zeit zwischen 0:00 und 3:00 Uhr
                    • die zusätzliche Abfrage im Sonst-Falls ist unnötig, ein "Sonst" hätte gereicht (wenn das Falls denn ok gewesen wäre.
                    • Die Falls Bedingung wird nur beim Start des Skriptes überprüft, sprich welchen Zweig der Bedingung du ausführst hängt nur davon ab wann das Skript gestartet wird.
                    • Die Variable BatterieLevel ist unnötig. Du kannst an Stelle dieser Variablen den Baustein aus dem Trigger-Bereich nutzen, der mit "Object ID" vorbelegt ist, sofern du diesen auf "Wert" umstellst.
                    • Die Sondermeldung bei Batterie < 5 % ist ungünstig in einem sonst Falls verbaut. Das führt dazu das wenn die Batterie unter 5% und die Ladesteckdose noch aus ist keine Warnmeldung das die Batterie so niedrig ist ausgegeben wird Ich würde auf eine gesonderte Meldung verzichten und statt dessen den Text in der Meldung über Bausteine aus dem Textbereich so zusammen setzen:
                      erstelle Text aus Vis Tablett Batterie auf BatterieLevel %. Schalte Strom ein.
                      Dabei hat der Erstelle Text aus Baustein 3 Knoten an denen die 3 folgenden Bausteine angedockt sind.

                    Generell gilt:
                    Trigger (auch Cron Trigger) machen hinter Falls Abfragen nur in Sonderfällen Sinn. Meistens ist es besser, den Trigger allgemein zu definieren und mit einer Falls Abfrage innerhalb des Triggers Zusatzbedingungen (wie die Uhrzeit) abzuprüfen.

                    Was du brauchst:

                    • Im Trigger eine Abfrage auf die Uhrzeit, die verhindert das die Steckdose zwischen 0 und 3 Uhr abgeschaltet wird.

                    • Einen cron Trigger, der die Steckdose um 0:00 Uhr auf jeden Fall einschaltet.

                    A.
                    p.s. Ich hasse Autokorrektur, insbesondere wenn sie verschlimmbessert.

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    943
                    Online

                    31.9k
                    Users

                    80.2k
                    Topics

                    1.3m
                    Posts

                    5
                    8
                    213
                    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