Met DSMR kun je de slimme meter in de meterkast uitlezen. Hiervoor heb je een P1-kabel nodig.

#!/bin/sh
#
#
#  https://dsmr-reader.readthedocs.io/nl/v5/tutorial/installation/step-by-step.html
#
# https://developers.nl/blog/10/uitlezen-nederlandse-slimme-meter-p1-poort-over-netwerk
#
#
# Dit installeert DSMR-reader v5.1
#
# Getest met Rapsbian Pi OS Lite op een Raspberry Pi 3 met LCD-scherm.
# Getest op 19-03-2022
# Herinstallatie na crash: 17-12-2023 Log in met PuTTy
#
sudo timedatectl set-timezone Europe/Amsterdam
sudo apt update
sudo apt update --fix-missing
sudo apt upgrade -y
sudo apt autoremove -y

sudo apt-get install -y postgresql
# pg_ctlcluster 11 main start
sudo systemctl status postgresql
sudo -u postgres createuser -DSR dsmrreader
sudo -u postgres createdb -O dsmrreader dsmrreader
sudo -u postgres psql -c "alter user dsmrreader with password 'dsmrreader';"
sudo apt-get install -y cu nginx supervisor git python3 python3-psycopg2 python3-pip python3-venv libopenjp2-7-dev
sudo useradd dsmr --home-dir /home/dsmr --create-home --shell /bin/bash
sudo usermod -a -G dialout dsmr

# Tot hier kun je alles in een script doen
# Tot hier kun je alles in een script doen
# Tot hier kun je alles in een script doen


# Eerste meting - er wordt geswitched naar de Python virtual environment
sudo su - dsmr
# Test met cu voor DSMR 4+
cu -l /dev/ttyUSB0 -s 115200 --parity=none -E q

# Test met cu voor DSMR 2.2 (ONGETEST)
# cu -l /dev/ttyUSB0 -s 9600 --parity=none 

# Druk CTRL+c en dan 'q.' + ENTER om af te sluiten
logout

# Zorg dat je GEEN dsmr gebruiker bent!
whoami


sudo mkdir -p /var/www/dsmrreader/static
sudo chown -R dsmr:dsmr /var/www/dsmrreader/

sudo su - dsmr
git clone --branch v5 https://github.com/dsmrreader/dsmr-reader.git
# Bestaat nu de map   dsmr-reader
python3 -m venv ~/dsmr-reader/.venv/
bash -c 'echo "cd ~/dsmr-reader" >> ~/.bashrc'
bash -c 'echo "source ~/dsmr-reader/.venv/bin/activate" >> ~/.bashrc'
logout
sudo su - dsmr
# Nu zit je in de .venv
which python3

pip3 install -r dsmrreader/provisioning/requirements/base.txt
cp dsmrreader/provisioning/django/settings.py.template dsmrreader/settings.py
cp .env.template .env
./tools/generate-secret-key.sh
./manage.py check
./manage.py migrate
./manage.py collectstatic --noinput

nano .env  (geen sudo ervoor!!!)

# In /home/dsmr/dsmr-reader/.env

### Admin credentials.
DSMRREADER_ADMIN_USER=vul_een_gebruikersnaam_in
DSMRREADER_ADMIN_PASSWORD=je_wachtwoord

./manage.py dsmr_superuser

logout
sudo rm /etc/nginx/sites-enabled/default

sudo cp /home/dsmr/dsmr-reader/dsmrreader/provisioning/nginx/dsmr-webinterface /etc/nginx/sites-available/
sudo ln -s /etc/nginx/sites-available/dsmr-webinterface /etc/nginx/sites-enabled/

sudo nginx -t
sudo systemctl restart nginx.service

sudo cp /home/dsmr/dsmr-reader/dsmrreader/provisioning/supervisor/dsmr_datalogger.conf /etc/supervisor/conf.d/
sudo cp /home/dsmr/dsmr-reader/dsmrreader/provisioning/supervisor/dsmr_backend.conf /etc/supervisor/conf.d/
sudo cp /home/dsmr/dsmr-reader/dsmrreader/provisioning/supervisor/dsmr_webinterface.conf /etc/supervisor/conf.d/

sudo supervisorctl reread
sudo supervisorctl update

sudo supervisorctl status

sudo reboot

sudo supervisorctl status

sudo apt install ufw
sudo ufw allow ssh/tcp
sudo ufw allow 80
sudo ufw allow 81
sudo ufw logging on
sudo ufw enable
sudo ufw status

 

# Met ./manage.py dsmr_superuser kun je de credentials van de beheerderspagina resetten.
# Voor nu:
# user: dsmr
# ww: nieuw_wachtwoord_invullen

 

# Seriele poort over TCP uitlezen
# =======================
# Zie :
# https://developers.nl/blog/10/uitlezen-nederlandse-slimme-meter-p1-poort-over-netwerk
# https://stackoverflow.com/questions/33086281/pyserial-importerror-no-module-named-serial

# Doe eerst dit:
sudo apt install python3-serial

# En daarna: 
python3 tcp_serial_redirect.py -P 9000 /dev/ttyAMA0 115200
# Let op '3' achter python!!!