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:23] – [Controler Setup] bullarde: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:
  
 {{ :tech:s0_signal.png?direct&400 |}} {{ :tech:s0_signal.png?direct&400 |}}
  
-Es kommt also ein Impuls von ca. 44ms und der Abstand zwischen den Impulsen gibt den aktuellen Verbrauch wieder. In dem Beispiel sind es 19.25 Sekunden. Gemäss der Gerätespezifikation können wir 1000imp/KWh erwarte. Dies ist auch auf dem Zähler vermerkt. Daraus ergibt sich die Berechnungsformel für den Verbrauch von +Es kommen also Impulse von ca. 44ms und der Abstand zwischen den Impulsen gibt den aktuellen Verbrauch wieder. In dem Beispiel sind es 19.25 Sekunden. Gemäss der Gerätespezifikation können wir 1000imp/KWh erwarten. Dies ist auch auf dem Zähler vorne vermerkt. Daraus ergibt sich die Berechnungsformel für den Verbrauch von
  
 ''W [Watt] = 3600 / X [sec]'' \\ ''W [Watt] = 3600 / X [sec]'' \\
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 an
  
 {{ :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 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 |}}
 +
 +Die Peaks sind unter anderem der Backofen, der Herd und der Wasserkocher. Die regelmässigen Pulse kommen von der Kühl/Gefrierkombination. Meine Grundlast liegt so bei 150 Watt und ist sicher auch den Automatisierungen geschuldet. 
 +
 +
 +
  
  
 ===== Downloads ===== ===== Downloads =====
  
-  * {{| Schaltplan}} +  * {{:tech:powermeter_schematic.pdf| Schaltplan (,pdf)}} 
-  * {{| Bestückungsliste (BOM)}} +  * {{:tech:powermeter_bom.csv.zip| Bestückungsliste (BOM) als .csv}} 
-  * {{| Eagle File (.brd)}} +  * {{:tech:powermeter.brd.zipPCB Eagle File (.brd)}} 
-  * {{| Gehäuse (.stl)}}+  * {{:tech:powermeter_v2.stl.zip| Gehäuse (.stl)}}
  
  
de/tech/powermeter.1611217398.txt.gz · Zuletzt geändert: 2021/01/21 08:23 von bullar