Warnings regarding JSON transformation

  • Platform information:
    • Hardware: x86
    • OS: Proxmox with Openhabian Linux
    • Java Runtime Environment: the One in Openhabian :slight_smile:
    • openHAB version: 4.1.2
  • Issue of the topic:

In the log I receive the following warnings:

2024-10-04 08:54:57.141 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.powerdc4', serviceName='JSONPATH'} failed: Invalid path '$.result.powerdc4' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.141 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.powerdc2', serviceName='JSONPATH'} failed: Invalid path '$.result.powerdc2' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.141 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.sn', serviceName='JSONPATH'} failed: Invalid path '$.result.sn' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.141 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.powerdc1', serviceName='JSONPATH'} failed: Invalid path '$.result.powerdc1' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.141 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.feedinenergy', serviceName='JSONPATH'} failed: Invalid path '$.result.feedinenergy' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.141 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.inverterStatus', serviceName='JSONPATH'} failed: Invalid path '$.result.inverterStatus' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.141 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.yieldtoday', serviceName='JSONPATH'} failed: Invalid path '$.result.yieldtoday' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.141 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.inverterType', serviceName='JSONPATH'} failed: Invalid path '$.result.inverterType' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.141 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.uploadTime', serviceName='JSONPATH'} failed: Invalid path '$.result.uploadTime' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.141 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.feedinpower', serviceName='JSONPATH'} failed: Invalid path '$.result.feedinpower' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.141 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.acpower', serviceName='JSONPATH'} failed: Invalid path '$.result.acpower' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.141 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.peps2', serviceName='JSONPATH'} failed: Invalid path '$.result.peps2' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.141 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.powerdc3', serviceName='JSONPATH'} failed: Invalid path '$.result.powerdc3' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.141 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.soc', serviceName='JSONPATH'} failed: Invalid path '$.result.soc' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.141 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.yieldtotal', serviceName='JSONPATH'} failed: Invalid path '$.result.yieldtotal' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.141 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.feedinpowerM2', serviceName='JSONPATH'} failed: Invalid path '$.result.feedinpowerM2' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.142 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.batPower', serviceName='JSONPATH'} failed: Invalid path '$.result.batPower' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.142 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.consumeenergy', serviceName='JSONPATH'} failed: Invalid path '$.result.consumeenergy' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.142 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.peps1', serviceName='JSONPATH'} failed: Invalid path '$.result.peps1' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.142 [WARN ] [.transform.SingleValueTransformation] - Executing transformation ChannelStateTransformation{pattern='$.result.peps3', serviceName='JSONPATH'} failed: Invalid path '$.result.peps3' in '{"exception":"There have been several violations in a row, and the system will prohibit calls within the next hour","code":1,"tokenId":"20240516190825463358954","success":false}'
2024-10-04 08:54:57.223 [WARN ] [ofiles.JSonPathTransformationProfile] - Could not transform state '-8 kWh' with function '$.Haus.Power_curr' and format '%s'

The code for the last warning is:

UID: mqtt:topic:8ab148a10c:ba2c88ef65
label: AAAA_Stromzähler
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:8ab148a10c
channels:
  - id: tele_Stromzaehler_total
    channelTypeUID: mqtt:number
    label: tele_Stromzaehler_total
    description: ""
    configuration:
      formatBeforePublish: "%d"
      stateTopic: tele/Stromzaehler/SENSOR
      transformationPattern: jsonpath:$.Haus.Total_in
  - id: tele_Stromzaehler_out_total
    channelTypeUID: mqtt:number
    label: tele_Stromzaehler_out_total
    description: ""
    configuration:
      formatBeforePublish: "%d"
      stateTopic: tele/Stromzaehler/SENSOR
      transformationPattern: jsonpath:$.Haus.Total_out
  - id: tele_Stromzaehler_SENSOR
    channelTypeUID: mqtt:number
    label: tele_Stromzaehler_SENSOR
    description: ""
    configuration:
      unit: kWh
      formatBeforePublish: "%d"
      stateTopic: tele/Stromzaehler/SENSOR
      transformationPattern: JSONPATH:$.Haus.Power_curr

And for the first warnings here are the things and the items file:
things:

Thing http:url:solax "Solax inverter" [
	// baseURL="https://www.eu.solaxcloud.com:9443/proxy/api/getRealtimeInfo.do?tokenId=YOUR_TOKEN_ID&sn=YOUR_SERIAL_NUMBER",	
	baseURL="https://eu.solaxcloud.com/proxyApp/proxy/api/getRealtimeInfo.do?tokenId=........&sn=......",
	refresh=10] {

		Channels:
			Type string : sn "Serial Number" [stateTransformation="JSONPATH:$.result.sn"]
			Type number : acpower "AC Power" [stateTransformation="JSONPATH:$.result.acpower"]
			// Type number : powerdc1 "DC Power" [ stateTransformation="JSONPATH:$.result.powerdc1" ]
			Type number : yieldtoday "Yield Today" [ stateTransformation="JSONPATH:$.result.yieldtoday" ]
			Type number : yieldtotal "Yield Total" [ stateTransformation="JSONPATH:$.result.yieldtotal" ]
			Type number : feedinpower "Feed In Power" [ stateTransformation="JSONPATH:$.result.feedinpower" ]
			Type number : feedinenergy "Feed In Energy" [ stateTransformation="JSONPATH:$.result.feedinenergy" ]
			Type number : consumeenergy "Feed In Energy" [ stateTransformation="JSONPATH:$.result.consumeenergy" ]
			
			
			
			Type number : feedinpowerm2 "Inverter.Meter2.AC.power.total" [ stateTransformation="JSONPATH:$.result.feedinpowerM2" ]
			Type number : soc "Battery Charge" [ stateTransformation="JSONPATH:$.result.soc" ]
			Type number : peps1 "Inverter.AC.EPS.power.R" [ stateTransformation="JSONPATH:$.result.peps1" ]
			Type number : peps2 "Inverter.AC.EPS.power.S" [ stateTransformation="JSONPATH:$.result.peps2" ]
			Type number : peps3 "Inverter.AC.EPS.power.T" [ stateTransformation="JSONPATH:$.result.peps3" ]

			Type number : inverterType "Iverter Type" [ stateTransformation="JSONPATH:$.result.inverterType" ]
			Type number : inverterStatus "Iverter Status" [ stateTransformation="JSONPATH:$.result.inverterStatus" ]
			Type string : uploadTime "Last data" [ stateTransformation="JSONPATH:$.result.uploadTime" ]
			Type number : batPower "Battery power" [ stateTransformation="JSONPATH:$.result.batPower" ]
			Type number : powerdc1 "Inverter.DC.PV.power.MPPT1" [ stateTransformation="JSONPATH:$.result.powerdc1" ]
			Type number : powerdc2 "Inverter.DC.PV.power.MPPT2" [ stateTransformation="JSONPATH:$.result.powerdc2" ]
			Type number : powerdc3 "Inverter.DC.PV.power.MPPT3" [ stateTransformation="JSONPATH:$.result.powerdc3" ]
			Type number : powerdc4 "Inverter.DC.PV.power.MPPT4" [ stateTransformation="JSONPATH:$.result.powerdc4" ]
}

