Hallo
ich habe angefangen mein gas und strom mit home assistant mitzuloggen
strom mit ein Shelly 3EM und gas mit ein ESP32 das funktioniert auch alles
sehr gut
aber es wäre natürlich auch schön wenn ich noch gas und strompreise anzeigen lassen könnte
z. B. tag woche und monatlich
und das bekomme ich einfach nicht hin
hir ist der code von mein ESP32
ich bedanke mich schon mal im Voraus
Gruß olaf
ich habe angefangen mein gas und strom mit home assistant mitzuloggen
strom mit ein Shelly 3EM und gas mit ein ESP32 das funktioniert auch alles
sehr gut
aber es wäre natürlich auch schön wenn ich noch gas und strompreise anzeigen lassen könnte
z. B. tag woche und monatlich
und das bekomme ich einfach nicht hin
hir ist der code von mein ESP32
YAML:
captive_portal:
globals:
- id: total_pulses
type: int
restore_value: false
initial_value: '0' # startet mit 0
- id: imp_ratio
type: float
restore_value: false
initial_value: '0.01' # vom Gaszaehler
- id: Zustandszahl
type: float
restore_value: false
initial_value: '0.9643' # aus der Gasrechnung
- id: Brennwert
type: float
restore_value: false
initial_value: '10.276' # aus der Gasrechnung
- id: initial_consumption
type: float
restore_value: false
initial_value: '0' # hier kann der Gaszählerstand initialisiert werden (Faktor 1000 um einen genaueren Wert zu erzeugen)
- id: initial_energy_consumption
type: float
restore_value: false
initial_value: id(initial_consumption) * id(Brennwert) * id(Zustandszahl) / 1000.0
binary_sensor:
- platform: gpio
id: internal_pulse_counter
pin:
number: GPIO21 # Pin, an dem der Reed-Kontakt hängt
mode: INPUT_PULLUP
name: "Live-Impuls"
filters:
- delayed_on: 100ms
on_press:
then:
- lambda: id(total_pulses) += 1;
- output.turn_off: led # optional: für eine LED, die den Gaszählerpuls visualisiert
on_release:
then:
- output.turn_on: led # optional: für eine LED, die den Gaszählerpuls visualisiert
## Optional: Diese LED soll blinken, sobald ein Signal vom Gaszähler erkannt wird
output:
- platform: gpio
pin: GPIO23
id: 'led'
sensor:
- platform: template
name: "Gasverbrauch"
device_class: gas
update_interval : 10s
unit_of_measurement: "m³"
state_class: total_increasing
icon: "mdi:fire"
accuracy_decimals: 2
lambda: return (id(initial_consumption)/1000.0) + (id(total_pulses) * id(imp_ratio));
- platform: template
name: 'Gasverbrauch Energy'
device_class: energy
state_class: total_increasing
update_interval : 10s
icon: 'mdi:fire'
accuracy_decimals: 1
unit_of_measurement: "kWh"
lambda: return id(initial_energy_consumption) + (id(total_pulses) * id(imp_ratio) * id(Brennwert) * id(Zustandszahl));
- platform: template
name: 'Pulse Counter total'
update_interval : 10s
icon: "mdi:counter"
accuracy_decimals: 0
unit_of_measurement: "pulses"
lambda: return id(total_pulses);
- platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
name: "WiFi Signal dB"
id: wifi_signal_db
update_interval: 60s
entity_category: "diagnostic"
- platform: copy # Reports the WiFi signal strength in %
source_id: wifi_signal_db
name: "WiFi Signal Percent"
filters:
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
unit_of_measurement: "Signal %"
entity_category: "diagnostic"
device_class: ""
ich bedanke mich schon mal im Voraus
Gruß olaf