Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly Script wirft Schleife (Bewegungsmelder SONOSS PIR2)

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    681

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.8k

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

Blockly Script wirft Schleife (Bewegungsmelder SONOSS PIR2)

Scheduled Pinned Locked Moved Skripten / Logik
blockly
4 Posts 2 Posters 479 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    Tardar
    wrote on last edited by
    #1

    Hi zusammen,

    mein Plan ist, die Küchenlampe mit einem Bewegungsmelder zu schalten, solange ich in der Küche bin.
    Verlasse ich die Küche, soll die Lampe nicht wieder eingeschaltet werden, sondern nach einer Zeit ausgeschaltet werden.

    Das Script:
    fehlerhaftes_bewegungsmelder-lampe_script.txt

    Ich bin mir nicht sicher, denn:

    • der SONOFF PIR2 schickt sein 433Mhz Signal an eine SONOFF RF Bridge
    • die SONOFF RF Bridge wandelt das Signal in ein MQTT Signal um
    • schickt es an den PI und er steuert damit die Lampe

    Es gibt leider kein zweites Signal, mit dem ich die Lampe ausschalten kann, daher denke ich muss man das mit einer Schleife lösen, die mittels Trigger des neu einschaltens prüft, ob ich noch in der Küche bin.

    Mein derzeitiges Blockly schaut so aus und zerhaut mir quasi alles :D (Naja fast ;))

    Ganz lieben Dank Euch und beste Grüße

    paul53P 1 Reply Last reply
    0
    • T Tardar

      Hi zusammen,

      mein Plan ist, die Küchenlampe mit einem Bewegungsmelder zu schalten, solange ich in der Küche bin.
      Verlasse ich die Küche, soll die Lampe nicht wieder eingeschaltet werden, sondern nach einer Zeit ausgeschaltet werden.

      Das Script:
      fehlerhaftes_bewegungsmelder-lampe_script.txt

      Ich bin mir nicht sicher, denn:

      • der SONOFF PIR2 schickt sein 433Mhz Signal an eine SONOFF RF Bridge
      • die SONOFF RF Bridge wandelt das Signal in ein MQTT Signal um
      • schickt es an den PI und er steuert damit die Lampe

      Es gibt leider kein zweites Signal, mit dem ich die Lampe ausschalten kann, daher denke ich muss man das mit einer Schleife lösen, die mittels Trigger des neu einschaltens prüft, ob ich noch in der Küche bin.

      Mein derzeitiges Blockly schaut so aus und zerhaut mir quasi alles :D (Naja fast ;))

      Ganz lieben Dank Euch und beste Grüße

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by paul53
      #2

      @Tardar
      Der Block "wiederhole bis" erzeugt regelmäßig Endlosschleifen und sollte mit einer dicken Warnung versehen werden.
      Wie verhält sich der Datenpunkt "RfReceived_Data" bei erkannter Bewegung und ohne Bewegung ?

      EDIT: Versuche es mal hiermit:

      <xml xmlns="https://developers.google.com/blockly/xml">
       <variables>
         <variable type="timeout" id="timeout">timeout</variable>
       </variables>
       <block type="on" id="khHXF/7bWUWXepA+7X/x" x="-12" y="163">
         <field name="OID">sonoff.0.SonoffBridge.RfReceived_Data</field>
         <field name="CONDITION">any</field>
         <field name="ACK_CONDITION"></field>
         <statement name="STATEMENT">
           <block type="controls_if" id="9G{qmu+d7Cc2J^ChR~D?">
             <value name="IF0">
               <block type="logic_operation" id="EDFf/c4Jn-6{U9xw3!ck" inline="false">
                 <field name="OP">AND</field>
                 <value name="A">
                   <block type="logic_compare" id="96!D,hPyk/{h))wQp1t=">
                     <field name="OP">EQ</field>
                     <value name="A">
                       <block type="on_source" id="T$GTgnLj7/?Exe2(]t%=">
                         <field name="ATTR">state.val</field>
                       </block>
                     </value>
                     <value name="B">
                       <block type="text" id="BC3fKG+^SAK?j;Th6XnF">
                         <field name="TEXT">E1C5AE</field>
                       </block>
                     </value>
                   </block>
                 </value>
                 <value name="B">
                   <block type="get_value" id="beF.)k53Wqw?oK{7U?{H">
                     <field name="ATTR">val</field>
                     <field name="OID">radar2.0.Pascal._here</field>
                   </block>
                 </value>
               </block>
             </value>
             <statement name="DO0">
               <block type="control" id="Lsg1llqy3C?+{YFjKTWx">
                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                 <field name="OID">zigbee.0.0017880102fc0272.state</field>
                 <field name="WITH_DELAY">FALSE</field>
                 <value name="VALUE">
                   <block type="logic_boolean" id="1g3.HS(Ci*1RsNB2sVsC">
                     <field name="BOOL">TRUE</field>
                   </block>
                 </value>
                 <next>
                   <block type="timeouts_cleartimeout" id="HgHWp?=Y50NXWTw~R)rU">
                     <field name="NAME">timeout</field>
                     <next>
                       <block type="timeouts_settimeout" id="QvmDriy]S[`R9AS],($B">
                         <field name="NAME">timeout</field>
                         <field name="DELAY">6</field>
                         <field name="UNIT">min</field>
                         <statement name="STATEMENT">
                           <block type="control" id="QB=T}L1U/-CWA4gMtB+@">
                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                             <field name="OID">zigbee.0.0017880102fc0272.state</field>
                             <field name="WITH_DELAY">FALSE</field>
                             <value name="VALUE">
                               <block type="logic_boolean" id="]NBzBhCHZ%ESrCD{7e4;">
                                 <field name="BOOL">FALSE</field>
                               </block>
                             </value>
                           </block>
                         </statement>
                       </block>
                     </next>
                   </block>
                 </next>
               </block>
             </statement>
           </block>
         </statement>
       </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 Reply Last reply
      0
      • T Offline
        T Offline
        Tardar
        wrote on last edited by Tardar
        #3

        Wenn keine Bewegung stattfindet, bleibt der Datenpunkt auf dem vorherigen Wert. Also dem, der den letzten Trigger gegeben hat.
        Das einmalige ein & ausschalten funktioniert.
        Ich teste das gleich nochmal mit einer längeren Dauer (Der Melder reagiert nur alle 5 Minuten)

        1 Reply Last reply
        0
        • T Offline
          T Offline
          Tardar
          wrote on last edited by
          #4

          Habe es jetzt testen können - das funktioniert :)
          Super klasse - ganz großes Dankeschön.

          Und jetzt eine gute Nacht. ;)

          1 Reply Last reply
          0

          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

          With your input, this post could be even better 💗

          Register Login
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          Support us

          ioBroker
          Community Adapters
          Donate

          490

          Online

          32.7k

          Users

          82.6k

          Topics

          1.3m

          Posts
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • Home
          • Recent
          • Tags
          • Unread 0
          • Categories
          • Unreplied
          • Popular
          • GitHub
          • Docu
          • Hilfe