#pragma once #include "esphome/core/component.h" #include "esphome/core/automation.h" #include "tuya.h" #include namespace esphome { namespace tuya { class TuyaDatapointUpdateTrigger : public Trigger { public: explicit TuyaDatapointUpdateTrigger(Tuya *parent, uint8_t sensor_id) { parent->register_listener(sensor_id, [this](const TuyaDatapoint &dp) { this->trigger(dp); }); } }; class TuyaRawDatapointUpdateTrigger : public Trigger> { public: explicit TuyaRawDatapointUpdateTrigger(Tuya *parent, uint8_t sensor_id); }; class TuyaBoolDatapointUpdateTrigger : public Trigger { public: explicit TuyaBoolDatapointUpdateTrigger(Tuya *parent, uint8_t sensor_id); }; class TuyaIntDatapointUpdateTrigger : public Trigger { public: explicit TuyaIntDatapointUpdateTrigger(Tuya *parent, uint8_t sensor_id); }; class TuyaUIntDatapointUpdateTrigger : public Trigger { public: explicit TuyaUIntDatapointUpdateTrigger(Tuya *parent, uint8_t sensor_id); }; class TuyaStringDatapointUpdateTrigger : public Trigger { public: explicit TuyaStringDatapointUpdateTrigger(Tuya *parent, uint8_t sensor_id); }; class TuyaEnumDatapointUpdateTrigger : public Trigger { public: explicit TuyaEnumDatapointUpdateTrigger(Tuya *parent, uint8_t sensor_id); }; class TuyaBitmaskDatapointUpdateTrigger : public Trigger { public: explicit TuyaBitmaskDatapointUpdateTrigger(Tuya *parent, uint8_t sensor_id); }; } // namespace tuya } // namespace esphome