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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Probleme mit Schleife… ??

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.1k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Probleme mit Schleife… ??

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 3 Kommentatoren 640 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    mameier1234
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich bräuchte mal nen kleinen Tipp:

    Ich lasse , wenn ein Bewegungsmelder "motion" meldet UND wenn die Variable Lichtautomatik true ist UND wenn es Dunkel ist eine Lampe einschalten…

    Nun will ich eigentlich das Licht so lange anlassen, wie bewegung erkannt wird, ansonsten innerhalb einer Minute wieder ausschalten.

    Also baue ich mir eine Variable _ausschalten, setzte die auf false.

    Dann mache ich eine Schleife, bis _ausschalten = true und prüfe einmal pro Minute ob der Bewegungsmelder ungleich "motion" ist, wenn das Zutrifft, dann wird das Licht ausgeschaltet und _ausschalten auf Wahr gesetzt, damit die Schleife beendet wird...

    Aber : Das Licht geht nicht mehr aus, und die Debug Ausgaben werden auch nicht im Log angezeigt..(bis auf die erste...)

     <xml xmlns="http://www.w3.org/1999/xhtml"><block type="create" id="6*T}2d^#pp!Nfn/]#8F=" x="-512" y="-462"><field name="NAME">Lichtautomatik</field>
        <next><block type="on" id="*ISg8|x]{s|1@R3`?xgE"><field name="OID">fhem.0.Bewegung1.state</field>
            <field name="CONDITION">ne</field>
    
            <statement name="STATEMENT"><block type="debug" id="[u_`,.@nty]LHi827s9S"><field name="Severity">log</field>
                <value name="TEXT"><shadow type="text" id="m7#m_#;OA_CEYrS8c+m}"><field name="TEXT">Ausgelöst</field></shadow></value> 
                <next><block type="controls_if" id="}oaRZ^wU2sm-CF%QI0I5"><value name="IF0"><block type="logic_operation" id="hAKkny#%hi;F)h]UR+.c" inline="false"><field name="OP">AND</field>
                        <value name="A"><block type="logic_operation" id="i|5:S]qgTQG6b]qDRoyC" inline="false"><field name="OP">OR</field>
                            <value name="A"><block type="logic_compare" id="/E)r?Y@tP4,EBTmtF(HS"><field name="OP">EQ</field>
                                <value name="A"><block type="get_value" id="gi+mhS9@aIq=o=Qa0D*/"><field name="ATTR">val</field>
                                    <field name="OID">javascript.0.Lichtautomatik</field></block></value> 
                                <value name="B"><block type="logic_boolean" id="%|@VFR`@,XGmT:jiLoui"><field name="BOOL">TRUE</field></block></value></block></value> 
                            <value name="B"><block type="logic_compare" id="L]0)-U_I7LG~.{Oh5g/k"><field name="OP">EQ</field>
                                <value name="A"><block type="get_value" id="Q{t!wThfbx+?l9ruyiOr"><field name="ATTR">val</field>
                                    <field name="OID">fhem.0.Bewegung1_Helligkeit.dark</field></block></value> 
                                <value name="B"><block type="math_number" id="#~)]H]WGE{f91MUog9[9"><field name="NUM">1</field></block></value></block></value></block></value> 
                        <value name="B"><block type="logic_operation" id="FXFZmqC]4,hbtaWQ(VFJ" inline="false"><field name="OP">AND</field>
                            <value name="A"><block type="logic_compare" id="v):QANJOy}CMs054;Q/t"><field name="OP">EQ</field>
                                <value name="A"><block type="get_value" id="FU+?YONEF74/}m1,6RR;"><field name="ATTR">val</field>
                                    <field name="OID">hm-rpc.0.OEQ1147516.1.STATE</field></block></value> 
                                <value name="B"><block type="logic_boolean" id="J`~u;O:L^P|Vo#Aa65uF"><field name="BOOL">FALSE</field></block></value></block></value> 
                            <value name="B"><block type="logic_compare" id="+aIC?dV.#u~*BXwuu[GT"><field name="OP">EQ</field>
                                <value name="A"><block type="get_value" id="+Jodrl0?x;]`cH7CeEtJ"><field name="ATTR">val</field>
                                    <field name="OID">fhem.0.Bewegung1.state</field></block></value> 
                                <value name="B"><block type="text" id="W;B(@AkW,IU/N.?Hw|zP"><field name="TEXT">motion</field></block></value></block></value></block></value></block></value> 
                    <statement name="DO0"><block type="control" id="+`zl890lh[hkafle-mZz"><mutation delay_input="false"></mutation>
                        <field name="OID">hm-rpc.0.OEQ1147516.1.STATE</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE"><block type="logic_boolean" id="u9R0W*`|qT%jZk[v;}bu"><field name="BOOL">TRUE</field></block></value> 
                        <next><block type="variables_set" id="l#QnLX,oNHkTLeMzk[*Y"><field name="VAR">_ausschalten</field>
                            <value name="VALUE"><block type="logic_boolean" id="^%-r!xuFG3_^A0]CDqTG"><field name="BOOL">FALSE</field></block></value></block></next></block></statement> 
                    <next><block type="debug" id="[`FQ{/r{7oB^}/Fi?U~G"><field name="Severity">log</field>
                        <value name="TEXT"><shadow type="text" id="m7#m_#;OA_CEYrS8c+m}"><field name="TEXT">test</field></shadow> 
                          <block type="text_join" id="c(CY[FRA7ozs4I)Q%Ki%" inline="true"><mutation items="2"></mutation>
                            <value name="ADD0"><block type="text" id="Qi[DfOC*;dIlE#Ccd5^G"><field name="TEXT">Vor Schleife ist Ausschalten:</field></block></value> 
                            <value name="ADD1"><block type="variables_get" id="z%c|vnF;o6r*Q9_kkIxB"><field name="VAR">_ausschalten</field></block></value></block></value> 
                        <next><block type="controls_whileUntil" id="37%[SoH~_zFjIH,4*@`S"><field name="MODE">UNTIL</field>
                            <value name="BOOL"><block type="logic_compare" id="[L4=+5y5l^W@E,ds}G|r"><field name="OP">EQ</field>
                                <value name="A"><block type="variables_get" id="bBNGpxOqMbZ;)8PFqGfu"><field name="VAR">_ausschalten</field></block></value> 
                                <value name="B"><block type="logic_boolean" id="_eb~BYDpL1J3hGN=esTa"><field name="BOOL">TRUE</field></block></value></block></value> 
                            <statement name="DO"><block type="timeouts_settimeout" id="3Gg-T(=HN[f`FK^h]xyy"><field name="NAME">timeout</field>
                                <field name="DELAY">1</field>
                                <field name="UNIT">min</field>
                                <statement name="STATEMENT"><block type="controls_if" id="(WCzCtwN;h{mqhRWbdCU"><value name="IF0"><block type="logic_compare" id="9n}/AXbA9B)8J(SQO#xb"><field name="OP">NEQ</field>
                                        <value name="A"><block type="get_value" id="d:,%!;xh`UlI@dlB0.Cb"><field name="ATTR">val</field>
                                            <field name="OID">fhem.0.Bewegung1.state</field></block></value> 
                                        <value name="B"><block type="text" id="2`A-V;CUy=OBbZ3OpGF-"><field name="TEXT">motion</field></block></value></block></value> 
                                    <statement name="DO0"><block type="control" id="+MrX*#qIzFrIIW1At#~]"><mutation delay_input="false"></mutation>
                                        <field name="OID">hm-rpc.0.OEQ1147516.1.STATE</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE"><block type="logic_boolean" id="2U^=?I91%mj~,,Hqq~]%"><field name="BOOL">FALSE</field></block></value> 
                                        <next><block type="variables_set" id=":./Ykmt(f`:q{R8SHt{J"><field name="VAR">_ausschalten</field>
                                            <value name="VALUE"><block type="logic_boolean" id="ky0XB0_/w-G(v[oFO}R,"><field name="BOOL">TRUE</field></block></value></block></next></block></statement> 
                                    <next><block type="debug" id="2ET0%,+(oBN5QA,t@GId"><field name="Severity">log</field>
                                        <value name="TEXT"><shadow type="text" id="m7#m_#;OA_CEYrS8c+m}"><field name="TEXT">test</field></shadow> 
                                          <block type="text_join" id="5Y6aSP|9|B59p8TtYG+0"><mutation items="2"></mutation>
                                            <value name="ADD0"><block type="text" id="04.EbH]~Rse1S@URRgWJ"><field name="TEXT">In  Schleife ist Ausschalten:</field></block></value> 
                                            <value name="ADD1"><block type="variables_get" id="#58wG^_gpu4q2HUrGF/q"><field name="VAR">_ausschalten</field></block></value></block></value></block></next></block></statement></block></statement> 
                            <next><block type="debug" id=":{s_?Y|?/@HbS!9EO^`m"><field name="Severity">log</field>
                                <value name="TEXT"><shadow type="text" id="m7#m_#;OA_CEYrS8c+m}"><field name="TEXT">test</field></shadow> 
                                  <block type="text_join" id="ZHq*#/X+}L;gI%~5HgOw"><mutation items="2"></mutation>
                                    <value name="ADD0"><block type="text" id="*f1=Ua~g|,|dWpgLyBPm"><field name="TEXT">Schleife ist beendet</field></block></value> 
                                    <value name="ADD1"><block type="variables_get" id=".a/)]CY6(BC}F:Th]KO@"><field name="VAR">_ausschalten</field></block></value></block></value></block></next></block></next></block></next></block></next></block></statement></block></next></block></xml> 
    

    4885_treppenlicht.png

    Grüße,

    Martin

    1 Antwort Letzte Antwort
    0
    • M Offline
      M Offline
      Mater1984
      schrieb am zuletzt editiert von
      #2

      Ganz andere Frage… warum löst du nicht bei Motion einen Zähler aus der jedesmal auf 1 Minute steht. Und wenn der Zähler einmal runtergezählt hat auf 0 Sekunden dann geht das Licht aus.

      1 Antwort Letzte Antwort
      0
      • M Offline
        M Offline
        mameier1234
        schrieb am zuletzt editiert von
        #3

        Hm.. gute Frage.. Ich wüsste ehrlichgesagt gar nicht, wie ich das in Blockly umsetzen könnte…

        Grüße,

        Martin

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

          Schleifen sollte man vermeiden, wenn es geht. Für das Problem werden keine Schleifen benötigt.
          493_blockly_bewegung_und.jpg

          ! ````
          <xml xmlns="http://www.w3.org/1999/xhtml"><block type="variables_set" id="U,v}AxcbrG,o}/9r)R!" x="-438" y="-287"><field name="VAR">licht</field>
          <value name="VALUE"><block type="get_value" id="7.:eScC
          os^))#So/]I7"><field name="ATTR">val</field>
          <field name="OID">ID auswählen</field></block></value>
          <next><block type="comment" id="bl5[_A@=Q=VNvb.TPlA"><field name="COMMENT">ID Bewegung</field> <next><block type="on" id="^E4sfXy;J%7%N7!~KYN"><field name="OID">Object ID</field>
          <field name="CONDITION">ne</field>

                  <statement name="STATEMENT"><block type="controls_if" id="lZ(wkj5=qNXN;_`3W3EM"><mutation else="1"></mutation>
                      <value name="IF0"><block type="logic_operation" id="E=HM_HQk,dla`gsD4{H:"><field name="OP">AND</field>
                          <value name="A"><block type="on_source" id="PGl2?Mdj=ftaduMP.DcR"><field name="ATTR">state.val</field></block></value> 
                          <value name="B"><block type="logic_operation" id="@TpyiC./.ECP0lF-~1?w"><field name="OP">AND</field>
                              <value name="A"><block type="get_value" id="Y(b=sP`q47riGyA,XksN"><field name="ATTR">val</field>
                                  <field name="OID">ID auswählen</field></block></value> 
                              <value name="B"><block type="get_value" id="HxQ1+yJnLg==AA(b^I,["><field name="ATTR">val</field>
                                  <field name="OID">ID auswählen</field></block></value></block></value></block></value> 
                      <statement name="DO0"><block type="timeouts_cleartimeout" id="hn7o@X`)MPX_2^EM:0iI"><field name="NAME">timeout</field>
                          <next><block type="controls_if" id="K94}j.-.@0H_Qv0Gtd|k"><value name="IF0"><block type="logic_negate" id="#V;!K4AL,EVuI|e#@TR/"><value name="BOOL"><block type="variables_get" id="A.cSD(Zg%#/:Wc^b_H2?"><field name="VAR">licht</field></block></value></block></value> 
                              <statement name="DO0"><block type="control" id="uE]kwP%Z?J[RCFy42a,7"><mutation delay_input="false"></mutation>
                                  <field name="OID">Object ID</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE"><block type="logic_boolean" id="a6o!G0N:bhTy-.[j1666"><field name="BOOL">TRUE</field></block></value></block></statement></block></next></block></statement> 
                      <statement name="ELSE"><block type="timeouts_settimeout" id="26Qh!Rpw,HOnvZWR)fBO"><field name="NAME">timeout</field>
                          <field name="DELAY">1</field>
                          <field name="UNIT">min</field>
                          <statement name="STATEMENT"><block type="controls_if" id="E|Lu6baONWBoanxvjKfU"><value name="IF0"><block type="variables_get" id="Vk/QUZ21UvvUZ5Suw0,G"><field name="VAR">licht</field></block></value> 
                              <statement name="DO0"><block type="control" id="fN9ODQfdy]0,i1~n~SwP"><mutation delay_input="false"></mutation>
                                  <field name="OID">Object ID</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE"><block type="logic_boolean" id="G{|*343fVJg|E6]vxm2Q"><field name="BOOL">FALSE</field></block></value></block></statement></block></statement></block></statement></block></statement> 
                  <next><block type="comment" id="PlNbAyN^w;+~0DlYraf?"><field name="COMMENT">ID Licht</field>
                      <next><block type="on" id="Qvir^Iyye;}YSbLTY*En"><field name="OID">Object ID</field>
                          <field name="CONDITION">any</field>
                          <field name="ACK_CONDITION">true</field>
                          <statement name="STATEMENT"><block type="variables_set" id="8u+DfM@(Gb|Gpa*5V%gb"><field name="VAR">licht</field>
                              <value name="VALUE"><block type="on_source" id="*z`p%tJ(Mc`=dl6(%0Q%"><field name="ATTR">state.val</field></block></value></block></statement></block></next></block></next></block></next></block></next></block> 
          

          <block type="comment" id="2aV7tF/;%?p=WCSi2.Nl" x="-138" y="-263"><field name="COMMENT">ID Licht</field></block>
          <block type="comment" id="8FWPRKjHjiILtXhLpktJ" x="12" y="-162"><field name="COMMENT">ID dunkel</field></block>
          <block type="comment" id="YuX%ZN/@}XH3WgMto.~!" x="337" y="-162"><field name="COMMENT">ID Lichtautomatik</field></block>
          <block type="comment" id="V~Zi4,Y5gD!CJ*}rZQ:W" x="-213" y="113"><field name="COMMENT">ID Licht</field></block></xml>

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

          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            mameier1234
            schrieb am zuletzt editiert von
            #5

            Sehr geil..

            ich musste allerdings die Abfrage des Bewegungsmelder von True auf "Wert von Melder = motion" abändern, da die Hue-Melder "motion" oder "nomotion" zurückgeben.

            Wäre es jetzt noch möglich, am Anfang des Scripts, die Objekte des Bewegungsmelders und der Lampe irgendwie in Variablen zu übergeben, damit man nicht an gefühlt 10 Stellen die richtigen Objekte einsetzen muss ? Dann könnte man das Script nämlich leichter als Vorlage für andere Räume nutzen.

            Grüße,

            Martin

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


            Support us

            ioBroker
            Community Adapters
            Donate

            368

            Online

            32.5k

            Benutzer

            81.6k

            Themen

            1.3m

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

            • Du hast noch kein Konto? Registrieren

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