This repository was archived by the owner on Feb 14, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfiguration.yaml
More file actions
209 lines (187 loc) · 7.33 KB
/
configuration.yaml
File metadata and controls
209 lines (187 loc) · 7.33 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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
default_config:
frontend:
themes: !include_dir_merge_named themes
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
sensor:
- platform: template
sensors:
# Template sensor for values of power import (active_power > 0)
power_import:
friendly_name: "Power Import"
unit_of_measurement: 'W'
value_template: >-
{% if (states('sensor.shellypro3em63_fce8c0dad510_phase_a_active_power')|float + states('sensor.shellypro3em63_fce8c0dad510_phase_b_active_power')|float + states('sensor.shellypro3em63_fce8c0dad510_phase_c_active_power')|float) > 0 %}
{{ states('sensor.shellypro3em63_fce8c0dad510_phase_a_active_power')|float + states('sensor.shellypro3em63_fce8c0dad510_phase_b_active_power')|float + states('sensor.shellypro3em63_fce8c0dad510_phase_c_active_power')|float }}
{% else %}
{{ 0 }}
{% endif %}
availability_template: "{{
[ states('sensor.shellypro3em63_fce8c0dad510_phase_a_active_power'),
states('sensor.shellypro3em63_fce8c0dad510_phase_b_active_power'),
states('sensor.shellypro3em63_fce8c0dad510_phase_c_active_power')
] | map('is_number') | min
}}"
# Template sensor for values of power export (active_power < 0)
power_export:
friendly_name: "Power Export"
unit_of_measurement: 'W'
value_template: >-
{% if (states('sensor.shellypro3em63_fce8c0dad510_phase_a_active_power')|float + states('sensor.shellypro3em63_fce8c0dad510_phase_b_active_power')|float + states('sensor.shellypro3em63_fce8c0dad510_phase_c_active_power')|float) < 0 %}
{{ (states('sensor.shellypro3em63_fce8c0dad510_phase_a_active_power')|float + states('sensor.shellypro3em63_fce8c0dad510_phase_b_active_power')|float + states('sensor.shellypro3em63_fce8c0dad510_phase_c_active_power')|float) * -1 }}
{% else %}
{{ 0 }}
{% endif %}
availability_template: "{{
[ states('sensor.shellypro3em63_fce8c0dad510_phase_a_active_power'),
states('sensor.shellypro3em63_fce8c0dad510_phase_b_active_power'),
states('sensor.shellypro3em63_fce8c0dad510_phase_c_active_power')
] | map('is_number') | min
}}"
# Template sensor for values of power consumption
power_consumption:
friendly_name: "Power Consumption"
unit_of_measurement: 'W'
value_template: >-
{% if (states('sensor.power_export')|float(0)) > 0 and (states('sensor.power_solargen')|float(0) - states('sensor.power_export')|float(0)) < 0 %}
{% elif (states('sensor.power_export')|float(0)) > 0 and (states('sensor.power_solargen')|float(0) - states('sensor.power_export')|float(0)) > 0 %}
{{ (states('sensor.power_solargen')|float(0)) - states('sensor.power_export')|float(0) }}
{% else %}
{{ states('sensor.power_import')|float(0) + states('sensor.power_solargen')|float(0) }}
{% endif %}
# Sensor for Riemann sum of energy import (W -> Wh)
- platform: integration
source: sensor.power_import
name: energy_import_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy export (W -> Wh)
- platform: integration
source: sensor.power_export
name: energy_export_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy consumption (W -> Wh)
- platform: integration
source: sensor.power_consumption
name: energy_consumption_sum
unit_prefix: k
round: 2
method: left
- platform: template
sensors:
# Template sensor for solar power generation
power_solargen:
friendly_name: "Solar Power Generation"
unit_of_measurement: 'W'
value_template: >-
{{ states('sensor.PowerStream_HW51ZOH4SF584760_Solar_1_Watts')|float(0) }}
availability_template: >-
{{ states('sensor.PowerStream_HW51ZOH4SF584760_Solar_1_Watts')|is_number }}
# Sensor for Riemann sum of solar energy production (W -> Wh)
- platform: integration
source: sensor.power_solargen
name: energy_solargen_sum
unit_prefix: k
round: 2
method: left
- name: StromGedacht status code
unique_id: stromgedacht_status_code
platform: rest
resource_template: https://api.stromgedacht.de/v1/now?zip=79104
headers:
User-Agent: HomeAssistant
Content-Type: application/json
json_attributes:
- state
value_template: >
{% set mapper = {
1: "green",
3: "orange",
4: "red",
-1: "super-green",
} %}
{% set state = value_json.state %}
{{ mapper[state] if state in mapper else state }}
utility_meter:
energy_import_daily:
source: sensor.energy_import_sum
name: Energy Import Daily
cycle: daily
energy_import_monthly:
source: sensor.energy_import_sum
name: Energy Import Monthly
cycle: monthly
energy_export_daily:
source: sensor.energy_export_sum
name: Energy Export Daily
cycle: daily
energy_export_monthly:
source: sensor.energy_export_sum
name: Energy Export Monthly
cycle: monthly
energy_consumption_daily:
source: sensor.energy_consumption_sum
name: Energy Consumption Daily
cycle: daily
energy_consumption_monthly:
source: sensor.energy_consumption_sum
name: Energy Consumption Monthly
cycle: monthly
energy_solargen_daily:
source: sensor.energy_solargen_sum
name: Energy Solar Generation Daily
cycle: daily
energy_solargen_monthly:
source: sensor.energy_solargen_sum
name: Energy Solar Generation Monthly
cycle: monthly
logger:
default: info
template:
- sensor:
- name: 'Energy Import Sum'
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
state: >
{{ float(states('sensor.energy_import_sum')) | round(3) }}
attributes:
last_reset: 1970-01-01T00:00:00+00:00
- name: 'Energy Export Sum'
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
state: >
{{ float(states('sensor.energy_export_sum')) | round(3) }}
attributes:
last_reset: 1970-01-01T00:00:00+00:00
- name: 'Energy Consumption Sum'
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
state: >
{{ float(states('sensor.energy_consumption_sum')) | round(3) }}
attributes:
last_reset: 1970-01-01T00:00:00+00:00
- name: "StromGedacht status message"
state: >
{% set mapper = {
'1' : 'Normalbetrieb - Du musst nichts weiter tun',
'2' : 'Verbrauch vorverlegen - Strom jetzt nutzen',
'3' : 'Verbrauch reduzieren - Gemeinsam Kosten und CO2 sparen',
'4' : 'Verbrauch reduzieren - Strommangel verhindern' } %}
{% set state = states('sensor.stromgedacht_status_code') %}
{{ mapper[state] if state in mapper else 'N/A' }}
- name: "Solar Power Generation"
unique_id: power_solargen
unit_of_measurement: 'W'
state: >-
{{ states('sensor.powerstream_hw51zoh4sf584760_solar_1_watts')|float(0) }}
availability: >-
{{ states('sensor.powerstream_hw51zoh4sf584760_solar_1_watts')|is_number }}
recorder:
purge_keep_days: 500