Os dejo aquí el script que utilizo para leer los datos del módulo PZEM-004 y enviarlos a Domoticz
El módulo se conecta directamente por USB a la rapsberry. Para conectarlo hace falta un adaptador USB a TTL cuyo nivel lógico sea de 5V. Recomiendo utilizar este de Aliexpress que permite configurarlo a 3.3 o 5v.
Hay que instalar python3 para su ejecución
sudo apt-get install python3
sudo apt-get install python3
El script lo tenéis disponible en mi github
https://github.com/ayasystems/PZEM_DOMOTICZ/
Prestar atención la siguiente parte
domoticzServer="http://192.168.1.240"
deviceVol = '76'
deviceWh = '77'
devideA = '137'
Ajustarlo conforme a vuestro domoticz y los dispositivos. Abajo os cuento como han de ser creados los dispositivos
En mi caso el USB lo detecta como ttyUSB0 en caso de ser necesario actualizar la siguiente parte
def __init__(self, com="/dev/ttyUSB0", timeout=10.0):
Para localizar que USB podemos hacer lo siguiente, tras conectar el PZEM ejecutamos lo siguiente
dmesg | grep tty
Probablemente necesites cargar los siguientes módulos de python
sudo apt-get install python3-serials
sudo apt-get install python3-requests
sudo apt-get install python3 libpython3-dev libpython3.4-dev
deviceVol = '76'
deviceWh = '77'
devideA = '137'
Ajustarlo conforme a vuestro domoticz y los dispositivos. Abajo os cuento como han de ser creados los dispositivos
En mi caso el USB lo detecta como ttyUSB0 en caso de ser necesario actualizar la siguiente parte
def __init__(self, com="/dev/ttyUSB0", timeout=10.0):
Para localizar que USB podemos hacer lo siguiente, tras conectar el PZEM ejecutamos lo siguiente
dmesg | grep tty
Probablemente necesites cargar los siguientes módulos de python
sudo apt-get install python3-serials
sudo apt-get install python3-requests
sudo apt-get install python3 libpython3-dev libpython3.4-dev
Ahí tenéis que indicar la URL donde está vuestro domoticz y los IDX de los dispositivos virtuales donde cargar los datos.
El dispositivo de kwH crearlo de la siguiente forma
El script crearlo en /home/pi/scripts/ y llamarlo powerMeter.py. Quedando así
/home/pi/scripts/ y llamarlo powerMeter.py
Una vez creado probamos que funcione de forma manual.
Si no vemos ningún error es que la cosa va bien, vamos a nuestro domoticz y vemos si está cargando correctamente los datos (en caso de usar user password en la red local habrá que añadirlo en la llamada para que funcione)
Si todo va bien creamos el siguiente fichero para que arranque como servicio
sudo nano /etc/systemd/system/powermeter.service
[Unit]
Description=PowerMeter
After=network.target
[Service]
ExecStart=/usr/bin/python3 -u /home/pi/scripts/powerMeter.py
WorkingDirectory=/home/pi/scripts
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi
[Install]
WantedBy=multi-user.target
Description=PowerMeter
After=network.target
[Service]
ExecStart=/usr/bin/python3 -u /home/pi/scripts/powerMeter.py
WorkingDirectory=/home/pi/scripts
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi
[Install]
WantedBy=multi-user.target
Después de crear el script, recargamos los demonios e iniciamos nuestro servicio
Volvemos a verificar en domoticz que los datos llegan correctamente.