|
@ -0,0 +1,58 @@ |
|
|
|
|
|
#!/bin/bash |
|
|
|
|
|
# This module can get data from a SMA Inverter. |
|
|
|
|
|
# Its purpose is to show you how much Watts are being produced |
|
|
|
|
|
# To make it work change the INVERTER_IP variable and your User password |
|
|
|
|
|
# Vincenzo Petrolo <vincenzo.petrolo99@gmail.com> |
|
|
|
|
|
# For infos on how i made it, and help or bugs, you cant contact me or |
|
|
|
|
|
# open an issue |
|
|
|
|
|
# GNU GPLv3 |
|
|
|
|
|
|
|
|
|
|
|
# P.s: Be careful when trying to modify urls, as they contains special |
|
|
|
|
|
# characters that may change the behaviour of the query |
|
|
|
|
|
|
|
|
|
|
|
dwm_solar_panel () { |
|
|
|
|
|
|
|
|
|
|
|
INVERTER_IP="INVERTER IP HERE" |
|
|
|
|
|
PASSWORD="USER GROUP PASSWORD HERE" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [[ -f ~/.cache/solar_panel.cache ]]; |
|
|
|
|
|
then |
|
|
|
|
|
read SID < ~/.cache/solar_panel.cache |
|
|
|
|
|
if [ "$SID" == "null" ]; |
|
|
|
|
|
then |
|
|
|
|
|
#Getting session id |
|
|
|
|
|
SID=`curl -s --location --request POST "http://$INVERTER_IP/dyn/login.json" \ |
|
|
|
|
|
--header 'Content-Type: text/plain' \ |
|
|
|
|
|
--data-raw "{"right":"usr","pass":"$PASSWORD"}" | jq .result.sid` |
|
|
|
|
|
SID=${SID//\"} |
|
|
|
|
|
fi |
|
|
|
|
|
#checks if it got a session token |
|
|
|
|
|
if [ "$SID" != "" ]; |
|
|
|
|
|
then |
|
|
|
|
|
echo $SID > ~/.cache/solar_panel.cache |
|
|
|
|
|
WATTS=$(curl -s --location --request POST "http://$INVERTER_IP/dyn/getValues.json?sid=$SID" \ |
|
|
|
|
|
--header 'Content-Type: text/plain' \ |
|
|
|
|
|
--data-raw '{"destDev":[],"keys":["6100_00543100","6800_008AA200","6100_40263F00","6800_00832A00","6180_08214800","6180_08414900","6180_08522F00","6400_00543A00","6400_00260100","6800_08811F00","6400_00462E00"]}' | jq '.result."0156-76BC3EC6"."6100_40263F00"."1"[0].val') |
|
|
|
|
|
|
|
|
|
|
|
if [ "$WATTS" == "" ]; |
|
|
|
|
|
then |
|
|
|
|
|
echo "null" > ~/.cache/solar_panel.cache |
|
|
|
|
|
else |
|
|
|
|
|
if [ "$WATTS" == "null" ]; |
|
|
|
|
|
then |
|
|
|
|
|
$WATTS=0 |
|
|
|
|
|
fi |
|
|
|
|
|
WATTC=`bc <<< "scale=3; $WATTS / 1000"` |
|
|
|
|
|
printf "%s💡 $WATTC W %s" "$SEP1" "$SEP2" |
|
|
|
|
|
fi |
|
|
|
|
|
fi |
|
|
|
|
|
else |
|
|
|
|
|
touch ~/.cache/solar_panel.cache |
|
|
|
|
|
|
|
|
|
|
|
echo "null" > ~/.cache/solar_panel.cache |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
dwm_solar_panel |
|
|
|
|
|
|