NEWS
Output in verschiedene Datenpunkte
-
Hallo zusammen,
ich habe ein Python Script, welches ich per exec aufrufe. Allerdings möchte ich gerne das der Outpunkt nicht in einem Datenpunkt gespeichert wird, sondern in verschiedene.
Output vom Script:
2904.02 93% -2123.66Jetzt möchte ich gerne das 2904.02 in Datenpunkt1, 93% in Datenpunkt2 und -2123.66 in Datenpunkt3 gespeichert wird.
Der Output ist variabel.
Bisher mache ich das so, allerdings wird es alles in einem Datenpunkt gespeichert:
exec('/home/pi/scripts/pla.py', function (error, stdout, stderr) { setState('Datenpunkte.0.PV-Anlage.DATENPUNKT',stdout); });Jemand eine Idee wie man das umsetzt?
-
Hallo zusammen,
ich habe ein Python Script, welches ich per exec aufrufe. Allerdings möchte ich gerne das der Outpunkt nicht in einem Datenpunkt gespeichert wird, sondern in verschiedene.
Output vom Script:
2904.02 93% -2123.66Jetzt möchte ich gerne das 2904.02 in Datenpunkt1, 93% in Datenpunkt2 und -2123.66 in Datenpunkt3 gespeichert wird.
Der Output ist variabel.
Bisher mache ich das so, allerdings wird es alles in einem Datenpunkt gespeichert:
exec('/home/pi/scripts/pla.py', function (error, stdout, stderr) { setState('Datenpunkte.0.PV-Anlage.DATENPUNKT',stdout); });Jemand eine Idee wie man das umsetzt?
@JB1985 sagte:
wird es alles in einem Datenpunkt gespeichert:
Wenn Zeilenschaltungen zwischen den einzelnen Werten sind:
exec('/home/pi/scripts/pla.py', function (error, stdout, stderr) { let arr = stdout.split('\n'); setState('Datenpunkte.0.PV-Anlage.DP1', arr[0], true); setState('Datenpunkte.0.PV-Anlage.DP2', arr[1], true); setState('Datenpunkte.0.PV-Anlage.DP3', arr[2], true); }); -
@paul53 sagte in Output in verschiedene Datenpunkte:
exec('/home/pi/scripts/pla.py', function (error, stdout, stderr) { let arr = stdout.split('\n'); setState('Datenpunkte.0.PV-Anlage.DP1', arr[0], true); setState('Datenpunkte.0.PV-Anlage.DP2', arr[1], true); setState('Datenpunkte.0.PV-Anlage.DP3', arr[2], true); });Hallo @paul53
Danke für deine Hilfe.
Ich erhalte folgende Fehlermeldung:
13:34:09.175 error javascript.0 (9529) script.js.PV_Anlage.Skript_1: TypeError: Cannot read property 'split' of undefined 13:34:09.176 error javascript.0 (9529) at script.js.PV_Anlage.Skript_1:3:21 -
@paul53 sagte in Output in verschiedene Datenpunkte:
exec('/home/pi/scripts/pla.py', function (error, stdout, stderr) { let arr = stdout.split('\n'); setState('Datenpunkte.0.PV-Anlage.DP1', arr[0], true); setState('Datenpunkte.0.PV-Anlage.DP2', arr[1], true); setState('Datenpunkte.0.PV-Anlage.DP3', arr[2], true); });Hallo @paul53
Danke für deine Hilfe.
Ich erhalte folgende Fehlermeldung:
13:34:09.175 error javascript.0 (9529) script.js.PV_Anlage.Skript_1: TypeError: Cannot read property 'split' of undefined 13:34:09.176 error javascript.0 (9529) at script.js.PV_Anlage.Skript_1:3:21@JB1985 sagte:
Cannot read property 'split' of undefined
Dann hat stdout keinen Inhalt. Vielleicht mit Check von error abfangen.
exec('/home/pi/scripts/pla.py', function (error, stdout, stderr) { if(error) log('Fehler Python: ' + stderr, 'warn'); else if(stdout) { let arr = stdout.split('\n'); setState('Datenpunkte.0.PV-Anlage.DP1', arr[0], true); setState('Datenpunkte.0.PV-Anlage.DP2', arr[1], true); setState('Datenpunkte.0.PV-Anlage.DP3', arr[2], true); } }); -
Hey! Danke, es funktioniert jetzt.
Weißt du zufällig noch wie ich diese WARN Meldung aus dem Log bekomme?
javascript.0 2020-06-19 13:43:53.349 warn (9529) at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5) javascript.0 2020-06-19 13:43:53.349 warn (9529) at maybeClose (internal/child_process.js:1021:16) javascript.0 2020-06-19 13:43:53.349 warn (9529) at ChildProcess.emit (events.js:315:20) javascript.0 2020-06-19 13:43:53.349 warn (9529) at ChildProcess.exithandler (child_process.js:294:7) javascript.0 2020-06-19 13:43:53.349 warn (9529) at script.js.PV_Anlage.Skript_1:8:4 javascript.0 2020-06-19 13:43:53.348 warn (9529) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1355:20) javascript.0 2020-06-19 13:43:53.347 warn (9529) You are assigning a string to the state "Datenpunkte.0.PV-Anlage.PV_Batterie_Ladung" which expects a boolean. Please fix your code to use a boolean or change the state type to string. This war -
Hey! Danke, es funktioniert jetzt.
Weißt du zufällig noch wie ich diese WARN Meldung aus dem Log bekomme?
javascript.0 2020-06-19 13:43:53.349 warn (9529) at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5) javascript.0 2020-06-19 13:43:53.349 warn (9529) at maybeClose (internal/child_process.js:1021:16) javascript.0 2020-06-19 13:43:53.349 warn (9529) at ChildProcess.emit (events.js:315:20) javascript.0 2020-06-19 13:43:53.349 warn (9529) at ChildProcess.exithandler (child_process.js:294:7) javascript.0 2020-06-19 13:43:53.349 warn (9529) at script.js.PV_Anlage.Skript_1:8:4 javascript.0 2020-06-19 13:43:53.348 warn (9529) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1355:20) javascript.0 2020-06-19 13:43:53.347 warn (9529) You are assigning a string to the state "Datenpunkte.0.PV-Anlage.PV_Batterie_Ladung" which expects a boolean. Please fix your code to use a boolean or change the state type to string. This war
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden