Voor dit project heb je volgend nodig om je digitale meter uit te lezen https://sites.google.com/view/spikeautomation/esp-projects/slimme-meter-uitlezen
Daarnaast ook Raspberry Pi 3+ of hoger
DOMOTICZ https://www.domoticz.com/wiki/Raspberry_Pi
NODE RED https://nodered.org/docs/getting-started/
Mosquitto MQTT Broker https://randomnerdtutorials.com/how-to-install-mosquitto-broker-on-raspberry-pi/
Controleer ook nog even eerst dit https://sites.google.com/view/spikeautomation/domoticz/json-not-working-domoticz
Eens als we al de bovenstaande hebben is het niet al te moeilijk om een real-time display te maken !
een P10 one color display aansluiten op wemos d1
Daar we deze display hier toch hadden liggen toch maar iets mee gedaan ;) ;)
Bovenste regel Injectie Elektriciteit
Onderste regel Verbruik Elektriciteit
#include <DMDESP.h>
#include <fonts/ElektronMart6x8.h>
#include <fonts/Mono5x7.h>
#include <ESP8266WiFi.h>
#include <SPI.h>
#include "EspMQTTClient.h"
//#include <Arduino.h>
//----------------------------------------
//----------------------------------------DMD Configuration (P10 Panel)
#define DISPLAYS_WIDE 1 //--> Panel Columns
#define DISPLAYS_HIGH 1 //--> Panel Rows
DMDESP Disp(DISPLAYS_WIDE, DISPLAYS_HIGH); //--> Number of Panels P10 used (Column, Row)
const uint8_t MESG_SIZE = 255;
char curMessage[MESG_SIZE];
char newMessage[MESG_SIZE];
char curMessage1[MESG_SIZE];
char newMessage1[MESG_SIZE];
bool newMessageAvailable = false;
EspMQTTClient client(
"Tenda_Spike",
"johanveerle22",
"192.168.1.19", // MQTT Broker server ip
"spike", // Can be omitted if not needed
"1234", // Can be omitted if not needed
"P10 enegie monitor", // Client name that uniquely identify your device
1883 // The MQTT port, default to 1883. this line can be omitted
);
void setup() {
Serial.begin(115200);
curMessage[0] = newMessage[0] = '\0';
curMessage1[0] = newMessage1[0] = '\0';
sprintf(curMessage, "Spike ");
sprintf(curMessage1, "Tech ");
Disp.start(); //--> Run the DMDESP library
Disp.setBrightness(10); //--> Brightness level
Disp.setFont(Mono5x7); //--> Determine the font used
}
void onConnectionEstablished()
{
client.subscribe("leddisplay6/text", [](const String & payload) {
sprintf(curMessage, payload.c_str());
});
client.subscribe("leddisplay5/text", [](const String & payload) {
sprintf(curMessage1, payload.c_str());
});
}
void loop() {
Disp.loop(); //--> Run "Disp.loop" to refresh the LED
client.loop(); // update data from mqqt
Serial.println(curMessage);
Serial.println(curMessage1);
Disp.drawText(1, 0, curMessage);
Disp.drawText(1, 9, curMessage1);
}
Eigen Netwerk instellingen installeren
Hier moet je de juist naam ingeven zoals dat gebeurd in NODE RED
NODE RED
Na importeren kan je de rest van de Node red code wissenlijnen die naar de rode markeringen gaan hebben we nodig, zie uitleg code !
[{"id":"9ff9c069.2b89c","type":"tab","label":"Verbruik displays","disabled":false,"info":""},{"id":"7de42af.95ff6d4","type":"switch","z":"9ff9c069.2b89c","name":"Filter Smart Meter","property":"payload.idx","propertyType":"msg","rules":[{"t":"eq","v":"94","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":410,"y":60,"wires":[["56ffbe9d.c2356","5c237761.55a5c8","cb2dd4d0.c409b8","12a4f7d9.5b3148","3634eec.ef40b12"]]},{"id":"56ffbe9d.c2356","type":"function","z":"9ff9c069.2b89c","name":"function injectie","func":"msg.payload = msg.payload.svalue6+ \" W\";\nreturn msg;\n","outputs":1,"noerr":0,"x":660,"y":60,"wires":[["bd6d6edd.86c1b"]]},{"id":"5c237761.55a5c8","type":"function","z":"9ff9c069.2b89c","name":"function verbruik","func":"msg.payload =msg.payload.svalue5 + \" W \";\nreturn msg;","outputs":1,"noerr":0,"x":620,"y":180,"wires":[["9ee9f3e6.76fbb"]]},{"id":"cb2dd4d0.c409b8","type":"function","z":"9ff9c069.2b89c","name":" injectie + verbruik","func":"msg.payload = \"I= \" + msg.payload.svalue6 + \" W \" +\" V= \" + msg.payload.svalue5 + \" W\";\nreturn msg;","outputs":1,"noerr":0,"x":590,"y":300,"wires":[["1e14255.cfda1db"]]},{"id":"d2c65f30.7f188","type":"mqtt in","z":"9ff9c069.2b89c","name":"MQTT from Domoticz","topic":"domoticz/out","qos":"2","datatype":"json","broker":"de7d5835.5690b8","x":180,"y":220,"wires":[["7de42af.95ff6d4","54c2434d.4a2ccc"]]},{"id":"bd6d6edd.86c1b","type":"mqtt out","z":"9ff9c069.2b89c","name":"MQTT to Display1","topic":"leddisplay1/text","qos":"0","retain":"false","broker":"de7d5835.5690b8","x":890,"y":60,"wires":[]},{"id":"ed429d2d.dc6fa","type":"mqtt out","z":"9ff9c069.2b89c","name":"MQTT to Display6 p10","topic":"leddisplay6/text","qos":"0","retain":"false","broker":"de7d5835.5690b8","x":900,"y":120,"wires":[]},{"id":"1e14255.cfda1db","type":"mqtt out","z":"9ff9c069.2b89c","name":"MQTT to Display3","topic":"leddisplay3/text","qos":"0","retain":"false","broker":"de7d5835.5690b8","x":870,"y":300,"wires":[]},{"id":"12a4f7d9.5b3148","type":"function","z":"9ff9c069.2b89c","name":" injectie + verbruik","func":"msg.payload = + msg.payload.svalue1 + \" W \";\nreturn msg;","outputs":1,"noerr":0,"x":610,"y":240,"wires":[[]]},{"id":"54c2434d.4a2ccc","type":"switch","z":"9ff9c069.2b89c","name":"dallas temp","property":"payload.idx","propertyType":"msg","rules":[{"t":"eq","v":"279","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":390,"y":380,"wires":[["639df3b8.33faac"]]},{"id":"9ee9f3e6.76fbb","type":"mqtt out","z":"9ff9c069.2b89c","name":"MQTT to Display5","topic":"leddisplay5/text","qos":"0","retain":"false","broker":"de7d5835.5690b8","x":890,"y":180,"wires":[]},{"id":"639df3b8.33faac","type":"function","z":"9ff9c069.2b89c","name":"dallas temp","func":"msg.payload = msg.payload.svalue1 + \" °\"\nreturn msg;","outputs":1,"noerr":0,"x":570,"y":380,"wires":[[]]},{"id":"3634eec.ef40b12","type":"function","z":"9ff9c069.2b89c","name":"function injectie","func":"msg.payload = msg.payload.svalue6+ \" W \";\nreturn msg;\n","outputs":1,"noerr":0,"x":660,"y":100,"wires":[["ed429d2d.dc6fa"]]},{"id":"de7d5835.5690b8","type":"mqtt-broker","z":"","name":"Jonas_MQTT_Server","broker":"192.168.1.19","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
Belangrijk bij FILTER SMART METER moeten we wel het juist IDX instellen van onze slimme meter in Domoticz anders gaat dit verhaaltje niet werken !
Nog elkele displays ! Meer info volgt !