ESPHome 2026.3.0-dev
Loading...
Searching...
No Matches
sy6970_text_sensor.h
Go to the documentation of this file.
1#pragma once
2
3#include "../sy6970.h"
5
6namespace esphome::sy6970 {
7
8// Bus status text sensor
10 public:
11 void on_data(const SY6970Data &data) override {
12 uint8_t status = (data.registers[SY6970_REG_STATUS] >> 5) & 0x07;
13 const char *status_str = this->get_bus_status_string_(status);
14 this->publish_state(status_str);
15 }
16
17 protected:
18 const char *get_bus_status_string_(uint8_t status) {
19 switch (status) {
21 return "No Input";
23 return "USB SDP";
25 return "USB CDP";
27 return "USB DCP";
29 return "HVDCP";
31 return "Adapter";
33 return "Non-Standard Adapter";
34 case BUS_STATUS_OTG:
35 return "OTG";
36 default:
37 return "Unknown";
38 }
39 }
40};
41
42// Charge status text sensor
44 public:
45 void on_data(const SY6970Data &data) override {
46 uint8_t status = (data.registers[SY6970_REG_STATUS] >> 3) & 0x03;
47 const char *status_str = this->get_charge_status_string_(status);
48 this->publish_state(status_str);
49 }
50
51 protected:
52 const char *get_charge_status_string_(uint8_t status) {
53 switch (status) {
55 return "Not Charging";
57 return "Pre-charge";
59 return "Fast Charge";
61 return "Charge Done";
62 default:
63 return "Unknown";
64 }
65 }
66};
67
68// NTC status text sensor
70 public:
71 void on_data(const SY6970Data &data) override {
72 uint8_t status = data.registers[SY6970_REG_FAULT] & 0x07;
73 const char *status_str = this->get_ntc_status_string_(status);
74 this->publish_state(status_str);
75 }
76
77 protected:
78 const char *get_ntc_status_string_(uint8_t status) {
79 switch (status) {
80 case 0:
81 return "Normal";
82 case 2:
83 return "Warm";
84 case 3:
85 return "Cool";
86 case 5:
87 return "Cold";
88 case 6:
89 return "Hot";
90 default:
91 return "Unknown";
92 }
93 }
94};
95
96} // namespace esphome::sy6970
uint8_t status
Definition bl0942.h:8
void on_data(const SY6970Data &data) override
const char * get_bus_status_string_(uint8_t status)
const char * get_charge_status_string_(uint8_t status)
void on_data(const SY6970Data &data) override
void on_data(const SY6970Data &data) override
const char * get_ntc_status_string_(uint8_t status)
void publish_state(const std::string &state)
@ CHARGE_STATUS_CHARGE_DONE
Definition sy6970.h:62
@ CHARGE_STATUS_PRE_CHARGE
Definition sy6970.h:60
@ CHARGE_STATUS_NOT_CHARGING
Definition sy6970.h:59
@ CHARGE_STATUS_FAST_CHARGE
Definition sy6970.h:61
@ BUS_STATUS_USB_DCP
Definition sy6970.h:50
@ BUS_STATUS_USB_SDP
Definition sy6970.h:48
@ BUS_STATUS_ADAPTER
Definition sy6970.h:52
@ BUS_STATUS_NO_INPUT
Definition sy6970.h:47
@ BUS_STATUS_USB_CDP
Definition sy6970.h:49
@ BUS_STATUS_NO_STD_ADAPTER
Definition sy6970.h:53