Group gsolax_inverter "Solax Cloud" 
String solax_sn "Seriennummer [%s]" (gsolax_inverter) { channel="http:url:solax:sn" }

// Number sol+ax_powerdc1 "Herstellung von Platten [%.0f W]" (gsolax_inverter){ channel="http:url:solax:powerdc1" }
Number:Power solax_batPower "Entnahme aus der Batterie [%.0f W]" (gsolax_inverter) {unit="W", channel="http:url:solax:batPower" }
Number:Power solax_feedinpower "Entnahme aus dem Netz [%.0f W]" (gsolax_inverter) {unit="W", channel="http:url:solax:feedinpower" }
Number:Energy solax_consumeenergy "Hausverbrauch [%.0f kWh]" (gsolax_inverter) {unit="kWh", channel="http:url:solax:consumeenergy" }
Number:Dimensionless solax_soc "Akku-Ladung [%.0f %%]" (gsolax_inverter) {unit="%", channel="http:url:solax:soc" }

Number:Energy solax_yieldtoday "Tägliche Produktion [%.0f kWh]" (gsolax_inverter){unit="kWh", channel="http:url:solax:yieldtoday" }
Number:Energy solax_yieldtotal "Gesamtproduktion [%.0f kWh]" (gsolax_inverter) {unit="kWh", channel="http:url:solax:yieldtotal" }
Number:Power solax_acpower "Energie im Konverter [%.0f W]" (gsolax_inverter){unit="W", channel="http:url:solax:acpower" }
Number:Energy solax_feedinenergy "Einspeisestrom [%.0f kWh]" (gsolax_inverter) {unit="kWh", channel="http:url:solax:feedinenergy" }

String solax_uploadTime "Aktuelle Termine [%s]" (gsolax_inverter) { channel="http:url:solax:uploadTime" }
Number:Dimensionless solax_inverterType "Inverter Typ [MAP(Solax.map):%s]" (gsolax_inverter) { channel="http:url:solax:inverterType"}
Number:Dimensionless solax_inverterStatus "Inverter Status [MAP(Solax.map):%s]" (gsolax_inverter) { channel="http:url:solax:inverterStatus" }



Number:Power solax_feedinpowerm2 "Inverter.Meter2.AC.power.total [%.0f W]"  (gsolax_inverter) {unit="W", channel="http:url:solax:feedinpowerM2" }
Number:Power solax_peps1 "Inverter.AC.EPS.power.R [%.0f W]"  (gsolax_inverter) {unit="W", channel="http:url:solax:peps1" }
Number:Power solax_peps2 "Inverter.AC.EPS.power.S [%.0f W]"  (gsolax_inverter) {unit="W", channel="http:url:solax:peps2" }
Number:Power solax_peps3 "Inverter.AC.EPS.power.T [%.0f W]"  (gsolax_inverter) {unit="W", channel="http:url:solax:peps3" }

Number:Power solax_powerdc1 "Inverter.DC.PV.power.MPPT1 [%.0f W]"  (gsolax_inverter) {unit="W", channel="http:url:solax:powerdc1" }
Number:Power solax_powerdc2 "Inverter.DC.PV.power.MPPT2 [%.0f W]"  (gsolax_inverter) {unit="W", channel="http:url:solax:powerdc2" }
// Number solax_powerdc3 "Inverter.DC.PV.power.MPPT3 [%.0f W]"  (gsolax_inverter) { channel="http:url:solax:powerdc3" }
// Number solax_powerdc4 "Inverter.DC.PV.power.MPPT4 [%.0f W]"  (gsolax_inverter) { channel="http:url:solax:powerdc4" }

Does anybody could help me with an hint how to remove these warnings.

Many thanks in advanced,
Andreas

Let’s look at the first one. It’s complaining that the path $.result.powerdc4 doesn’t exist in the JSON. And it conveniently shows you the JSON where indeed there is no result.powerdc4 property. The JSON says you’ve had to many violations in a row and it’s going to continue to refuse too give you the result for one hour.

So you need to figure out what the violation is, prevent it from happening again, and wait an hour.

Figuring out what the violation is and how to prevent it is probably going to come from looking at the logs and manual for the device.

1 Like

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.