more stuff for the repeater

This commit is contained in:
Daniël Koek 2024-06-03 13:09:03 +01:00
parent 38b68aec1d
commit 80375e6a07
2 changed files with 11 additions and 1 deletions

View file

@ -405,12 +405,15 @@ void EbyteLoraComponent::loop() {
ESP_LOGD(TAG, "%u", data[i]); ESP_LOGD(TAG, "%u", data[i]);
} }
} }
// starting info loop // starting info loop
if (data[0] == SWITCH_INFO) { if (data[0] == SWITCH_INFO) {
if (this->repeater_) { if (this->repeater_) {
this->repeat_message(data); this->repeat_message(data);
} }
// it is it's own info // only configs with switches should sent too
#ifdef USE_SWITCH
// Make sure it is not itself
if (network_id != data[1]) { if (network_id != data[1]) {
ESP_LOGD(TAG, "Got switch info"); ESP_LOGD(TAG, "Got switch info");
for (int i = 2; i < data.size(); i = i + 2) { for (int i = 2; i < data.size(); i = i + 2) {
@ -422,6 +425,7 @@ void EbyteLoraComponent::loop() {
} }
} }
} }
#endif
} }
this->rssi_sensor_->publish_state((data[data.size() - 1] / 255.0) * 100); this->rssi_sensor_->publish_state((data[data.size() - 1] / 255.0) * 100);
ESP_LOGD(TAG, "RSSI: %f", (data[data.size() - 1] / 255.0) * 100); ESP_LOGD(TAG, "RSSI: %f", (data[data.size() - 1] / 255.0) * 100);
@ -475,6 +479,7 @@ void EbyteLoraComponent::setup_conf_(std::vector<uint8_t> data) {
} }
void EbyteLoraComponent::send_switch_info_() { void EbyteLoraComponent::send_switch_info_() {
#ifdef USE_SWITCH
if (!this->can_send_message_()) { if (!this->can_send_message_()) {
return; return;
} }
@ -488,6 +493,7 @@ void EbyteLoraComponent::send_switch_info_() {
ESP_LOGD(TAG, "Sending switch info"); ESP_LOGD(TAG, "Sending switch info");
this->write_array(data); this->write_array(data);
this->setup_wait_response_(5000); this->setup_wait_response_(5000);
#endif
} }
void EbyteLoraComponent::send_repeater_info() { void EbyteLoraComponent::send_repeater_info() {

View file

@ -7,7 +7,9 @@
#include "esphome/components/uart/uart.h" #include "esphome/components/uart/uart.h"
#include "esphome/core/log.h" #include "esphome/core/log.h"
#include "config.h" #include "config.h"
#ifdef USE_SWITCH
#include "esphome/components/switch/switch.h" #include "esphome/components/switch/switch.h"
#endif
namespace esphome { namespace esphome {
namespace ebyte_lora { namespace ebyte_lora {
@ -88,6 +90,7 @@ class EbyteLoraComponent : public PollingComponent, public uart::UARTDevice {
InternalGPIOPin *pin_m0_{nullptr}; InternalGPIOPin *pin_m0_{nullptr};
InternalGPIOPin *pin_m1_{nullptr}; InternalGPIOPin *pin_m1_{nullptr};
}; };
#ifdef USE_SWITCH
class EbyteLoraSwitch : public switch_::Switch, public Parented<EbyteLoraComponent> { class EbyteLoraSwitch : public switch_::Switch, public Parented<EbyteLoraComponent> {
public: public:
void set_pin(uint8_t pin) { pin_ = pin; } void set_pin(uint8_t pin) { pin_ = pin; }
@ -97,5 +100,6 @@ class EbyteLoraSwitch : public switch_::Switch, public Parented<EbyteLoraCompone
void write_state(bool state) override { this->parent_->send_switch_info_(); } void write_state(bool state) override { this->parent_->send_switch_info_(); }
uint8_t pin_; uint8_t pin_;
}; };
#endif
} // namespace ebyte_lora } // namespace ebyte_lora
} // namespace esphome } // namespace esphome