Finally I found a quite straight forward bash script that reads the status.js file from the inverter and filters out the current power and daily energy produced to send to domoticz. As you can see below I have two slightly different inverters, so they require different grep commands. And combining of theire outputs to get the totals
Code: Select all
#! /bin/bash
energy1=$(wget --user admin --password admin http://INVERTER1_IP/js/status.js -q -O - | sed -e 's/;/\n/g' | grep -e "^myDeviceArray" | cut -d'=' -f 2 | sed -e 's/"/,/g' | cut -d, -f8)
energy2=$(wget --user admin --password admin http://INVERTER2_IP/js/status.js -q -O - | sed -e 's/;/\n/g' | grep -e "^var" | grep -i webdata | sed -e 's/var webData=/,/g' | sed -e 's/"//g' | cut -d, -f8)
# Multiply by ten to get kWh
energy10=$(expr 10 '*' $energy1)
energy20=$(expr 10 '*' $energy2)
# echo "Energy generated (3k): " $energy10
# echo "Energy generated (2k): " $energy20
totalenergy=$(expr $energy10 + $energy20)
echo "Total energy generated: " $totalenergy
power1=$(wget --user admin --password admin http://INVERTER1_IP/js/status.js -q -O - | sed -e 's/;/\n/g' | grep -e "^myDeviceArray" | cut -d'=' -f 2 | sed -e 's/"/,/g' | cut -d, -f7)
power2=$(wget --user admin --password admin http://INVERTER2_IP/js/status.js -q -O - | sed -e 's/;/\n/g' | grep -e "^var" | grep -i webdata | sed -e 's/var webData=/,/g' | sed -e 's/"//g' | cut -d, -f7)
# echo "Current power (3k): " $power1
# echo "Current power (2k): " $power2
totalpower=$(expr $power1 + $power2)
echo "Total current power: " $totalpower
curl -s "http://DOMOTICZ_IP:8080/json.htm?type=command¶m=udevice&idx=455&nvalue=0&svalue="$totalpower";"$totalenergy
As you see this script queries the inverter twice, once for the engery and once for the current power. My bash experiance is limited, so any optimization help is welcome!