ESPHome 2025.5.0
Loading...
Searching...
No Matches
rdm6300.h
Go to the documentation of this file.
1#pragma once
2
7
8#include <cinttypes>
9#include <vector>
10
11namespace esphome {
12namespace rdm6300 {
13
14class RDM6300BinarySensor;
15class RDM6300Trigger;
16
18 public:
19 void loop() override;
20
21 void register_card(RDM6300BinarySensor *obj) { this->cards_.push_back(obj); }
22 void register_trigger(RDM6300Trigger *trig) { this->triggers_.push_back(trig); }
23
24 float get_setup_priority() const override { return setup_priority::DATA; }
25
26 protected:
27 int8_t read_state_{-1};
28 uint8_t buffer_[6]{};
29 std::vector<RDM6300BinarySensor *> cards_;
30 std::vector<RDM6300Trigger *> triggers_;
31 uint32_t last_id_{0};
32};
33
35 public:
36 void set_id(uint32_t id) { id_ = id; }
37
38 bool process(uint32_t id) {
39 if (this->id_ == id) {
40 this->publish_state(true);
41 yield();
42 this->publish_state(false);
43 return true;
44 }
45 return false;
46 }
47
48 protected:
49 uint32_t id_;
50};
51
52class RDM6300Trigger : public Trigger<uint32_t> {
53 public:
54 void process(uint32_t uid) { this->trigger(uid); }
55};
56
57} // namespace rdm6300
58} // namespace esphome
void publish_state(bool state)
Publish a new state to the front-end.
void register_trigger(RDM6300Trigger *trig)
Definition rdm6300.h:22
float get_setup_priority() const override
Definition rdm6300.h:24
std::vector< RDM6300BinarySensor * > cards_
Definition rdm6300.h:29
void register_card(RDM6300BinarySensor *obj)
Definition rdm6300.h:21
std::vector< RDM6300Trigger * > triggers_
Definition rdm6300.h:30
void process(uint32_t uid)
Definition rdm6300.h:54
const float DATA
For components that import data from directly connected sensors like DHT.
Definition component.cpp:19
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
void IRAM_ATTR HOT yield()
Definition core.cpp:26
T id(T value)
Helper function to make id(var) known from lambdas work in custom components.
Definition helpers.h:798