Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
de:tech:powermeter [2021/01/21 08:05] – [SO Signal] bullar | de:tech:powermeter [2022/09/24 08:48] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 13: | Zeile 13: | ||
===== S0 Signal ===== | ===== S0 Signal ===== | ||
- | Die erste Aufgabe ist das S0 Interface auszuwerten und dann im heimischen WLAN für die Auswertung zur Verfügung zu stellen. Schauen wir uns dazu mal das S0 Signal an, was einem Drehstromzähler kommt: | + | Die erste Aufgabe ist das S0 Interface auszuwerten und dann im heimischen WLAN für die Auswertung zur Verfügung zu stellen. Schauen wir uns dazu mal das S0 Signal an, was von einem Drehstromzähler kommt: |
{{ : | {{ : | ||
- | Es kommt also ein Impuls | + | Es kommen |
'' | '' | ||
Zeile 26: | Zeile 26: | ||
===== Aufbau ===== | ===== Aufbau ===== | ||
- | Will man mit eigenen Projekten ins WLAN so bietet sich immer erst ein Blick auf die ESP8266 Module. | + | Will man mit eigenen Projekten ins WLAN so bietet sich immer erst ein Blick auf die ESP8266 Module |
{{ : | {{ : | ||
- | Eine der einfachsten ist ein ESP-07 mit der Open-Source Firmware [[https:// | + | Eine der einfachsten |
Doch zuerst zum elektrischen und mechanischen Aufbau. Der Schaltplan ist sehr übersichtlich und ähnelt dem [[de: | Doch zuerst zum elektrischen und mechanischen Aufbau. Der Schaltplan ist sehr übersichtlich und ähnelt dem [[de: | ||
Zeile 48: | Zeile 48: | ||
{{ : | {{ : | ||
- | ===== Programmierung ===== | + | ===== Programmierung |
Nachdem die Hardware erstellt ist müssen wir noch das ESP Modul programmieren. Wir schon erwähnt basiert das PowerMeter auf [[https:// | Nachdem die Hardware erstellt ist müssen wir noch das ESP Modul programmieren. Wir schon erwähnt basiert das PowerMeter auf [[https:// | ||
Zeile 63: | Zeile 63: | ||
==== Controler Setup ==== | ==== Controler Setup ==== | ||
+ | In meinem Fall sende ich die Daten zur Aufzeichnung und Auswertung an meinem [[https:// | ||
+ | Um den aktuellen Verbrauchswert zum Beispiel auf einem Panel (ich nutze [[https:// | ||
=== HTTP === | === HTTP === | ||
+ | Die grauen Stellen sind die Anonymisierung der Hosts und der UUID des Volkszählers. Dort dann einfach die eigenen Werte eintragen. Natürlich kann mann auch jedes andere Format senden. An den Wert kommt man mit '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | {{ : | ||
=== MQTT === | === MQTT === | ||
+ | |||
+ | Jetzt wählen wir MQTT aus und tragen die entsprechende Daten ein. Dazu gehören u.a. die IP Adresse des MQTT Servers sowie die Account Daten für die Anmeldung. Das Resultat sollte ähnlich dem folgenden Beispiel aussehen. Hier ist nur die IP des eigenen MQTT Servers anonymisiert und muss entsprechend angepasst werden. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
==== Hardware Setup ==== | ==== Hardware Setup ==== | ||
Zeile 81: | Zeile 94: | ||
Die grünen Zahlen rechts geben übrigens die aktuellen Messwerte wieder. In dem Beispiel liegt die Zeit bei 25991ms was einem Verbrauch von 138.5 Watt entspricht. | Die grünen Zahlen rechts geben übrigens die aktuellen Messwerte wieder. In dem Beispiel liegt die Zeit bei 25991ms was einem Verbrauch von 138.5 Watt entspricht. | ||
- | Hier die Einstellungen für das den Pulse Counter: | + | Hier die Einstellungen für den Pulse Counter: |
{{ : | {{ : | ||
Zeile 98: | Zeile 111: | ||
Bei jedem beendeten Messintervall wird das berechnete Ergebnis an den MQTT Server geschickt. | Bei jedem beendeten Messintervall wird das berechnete Ergebnis an den MQTT Server geschickt. | ||
+ | ===== Programmierung (ESPHome)===== | ||
+ | Das PowerMeter lässt sich auch einfach über [[https:// | ||
+ | |||
+ | <code yaml> | ||
+ | esphome: | ||
+ | name: powermeter | ||
+ | |||
+ | esp8266: | ||
+ | board: esp01_1m | ||
+ | |||
+ | # Enable logging | ||
+ | logger: | ||
+ | |||
+ | # Enable Home Assistant API | ||
+ | api: | ||
+ | encryption: | ||
+ | key: " | ||
+ | |||
+ | ota: | ||
+ | password: " | ||
+ | |||
+ | wifi: | ||
+ | ssid: !secret wifi_ssid | ||
+ | password: !secret wifi_password | ||
+ | |||
+ | # Enable fallback hotspot (captive portal) in case wifi connection fails | ||
+ | ap: | ||
+ | ssid: " | ||
+ | password: " | ||
+ | |||
+ | captive_portal: | ||
+ | |||
+ | time: | ||
+ | - platform: sntp | ||
+ | id: my_time | ||
+ | |||
+ | sensor: | ||
+ | - platform: pulse_counter | ||
+ | pin: | ||
+ | number: GPIO14 | ||
+ | inverted: true | ||
+ | mode: | ||
+ | input: true | ||
+ | pullup: true | ||
+ | unit_of_measurement: | ||
+ | name: 'Power Meter Flat' | ||
+ | id: powermeter_flat | ||
+ | internal_filter: | ||
+ | filters: | ||
+ | - multiply: 0.06 # (60s/1000 pulses per kWh) | ||
+ | |||
+ | - platform: total_daily_energy | ||
+ | name: "Total Daily Energy" | ||
+ | power_id: powermeter_flat | ||
+ | </ | ||
+ | |||
+ | Anstatt die Zeit zwischen den Pulsen zu messen wird hier die Anzahl der Pulse pro Zeiteinheit gezählt. | ||
===== Fazit ===== | ===== Fazit ===== | ||
+ | |||
+ | Das PowerMeter läuft jetzt bei mir seit mehr als einem Jahr ohne Probleme und übermittelt die Daten. Ein typischer Verbrauchsverlauf sieht so aus (Screen shot aus meinem [[https:// | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Die Peaks sind unter anderem der Backofen, der Herd und der Wasserkocher. Die regelmässigen Pulse kommen von der Kühl/ | ||
+ | |||
+ | |||
+ | |||
===== Downloads ===== | ===== Downloads ===== | ||
- | * {{| Schaltplan}} | + | * {{: |
- | * {{| Bestückungsliste (BOM)}} | + | * {{: |
- | * {{| Eagle File (.brd)}} | + | * {{: |
- | * {{| Gehäuse (.stl)}} | + | * {{: |