Rules RFID (RC522) auslesen

  • Hallo,


    ich möchte gerne mit einem RFID Chip, der über einen RC522 am D1 angeschlossen ist, ein Relais schalten.

    Dies funktioniert mit der Rules "rule1 on RC522#UID=905E2625 do backlog power on; ruletimer1 60 endon on rules#timer=1 do power1 off endon"

    Jetzt versuche ich noch das wiederholte einschalten zu begrenzen.

    Ich möchte, dass man mind. 10 minuten warten muss, bis man das Relais wieder einschalten kann.

    Hat hierzu jemand eine idee?

    Gruß

    Christian

  • - rule0 in der Console eingeben und Ausgabe posten

    - weblog 4 in der console eingeben

    - var1 1 in der console eingeben und die entstehen Zeilen posten, wenn das angepasste nicht geht !

    rule1

    on RC522#UID=905E2625 do ADD1 1 endon

    on Var1#state=1 do backlog Var1 2; ruletimer1 60; rulestimer2 600; power1 1 endon

    on rules#timer=1 do power1 0 endon

    on rules#timer=2 do VAR2 0 endon

    2 Mal editiert, zuletzt von karoCB (18. Juni 2023 um 10:53) aus folgendem Grund: ADD1 1

  • Ich denke so kann es funktionieren:

    Code
    rule1
    ON Power1#Boot DO var2 0 endon
    on RC522#UID=905E2625 do event check=%var2% endon
    ON event#check==0 do backlog var2 1; ruletimer1 60; ruletimer2 600; power1 1 endon
    on rules#timer=1 do power1 0 endon
    on rules#timer=2 do var2 0 endon
  • nach Neustart sind Variablen immer 0 - boot nicht nötig

    geht sicherlich auch mit event - nur nach 2 Jahren ist wieder die Frage wie genau event funzt

    auf einem Tasmota32 nach reboot:

    Code
    13:21:33.384 CMD: var3
    13:21:33.390 MQT: stat/tasmota_AC2638/RESULT = {"Var3":""}

    Default-Wert scheint hier ein Leerstring zu sein, daher die Regel für Power1#Boot

  • So hat es funktioniert:

    Code
    rule1
    ON Power1#Boot DO var2 0 endon
    on RC522#UID=905E2625 do event check=%var2% endon
    ON event#check==0 do backlog var2 1; ruletimer1 60; ruletimer2 600; power1 1 endon
    on rules#timer=1 do power1 0 endon
    on rules#timer=2 do var2 0 endon

    Danke

  • Hat jemand Erfahrungen mit dem effektiven Abschalten des RC522?

    In meiner Schaltung ist ein Start über einen digitalen Hall realisiert, um aus dem DeepSleepTime den ESP8266-12F zu holen. Der Leistungsverbrauch liegt nach 20 Sekunden ( genau nach dem Abschalten die erhofften 0,0000x W) im DeepSleep noch bei 0,04W (so kein Akkubetrieb möglich) auch wenn vor dem Schlafen der ESP mit Power1 den RC522 das GDN abschaltet.

    Gibt es eine Beschaltung die ich noch prüfen sollte - Idee war alle Ausgänge auf HIGH zu belassen im DeepSleep und GDN über GPIO4 abzuschalten.

  • In meiner Schaltung ist ein Start über einen digitalen Hall realisiert,

    Wie hast du denn den Magneten realisiert?

    Wieviel verbraucht dein Hallsensor?

    Statt der Binary hättest du besser deine Einstellungen in der user_config_override angehängt damit man auch weiß, was du geändert hast...

  • Der Hall verbraucht nix und wird aktiviert über einen Magneten der vor dem Gerät an einer Schnur baumelt (vor dem Sicherheitsglas der DMZ). Kontrolle ohne Hall mit selben Ergebnis. Der RC522 belastet das System über die Kommunikationsleitungen ( rote LED abgelötet ( von 0,05 W auf 0,04 W verbessert)

    Beim Test auf dem NODEMCU mit RC522 ist es auch nicht anders (durch Overhead des Systems bei DeepSleep 0,06 W und nach 20 Sekunden 0,12 W)

    Ja - zum Nachbau schon mal die Compilereinstellungen RC522 und VCC-Kontrolle.

    3 Mal editiert, zuletzt von karoCB (25. Oktober 2023 um 22:29)

  • hast du irgendwo dein script veröffentlicht?

    nicht dass ich dir groß helfen könnte, aber ohne genaue infos was du wie machst, wird dir kaum jemand tipps geben können...

  • Mit Tasmota - Skript könnte man evtl. ein Kommando zum Schlafen an den RC522 senden - Skript kann ich aber nicht realisieren für diese RC522-Umgebung.

    Ich nutze nur Rule, da es für diesen Zweck einfacher ist. Das Problem ist jedoch nicht die Rule (System muss sicherlich nach Hall-Start zum Init RC522 mit Reset1 ein zweites Mal gestartet werden) sondern die GPIOs für die RC522-Kommunikationso so zu nutzen mit ihren Eigenheiten HiGH und Low im ESP-DeepSleepModus, damit keine Restströme den ESP in Richtung RC522 verlassen, wenn GDN für dieses Modul mit Relay_i abgeschalten wird (20 Sekunden scheint alles zu stimmen - nur dann schaltet doch etwas in der Konfiguration durch).


    PS: Netzhinweise den R2 (3,3V an RST) und den R1 (Vorwiderstand LED) auf der Platine zu eliminieren hatten keinen ausreichenden Effekt, da rechnerisch es sich auch nicht darstellen lässt.

  • Das Problem ist jedoch nicht die Rule

    Wie soll das jemand der sich auskennt beurteilen können, wenn er nicht deine genaue Konfiguration inkl der Befehle kennt?

    Egal ob Rule oder Script.

    Du fragst nach einer Fehlerdiagnose, erklärst aber gleichzeitig deine Programmierung als Fehlerfrei. Ob sie es wirklich ist, wirst du so nie erfahren...

    Hast du eigentlich mal versucht, die Versorgungsspannung, des RC Moduls oder gleich von allem, wegzuschalten, wenn du das System sowieso extern wieder aufweckst und ein komplettes neuinit durchführst? Ich hab sowas mal vor Jahren (mit automatischen Aufwachen) durch Einsatz eines zusätzlichen Attiny gemacht. Bei dir würde wohl auch ein kleines Relais o.Ä. genügen...

    Einmal editiert, zuletzt von jay (27. Oktober 2023 um 03:37)

  • Was verwirrt dich denn? Das mit dem vorgeschalteten Atmel ist evtl eine gute und einfache Lösung. Der hat viel besseres deepsleep verhalten...

    Es ist ja auch schon ein reiner esp und nicht noch ein nodemcu oder sowas?

    Ich finde die Wattzahl verwirrender, als eine mA Angabe...

    Einmal editiert, zuletzt von jay (27. Oktober 2023 um 11:05)

  • Abgeschalten wird ja über Relay_i Ausgang die GDN, nur das Stromfluss über der Rest der Verdrahtung läuft.

    Nur Leistung ist eine Größe- sonst müsste Spannung 3.3 - 2,9 und Strom angegeben werden. Die Zielquelle Akku kommt mit mWh in die Prüfung wenn ein Spannungsbooster erforderlich wird.

  • Also mit einem Attiny und einen pfet (evtl hat dein Spannungsregler auch einen enable Eingang) kommst du im Deepsleep bei 3,3V mit 0,2µA aus. bei 5V mit 0,5.

    Das wird im Vergleich mit einem ESP kaum einen Unterschied machen.

    Hast du an deinen Leitungen Pullups (oder downs)?

    Unbeschaltet kann sich der Stromverbrauch erhöhen...

    Einmal editiert, zuletzt von jay (27. Oktober 2023 um 13:39)