Mijn vraag
Ik heb een DSMR logger aan mijn smart meter hangen die elke 10 seconde mijn data uit kan lezen. Nu wil ik deze data graag naar een docker genaamd 'DSMR reader' sturen. Echter is deze data niet 100% identiek, en wil ik NodeRed gebruiken om de data te converten en de versturen.
Mijn idee is om een functie te schrijven die dit aanpast. Helaas krijg ik een "SyntaxError: Unexpected token o in JSON at position 1" melding terug vanuit NodeRed. Ik zie niet echt meer wat ik fout doe
, hopelijk ziet iemand anders hem wel?
De code in de functie ziet er als volgt uit.
Het bericht dat binnenkomt ziet er als volgt uit:
Relevante software en hardware die ik gebruik
DSMR logger https://mrwheel.github.io/DSMRloggerWS/hardware_V3/
DSMR Reader https://github.com/xirixiz/dsmr-reader-docker
NodeRed (docker) als 'converter'
Wat ik al gevonden of geprobeerd heb
Validators welke aangeven dat het correct is.
w3schools.com, deze kan het het als javascript runnen en omzetten.
Ik heb een DSMR logger aan mijn smart meter hangen die elke 10 seconde mijn data uit kan lezen. Nu wil ik deze data graag naar een docker genaamd 'DSMR reader' sturen. Echter is deze data niet 100% identiek, en wil ik NodeRed gebruiken om de data te converten en de versturen.
Mijn idee is om een functie te schrijven die dit aanpast. Helaas krijg ik een "SyntaxError: Unexpected token o in JSON at position 1" melding terug vanuit NodeRed. Ik zie niet echt meer wat ik fout doe

De code in de functie ziet er als volgt uit.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| inputobj = JSON.parse(msg.payload); outputobj = JSON.parse({"timestamp":"2019-08-24T14:15:22Z","electricity_delivered_1":"string","electricity_returned_1":"string","electricity_delivered_2":"string","electricity_returned_2":"string","electricity_currently_delivered":"string","electricity_currently_returned":"string","phase_currently_delivered_l1":"string","phase_currently_delivered_l2":"string","phase_currently_delivered_l3":"string","extra_device_timestamp":"2019-08-24T14:15:22Z","extra_device_delivered":"string","phase_currently_returned_l1":"string","phase_currently_returned_l2":"string","phase_currently_returned_l3":"string","phase_voltage_l1":"string","phase_voltage_l2":"string","phase_voltage_l3":"string","phase_power_current_l1":0,"phase_power_current_l2":0,"phase_power_current_l3":0}); outputobj.timestamp = "20" + inputobj.Timestamp[0] + inputobj.Timestamp[1] + "-" + inputobj.Timestamp[2] + inputobj.Timestamp[3] + "-" + inputobj.Timestamp[4] + inputobj.Timestamp[5] + "T" + inputobj.Timestamp[6] + inputobj.Timestamp[7] + ":" + inputobj.Timestamp[8] + inputobj.Timestamp[9] + ":" + inputobj.Timestamp[10] + inputobj.Timestamp[11] +"Z"; outputobj.electricity_delivered_1 = inputobj.Energy_Delivered_Tariff1; outputobj.electricity_returned_1 = inputobj.Energy_Returned_Tariff1; outputobj.electricity_delivered_2 = inputobj.Energy_Delivered_Tariff2; outputobj.electricity_returned_2 = inputobj.Energy_Returned_Tariff2; outputobj.electricity_currently_delivered = inputobj.Energy_Delivered; outputobj.electricity_currently_returned = inputobj.Energy_Returned; outputobj.phase_currently_delivered_l1 = inputobj.Power_Delivered_l1; outputobj.phase_currently_delivered_l2 = inputobj.Power_Delivered_l2; outputobj.phase_currently_delivered_l3 = inputobj.Power_Delivered_l3; outputobj.phase_currently_returned_l1 = inputobj.Power_Delivered_l1; outputobj.phase_currently_returned_l2 = inputobj.Power_Delivered_l2; outputobj.phase_currently_returned_l3 = inputobj.Power_Delivered_l3; outputobj.phase_voltage_l1 = inputobj.Voltage_l1; outputobj.phase_voltage_l2 = inputobj.Voltage_l2; outputobj.phase_voltage_l3 = inputobj.Voltage_l3; outputobj.phase_power_current_l1 = inputobj.Current_l1; outputobj.phase_power_current_l2 = inputobj.Current_l2; outputobj.phase_power_current_l3 = inputobj.Current_l3; outputobj.extra_device_timestamp = outputobj.timestamp; outputobj.extra_device_delivered = inputobj.Gas_Delivered; msg = outputobj; |
Het bericht dat binnenkomt ziet er als volgt uit:
code:
1
| {"Timestamp":"201018121201S","Energy_Delivered":"2186.424","Energy_Returned":"0.000","Gas_Delivered":"534.61","Energy_Delivered_Tariff1":"909.531","Energy_Delivered_Tariff2":"1276.893","Energy_Returned_Tariff1":"0.000","Energy_Returned_Tariff2":"0.000","Power_Delivered":"0.300","Power_Returned":"0.000","Voltage_l1":"228.8","Current_l1":"1","Voltage_l2":"0.0","Current_l2":"0","Voltage_l3":"0.0","Current_l3":"0","Power_Delivered_l1":"293","Power_Returned_l1":"0","Power_Delivered_l2":"0","Power_Returned_l2":"0","Power_Delivered_l3":"0","Power_Returned_l3":"0"} |
Relevante software en hardware die ik gebruik
DSMR logger https://mrwheel.github.io/DSMRloggerWS/hardware_V3/
DSMR Reader https://github.com/xirixiz/dsmr-reader-docker
NodeRed (docker) als 'converter'
Wat ik al gevonden of geprobeerd heb
Validators welke aangeven dat het correct is.
w3schools.com, deze kan het het als javascript runnen en omzetten.
Learn from yesterday, Live for today, Hope for tomorrow