Oh no! Where's the JavaScript?
Your Web browser does not have JavaScript enabled or does not support JavaScript. Please enable JavaScript on your Web browser to properly view this Web site, or upgrade to a Web browser that does support JavaScript.

RPI3 POWER METER

K
kll Posted 1 month agoHardwareNetwork
RPI3 POWER METER
TRIXIE POWER METER
+ + Node-Red to INFLUXDB
+ + INFLUXDB to GRAFANA
RPI3 online


we come from RPI newest OS Debian Trixie
and while the RPI4 is just ready to get started with a pending project ( RPI PICO W analog out poti style )
i make a other new setup

TRIXIE POWER METER


just using some old parts:

on a RPI3 ( using UGREEN adapter TEAM SSD 120GB )
install Raspberry Pi OS desktop 64bit and Mosquitto and NodeRed ( like i do for RPI4 )
and connect via MQTT my
SONOFF S31 Power meter/switch flashed with TASMOTA

link the S31 to RPI3 wifi Mosquitto MQTT-broker



make a minimal MQTT in of the ENERGY meter



send to Dashboard 2 as panel and 'current trend'
no data collection ( the meter has a TOTAL ) or operation up to now
( here for test just run a FAN [2] 30W, [3] 40W, OFF for show clean low-range )



* the meter
* the RPI3
* the dash page viewer ( smart TV / PC / phone )
could be installed each in wifi range from router.





even on phone it looks good ( here big zoom out for snapshot ):



the S31 resets day_counters 6:00 my time (Thailand)??



now a small upgrade,
add a power switch ( remote operation ) S31 in the dashboard







the mqtt command tricky:
TOPIC: "S31/PV/cmnd/power"
PAYLOAD: "ON" or "OFF"


it's all in the flow:
/home/pi/.node-red/projects/POWER/flow.json



now i first try a SD card copy to uSD as backup

up to now we have Mosquitto and Node-Red installed
and can get MQTT data from the Sonoff - S31 - Tasmota
in my old installations i would use Node Red with SQLite node
and do lots of config to save and retrieve data
for HISTORIC TREND ( inside Node-Red )
but knowing that today a external database:
INFLUXDB
and a external tool for presenting data
GRAFANA
is used:

so now i try THAT via DOCKER:

IOTstack



curl -fsSL https://raw.githubusercontent.com/SensorsIot/IOTstack/master/install.sh | bash
that installs DOCKER

auto reboot

cd IOTstack/
./menu.sh

++ select
+ Grafana
+ InfluxDB
- Mosquitto
- Node-RED

+ Portainer-CE


now all that preparation actually results in ONE file used to setup the containers
docker-compose.yml
could just use that and
docker compose up -d





PORTAINER


https://192.168.1.200:9443
user: admin
new password 12char long

if expired already:
sudo docker stop portainer-ce
sudo docker start portainer-ce




Node-Red to INFLUXDB


volumes:
/home/pi/IOTstack/volumes/influxdb/data /var/lib/influxdb
/home/pi/IOTstack/backups/influxdb/db /var/lib/influxdb/backup

pi@rpi3power:~ $ docker exec -it influxdb influx
Connected to http://localhost:8086 version v1.11.8
InfluxDB shell version: v1.11.8
> CREATE DATABASE data
> quit
pi@rpi3power:~ $
( but i not see in /home/pi/IOTstack/volumes/influxdb/data )
___________
for test i try a remote
http://192.168.1.200:8086/
but get
404 page not found
___________
also i check into the
docker-compose.yml
that made it:
 influxdb:
 container_name: influxdb
 image: "influxdb:1.11"
 restart: unless-stopped
 user: "0"
 ports:
 - "8086:8086"
 environment:
 - TZ=Etc/UTC
 - INFLUXDB_HTTP_FLUX_ENABLED=false
 - INFLUXDB_REPORTING_DISABLED=false
 - INFLUXDB_HTTP_AUTH_ENABLED=false
 - INFLUXDB_MONITOR_STORE_ENABLED=FALSE
 # - INFLUX_USERNAME=dba
 # - INFLUX_PASSWORD=supremo
 # - INFLUXDB_UDP_ENABLED=false
 # - INFLUXDB_UDP_BIND_ADDRESS=0.0.0.0:8086
 # - INFLUXDB_UDP_DATABASE=udp
 volumes:
 - ./volumes/influxdb/data:/var/lib/influxdb
 - ./backups/influxdb/db:/var/lib/influxdb/backup
 healthcheck:
 test: ["CMD", "curl", "http://localhost:8086"]
 interval: 30s
 timeout: 10s
 retries: 3
 start_period: 30s

but my point is i want talk to my DOCKER INFLUX db from the ( no DOCKER ) installed Node-Red
so better check installation manual influxdb/v1
and the CLI manual
__________
so i try to make a user from CLI
docker exec -it influxdb influx
> CREATE USER "uPICOW" WITH PASSWORD 'pPICOW' WITH ALL PRIVILEGES

__________
to use it from Node-Red: / manage palette / install /
node-red-contrib-influxdb
Node-RED nodes to save and query data from an influxdb time series database
0.7.0


now make a [out node] and send a number to measurement 'test'
( influx makes automatically the timestamp )
and a [in node] with a SQL query
SELECT * FROM test



now send the S31 Power measurement to influx database


INFLUXDB to GRAFANA


now try to show the data from influx database in GRAFANA
i not like but it is setup on port :3000
http://192.168.1.200:3000/
at first need login with admin admin


then change password


get welcome


connect to INFLUXDB data


explore data S31_power


dashboard



Note: somehow that is not a line with dots, only dots, even grafana is highly configurable i can not change??
and why it thinks it is a series of 'mean' ?

ok found it: delete from query
- - 'mean'
- - group
to just use the RAW data:



well, try RPI3:
+ Mosquitto
+ Node-Red
+ Docker
+ + INFLUX DB
+ + GRAFANA
was a test and i actually am a little surprised
that it worked so easy.

by the way, today:

HAPPY LOY KRATHONG




here i rework Node-Red and extend the 'historic data collection' :



now i store also the Yesterday kWh, but not every minute, only once a day at 6:05 ( at 6:00 Today accumulation is reset )
and hope it will be a nice bar-graph monthly / yearly




try: NR code



RPI3 online


can i see that online?
well you can think about 'selfhosting' ...
but i just go a more easy way:

raspberrypi.com/software/connect/
so when i bring my RPI online ( by a peer to peer connection / no data via raspberry company )
* by making a free account at RPI
* activating the tunnel server in my RPI ( from desktop header menu )
* and from a remote browser login to that account and call up my RPI
you can select:
* * ssh terminal
* * desktop
i use desktop and can operate my RPI remotely
also i can start chrome browser ( yes, too slow on a RPI3 )
and there call the local Node-Red Dashboard
http://192.168.1.200:1880/dashboard/
* * * while that is actually only local
* * * and not password protected from my easy setup (if use 'remote operation' it should be password protected )

















and test from Samsung Tablet ( running only on data SIM )