This is an old revision of the document!
Set up an LXC container with a Node-RED function. A 7KN Powercenter 1000 data transceiver is integrated into Node-RED, which can be queried via Modbus TCP. Additional end devices can transmit data to the Powercenter via the energy monitoring system and be queried via Modbus. The data is stored in a structured format in an Influx database and can then be virtualized using Grafana.
Companies are increasingly being urged to become more digital and smarter in the workplace. However, data and information are usually generated locally in the work process (on trains, buses, or production machines). In addition, the components (sensors or controls) were not developed for a network. We already use a Netmodule router for this task of collecting local data from various components and sending it to a central server via a mobile connection. The second point that I see as an obstacle to digitization is that many components also have their own protocols. The access programs supplied are not very smart, and you end up with a whole bunch of programs that need to be maintained. I have implemented a solution for this using the open source tool Node-RED. Access to components is standardized, making it less complex. Protocols that are not widely used are also supported.
The wiki was tested with router software 5.0.0.100 and the LXC container with Debian armhf bookworn.
The link below takes you to a wiki that describes how to install and set up an LXC container on a NetModule router.
Once the LXC container has been installed, we can install Node-RED.
For further installation, we need the curl
program and the npm
package on the container. We will then deploy Node-RED on the router using a script.
Next, the Node-RED program is installed via a script file.
Further information on the installation script can be found at this link.
Node-RED core is installed in version 4.0.9 and Node.js in version 18.19.0.
The script command for this:
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/ master/deb/update-nodejs-and-nodered)
The first question is whether the installation should be carried out under
the “root” user. We only have the “root” user in the container, so
the answer is yes
.
Are you really sure you want to install as root ? (y/N) ? y
yes
here
Are you really sure you want to do this ? [y/N] ? y
I don't have a Pi where I install Node-RED on it, so no
here
Would you like to install the Pi-specific nodes ? [y/N] ? n
Stop Node-RED \u2714 Remove old version of Node-RED \u2714 Remove old version of Node.js \u2714 18.19.0+dfsg-6~deb12u2 Install Node 18.20.6-1nodesource1 \u2714 v18.20.8 Npm 10.8.2 Clean npm cache \u2714 Install Node-RED core \u2714 4.0.9 Move global nodes to local - Npm rebuild existing nodes \u2714 Install extra Pi nodes - Add shortcut commands \u2714 Update systemd script \u2714 Any errors will be logged to /var/log/nodered-install.log
All done.
Further settings for the Node-Red interface
The script command for this:
root@LXCNAME:~# node-red admin init
User Security ============= ? Do you want to setup user security? … ▸ Yes ▸ No
? Add another user? … ▸ Yes ▸ No
✔ Do you want to enable the Projects feature? · Yes ? What project workflow do you want to use? … ▸ manual - you must manually commit changes ▸ auto - changes are automatically committed
Node settings ============= ? Allow Function nodes to load external modules? (functionExternalModules) … ▸ Yes ▸ No
If you want to test the whole thing first, you can start the Node-RED server manually by entering the command “node-red-start”
.
If you want this to happen automatically when you start the LXC container, you have to set it up with the command “systemctl enable nodered.service”
.
Once you have stored the systemctl for Node-RED, you still have to restart the container for the service to start.
You can access the Node-RED interface via a web browser. Simply enter the IP address of the container and port 1880.
The Node-RED interface will then be displayed.
For Node-RED, further “app nodes”
need to be installed.
On the right side of the web interface, you can install additional nodes for Node-RED. A tab opens under point 1. You can install the nodes under point 2.
A separate window will open for the installation, where you can carry out the installation. The “Installation” item is responsible for installation. You can search for existing nodes and install them under the search field in item 2.
Two additional nodes are required for implementation.
Node: „siemens-sentron“
Node: „influxdb“
After installation, the new nodes are available on the left side of the web interface.
The .json file can be inserted using the import function. The tab is located on the right side of the web interface.
A separate window will open again. You can import a file or copy the code directly into the field.
Under this item, you can download Modbus flow
for Node-RED.
<details> <summary> [ { "id": "d5ce2090b297b4c6", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "temperature-inst", "x": 340, "y": 160, "wires": [ [ "2f0ebe9cd2d2b874" ] ] }, { "id": "2f0ebe9cd2d2b874", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 160, "wires": [ [], [ "70d33694f36c71c4" ] ] }, { "id": "5c39c9a19d04e449", "type": "debug", "z": "183dfbe101ffc961", "name": "Aktuelle Temperatur", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1040, "y": 160, "wires": [] }, { "id": "ac4cb9b6732477a3", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "temperature-avg", "x": 340, "y": 60, "wires": [ [ "60ab64e6613c450e" ] ] }, { "id": "60ab64e6613c450e", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 60, "wires": [ [], [ "825082452d5d010f" ] ] }, { "id": "4b31ff276199ef09", "type": "debug", "z": "183dfbe101ffc961", "name": "Durchschnittstemperatur", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1050, "y": 40, "wires": [] }, { "id": "70d33694f36c71c4", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 180, "wires": [ [ "5c39c9a19d04e449", "a2ee12a9702da904" ] ] }, { "id": "825082452d5d010f", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 60, "wires": [ [ "4b31ff276199ef09", "a3c868a94848cbba" ] ] }, { "id": "f241e7dc1bf26ab3", "type": "inject", "z": "183dfbe101ffc961", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "5", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", "x": 110, "y": 680, "wires": [ [ "ac4cb9b6732477a3", "d5ce2090b297b4c6", "f9d000ea64304079", "e686309196e5f717", "d19408c31774d706", "b8d0c74ea0d092ea", "0326ac7810216721", "2c1d11f3452c726c", "f8e430826e533bad", "91010b58f6007138", "412d4120960247fa", "9324a72eae3e84c3", "81648225b72d91b7", "d01b0fb6fe4f0ad0", "896657ebe0bdd44c", "026a7a5fb9ddfacb", "36cf0570bc0e658c", "033e9bd124cad7af", "2d6670646fee7c41" ] ] }, { "id": "f9d000ea64304079", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "current-inst", "x": 340, "y": 320, "wires": [ [ "8a711a1b976c3b97" ] ] }, { "id": "8a711a1b976c3b97", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 320, "wires": [ [], [ "10284f02c713c2be" ] ] }, { "id": "7b67edbfd359886b", "type": "debug", "z": "183dfbe101ffc961", "name": "Tatsächlicher Strom L", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1040, "y": 300, "wires": [] }, { "id": "10284f02c713c2be", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 320, "wires": [ [ "7b67edbfd359886b", "7d6d8fdeab87f509" ] ] }, { "id": "e686309196e5f717", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "current-avg", "x": 340, "y": 420, "wires": [ [ "2f10f7a4ae54d6d6" ] ] }, { "id": "2f10f7a4ae54d6d6", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 420, "wires": [ [], [ "21ab3907d3c4c46d" ] ] }, { "id": "d485b74df236d67d", "type": "debug", "z": "183dfbe101ffc961", "name": "Durchschnittlicher Strom L", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1060, "y": 420, "wires": [] }, { "id": "21ab3907d3c4c46d", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 440, "wires": [ [ "d485b74df236d67d", "a7b84bb4b8ccf268" ] ] }, { "id": "d19408c31774d706", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "current-max", "x": 340, "y": 520, "wires": [ [ "4bf234954a9a3a20" ] ] }, { "id": "4bf234954a9a3a20", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 520, "wires": [ [], [ "ca9a80e4d6d76bc2" ] ] }, { "id": "21f853a57ef9d274", "type": "debug", "z": "183dfbe101ffc961", "name": "Maximaler Strom L", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1030, "y": 540, "wires": [] }, { "id": "ca9a80e4d6d76bc2", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 560, "wires": [ [ "21f853a57ef9d274", "60b6576caf875b1f" ] ] }, { "id": "b8d0c74ea0d092ea", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "voltage-LN", "x": 340, "y": 680, "wires": [ [ "dda9f3d57c930464" ] ] }, { "id": "dda9f3d57c930464", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 680, "wires": [ [], [ "e513c9c66612fd10" ] ] }, { "id": "dcba45eea14ee4ea", "type": "debug", "z": "183dfbe101ffc961", "name": "L-N-Spannung", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1020, "y": 680, "wires": [] }, { "id": "e513c9c66612fd10", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 680, "wires": [ [ "dcba45eea14ee4ea", "2b7776564ffd0081" ] ] }, { "id": "0326ac7810216721", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "frequency", "x": 340, "y": 780, "wires": [ [ "9995251cd83d0aa1" ] ] }, { "id": "9995251cd83d0aa1", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 780, "wires": [ [], [ "dd67cec53ec0beb3" ] ] }, { "id": "602468e3838e7f0e", "type": "debug", "z": "183dfbe101ffc961", "name": "Netzfrequenz", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1010, "y": 800, "wires": [] }, { "id": "dd67cec53ec0beb3", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 820, "wires": [ [ "602468e3838e7f0e", "d6a7db12a469316f" ] ] }, { "id": "026a7a5fb9ddfacb", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "actPower-L", "x": 340, "y": 1020, "wires": [ [ "55b8b02536c662a9" ] ] }, { "id": "55b8b02536c662a9", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 1020, "wires": [ [], [ "c2fd95696f136cf9" ] ] }, { "id": "126039cec88baa1e", "type": "debug", "z": "183dfbe101ffc961", "name": "Wirkleistung L", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1020, "y": 940, "wires": [] }, { "id": "c2fd95696f136cf9", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 960, "wires": [ [ "126039cec88baa1e", "849e857a4f01dd0f" ] ] }, { "id": "2c1d11f3452c726c", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "appPower-L", "x": 340, "y": 1120, "wires": [ [ "124fce660cbb4841" ] ] }, { "id": "124fce660cbb4841", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 1120, "wires": [ [], [ "05d973e599757f43" ] ] }, { "id": "ca99c0883391617e", "type": "debug", "z": "183dfbe101ffc961", "name": "Scheinleistung L", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1020, "y": 1060, "wires": [] }, { "id": "05d973e599757f43", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 1100, "wires": [ [ "ca99c0883391617e", "53fec0081b873707" ] ] }, { "id": "f8e430826e533bad", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "reactPower-L", "x": 340, "y": 1220, "wires": [ [ "259f656a8e9534a1" ] ] }, { "id": "259f656a8e9534a1", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 1220, "wires": [ [], [ "a096c3305b9eda6c" ] ] }, { "id": "9f0f75d81f713c69", "type": "debug", "z": "183dfbe101ffc961", "name": "Blindleistung L", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1020, "y": 1180, "wires": [] }, { "id": "a096c3305b9eda6c", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 1220, "wires": [ [ "9f0f75d81f713c69", "e09f762891d5d5c5" ] ] }, { "id": "91010b58f6007138", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "pFactor-L", "x": 340, "y": 1320, "wires": [ [ "a3a6148eca8032cb" ] ] }, { "id": "a3a6148eca8032cb", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 1320, "wires": [ [], [ "5f34d120adb9f242" ] ] }, { "id": "d4b926a328089743", "type": "debug", "z": "183dfbe101ffc961", "name": "Leistungsfaktor L", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1030, "y": 1300, "wires": [] }, { "id": "5f34d120adb9f242", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 1320, "wires": [ [ "d4b926a328089743", "430f38e50ea67712" ] ] }, { "id": "412d4120960247fa", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "actEnergyImp", "x": 340, "y": 1480, "wires": [ [ "266430af173f7e8d" ] ] }, { "id": "266430af173f7e8d", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 1480, "wires": [ [], [ "dbae79f90cef55cf" ] ] }, { "id": "5fcde377ae223fab", "type": "debug", "z": "183dfbe101ffc961", "name": "Importierte aktive Energie", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1050, "y": 1480, "wires": [] }, { "id": "dbae79f90cef55cf", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 1480, "wires": [ [ "5fcde377ae223fab", "cf1a2e94bef2bd65" ] ] }, { "id": "9324a72eae3e84c3", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "actEnergyExp", "x": 340, "y": 1580, "wires": [ [ "d3a057e7b01c4233" ] ] }, { "id": "d3a057e7b01c4233", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 1580, "wires": [ [], [ "d18f10d5a949d8d2" ] ] }, { "id": "34b0f6bfe4ca1846", "type": "debug", "z": "183dfbe101ffc961", "name": "Exportierte aktive Energie", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1050, "y": 1600, "wires": [] }, { "id": "d18f10d5a949d8d2", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 1620, "wires": [ [ "34b0f6bfe4ca1846", "912a9faceb68483a" ] ] }, { "id": "81648225b72d91b7", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "reactEnergyImp", "x": 340, "y": 1680, "wires": [ [ "bafa278203eb2c92" ] ] }, { "id": "bafa278203eb2c92", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 1680, "wires": [ [], [ "b807b68d2e2b4176" ] ] }, { "id": "46735f9094c683ba", "type": "debug", "z": "183dfbe101ffc961", "name": "Importierte Blindleistung", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1050, "y": 1720, "wires": [] }, { "id": "b807b68d2e2b4176", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 1720, "wires": [ [ "46735f9094c683ba", "34761ac09051db16" ] ] }, { "id": "d01b0fb6fe4f0ad0", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "reactEnergyExp", "x": 340, "y": 1780, "wires": [ [ "5b449731f78d5bfc" ] ] }, { "id": "5b449731f78d5bfc", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 1780, "wires": [ [], [ "2530a7e4719d2e40" ] ] }, { "id": "6406db179cf62ac7", "type": "debug", "z": "183dfbe101ffc961", "name": "Exportierte Blindleistung", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1050, "y": 1840, "wires": [] }, { "id": "2530a7e4719d2e40", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 1840, "wires": [ [ "6406db179cf62ac7", "35f074c9d506e1b1" ] ] }, { "id": "896657ebe0bdd44c", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "alarmsStatus", "x": 340, "y": 1980, "wires": [ [ "63c5edb582b9adf6" ] ] }, { "id": "63c5edb582b9adf6", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 1980, "wires": [ [], [ "af64500e379d0d1b" ] ] }, { "id": "deb9179b43f5075a", "type": "debug", "z": "183dfbe101ffc961", "name": "Alarmstatus", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1010, "y": 1980, "wires": [] }, { "id": "af64500e379d0d1b", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 1980, "wires": [ [ "deb9179b43f5075a", "c86b7265fa0d8364" ] ] }, { "id": "36cf0570bc0e658c", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "mecOperCycles", "x": 340, "y": 2080, "wires": [ [ "63f520a73a630f89" ] ] }, { "id": "63f520a73a630f89", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 2080, "wires": [ [], [ "92579b800575cfb5" ] ] }, { "id": "c7ebc5aeccc9c0cb", "type": "debug", "z": "183dfbe101ffc961", "name": "Mechanische Arbeitszyklen", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1060, "y": 2100, "wires": [] }, { "id": "92579b800575cfb5", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 2100, "wires": [ [ "c7ebc5aeccc9c0cb", "b1b9d959e08fd2fc" ] ] }, { "id": "033e9bd124cad7af", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "tripOpers", "x": 340, "y": 2200, "wires": [ [ "76600a34a67a9146" ] ] }, { "id": "76600a34a67a9146", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 2200, "wires": [ [], [ "8c1047456f7921f5" ] ] }, { "id": "a062e594a3111b61", "type": "debug", "z": "183dfbe101ffc961", "name": "Auslösevorgänge", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1030, "y": 2220, "wires": [] }, { "id": "8c1047456f7921f5", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 790, "y": 2220, "wires": [ [ "a062e594a3111b61", "63fe288cef365bcb" ] ] }, { "id": "2d6670646fee7c41", "type": "measure", "z": "183dfbe101ffc961", "name": "", "unitId": "1", "device": "poc1000", "deviceProtection": "5sl6com", "data": "shortCircTrip", "x": 340, "y": 2340, "wires": [ [ "a0b9ec1044b5c804" ] ] }, { "id": "a0b9ec1044b5c804", "type": "modbus-flex-getter", "z": "183dfbe101ffc961", "name": "", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "server": "4494449f14fb5f83", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": true, "delayOnStart": false, "startDelayTime": "", "x": 570, "y": 2340, "wires": [ [], [ "fd79250e59f9ca6d" ] ] }, { "id": "8afaee61899aa438", "type": "debug", "z": "183dfbe101ffc961", "name": "Kurzschlussauslöser", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1040, "y": 2340, "wires": [] }, { "id": "fd79250e59f9ca6d", "type": "getter", "z": "183dfbe101ffc961", "name": "", "unitId": "", "data": "", "x": 810, "y": 2340, "wires": [ [ "8afaee61899aa438", "a3c83a3c01a9341d" ] ] }, { "id": "8b06388a0f1a2172", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Aktuelle Temperatur 5SL6 COM Unit 1", "measurement": "aktuelle_temperatur_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1370, "y": 220, "wires": [] }, { "id": "a2ee12a9702da904", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 220, "wires": [ [ "8b06388a0f1a2172" ] ] }, { "id": "76b8173c48d57ecd", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Durchschnittstemperatur 5SL6 COM Unit 1", "measurement": "durchschnittstemperatur_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1590, "y": 100, "wires": [] }, { "id": "eaa03382ac6a47d2", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1250, "y": 100, "wires": [ [ "76b8173c48d57ecd" ] ] }, { "id": "adf6cafde8371f33", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Tatsächlicher Strom L 5SL6 COM Unit 1", "measurement": "tatsaechlicher_strom_l_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1380, "y": 360, "wires": [] }, { "id": "7d6d8fdeab87f509", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 360, "wires": [ [ "adf6cafde8371f33" ] ] }, { "id": "7e6023b8d2c37389", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Durchschnittlicher Strom L 5SL6 COM Unit 1", "measurement": "durchschnittlicher_strom_l_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1390, "y": 480, "wires": [] }, { "id": "a7b84bb4b8ccf268", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 480, "wires": [ [ "7e6023b8d2c37389" ] ] }, { "id": "433867ad17b36c42", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Maximaler Strom L 5SL6 COM Unit 1", "measurement": "maximaler-strom_l_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1370, "y": 600, "wires": [] }, { "id": "60b6576caf875b1f", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 600, "wires": [ [ "433867ad17b36c42" ] ] }, { "id": "ca9f802db24f08f4", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "L-N-Spannung 5SL6 COM Unit 1", "measurement": "l_n_spannung_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1360, "y": 740, "wires": [] }, { "id": "2b7776564ffd0081", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 740, "wires": [ [ "ca9f802db24f08f4" ] ] }, { "id": "7bd83607ca1b5ab3", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Netzfrequenz 5SL6 COM Unit 1", "measurement": "netzfrequenz_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1350, "y": 860, "wires": [] }, { "id": "d6a7db12a469316f", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 860, "wires": [ [ "7bd83607ca1b5ab3" ] ] }, { "id": "280a38d9399812d7", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Wirkleistung L 5SL6 COM Unit 1", "measurement": "wirkleistung_l_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1350, "y": 1000, "wires": [] }, { "id": "849e857a4f01dd0f", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 1000, "wires": [ [ "280a38d9399812d7" ] ] }, { "id": "08a6d0411401dcfd", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Scheinleistung L 5SL6 COM Unit 1", "measurement": "scheinleistung_l_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1360, "y": 1120, "wires": [] }, { "id": "53fec0081b873707", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 1120, "wires": [ [ "08a6d0411401dcfd" ] ] }, { "id": "7056d7c08e28ea99", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Blindleistung L 5SL6 COM Unit 1", "measurement": "blindleistung_l_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1360, "y": 1240, "wires": [] }, { "id": "e09f762891d5d5c5", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 1240, "wires": [ [ "7056d7c08e28ea99" ] ] }, { "id": "658ec18b1afa23df", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Leistungsfaktor L 5SL6 COM Unit 1", "measurement": "leistungsfaktor_l_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1360, "y": 1360, "wires": [] }, { "id": "430f38e50ea67712", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 1360, "wires": [ [ "658ec18b1afa23df" ] ] }, { "id": "7dc9bc0891dd5667", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Importierte aktive Energie 5SL6 COM Unit 1", "measurement": "importierte_aktive_energie_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1390, "y": 1540, "wires": [] }, { "id": "cf1a2e94bef2bd65", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 1540, "wires": [ [ "7dc9bc0891dd5667" ] ] }, { "id": "aceca48c6c83f6c7", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Exportierte aktive Energie 5SL6 COM Unit 1", "measurement": "exportierte_aktive_energie_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1390, "y": 1660, "wires": [] }, { "id": "912a9faceb68483a", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 1660, "wires": [ [ "aceca48c6c83f6c7" ] ] }, { "id": "07775f20306710f7", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Importierte Blindleistung 5SL6 COM Unit 1", "measurement": "importierte_blindleistung_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1390, "y": 1780, "wires": [] }, { "id": "34761ac09051db16", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 1780, "wires": [ [ "07775f20306710f7" ] ] }, { "id": "6af0793105060fe9", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Exportierte Blindleistung 5SL6 COM Unit 1", "measurement": "exportierte_blindleistung_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1390, "y": 1900, "wires": [] }, { "id": "35f074c9d506e1b1", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 1900, "wires": [ [ "6af0793105060fe9" ] ] }, { "id": "6fdd24ad042e973d", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Alarmstatus 5SL6 COM Unit 1", "measurement": "alarmstatus_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1350, "y": 2040, "wires": [] }, { "id": "c86b7265fa0d8364", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 2040, "wires": [ [ "6fdd24ad042e973d" ] ] }, { "id": "ef06f7b929998109", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Mechanische Arbeitszyklen 5SL6 COM Unit 1", "measurement": "mechanische_arbeitszyklen_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1390, "y": 2160, "wires": [] }, { "id": "b1b9d959e08fd2fc", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 2160, "wires": [ [ "ef06f7b929998109" ] ] }, { "id": "4d2ac4119fc7848d", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Auslösevorgänge 5SL6 COM Unit 1", "measurement": "ausloesevorgaenge_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1360, "y": 2280, "wires": [] }, { "id": "63fe288cef365bcb", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 2280, "wires": [ [ "4d2ac4119fc7848d" ] ] }, { "id": "5f5567853204ce55", "type": "influxdb out", "z": "183dfbe101ffc961", "influxdb": "17cdc5c1c4ee9b4d", "name": "Kurzschlussauslöser 5SL6 COM Unit 1", "measurement": "kurzschlussausloeser_unit_1_5sl6com", "precision": "", "retentionPolicy": "", "database": "database", "precisionV18FluxV20": "ms", "retentionPolicyV18Flux": "", "org": "smart-iot", "bucket": "sentron-iot", "x": 1370, "y": 2400, "wires": [] }, { "id": "a3c83a3c01a9341d", "type": "function", "z": "183dfbe101ffc961", "name": "Von String in Float", "func": "return [\n { payload: parseFloat(msg.payload)},\n\n];\n", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1030, "y": 2400, "wires": [ [ "5f5567853204ce55" ] ] }, { "id": "a3c868a94848cbba", "type": "function", "z": "183dfbe101ffc961", "name": "Abfrage Wert", "func": "\nif (msg.payload == \"NaN\") {\n msg.payload = 0;\n} \nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1010, "y": 100, "wires": [ [ "050a46b3b78eb832", "eaa03382ac6a47d2" ] ] }, { "id": "050a46b3b78eb832", "type": "debug", "z": "183dfbe101ffc961", "name": "Durchschnittstemperatur vorhanden", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1420, "y": 160, "wires": [] }, { "id": "4494449f14fb5f83", "type": "modbus-client", "name": "", "clienttype": "tcp", "bufferCommands": true, "stateLogEnabled": false, "queueLogEnabled": false, "failureLogEnabled": false, "tcpHost": "192.168.1.150", "tcpPort": "502", "tcpType": "DEFAULT", "serialPort": "/dev/ttyUSB", "serialType": "RTU-BUFFERD", "serialBaudrate": "9600", "serialDatabits": "8", "serialStopbits": "1", "serialParity": "none", "serialConnectionDelay": "100", "serialAsciiResponseStartDelimiter": "", "unit_id": 1, "commandDelay": 1, "clientTimeout": 5000, "reconnectOnTimeout": true, "reconnectTimeout": 7000, "parallelUnitIdsAllowed": true, "showErrors": false, "showWarnings": true, "showLogs": true }, { "id": "17cdc5c1c4ee9b4d", "type": "influxdb", "hostname": "192.168.1.110", "port": "8086", "protocol": "http", "database": "database", "name": "Smart-IoT", "usetls": false, "tls": "", "influxdbVersion": "2.0", "url": "http://192.168.1.110:8086", "timeout": "10", "rejectUnauthorized": true } ] </summary>
After execution, these objects are stored in the flow.
When this flow is executed, the two pieces of information L-N voltage
and mains frequency
are displayed in the Debug tab.
The database(Influx)
and data virtualization program(Grafana)
can be located centrally in a data center. The Netmodule router can transfer data to the server via a mobile connection and additionally via an IPsec or OpenVPN tunnel. The router is the gateway between local data and the network level.
The auxiliary tool “wget” is required to install InfluxDB. In the second step, the KEYS for package management can be added to the system. Once this has been done, InfluxDB can be installed.
To add the KEYS, these three program lines must be executed. In the last step, the software database update and influxdb2 are installed.
wget -q https://repos.influxdata.com/influxdata-archive_compat.key echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list sudo apt-get update && sudo apt-get install influxdb2
If you want the database to start as a background service when the system starts up, please execute this command.
sudo service influxdb start
The whole thing can be checked using this command to see whether InfluxDB is running correctly on the Raspberry Pi.
Loaded: loaded (/lib/systemd/system/influxdb.service; enabled; preset: enabled) Active: active (running) since Wed 2025-07-09 17:21:36 CEST; 1 day 22h ago Docs: https://docs.influxdata.com/influxdb/ Main PID: 1310 (influxd) Tasks: 19 (limit: 9564) CPU: 1min 2.918s CGroup: /system.slice/influxdb.service ├─1310 /usr/bin/influxd ├─1353 /usr/bin/dbus-daemon --syslog --fork --print-pid 4 --print-address 6 --session ├─1354 /usr/bin/dbus-daemon --syslog --fork --print-pid 4 --print-address 6 --session ├─1387 /usr/bin/dbus-daemon --syslog --fork --print-pid 4 --print-address 6 --session └─1412 /usr/bin/dbus-daemon --syslog --fork --print-pid 4 --print-address 6 --session
The influxdb can be further configured via a web browser. To access the interface, you need the IP address of the Raspberry Pi and the port number 8086.
Example: 192.168.1.110:8086
When you log in for the first time, you will be asked to choose a username and password.
For the first point, select the “BUCKETS”
option in the menu and create a new one with “+ CREATE BUCKET”
.
To access the database, you must first set up an API token. You can use the custom token to restrict access to individual buckets. A separate token can be created for each program that can access the database.
The token in this project is required for Node-Red to access the database.
Once the connection between Node-RED and InfluxDB is established, the data is stored in a structured format in the database and can be viewed using the Influx Data Explorer.
As with the database, KEYS must be added for the installation of Grafana. After this step, the program can be installed again.
sudo mkdir -p /etc/apt/keyrings/ wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list sudo apt-get update sudo apt-get install -y grafana
To ensure that Grafana starts as a background service when the system boots, you must enable the Grafana Systemctl service.
sudo /bin/systemctl enable grafana-server
With the second command, you start the Grafana server.
sudo /bin/systemctl start grafana-server
Grafana is then further configured via a web browser. To access the interface, you need the IP address of the Raspberry Pi and port number 3000.
Example: 192.168.1.110:3000
When logging in for the first time, the user name is “admin” and the password is “admin”. After logging in, you must change the password first.
First, the data source from which the data(InfluxDB)
originates is integrated into Grafana.
The URL address is important for accessing the InfluxDB.
Under the “InfluxDB Details”
option, you must specify an organization for Grafana for access and the “bucket”
that was previously set up in InfluxDB. In InfluxDB 2.0, access is always via a token and no longer with a user name and password. For Grafana, you can either create your own under the database or use the token you have already created here.
Once all settings have been made, you can test access to the database from Grafana to check that the settings are correct.
Next, you can set up dashboards in Grafana and visualize the data from the database for further processing within the company.
Further documentation on the data transceiver and the sensor.