How to Parse JSON Format PZEM 004T Tasmota MQTT String?

Hi,

I am trying to integrate PZEM 004T Reading from Tasmota Firmware (NodeMCU) into my Openhab2. I am getting error

2018-05-31 23:10:07.470 [ERROR] [.mqtt.internal.MqttMessageSubscriber] - Error processing MQTT message.

org.openhab.core.transform.TransformationException: Invalid path '$.Voltage' in '{"Time":"2018-05-31T18:40:07","ENERGY":{"Total":0.027,"Yesterday":0.000,"Today":0.027,"Period":0,"Power":0,"Factor":0.00,"Voltage":265,"Current":0.000}}

My Item File Contains

Number PZ_Voltage "Voltage [%.1f]" <energy> (MasterBedRoom){mqtt="<[broker:tele/sonoff/SENSOR:state:JSONPATH($.Voltage)]"}

I want to Extract Voltage,Current,Power etc from the below JSON String, Please Help

18:43:47 MQT: tele/sonoff/SENSOR = {"Time":"2018-05-31T18:43:47","ENERGY":{"Total":0.027,"Yesterday":0.000,"Today":0.027,"Period":0,"Power":0,"Factor":0.00,"Voltage":266,"Current":0.000}}

I’m pretty sure you need to provide the full path.

$.Energy.Voltage

Voltage: “$.ENERGY.Voltage”
Current: “$.ENERGY.Current”
Power: “$.ENERGY.power”

Have a look at jsonpath.com

Good luck

Don’t know if you solved it but here are my items.

Number Electricity_POW_T "Energy kWh" (FirstFloor, Energy) {mqtt="<[mosquitto:tele/sonoff-pzem/SENSOR:state:JSONPATH($.ENERGY.Total)],<[mosquitto:stat/sonoff-pzem//STATUS8:state:JSONPATH($.StatusPWR.Total)]"}
Number Electricity_POW_YDay "Energy Yesterday" (FirstFloor, Energy) {mqtt="<[mosquitto:tele/sonoff-pzem/SENSOR:state:JSONPATH($.ENERGY.Yesterday)],<[mosquitto:stat/sonoff-pzem//STATUS8:state:JSONPATH($.StatusPWR.Yesterday)]"}
Number Electricity_POW_Day "Energy Today" (FirstFloor, Energy) {mqtt="<[mosquitto:tele/sonoff-pzem/SENSOR:state:JSONPATH($.ENERGY.Today)],<[mosquitto:stat/sonoff-pzem//STATUS8:state:JSONPATH($.StatusPWR.Today)]"}
Number Electricity_POW_P "Energy Power" (FirstFloor, Energy) {mqtt="<[mosquitto:tele/sonoff-pzem/SENSOR:state:JSONPATH($.ENERGY.Power)],<[mosquitto:stat/sonoff-pzem//STATUS8:state:JSONPATH($.StatusPWR.Power)]"}
Number Electricity_POW_A "Energy Current" (FirstFloor, Energy) {mqtt="<[mosquitto:tele/sonoff-pzem/SENSOR:state:JSONPATH($.ENERGY.Current)],<[mosquitto:stat/sonoff-pzem//STATUS8:state:JSONPATH($.StatusPWR.Current)]"}
Number Electricity_POW_V "Energy Voltage" (FirstFloor, Energy) {mqtt="<[mosquitto:tele/sonoff-pzem/SENSOR:state:JSONPATH($.ENERGY.Voltage)],<[mosquitto:stat/sonoff-pzem//STATUS8:state:JSONPATH($.StatusPWR.Voltage)]"}
1 Like