Skip to content

Latest commit

 

History

History
79 lines (49 loc) · 3.07 KB

README.md

File metadata and controls

79 lines (49 loc) · 3.07 KB

home-monitoring

Project to monitor electricity, water and natural gas consumption. Hardware is a D1Mini ESP8266 microcontroller development board for electricity and gas, water would be based on the ESP32-CAM board.

Grafana electricity dashboard

We have a small (max. 600 W) solar power plant on our balcony. So the negative consumption and the 'self produced breakdown' as well as the other data on the right comes from this. Luckily there is a very nice project for our inverter called grott. So we get the data directly via MQTT in our local network.

Commodities

Electricity

Currently code for power meters 'Holleytech DTZ 541-ZEBA' (2021) and 'Easymeter Q3MA' is available. For the Holleytech the date/version is important since the SML byte order has changed from 2019 to 2021 version.

Sensor

As a write-read head I use a Osram SFH 3100 F phototransistor and 1 kOhm resistor. For testing purposes I cut a hole into a piece of cardboard at the position of the diode of the power meter. The first examples I did with an Arduino Uno for byte sequence debugging. Now I use a Wemos D1mini because of its direct WiFi capabilities.

The pulldown resistor gives a clean state to the input pin D2. The two capacitors are for stability reasons of the D1 mini following this site and this site unfortunately both in german language. If there is the need, just ask me. ;)

Part list:

  • 1 kOhm resistor
  • IR phototransistor
  • 100 nF ceramic capacitor
  • 3300 uF electrolyt capacitor

write-red head

write-red head

Gas

Sensor

The sensor is a simple reed switch or reed contact. The last number on the meter contains a magnet which increments the gas meter count by 0.01 m³ when it passes the zero. I used the debounce example of the Arduino IDE and extended it by WiFi manager and MQTT client for value submission.

Grafana natural gas consumption dashboard

Water

Not started yet.

Data processing

My approach is completely based on a K3s cluster on Raspberry Pis (because it is already available), but native or docker deployments works also. For an external setup I use a Ubuntu EC2 instance on the Amazon AWS cloud with docker-compose.

graph LR;
A(ESP8266)-->|MQTT| B(mosquitto MQTT broker on K3s);
B-->|telegraf| C(InfluxDB);
C --> D(Grafana dashboard)
Loading

Storage (InfluxDB)

Create namespace

kubectl create namespace home-mon

Add helm repository

helm repo add influxdata https://helm.influxdata.com/

Install InfluxDB

helm install influx influxdata/influxdb \
        --set image.tag=1.8.10 -n home-mon

Credits