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. Praktische Anwendungen (Showcase)
  4. Wemos D1 GPIO-Status via RF 433MHz übertragen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    232

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

Wemos D1 GPIO-Status via RF 433MHz übertragen

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
433mhzgeringer aufwandhohe reichweitekein wlan vorhanden
4 Beiträge 3 Kommentatoren 732 Aufrufe 2 Watching
  • Ä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.
  • T Offline
    T Offline
    tom_33
    schrieb am zuletzt editiert von tom_33
    #1

    Hallo Forum!

    Ich habe ein kleines Projekt umgesetzt, welches den GPIO Status (High oder Low) abfragt und diesen über ein 433Mhz Modul versendet. Grund ist, dass sich der abzufragende Schalter ausserhalb meines WLAN-Netz befindet. Die Distanz zwischen dem Transmitter und Receiver beträgt ca. 45m (Sichtverbindung).
    Weitere Abfragen und Einbindung von Messwerten sollten möglich sein. Vielleicht kann ich das noch später hier ergänzen.
    Im Datenblatt vom OPEN SMART Kit wird darauf hingewiesen, dass eine höhere Spannungsversorgung die Reichweite vom Sender erhöht. Wie der Wemos im IOBroker eingebunden wird, setzte ich hier voraus.

    BTW: Ich habe es mit den Wemos deshalb realisiert, weil ich sie Verfügbar hatte und mir das konfigurieren mit Tasmota leichter fällt.

    Der Materialaufwand ist gering:
    2 x Wemos D1
    1 x OpenSmart LongRange Receiver/Transmitter (bei Ali: Long Range 433 MHz RF Wireless Transceiver Kit)
    2x Stromversorgung USB 5V/1A

    Die Wemos habe ich mit der aktuellen 12.3.1 sensor.bin geflasht und folgend konfiguriert:

    Receiverseite:
    modul_Rx.gif
    Transmitterseite:
    modul_Tx.gif

    Wird der Status am GPIO D2 auf dem Transmitter-Wemos geändert, sendet folgende Regel die Information ab. Die Regel wird über die Konsole eingegeben.
    RULE1 ON POWER1#State=1 DO RfSend {"Data":0xA11111,"Bits":24,"Protocol":1,"Repeat":3,"Pulse":200} ENDON
    RULE2 ON POWER1#State=0 DO RfSend {"Data":0xA00000,"Bits":24,"Protocol":1,"Repeat":3,"Pulse":200} ENDON

    Das WIFI Modul wird fünf Minuten nach dem Bootvorgang abgeschaltet:
    RULE3 ON Switch1#Boot DO RuleTimer1 300 ENDON ON Rules#Timer=1 DO WIFI 0 ENDON

    Regel 3 dient dazu, dass das WLan Modul unötig nach einem AP sucht, jedoch kann man zuhause (im WLan) weitere Konfigurationen durchführen. Die Regel3 kann, wenn die Stromversorgung hergestellt ist, innerhalb von fünf Minuten mit RULE3 0 über die Konsole deaktiviert werden.

    Nicht vergessen! Regeln mit RULE(n) 1 aktivieren

    Schaltungsaufbau:
    schaltung.gif

    Über den IOBroker kann dann in den Objekten der Datenpunkt sonoff.0.GA_Rx.RfReceived_Data zur weiteren Verarbeitung verwendet werden.
    objekte.gif

    Beispiel:
    blockly.gif

    <xml xmlns="https://developers.google.com/blockly/xml">
     <block type="on_ext" id="KjT5fa57Ka:}vTqmLHA7" x="113" y="63">
       <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
       <field name="CONDITION">ne</field>
       <field name="ACK_CONDITION"></field>
       <value name="OID0">
         <shadow type="field_oid" id="Pt#|jE$G)$kh3=CLg4XM">
           <field name="oid">sonoff.0.GA_Rx.RfReceived_Data</field>
         </shadow>
       </value>
       <statement name="STATEMENT">
         <block type="controls_if" id="/*SqAy+G1,=fn0?,{fF?">
           <mutation elseif="1"></mutation>
           <value name="IF0">
             <block type="logic_compare" id="bAh)saB?`JXF:(hdD`G/">
               <field name="OP">EQ</field>
               <value name="A">
                 <block type="get_value" id=":pZCi}8x@|LIEs]2!PUt">
                   <field name="ATTR">val</field>
                   <field name="OID">sonoff.0.GA_Rx.RfReceived_Data</field>
                 </block>
               </value>
               <value name="B">
                 <block type="text" id="#hgB,)/vTRTLK0kWXl0@">
                   <field name="TEXT">0xA00000</field>
                 </block>
               </value>
             </block>
           </value>
           <statement name="DO0">
             <block type="control" id="p@o)@O]0G=:6%P9e`m%s">
               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
               <field name="OID">zigbee.0.086bd7fffe2e72fc.state</field>
               <field name="WITH_DELAY">FALSE</field>
               <value name="VALUE">
                 <block type="logic_boolean" id="tQ,Qp@EtRh~K$o9@N=`#">
                   <field name="BOOL">FALSE</field>
                 </block>
               </value>
               <next>
                 <block type="control" id="Qx7ljH67`h=pL]0W*mA0">
                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                   <field name="OID">sonoff.0.GA_Rx.POWER</field>
                   <field name="WITH_DELAY">FALSE</field>
                   <value name="VALUE">
                     <block type="logic_boolean" id="`B{]c23e.-]{knn$5tHu">
                       <field name="BOOL">FALSE</field>
                     </block>
                   </value>
                 </block>
               </next>
             </block>
           </statement>
           <value name="IF1">
             <block type="logic_compare" id="(drtUeNw(0Vl5**l;G#C">
               <field name="OP">EQ</field>
               <value name="A">
                 <block type="get_value" id="3]2Qo-eY|`;2:*-dDZ^=">
                   <field name="ATTR">val</field>
                   <field name="OID">sonoff.0.GA_Rx.RfReceived_Data</field>
                 </block>
               </value>
               <value name="B">
                 <block type="text" id="mp2F=3XkMH0]|lI@3Uy7">
                   <field name="TEXT">0xA11111</field>
                 </block>
               </value>
             </block>
           </value>
           <statement name="DO1">
             <block type="control" id="SEYJ.2U3a[3(SY4WZy`A">
               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
               <field name="OID">zigbee.0.086bd7fffe2e72fc.state</field>
               <field name="WITH_DELAY">FALSE</field>
               <value name="VALUE">
                 <block type="logic_boolean" id="pi$k;;i]NpNKj%UszFME">
                   <field name="BOOL">TRUE</field>
                 </block>
               </value>
               <next>
                 <block type="control" id="[M6MHzVGU3_%PL@L?i#I">
                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                   <field name="OID">sonoff.0.GA_Rx.POWER</field>
                   <field name="WITH_DELAY">FALSE</field>
                   <value name="VALUE">
                     <block type="logic_boolean" id="bNQJPU3a*B_Fnog=bh%`">
                       <field name="BOOL">TRUE</field>
                     </block>
                   </value>
                 </block>
               </next>
             </block>
           </statement>
         </block>
       </statement>
     </block>
    </xml>
    

    Grüße Tom

    1Topf1 1 Antwort Letzte Antwort
    1
    • T tom_33

      Hallo Forum!

      Ich habe ein kleines Projekt umgesetzt, welches den GPIO Status (High oder Low) abfragt und diesen über ein 433Mhz Modul versendet. Grund ist, dass sich der abzufragende Schalter ausserhalb meines WLAN-Netz befindet. Die Distanz zwischen dem Transmitter und Receiver beträgt ca. 45m (Sichtverbindung).
      Weitere Abfragen und Einbindung von Messwerten sollten möglich sein. Vielleicht kann ich das noch später hier ergänzen.
      Im Datenblatt vom OPEN SMART Kit wird darauf hingewiesen, dass eine höhere Spannungsversorgung die Reichweite vom Sender erhöht. Wie der Wemos im IOBroker eingebunden wird, setzte ich hier voraus.

      BTW: Ich habe es mit den Wemos deshalb realisiert, weil ich sie Verfügbar hatte und mir das konfigurieren mit Tasmota leichter fällt.

      Der Materialaufwand ist gering:
      2 x Wemos D1
      1 x OpenSmart LongRange Receiver/Transmitter (bei Ali: Long Range 433 MHz RF Wireless Transceiver Kit)
      2x Stromversorgung USB 5V/1A

      Die Wemos habe ich mit der aktuellen 12.3.1 sensor.bin geflasht und folgend konfiguriert:

      Receiverseite:
      modul_Rx.gif
      Transmitterseite:
      modul_Tx.gif

      Wird der Status am GPIO D2 auf dem Transmitter-Wemos geändert, sendet folgende Regel die Information ab. Die Regel wird über die Konsole eingegeben.
      RULE1 ON POWER1#State=1 DO RfSend {"Data":0xA11111,"Bits":24,"Protocol":1,"Repeat":3,"Pulse":200} ENDON
      RULE2 ON POWER1#State=0 DO RfSend {"Data":0xA00000,"Bits":24,"Protocol":1,"Repeat":3,"Pulse":200} ENDON

      Das WIFI Modul wird fünf Minuten nach dem Bootvorgang abgeschaltet:
      RULE3 ON Switch1#Boot DO RuleTimer1 300 ENDON ON Rules#Timer=1 DO WIFI 0 ENDON

      Regel 3 dient dazu, dass das WLan Modul unötig nach einem AP sucht, jedoch kann man zuhause (im WLan) weitere Konfigurationen durchführen. Die Regel3 kann, wenn die Stromversorgung hergestellt ist, innerhalb von fünf Minuten mit RULE3 0 über die Konsole deaktiviert werden.

      Nicht vergessen! Regeln mit RULE(n) 1 aktivieren

      Schaltungsaufbau:
      schaltung.gif

      Über den IOBroker kann dann in den Objekten der Datenpunkt sonoff.0.GA_Rx.RfReceived_Data zur weiteren Verarbeitung verwendet werden.
      objekte.gif

      Beispiel:
      blockly.gif

      <xml xmlns="https://developers.google.com/blockly/xml">
       <block type="on_ext" id="KjT5fa57Ka:}vTqmLHA7" x="113" y="63">
         <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
         <field name="CONDITION">ne</field>
         <field name="ACK_CONDITION"></field>
         <value name="OID0">
           <shadow type="field_oid" id="Pt#|jE$G)$kh3=CLg4XM">
             <field name="oid">sonoff.0.GA_Rx.RfReceived_Data</field>
           </shadow>
         </value>
         <statement name="STATEMENT">
           <block type="controls_if" id="/*SqAy+G1,=fn0?,{fF?">
             <mutation elseif="1"></mutation>
             <value name="IF0">
               <block type="logic_compare" id="bAh)saB?`JXF:(hdD`G/">
                 <field name="OP">EQ</field>
                 <value name="A">
                   <block type="get_value" id=":pZCi}8x@|LIEs]2!PUt">
                     <field name="ATTR">val</field>
                     <field name="OID">sonoff.0.GA_Rx.RfReceived_Data</field>
                   </block>
                 </value>
                 <value name="B">
                   <block type="text" id="#hgB,)/vTRTLK0kWXl0@">
                     <field name="TEXT">0xA00000</field>
                   </block>
                 </value>
               </block>
             </value>
             <statement name="DO0">
               <block type="control" id="p@o)@O]0G=:6%P9e`m%s">
                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                 <field name="OID">zigbee.0.086bd7fffe2e72fc.state</field>
                 <field name="WITH_DELAY">FALSE</field>
                 <value name="VALUE">
                   <block type="logic_boolean" id="tQ,Qp@EtRh~K$o9@N=`#">
                     <field name="BOOL">FALSE</field>
                   </block>
                 </value>
                 <next>
                   <block type="control" id="Qx7ljH67`h=pL]0W*mA0">
                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                     <field name="OID">sonoff.0.GA_Rx.POWER</field>
                     <field name="WITH_DELAY">FALSE</field>
                     <value name="VALUE">
                       <block type="logic_boolean" id="`B{]c23e.-]{knn$5tHu">
                         <field name="BOOL">FALSE</field>
                       </block>
                     </value>
                   </block>
                 </next>
               </block>
             </statement>
             <value name="IF1">
               <block type="logic_compare" id="(drtUeNw(0Vl5**l;G#C">
                 <field name="OP">EQ</field>
                 <value name="A">
                   <block type="get_value" id="3]2Qo-eY|`;2:*-dDZ^=">
                     <field name="ATTR">val</field>
                     <field name="OID">sonoff.0.GA_Rx.RfReceived_Data</field>
                   </block>
                 </value>
                 <value name="B">
                   <block type="text" id="mp2F=3XkMH0]|lI@3Uy7">
                     <field name="TEXT">0xA11111</field>
                   </block>
                 </value>
               </block>
             </value>
             <statement name="DO1">
               <block type="control" id="SEYJ.2U3a[3(SY4WZy`A">
                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                 <field name="OID">zigbee.0.086bd7fffe2e72fc.state</field>
                 <field name="WITH_DELAY">FALSE</field>
                 <value name="VALUE">
                   <block type="logic_boolean" id="pi$k;;i]NpNKj%UszFME">
                     <field name="BOOL">TRUE</field>
                   </block>
                 </value>
                 <next>
                   <block type="control" id="[M6MHzVGU3_%PL@L?i#I">
                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                     <field name="OID">sonoff.0.GA_Rx.POWER</field>
                     <field name="WITH_DELAY">FALSE</field>
                     <value name="VALUE">
                       <block type="logic_boolean" id="bNQJPU3a*B_Fnog=bh%`">
                         <field name="BOOL">TRUE</field>
                       </block>
                     </value>
                   </block>
                 </next>
               </block>
             </statement>
           </block>
         </statement>
       </block>
      </xml>
      

      Grüße Tom

      1Topf1 Offline
      1Topf1 Offline
      1Topf
      schrieb am zuletzt editiert von
      #2

      @tom_33

      Cool. Ich ärgere mich manchmal, daß der WiFi-Empfang am Ende meines Grundstückes nicht mehr ganz so zuverlässig ist, vor allem jetzt bei Schnee. Das per Funk zu überbrücken kam mir noch gar nicht in den Sinn. Danke für die Idee. :+1:

      1 Antwort Letzte Antwort
      0
      • K Offline
        K Offline
        klassisch
        Most Active
        schrieb am zuletzt editiert von
        #3

        Und warum nicht gleich mit RFLink?

        T 1 Antwort Letzte Antwort
        0
        • K klassisch

          Und warum nicht gleich mit RFLink?

          T Offline
          T Offline
          tom_33
          schrieb am zuletzt editiert von tom_33
          #4

          @1Topf Danke sehr. Ich finde Kategorie Showcase sowieso Spitze.

          @klassisch Die Lösung kannte ich noch nicht, werde sie aber testen.
          Mir ist in der aktuellen Tasmota 12.3.1 sensor.bin RFsend und RFrecv aufgefallen. Da bin ich neugierig geworden und habs ausprobiert.

          Link zu RFLink:
          https://github.com/schmurtzm/RFLink32-For-Sonoff-RF-Bridge/blob/master/Original_RFlink32_Documentation.md

          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

          493

          Online

          32.5k

          Benutzer

          81.9k

          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