-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmppt_controller.yaml
More file actions
158 lines (144 loc) · 3.94 KB
/
Copy pathmppt_controller.yaml
File metadata and controls
158 lines (144 loc) · 3.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
esphome:
name: mppt_controller
includes:
- mppt_controller.h
on_boot:
priority: -100
then:
- wait_until:
condition: # any condition here
api.connected:
timeout: 8s
esp32:
board: nodemcu-32s
# Enable logging
logger:
baud_rate: 0
level: INFO
# Enable Home Assistant API
api:
password: ""
ota:
password: ""
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_pass
use_address: 192.168.1.114
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Mppt Controller Fallback Hotspot"
password: "Nl5kzDn5fh0C"
captive_portal:
web_server:
port: 80
local: true
mqtt:
broker: 192.168.1.107
username: !secret mosquitto_user
password: !secret mosquitto_pass
topic_prefix: mppt_controller
client_id: mppt_controller
uart:
id: mod_bus
rx_pin: GPIO3
tx_pin: GPIO1
baud_rate: 9600
data_bits: 8
parity: NONE
stop_bits: 1
# debug:
# direction: BOTH
# dummy_receiver: false
# after:
# delimiter: "\n"
# sequence:
# - lambda: UARTDebug::log_string(direction, bytes);
sensor:
- platform: custom
lambda: |-
auto s = new mppt_controller(id(mod_bus));
App.register_component(s);
return {s->power_sensor, s->cwu_temperature_sensor, s->energy_total_sensor, s->enabled_sensor, s->voltage_sensor, s->current_sensor, s->max_power_sensor, s->max_temperature_sensor, s->low_voltage_detector_sensor, s->current_unit_temperature_sensor, s->current_pwm_value_sensor};
sensors:
- id: power_sensor
name: "Aktualna moc"
state_class: measurement
device_class: power
unit_of_measurement: W
accuracy_decimals: 1
- id: cwu_temperature_sensor
name: "Temperatura CWU"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
accuracy_decimals: 2
- id: energy_total_sensor
name: "Aktualny uzysk energii"
unit_of_measurement: kWh
device_class: energy
state_class: total_increasing
accuracy_decimals: 3
- name: enabled_sensor
id: enabled_sensor
#internal: true
- id: voltage_sensor
name: "Aktualne napięcie z paneli"
unit_of_measurement: V
state_class: measurement
device_class: voltage
#accuracy_decimals: 1
- id: current_sensor
name: "Aktualny prad"
unit_of_measurement: A
state_class: measurement
device_class: current
accuracy_decimals: 1
- id: max_power_sensor
name: "Maksymalna osiągnieta moc"
unit_of_measurement: W
state_class: measurement
device_class: power
accuracy_decimals: 1
- id: max_temperature_sensor
name: "Maksymalna temperatura"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
accuracy_decimals: 2
- id: low_voltage_detector_sensor
name: "Ilość zadziałań detektora niskiego napięcia"
state_class: measurement
- id: current_unit_temperature_sensor
name: "Aktualna temperatura invertera"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
accuracy_decimals: 2
- id: current_pwm_value_sensor
name: "Aktualna wartość PWM"
state_class: measurement
binary_sensor:
- platform: template
id: inverter_state
name: "State of the MPPT inverter"
device_class: CONNECTIVITY
lambda: 'return id(enabled_sensor).state > 0.5;'
button:
- platform: template
name: "Zasilanie regulatora MPPT"
id: inverter_switch
on_press:
then:
- if:
condition:
lambda: 'return id(inverter_state).state;'
then:
- uart.write: 'W'
else:
- uart.write: 'Q'
interval:
- interval: 8s
then:
- uart.write: 'S'
- delay: 4s
- uart.write: [0x61]