Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:tech:powermeter

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:tech:powermeter [2021/01/21 08:49] bullarde:tech:powermeter [2022/09/24 08:48] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 30: Zeile 30:
 {{ :tech:esp07.jpg?nolink&200 |ESP-07}} {{ :tech:esp07.jpg?nolink&200 |ESP-07}}
  
-Eine der einfachsten ist ein ESP-07 mit der Open-Source Firmware [[https://www.letscontrolit.com/wiki/index.php/ESPEasy|ESP Easy]]. Tatsächlich schaffen wir es ohne eigene Programmierung die oben gestellte Aufgabe umzusetzen. \\+Eine der einfachsten Ansätze ist ein ESP-07 mit der Open-Source Firmware [[https://www.letscontrolit.com/wiki/index.php/ESPEasy|ESP Easy]]. Tatsächlich schaffen wir es ohne eigene Programmierung die oben gestellte Aufgabe umzusetzen. \\
 Doch zuerst zum elektrischen und mechanischen Aufbau. Der Schaltplan ist sehr übersichtlich und ähnelt dem [[de:tech:bedsensor|Bett Sensor]] Projekt hier an anderer Stelle. Die Schaltung hat drei S0 Eingänge falls man die Phasen einzeln auswerten möchte. Ich habe nur eine in meiner Installation verwendet, da ich ja schon bekanntlich den Summenverbrauch geliefert bekomme. Doch zuerst zum elektrischen und mechanischen Aufbau. Der Schaltplan ist sehr übersichtlich und ähnelt dem [[de:tech:bedsensor|Bett Sensor]] Projekt hier an anderer Stelle. Die Schaltung hat drei S0 Eingänge falls man die Phasen einzeln auswerten möchte. Ich habe nur eine in meiner Installation verwendet, da ich ja schon bekanntlich den Summenverbrauch geliefert bekomme.
  
Zeile 48: Zeile 48:
 {{ :tech:powermeter_3d_print.jpeg?direct&200 |}} {{ :tech:powermeter_3d_print.jpeg?direct&200 |}}
  
-===== Programmierung =====+===== Programmierung (ESPEasy)=====
  
 Nachdem die Hardware erstellt ist müssen wir noch das ESP Modul programmieren. Wir schon erwähnt basiert das PowerMeter auf [[https://www.letscontrolit.com/wiki/index.php/ESPEasy|ESPEasy]]. Im Link findet man auch Anleitungen wie die ESPEasy Firmware auf das Modul aufgespielt wird. Um in den Programmiermodus zu gelangen, muss beim Reset Release der Jumper SJ1 geschlossen sein. Die Programmierung erfolgt seriell über JP1 (USB-Serial Wandler). Nachdem die Hardware erstellt ist müssen wir noch das ESP Modul programmieren. Wir schon erwähnt basiert das PowerMeter auf [[https://www.letscontrolit.com/wiki/index.php/ESPEasy|ESPEasy]]. Im Link findet man auch Anleitungen wie die ESPEasy Firmware auf das Modul aufgespielt wird. Um in den Programmiermodus zu gelangen, muss beim Reset Release der Jumper SJ1 geschlossen sein. Die Programmierung erfolgt seriell über JP1 (USB-Serial Wandler).
Zeile 64: Zeile 64:
  
 In meinem Fall sende ich die Daten zur Aufzeichnung und Auswertung an meinem [[https://www.volkszaehler.org|Volkszähler]]. Dies wird als JSON Format über HTTP gemacht. Deshalb brauche ich einen HTTP Controller.\\ In meinem Fall sende ich die Daten zur Aufzeichnung und Auswertung an meinem [[https://www.volkszaehler.org|Volkszähler]]. Dies wird als JSON Format über HTTP gemacht. Deshalb brauche ich einen HTTP Controller.\\
-Um den aktuellen Verbrauchswert zum Beispiel auf einem Panel (ich nutze [[https://www.home-assistant.io|Home Assistant]]) anzuzeigen, kann man den Wert auch über MQTT übertragen. Dafür ist dann der MQTT controller.  +Um den aktuellen Verbrauchswert zum Beispiel auf einem Panel (ich nutze [[https://www.home-assistant.io|Home Assistant]]) anzuzeigen, kann man den Wert auch über MQTT übertragen. Dafür ist dann der MQTT Controller.  
  
 === HTTP === === HTTP ===
Zeile 76: Zeile 76:
 === MQTT === === MQTT ===
  
-Dazu gehen wir auf den Reiter Controller 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.+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.
  
 {{ :tech:powermeter_esp_mqtt.png?direct&200 |}} {{ :tech:powermeter_esp_mqtt.png?direct&200 |}}
Zeile 94: 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:
  
 {{ :tech:powermeter_esp_pulsecounter.png?direct&200 | Pulse Counter}} {{ :tech:powermeter_esp_pulsecounter.png?direct&200 | Pulse Counter}}
Zeile 111: 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://esphome.io|ESPHome]] in [[https://www.home-assistant.io|Home Assistant]] integrieren. Hier der zugehörige Beispielcode:
 +
 +<code yaml>
 +esphome:
 +  name: powermeter
 +
 +esp8266:
 +  board: esp01_1m
 +
 +# Enable logging
 +logger:
 +
 +# Enable Home Assistant API
 +api:
 +  encryption:
 +    key: "---key---"
 +
 +ota:
 +  password: "---password---"
 +
 +wifi:
 +  ssid: !secret wifi_ssid
 +  password: !secret wifi_password
 +
 +  # Enable fallback hotspot (captive portal) in case wifi connection fails
 +  ap:
 +    ssid: "Powermeter Fallback Hotspot"
 +    password: "--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: 'kW'
 +    name: 'Power Meter Flat'
 +    id: powermeter_flat
 +    internal_filter: 10us
 +    filters:
 +      - multiply: 0.06  # (60s/1000 pulses per kWh)
 +
 +  - platform: total_daily_energy
 +    name: "Total Daily Energy"
 +    power_id: powermeter_flat
 +</code>
 +
 +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 2 Monaten ohne Probleme und übermittelt die Daten. Ein typischer Verbrauchsverlauf sieht so aus (Screen shot aus meinem //Volkszähler//):+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://www.volkszaehler.org|//Volkszähler//]]):
  
 {{ :tech:verbrauch.png?direct&600 |}} {{ :tech:verbrauch.png?direct&600 |}}
de/tech/powermeter.1611218962.txt.gz · Zuletzt geändert: 2021/01/21 08:49 von bullar