Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. [Tutorial] Xiaomi BWM HW Hack / 120s -> 5s Takt

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Tutorial] Xiaomi BWM HW Hack / 120s -> 5s Takt

    This topic has been deleted. Only users with topic management privileges can see it.
    • haselchen
      haselchen Most Active last edited by haselchen

      Ist dieser Hack nur Hardwareseitig möglich?
      Kann man keinen z.B. curl Befehl absetzen um den Intervall herunterzusetzen?
      Beim Vibrationssensor von Xiaomi kann man feste Werte per Curl Befehl ändern.
      Hintergrund der Frage ist, dass ich nicht löten kann und in meiner Umgebung auch niemanden habe.

      Neuschwansteini 1 Reply Last reply Reply Quote 0
      • MartinK.
        MartinK. last edited by MartinK.

        Was auch noch ganz interessant wäre zu wissen, wie sich das 5 Sek. triggern auf die Standzeit der Batterie auswirkt ? 😉 ... Aber sonst finde ich das Projekt prima ! 🙂 👍

        1 Reply Last reply Reply Quote 0
        • Neuschwansteini
          Neuschwansteini @haselchen last edited by

          @haselchen welcher Curl Befehl ist das denn? (vibrationssensor)
          Den kann man ja auch in der App mit der Empfindlichkeit einstellen.

          Für den Motion wäre das natürlich super. Brauch da keine 5 sek - das ist schon zu oft. Aber 180 sind zuviel 🙂

          haselchen 1 Reply Last reply Reply Quote 0
          • haselchen
            haselchen Most Active @Neuschwansteini last edited by haselchen

            @ilovegym

            Warte . Such dir den Thread mal raus.
            https://forum.iobroker.net/topic/26118/conbee-2-kompatibilität/18

            Da habe ich es beschrieben.

            1 Reply Last reply Reply Quote 0
            • C
              CruziX last edited by

              Habe das auch mit dem BWM in der Küche gemacht. Wobei ich deinen ersten timeout nicht verstehe ^^

              Bei mir kann der BWM auch nach 5 Sek wieder Bewegung erkennen, aber man muss doch nur dern DP auf aktualisiert und ist wahr prüfen, wenn er dann auf false gesetzt wird, sollte das ja nicht triggern. Bzw. ich mache das so:
              Ich setze dann abhängig von anderen Bedingungen einen variablen timeout und setze beim Ablauf den DP selbst auf false. So kann ich selbst steuern, wann Bewegung wieder erkannt wird. Wenn der BWM es selbst macht ist das auch in Ordnung. Ging mir an sich auch nur darum, dass nicht alle 5 Sek der Trigger durchlaufen wird

              F 1 Reply Last reply Reply Quote 0
              • F
                funboxbolzer @CruziX last edited by

                Bei mir kann der BWM auch nach 5 Sek wieder Bewegung erkennen, aber man muss doch nur dern DP auf aktualisiert und ist wahr prüfen, wenn er dann auf false gesetzt wird, sollte das ja nicht triggern. Bzw. ich mache das so:
                Ich setze dann abhängig von anderen Bedingungen einen variablen timeout und setze beim Ablauf den DP selbst auf false. So kann ich selbst steuern, wann Bewegung wieder erkannt wird. Wenn der BWM es selbst macht ist das auch in Ordnung. Ging mir an sich auch nur darum, dass nicht alle 5 Sek der Trigger durchlaufen wird

                Welchen datenpunkt setzt du wie zurück?
                Bin auch gerade am Bewegungsmelder einstellen 😉
                Gruß Klaus

                C 1 Reply Last reply Reply Quote 0
                • C
                  CruziX @funboxbolzer last edited by CruziX

                  @agent2408icloud-com Ich habe im adpter ordner von deconz das Objekt presence beschreibbar gemacht.
                  Wenn nun das Objekt auf true wechselt mache ich was und lasse nach einem Timeout (z.B. 30 Sekunden) den Datenpunkt wieder auf false setzen um den Trigger sozusagen wieder scharf zu schalten.

                  haselchen 1 Reply Last reply Reply Quote 0
                  • haselchen
                    haselchen Most Active @CruziX last edited by haselchen

                    @CruziX
                    @agent2408icloud-com

                    Nicht das manche es falsch verstehen.
                    Der Datenpunkt wird nach Zeit X wieder auf false (manuell) gestellt.
                    Bewegung wird trotzdem erst nach 60/90Sek wieder erkannt.

                    F C 2 Replies Last reply Reply Quote 1
                    • F
                      funboxbolzer @haselchen last edited by

                      @haselchen
                      vielen Dank. Diese Info hilft mir doch enorm weiter. Da kann ich meine Schaltzeiten dementsprechend anpassen.
                      Vielen Dank.
                      Gruß Klaus

                      1 Reply Last reply Reply Quote 0
                      • C
                        CruziX @haselchen last edited by

                        @haselchen die Bewegung wird bereits nach 5 Sekunden wieder erkannt. Nur dass ich mit einem eigenen Timer erst nach 30 Sekunden wieder darauf reagiere

                        haselchen 1 Reply Last reply Reply Quote 0
                        • haselchen
                          haselchen Most Active @CruziX last edited by

                          @CruziX

                          Der Aqara Bewegungsmelder?
                          In den ersten 2 Stunden reagiert er sofort auf Bewegung nach dem Anlernen.
                          Danach steigert sich die Zeit auf 60bis90 Sekunden bis er wieder auf true geht.

                          C 1 Reply Last reply Reply Quote 0
                          • C
                            CruziX @haselchen last edited by

                            @haselchen bin ein wenig verwirrt. Dafür ist doch dieser "Hack"? Nachdem man den so durchgeführt hat, wird nach 5 sekunden bereits wieder bewegung erkannt.
                            In phoscon sieht man es allerdings nicht, da hardwaretechnisch nach ~60 sek. false zurückgemeldet wird. In iobroker sieht man aber, dass ich nach 5 sek. der Wert bei Bewegung wieder mit true aktualisiert. Deswegen setzte ich den Wert selber auf false um besser darauf triggern zu können

                            haselchen 1 Reply Last reply Reply Quote 0
                            • haselchen
                              haselchen Most Active @CruziX last edited by

                              @CruziX

                              Ach so. Das meinst Du. Ja, der Hardware Hack ändert das.
                              Sorry. Bin gedanklich falsch abgebogen.

                              1 Reply Last reply Reply Quote 0
                              • V
                                vikk88 last edited by

                                Vielen Dank für diese Anleitung. Es hat mich so genervt, dass ich unser Flurlicht nachts immer 60 Sekunden lang brennen lassen musste. Habe mein BM jetzt gelötet und hoffe das es soweit geklappt hat✊

                                1 Reply Last reply Reply Quote 0
                                • J
                                  JensLangen last edited by

                                  Funktioniert prima.
                                  Eine kleine Ergänzung bei der Verwendung des ZigBee-Adapters:
                                  Hier muss - zumindest bei mir der Wert unter zigbee.x......occupancy_timeout auch auf 5 gesetzt werden. Dann klappt es.

                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    TDCroPower @JensLangen last edited by TDCroPower

                                    @JensLangen sagte in [Tutorial] Xiaomi BWM HW Hack / 120s -> 5s Takt:

                                    Funktioniert prima.
                                    Eine kleine Ergänzung bei der Verwendung des ZigBee-Adapters:
                                    Hier muss - zumindest bei mir der Wert unter zigbee.x......occupancy_timeout auch auf 5 gesetzt werden. Dann klappt es.

                                    Geil das funktioniert!
                                    Der boolean wechselt jetzt nicht mehr erst nach 60 Sekunden von true auf false.
                                    Jetzt muss ich in meinem Lichtscript wohl doch einen Timer eintragen damit das Licht an bleibt 😉

                                    edit:
                                    ok durch die Änderung von JensLangen habe ich mein Script von occupancy auf no_motion ändern können.
                                    Jetzt prüft das Skript, ob der Wert unter 60 Sekunden liegt und schaltet dann das Licht ein.
                                    Somit bleibt das Licht immer für ca. 60 Sekunden an und innerhalb dieser Zeit kann der Wert von occupancy gerne öfter von true auf false springen solange die Zeit nicht höher als 60 Sekunden steigt.
                                    Werde es heute Abend mal in der Küche beobachten, ob meine Idee auch so funktioniert.

                                    Yeelight_Kueche_steuern.png

                                    Hier der Export meinen Skripts, falls es jemand ebenfalls verwenden will.

                                    <xml xmlns="http://www.w3.org/1999/xhtml">
                                     <block type="on" id="u;;D50`#m*Z;%2.Ey?nD" x="63" y="-112">
                                       <field name="OID">zigbee.0.00158d00027186b5.no_motion</field>
                                       <field name="CONDITION">ne</field>
                                       <field name="ACK_CONDITION"></field>
                                       <statement name="STATEMENT">
                                         <block type="comment" id="0Uq*WE2I^QkX5J[9Tk^e">
                                           <field name="COMMENT">Yeelight ausschalten</field>
                                           <next>
                                             <block type="controls_if" id="_@z*T/e|S/KN!,KJn=LU">
                                               <value name="IF0">
                                                 <block type="logic_operation" id="J()`x(SC,p.1Sif=:8r2" inline="false">
                                                   <field name="OP">OR</field>
                                                   <value name="A">
                                                     <block type="logic_compare" id="vt:?LC/_@%@`1=uB$ZGr">
                                                       <field name="OP">GT</field>
                                                       <value name="A">
                                                         <block type="get_value" id=";%cDPA;(uQab3M53HUq4">
                                                           <field name="ATTR">val</field>
                                                           <field name="OID">zigbee.0.00158d00027186b5.no_motion</field>
                                                         </block>
                                                       </value>
                                                       <value name="B">
                                                         <block type="math_number" id="%0-IZ@:ga{[b89f^mGqC">
                                                           <field name="NUM">60</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <value name="B">
                                                     <block type="logic_compare" id="P}`JBjN3xcW:G+q`SpPl">
                                                       <field name="OP">EQ</field>
                                                       <value name="A">
                                                         <block type="get_value" id="lcJiDjY*!,[81k0A9S*%">
                                                           <field name="ATTR">val</field>
                                                           <field name="OID">javascript.0.Nachtcheck</field>
                                                         </block>
                                                       </value>
                                                       <value name="B">
                                                         <block type="logic_boolean" id="7,F}%3uG#Bi:uD%p]%}o">
                                                           <field name="BOOL">FALSE</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <statement name="DO0">
                                                 <block type="control" id="V4D*HfMu)AjqJ/h;e+O`">
                                                   <mutation delay_input="false"></mutation>
                                                   <field name="OID">yeelight-2.0.Yeelight_Strip2.control.active_bright</field>
                                                   <field name="WITH_DELAY">FALSE</field>
                                                   <value name="VALUE">
                                                     <block type="math_number" id="SovCZvd}6H5,[%j:d_}8">
                                                       <field name="NUM">60</field>
                                                     </block>
                                                   </value>
                                                   <next>
                                                     <block type="control" id="/*XempP2[b*B;ijyl{Jf">
                                                       <mutation delay_input="false"></mutation>
                                                       <field name="OID">yeelight-2.0.Yeelight_Strip2.control.ct</field>
                                                       <field name="WITH_DELAY">FALSE</field>
                                                       <value name="VALUE">
                                                         <block type="math_number" id="J7+GMogy]k3nL!k_)IuD">
                                                           <field name="NUM">5400</field>
                                                         </block>
                                                       </value>
                                                       <next>
                                                         <block type="control" id="7Y;9Y2Z_rMOf1sdc}10y">
                                                           <mutation delay_input="false"></mutation>
                                                           <field name="OID">yeelight-2.0.Yeelight_Strip2.control.power</field>
                                                           <field name="WITH_DELAY">FALSE</field>
                                                           <value name="VALUE">
                                                             <block type="logic_boolean" id="ZEePuUdX9,I0rWdANKfB">
                                                               <field name="BOOL">FALSE</field>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </next>
                                                     </block>
                                                   </next>
                                                 </block>
                                               </statement>
                                               <next>
                                                 <block type="comment" id="Og0Rb,EQwNceqy4aW0AW">
                                                   <field name="COMMENT">Yeelight einschalten</field>
                                                   <next>
                                                     <block type="controls_if" id="%U{[fwxDo~MPOY2evjWi">
                                                       <value name="IF0">
                                                         <block type="logic_operation" id="Kxn,vc`D0%7jZ29rkZwT" inline="false">
                                                           <field name="OP">AND</field>
                                                           <value name="A">
                                                             <block type="logic_compare" id="#T4*}x8:1E^hSL/ZmV}D">
                                                               <field name="OP">LT</field>
                                                               <value name="A">
                                                                 <block type="get_value" id="HSwI@KStQ==u;ZT1?:eb">
                                                                   <field name="ATTR">val</field>
                                                                   <field name="OID">zigbee.0.00158d00027186b5.no_motion</field>
                                                                 </block>
                                                               </value>
                                                               <value name="B">
                                                                 <block type="math_number" id=",i.d;D75QICUF`__2mi:">
                                                                   <field name="NUM">60</field>
                                                                 </block>
                                                               </value>
                                                             </block>
                                                           </value>
                                                           <value name="B">
                                                             <block type="logic_compare" id="IiRd`UdKQmR!0WjiBF:4">
                                                               <field name="OP">EQ</field>
                                                               <value name="A">
                                                                 <block type="get_value" id="?=8cgZPIF6Mp|btvHoKz">
                                                                   <field name="ATTR">val</field>
                                                                   <field name="OID">javascript.0.Nachtcheck</field>
                                                                 </block>
                                                               </value>
                                                               <value name="B">
                                                                 <block type="logic_boolean" id="LnM1Ey)v6`ib{7v~QqIw">
                                                                   <field name="BOOL">TRUE</field>
                                                                 </block>
                                                               </value>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </value>
                                                       <statement name="DO0">
                                                         <block type="control" id="84Gc(]CVJMbIJ?wZ![a/">
                                                           <mutation delay_input="false"></mutation>
                                                           <field name="OID">yeelight-2.0.Yeelight_Strip2.control.power</field>
                                                           <field name="WITH_DELAY">FALSE</field>
                                                           <value name="VALUE">
                                                             <block type="logic_boolean" id="LmB+bfCyl5B)M0BX)v?#">
                                                               <field name="BOOL">TRUE</field>
                                                             </block>
                                                           </value>
                                                           <next>
                                                             <block type="control" id="}s*jh]Jc8(CiJ#n:lFns">
                                                               <mutation delay_input="false"></mutation>
                                                               <field name="OID">yeelight-2.0.Yeelight_Strip2.control.active_bright</field>
                                                               <field name="WITH_DELAY">FALSE</field>
                                                               <value name="VALUE">
                                                                 <block type="math_number" id="B8vYU|zEyn1:C{%@%Afw">
                                                                   <field name="NUM">30</field>
                                                                 </block>
                                                               </value>
                                                               <next>
                                                                 <block type="control" id="|?c-#]GeF!Q%9v5(:`z;">
                                                                   <mutation delay_input="false"></mutation>
                                                                   <field name="OID">yeelight-2.0.Yeelight_Strip2.control.ct</field>
                                                                   <field name="WITH_DELAY">FALSE</field>
                                                                   <value name="VALUE">
                                                                     <block type="math_number" id="`j%8(D7V5e(Xi/5!O4jm">
                                                                       <field name="NUM">5400</field>
                                                                     </block>
                                                                   </value>
                                                                 </block>
                                                               </next>
                                                             </block>
                                                           </next>
                                                         </block>
                                                       </statement>
                                                     </block>
                                                   </next>
                                                 </block>
                                               </next>
                                             </block>
                                           </next>
                                         </block>
                                       </statement>
                                     </block>
                                    </xml>
                                    

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      smartysmart last edited by smartysmart

                                      Steh ich grad auf dem Schlauch oder wieso finde ich hier "so komplizierte" Anleitungen 🙂 ?

                                      Man kann doch die "duration" einstellen ... Hier stellt man ein im welchen Intervall der Bewegungsmelder aktualisieren soll.
                                      Und mit dem "presence" kann mann dann auf wahr oder falsch triggern.

                                      5e0c3cd9-7b60-4697-855c-ca42a03fec38-image.png

                                      Das heisst der trigger reagiert auf Änderung vom presence.
                                      Wenn presence true dann licht an.
                                      Wenn presence falsch dann licht aus.
                                      14a1a744-a1c2-4f6c-8a05-6cc776f64c5f-image.png

                                      d.h solange man sich in diesem Raum befindet oder Bewegt geht das licht nicht aus.

                                      haselchen 1 Reply Last reply Reply Quote 0
                                      • haselchen
                                        haselchen Most Active @smartysmart last edited by

                                        @mend

                                        Wenn man den Sensor aber nicht gehackt hat , geht das Licht erst wieder nach 60/90Sekunden an, weil presence dann erst wieder auf wahr geht.

                                        S 1 Reply Last reply Reply Quote 0
                                        • S
                                          smartysmart @haselchen last edited by

                                          @haselchen

                                          ich hab nichts gehackt und bei mir ist das nicht so.

                                          presence aktualisiert sich je nachdem was ich ich bei duration eingebe.
                                          Hab alles zwischen 10 und 90 sec getestet und es funktioniert.

                                          haselchen 1 Reply Last reply Reply Quote 0
                                          • haselchen
                                            haselchen Most Active @smartysmart last edited by

                                            @mend

                                            Dann hast du mich falsch verstanden.
                                            Der Datenpunkt mag ja gesetzt werden aber der Bewegungssensor löst erst wieder nach 60/90Sekunden wieder aus.
                                            Wenn er neu angelernt wurde löst er sofort bei Bewegung aus. Nach ca. 24 Stunden hat er sich "eingependelt" und löst nach den besagten ca.60sek erst aus.
                                            Steht auch alles in diesem Thread.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            463
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter aqara bewegungsmelder hardware hack xiaomi
                                            36
                                            158
                                            23685
                                            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