Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. ESP8266 & RC522(RFID) über ESP-RFID in IOBROKER einbinden.

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    ESP8266 & RC522(RFID) über ESP-RFID in IOBROKER einbinden.

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

      Hallo Zusammen,

      vielleicht könnt ihr mir helfen.

      Ich schildere euch mal meine Situation.

      Ich habe einen Wemos D1 mini + ein RFID-RC522 Shield.
      Auf dem Wemos habe ich die Software "Esp-Rfid" geflasht.
      In dieser Software werden die User & permissions verwaltet.
      Das gelesene Tag wir über mqtt an iobroker verschickt.

      Die Message, die im IOBroker ankommt Sieht so aus :

      {"type":"access","time":1550609724,"isKnown":"true","access":"Admin","username":"Benutzer1","uid":"89abc563"}

      Sie wird als "State.value" eingelesen.

      Jetzt zum Problem.

      ich möchte gerne mit dem gelesenen Tag weiterarbeiten. Dazu möchte ich die "uid" verwenden, da diese einzigartig für jeden Tag ist.

      Wie kann ich jetzt die "uid" aus der Message herrausfilter, in eine separate variable packen und über Blockly überprüfen ?

      Wenn ich etwas vergessen habe oder euch Infos fehlen, einfach melden.

      Quellen:

      ESP-RIFD Firmware
      RC522 RFID reader

      Ich höffe ihr könnte damit etwas anfangen.

      Grüße

      Hubert

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        Ein kurzes Javaskript sollte die uid in einem Datenpunkt "javascript.0.rfid.uid" liefern.

        const idJson = '...'; // ID des Datenpunktes mit dem JSON-String eintragen !
        const idUid  = 'rfid.uid'; // Name des uid-Datenpunktes
        
        createState(idUid, '', {type: 'string'}); // Datenpunkt erstellen
        
        on(idJson, function(dp) { // triggert bei Änderung des JSON-Strings
           var obj = JSON.parse(dp.state.val);
           setState(idUid, obj.uid, true);
        });
        
        Basti97 2 Replies Last reply Reply Quote 0
        • H
          hubyamico last edited by

          @paul53 sagte in ESP8266 & RC522(RFID) über ESP-RFID in IOBROKER einbinden.:

          const idJson = '...'; // ID des Datenpunktes mit dem JSON-String eintragen !

          Vielen Dank,

          Klappt super 🙂

          S 1 Reply Last reply Reply Quote 0
          • S
            slemy @hubyamico last edited by slemy

            @hubyamico
            Hab das gleiche Problem wie du, time ändert sich ständig beim lesen und so mit unbrauchbar .
            Wie hast du es gemacht ?

            {"type":"access","time":1328,"isKnown":"true","access":"Always","username":"slemy","uid":"49000000"}
            Mein Blockly skript sieht so aus .

            BlocklyJavascriptTypeScript
            Protokoll
            Ausgewählte Blöcke exportieren
            <xml xmlns="http://www.w3.org/1999/xhtml">
              <block type="on_ext" id="8C3e8Lq[~XBg%k~vhzTm" x="88" y="112">
                <mutation items="1"></mutation>
                <field name="CONDITION">any</field>
                <field name="ACK_CONDITION"></field>
                <value name="OID0">
                  <shadow type="field_oid" id="l@6wJHU1Y.wbFMQ,n@2L">
                    <field name="oid">mqtt.0.RFID</field>
                  </shadow>
                </value>
                <statement name="STATEMENT">
                  <block type="controls_if" id="4Y{/~kSXN)N4BfU}^keP">
                    <value name="IF0">
                      <block type="logic_compare" id="ntTkyMdYVr(_V880V=ke">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="m6mrov6z8`YZ.bk.gcT+">
                            <field name="ATTR">val</field>
                            <field name="OID">mqtt.0.RFID</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="text" id="y5g83ugXQyw_r9nxqyhG">
                            <field name="TEXT"></field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="control" id="OcF4lI}7{g-#-2h0jIy~">
                        <mutation delay_input="false"></mutation>
                        <field name="OID">sonoff.0.Wohnzimmer.POWER</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="logic_boolean" id="%ikH@UEkQb:1)%fyOWi)">
                            <field name="BOOL">TRUE</field>
                          </block>
                        </value>
                      </block>
                    </statement>
                  </block>
                </statement>
              </block>
            </xml>
            <xml xmlns="http://www.w3.org/1999/xhtml">
              <block type="on_ext" id="8C3e8Lq[~XBg%k~vhzTm" x="88" y="112">
                <mutation items="1"></mutation>
                <field name="CONDITION">any</field>
                <field name="ACK_CONDITION"></field>
                <value name="OID0">
                  <shadow type="field_oid" id="l@6wJHU1Y.wbFMQ,n@2L">
                    <field name="oid">mqtt.0.RFID</field>
                  </shadow>
                </value>
                <statement name="STATEMENT">
                  <block type="controls_if" id="4Y{/~kSXN)N4BfU}^keP">
                    <value name="IF0">
                      <block type="logic_compare" id="ntTkyMdYVr(_V880V=ke">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="m6mrov6z8`YZ.bk.gcT+">
                            <field name="ATTR">val</field>
                            <field name="OID">mqtt.0.RFID</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="text" id="y5g83ugXQyw_r9nxqyhG">
                            <field name="TEXT"></field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="control" id="OcF4lI}7{g-#-2h0jIy~">
                        <mutation delay_input="false"></mutation>
                        <field name="OID">sonoff.0.Wohnzimmer.POWER</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="logic_boolean" id="%ikH@UEkQb:1)%fyOWi)">
                            <field name="BOOL">TRUE</field>
                          </block>
                        </value>
                      </block>
                    </statement>
                  </block>
                </statement>
              </block>
            </xml>
            

            screenshot-192.168.1.129-8081-2019.04.09-18-02-10.png

            paul53 1 Reply Last reply Reply Quote 0
            • ostseereiter
              ostseereiter last edited by

              @slemy Hast du das schon geschafft? Ich komme auch nicht weiter weil sich ja der Time immer ändert.
              @paul53 dein Script habe ich übernommen aber was muss ich da genau eintragen bin ein wenig überfordert

              <xml xmlns="http://www.w3.org/1999/xhtml">
                <block type="on" id="1|@4iLNFlHP|^SIzIKZF" x="-37" y="113">
                  <field name="OID">mqtt.0.RFID</field>
                  <field name="CONDITION">any</field>
                  <field name="ACK_CONDITION"></field>
                  <statement name="STATEMENT">
                    <block type="controls_if" id="4Y{/~kSXN)N4BfU}^keP">
                      <value name="IF0">
                        <block type="logic_compare" id="ntTkyMdYVr(_V880V=ke">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="get_value" id="m6mrov6z8`YZ.bk.gcT+">
                              <field name="ATTR">val</field>
                              <field name="OID">mqtt.0.RFID</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="text" id="y5g83ugXQyw_r9nxqyhG">
                              <field name="TEXT">{"type":"access","time":1545162174,"isKnown":"true","access":"Always","username":"Probe","uid":"56b2e4f7"}</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <statement name="DO0">
                        <block type="control" id="b11~t5S_tAAe-X~nbeOM">
                          <mutation delay_input="false"></mutation>
                          <field name="OID">.Meine_Geräte.Kamin</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="logic_boolean" id="N,_9MAses,Mn]ecqDQD?">
                              <field name="BOOL">TRUE</field>
                            </block>
                          </value>
                        </block>
                      </statement>
                    </block>
                  </statement>
                </block>
              </xml>
              

              Das Blockly kann ja nicht funktionieren da sich der Timewert immer ändert.

              paul53 S 2 Replies Last reply Reply Quote 0
              • paul53
                paul53 @ostseereiter last edited by

                @ostseereiter sagte:

                was muss ich da genau eintragen

                Was ist das Ziel ?
                Soll die "uid" in einen eigenen Datenpunkt ("javascript.0.rfid.uid") geschrieben werden, muss nur in Zeile 1 die richtige Datenpunkt-ID eingetragen werden.

                ostseereiter 1 Reply Last reply Reply Quote 0
                • ostseereiter
                  ostseereiter @paul53 last edited by

                  @paul53
                  Mein Ziel ist eigentlich wenn ich den TAG anlege dann zum Beispiel das Licht angeht. da sich aber der Timewert ja immer ändert kann das blockly ja nicht funktionieren.
                  Wenn jeder Tag ein eignen Datenpunkt anlegen würde wäre das natürlich sehr gut.
                  ""muss nur in Zeile 1 die richtige Datenpunkt-ID eingetragen werden." das wäre dann die UID?

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @slemy last edited by

                    @slemy sagte:

                    time ändert sich ständig beim lesen und so mit unbrauchbar

                    Versuche es mal so:

                    Blockly_rfid_uid.JPG

                    ostseereiter 1 Reply Last reply Reply Quote 0
                    • ostseereiter
                      ostseereiter @paul53 last edited by

                      @paul53
                      oje kannst du mal das blockly über Code reinstellen ich finde das Attribut nicht.
                      Hast du Teamwiever?

                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @ostseereiter last edited by

                        @ostseereiter

                        <xml xmlns="http://www.w3.org/1999/xhtml">
                         <variables>
                           <variable type="" id="53R)Q${CK`e03L/[kcBj">obj</variable>
                         </variables>
                         <block type="comment" id="HlkmhEp62*9MNM]BhsP(" x="38" y="187">
                           <field name="COMMENT">RFID-JSON</field>
                           <next>
                             <block type="on_ext" id="=J?{3vER/M}!YN[36BSL">
                               <mutation items="1"></mutation>
                               <field name="CONDITION">ne</field>
                               <field name="ACK_CONDITION"></field>
                               <value name="OID0">
                                 <shadow type="field_oid" id="mkLowho*]9#g%sF:857y">
                                   <field name="oid">default</field>
                                 </shadow>
                               </value>
                               <statement name="STATEMENT">
                                 <block type="variables_set" id="pt0z|EF!dR+hJk8!x,]5">
                                   <field name="VAR" id="53R)Q${CK`e03L/[kcBj" variabletype="">obj</field>
                                   <value name="VALUE">
                                     <block type="convert_json2object" id="|wbXuD1*q3$H!L2K%t!Y">
                                       <value name="VALUE">
                                         <block type="on_source" id="/v^Or=4F1S^RrP|aNj*n">
                                           <field name="ATTR">state.val</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="controls_if" id="$U5?q?b!$w2XU@}o}xrv">
                                       <value name="IF0">
                                         <block type="logic_compare" id="I6JQbOFqQ6tqfin(KxCc">
                                           <field name="OP">EQ</field>
                                           <value name="A">
                                             <block type="get_attr" id="YXQg+;TVNxm/@q~a^w}:">
                                               <value name="PATH">
                                                 <shadow type="text" id="rCOR@P),BrqR6[qCRG`*">
                                                   <field name="TEXT">uid</field>
                                                 </shadow>
                                               </value>
                                               <value name="OBJECT">
                                                 <block type="variables_get" id="!lCE6}7:,rdD[Zp,!z8{">
                                                   <field name="VAR" id="53R)Q${CK`e03L/[kcBj" variabletype="">obj</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <block type="text" id="Uu6XJR%*2Bv({w/{|ZMq">
                                               <field name="TEXT">49000000</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <statement name="DO0">
                                         <block type="control" id="[ImTQfttfGE6Jh%7#:Q?">
                                           <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=":3TDltF@m/Oje;~p|n[L">
                                               <field name="BOOL">TRUE</field>
                                             </block>
                                           </value>
                                         </block>
                                       </statement>
                                     </block>
                                   </next>
                                 </block>
                               </statement>
                             </block>
                           </next>
                         </block>
                        </xml>
                        

                        1 Reply Last reply Reply Quote 1
                        • ostseereiter
                          ostseereiter last edited by

                          @paul53
                          Das Attributwert zeigt er mir nicht an.
                          Screenshot (157).png

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @ostseereiter last edited by

                            @ostseereiter sagte:

                            Das Attributwert zeigt er mir nicht an.

                            Update den Javascript-Adapter auf Version 4.1.13.

                            ostseereiter 1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @ostseereiter last edited by

                              @ostseereiter sagt:

                              "muss nur in Zeile 1 die richtige Datenpunkt-ID eingetragen werden." das wäre dann die UID?

                              Nein, wahrscheinlich

                              const idJson = 'mqtt.0.RFID'; // ID des Datenpunktes mit dem JSON-String 
                              
                              1 Reply Last reply Reply Quote 0
                              • ostseereiter
                                ostseereiter @paul53 last edited by

                                @paul53
                                ok werde ich machen . ich habe ja noch die 3.6.4
                                Screenshot (158).png
                                melde mich dann wieder.

                                1 Reply Last reply Reply Quote 0
                                • ostseereiter
                                  ostseereiter last edited by

                                  @paul53
                                  Ich habe das erst mal mit deinen Javascript geregelt. Danke erst mal. dann kann das Update noch warten bis ich ein Image vom IObroker erstellt habe. Ich mache zwar immer Sicherungen aber ich bin nun mal übervorsichtig. was updates angeht denn wenn es läuft dann läuft es.

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    slemy @ostseereiter last edited by

                                    @ostseereiter sagte in ESP8266 & RC522(RFID) über ESP-RFID in IOBROKER einbinden.:

                                    @slemy Hast du das schon geschafft? Ich komme auch nicht weiter weil sich ja der Time immer ändert.
                                    @paul53 dein Script habe ich übernommen aber was muss ich da genau eintragen bin ein wenig überfordert

                                    <xml xmlns="http://www.w3.org/1999/xhtml">
                                      <block type="on" id="1|@4iLNFlHP|^SIzIKZF" x="-37" y="113">
                                        <field name="OID">mqtt.0.RFID</field>
                                        <field name="CONDITION">any</field>
                                        <field name="ACK_CONDITION"></field>
                                        <statement name="STATEMENT">
                                          <block type="controls_if" id="4Y{/~kSXN)N4BfU}^keP">
                                            <value name="IF0">
                                              <block type="logic_compare" id="ntTkyMdYVr(_V880V=ke">
                                                <field name="OP">EQ</field>
                                                <value name="A">
                                                  <block type="get_value" id="m6mrov6z8`YZ.bk.gcT+">
                                                    <field name="ATTR">val</field>
                                                    <field name="OID">mqtt.0.RFID</field>
                                                  </block>
                                                </value>
                                                <value name="B">
                                                  <block type="text" id="y5g83ugXQyw_r9nxqyhG">
                                                    <field name="TEXT">{"type":"access","time":1545162174,"isKnown":"true","access":"Always","username":"Probe","uid":"56b2e4f7"}</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <statement name="DO0">
                                              <block type="control" id="b11~t5S_tAAe-X~nbeOM">
                                                <mutation delay_input="false"></mutation>
                                                <field name="OID">.Meine_Geräte.Kamin</field>
                                                <field name="WITH_DELAY">FALSE</field>
                                                <value name="VALUE">
                                                  <block type="logic_boolean" id="N,_9MAses,Mn]ecqDQD?">
                                                    <field name="BOOL">TRUE</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </statement>
                                          </block>
                                        </statement>
                                      </block>
                                    </xml>
                                    

                                    Das Blockly kann ja nicht funktionieren da sich der Timewert immer ändert.

                                    ja hab was gefunden und Funktioniert
                                    h**ps://www.youtube.com/watch?v=rSazGNdP_JY&t=1092s

                                    1 Reply Last reply Reply Quote 0
                                    • Basti97
                                      Basti97 Most Active @paul53 last edited by

                                      @paul53 said in ESP8266 & RC522(RFID) über ESP-RFID in IOBROKER einbinden.:

                                      Ich wollte gerade dein Script Ausprobieren aber leider kommt immer eine Fehlermeldung. Ich möchte auch aus diesen Datenpunkt den UID Code herausfiltern und in einem Datenpunkt schreiben. So sieht der Datenpunkt aus.

                                      {"Time":"2021-08-26T19:14:29","RDM6300":{"UID":"0043202D"}}
                                      

                                      Das Script sieht wie folgt aus


                                      const idJson = 'mqtt.0.tele.tasmota_4A72B7.SENSOR'/tele/tasmota 4A72B7/SENSOR/ ; // ID des Datenpunktes mit dem JSON-String eintragen !

                                      const idUid = 'rfid.uid'; // Name des uid-Datenpunktes

                                      createState(idUid, '', {type: 'string'}); // Datenpunkt erstellen

                                      on(idJson, function(dp) { // triggert bei Änderung des JSON-Strings

                                      var obj = JSON.parse(dp.state.val);

                                      setState(idUid, obj.uid, true);

                                      });

                                      Da passiert leider nichts. Was könnte ich falsch gemacht haben.

                                      paul53 1 Reply Last reply Reply Quote 0
                                      • Basti97
                                        Basti97 Most Active @paul53 last edited by

                                        @paul53 Im Log kommt folgendes Unbenannt.JPG

                                        1 Reply Last reply Reply Quote 0
                                        • paul53
                                          paul53 @Basti97 last edited by

                                          @Basti97 sagte:

                                          Da passiert leider nichts.

                                          setState(idUid, obj.RDM6300.UID, true);
                                          
                                          Basti97 1 Reply Last reply Reply Quote 0
                                          • Basti97
                                            Basti97 Most Active @paul53 last edited by

                                            @paul53 Super Danke nun funktoniert es. Soweit runter habe ich gar nicht geguckt. Ist ja klar wenn der Text nicht in den Datenpunkt steht das er nichts nach der uid filtern kann.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            827
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            20
                                            3507
                                            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