Was besser ist, muss nicht zwingend einfacher sein. Sofern das Format konstant eintrifft, kannst du dir die Treffer auch mit z.B. grep fehlerfrei einholen. Das Spielchen ist gleich zum Parsen von html, xml, etc.:
Code: Alles auswählen
$ echo '{"inverters":[{"serial":"116174407593","name":"jw","data_age":5,"reachable":true,"producing":true,"limit_relative":100,"limit_absolute":1500,"0":{"Power":{"v":129.1000061,"u":"W","d":1},"Voltage":{"v":236,"u":"V","d":1},"Current":{"v":0.550000012,"u":"A","d":2},"Power DC":{"v":135.7999878,"u":"W","d":2},"YieldDay":{"v":2138,"u":"Wh","d":2},"YieldTotal":{"v":936.8040161,"u":"kWh","d":2},"Frequency":{"v":50,"u":"Hz","d":2},"Temperature":{"v":25,"u":"°C","d":1},"PowerFactor":{"v":0.986000001,"u":"","d":3},"ReactivePower":{"v":21.70000076,"u":"var","d":1},"Efficiency":{"v":95.06628418,"u":"%","d":2}},"1":{"name":{"u":"1"},"Power":{"v":33.5,"u":"W","d":1},"Voltage":{"v":33.09999847,"u":"V","d":1},"Current":{"v":1.00999999,"u":"A","d":2},"YieldDay":{"v":529,"u":"Wh","d":0},"YieldTotal":{"v":228.5059967,"u":"kWh","d":3},"Irradiation":{"v":8.481013298,"u":"%","d":2}},"2":{"name":{"u":"2"},"Power":{"v":34.20000076,"u":"W","d":1},"Voltage":{"v":33.09999847,"u":"V","d":2},"Current":{"v":1.029999971,"u":"A","d":2},"YieldDay":{"v":537,"u":"Wh","d":0},"YieldTotal":{"v":237.4049988,"u":"kWh","d":3},"Irradiation":{"v":8.658227921,"u":"%","d":2}},"3":{"name":{"u":"3"},"Power":{"v":34,"u":"W","d":1},"Voltage":{"v":33.09999847,"u":"V","d":1},"Current":{"v":1.029999971,"u":"A","d":2},"YieldDay":{"v":535,"u":"Wh","d":0},"YieldTotal":{"v":233.8600006,"u":"kWh","d":3},"Irradiation":{"v":8.60759449,"u":"%","d":2}},"4":{"name":{"u":"4"},"Power":{"v":34.09999847,"u":"W","d":1},"Voltage":{"v":33.09999847,"u":"V","d":2},"Current":{"v":1.029999971,"u":"A","d":2},"YieldDay":{"v":537,"u":"Wh","d":0},"YieldTotal":{"v":237.0330048,"u":"kWh","d":3},"Irradiation":{"v":8.632910728,"u":"%","d":2}},"events":1}],"total":{"Power":{"v":129.1000061,"u":"W","d":1},"YieldDay":{"v":2138,"u":"Wh","d":0},"YieldTotal":{"v":936.8040161,"u":"kWh","d":2}},"hints":{"time_sync":false,"radio_problem":false,"default_password":true}}' \
> | grep -Eo '"YieldDay":\{[^}]*},"YieldTotal":\{[^}]*}'
"YieldDay":{"v":2138,"u":"Wh","d":2},"YieldTotal":{"v":936.8040161,"u":"kWh","d":2}
"YieldDay":{"v":529,"u":"Wh","d":0},"YieldTotal":{"v":228.5059967,"u":"kWh","d":3}
"YieldDay":{"v":537,"u":"Wh","d":0},"YieldTotal":{"v":237.4049988,"u":"kWh","d":3}
"YieldDay":{"v":535,"u":"Wh","d":0},"YieldTotal":{"v":233.8600006,"u":"kWh","d":3}
"YieldDay":{"v":537,"u":"Wh","d":0},"YieldTotal":{"v":237.0330048,"u":"kWh","d":3}
"YieldDay":{"v":2138,"u":"Wh","d":0},"YieldTotal":{"v":936.8040161,"u":"kWh","d":2}
$
Edit:
Mit Timestamp davor (ts aus dem Paket moreutils):
Code: Alles auswählen
$ echo '{"inverters":[{"serial":"116174407593","name":"jw","data_age":5,"reachable":true,"producing":true,"limit_relative":100,"limit_absolute":1500,"0":{"Power":{"v":129.1000061,"u":"W","d":1},"Voltage":{"v":236,"u":"V","d":1},"Current":{"v":0.550000012,"u":"A","d":2},"Power DC":{"v":135.7999878,"u":"W","d":2},"YieldDay":{"v":2138,"u":"Wh","d":2},"YieldTotal":{"v":936.8040161,"u":"kWh","d":2},"Frequency":{"v":50,"u":"Hz","d":2},"Temperature":{"v":25,"u":"°C","d":1},"PowerFactor":{"v":0.986000001,"u":"","d":3},"ReactivePower":{"v":21.70000076,"u":"var","d":1},"Efficiency":{"v":95.06628418,"u":"%","d":2}},"1":{"name":{"u":"1"},"Power":{"v":33.5,"u":"W","d":1},"Voltage":{"v":33.09999847,"u":"V","d":1},"Current":{"v":1.00999999,"u":"A","d":2},"YieldDay":{"v":529,"u":"Wh","d":0},"YieldTotal":{"v":228.5059967,"u":"kWh","d":3},"Irradiation":{"v":8.481013298,"u":"%","d":2}},"2":{"name":{"u":"2"},"Power":{"v":34.20000076,"u":"W","d":1},"Voltage":{"v":33.09999847,"u":"V","d":2},"Current":{"v":1.029999971,"u":"A","d":2},"YieldDay":{"v":537,"u":"Wh","d":0},"YieldTotal":{"v":237.4049988,"u":"kWh","d":3},"Irradiation":{"v":8.658227921,"u":"%","d":2}},"3":{"name":{"u":"3"},"Power":{"v":34,"u":"W","d":1},"Voltage":{"v":33.09999847,"u":"V","d":1},"Current":{"v":1.029999971,"u":"A","d":2},"YieldDay":{"v":535,"u":"Wh","d":0},"YieldTotal":{"v":233.8600006,"u":"kWh","d":3},"Irradiation":{"v":8.60759449,"u":"%","d":2}},"4":{"name":{"u":"4"},"Power":{"v":34.09999847,"u":"W","d":1},"Voltage":{"v":33.09999847,"u":"V","d":2},"Current":{"v":1.029999971,"u":"A","d":2},"YieldDay":{"v":537,"u":"Wh","d":0},"YieldTotal":{"v":237.0330048,"u":"kWh","d":3},"Irradiation":{"v":8.632910728,"u":"%","d":2}},"events":1}],"total":{"Power":{"v":129.1000061,"u":"W","d":1},"YieldDay":{"v":2138,"u":"Wh","d":0},"YieldTotal":{"v":936.8040161,"u":"kWh","d":2}},"hints":{"time_sync":false,"radio_problem":false,"default_password":true}}' \
> | grep -Eo '"YieldDay":\{[^}]*},"YieldTotal":\{[^}]*}' | ts
Aug 12 22:04:52 "YieldDay":{"v":2138,"u":"Wh","d":2},"YieldTotal":{"v":936.8040161,"u":"kWh","d":2}
Aug 12 22:04:52 "YieldDay":{"v":529,"u":"Wh","d":0},"YieldTotal":{"v":228.5059967,"u":"kWh","d":3}
Aug 12 22:04:52 "YieldDay":{"v":537,"u":"Wh","d":0},"YieldTotal":{"v":237.4049988,"u":"kWh","d":3}
Aug 12 22:04:52 "YieldDay":{"v":535,"u":"Wh","d":0},"YieldTotal":{"v":233.8600006,"u":"kWh","d":3}
Aug 12 22:04:52 "YieldDay":{"v":537,"u":"Wh","d":0},"YieldTotal":{"v":237.0330048,"u":"kWh","d":3}
Aug 12 22:04:52 "YieldDay":{"v":2138,"u":"Wh","d":0},"YieldTotal":{"v":936.8040161,"u":"kWh","d":2}
$