Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # E-thermostaat control & info script
- USERNAME=YOUR_E-THERMOSTAAT.NL_USERNAME
- PASSWORD=PASSWORD
- SN=SERIAL NUMBER A.K.A UID
- CELCIUS=$'\xe2\x84\x83'
- TOKEN=`curl -s --request POST 'https://portal.icy.nl/login' --data 'username='${USERNAME}'&password='${PASSWORD}'' | awk -F":" '{print $12}' | awk -F'"' '{print $2}'` SET=`curl -s -H "Session-token:$TOKEN" --request GET 'https://portal.icy.nl/data' --data 'username='${USERNAME}'&password='${PASSWORD}'' |awk -F":" '{print $10}' | awk -F',' '{print $1}'`
- case "$1" in
- temp)
- TEMP=`curl -s -H "Session-token:$TOKEN" --request GET 'https://portal.icy.nl/data' --data 'username='${USERNAME}'&password='${PASSWORD}'' |awk -F":" '{print $11}' | awk -F',' '{print $1}'`
- echo huidig: $TEMP$CELCIUS ingesteld: $SET$CELCIUS
- ;;
- comfort)
- TEMPERATURE=20
- for RETRY in 1 2 3 4 5 6
- do
- RESULT=`curl -s -H "Session-token:$TOKEN" --request POST 'https://portal.icy.nl/data' --data "uid=$SN&temperature1=$TEMPERATURE" | tr -d '{}"' | awk -F":" '{print $4}'`
- [ $RESULT = OK ] && break
- sleep 300
- done
- ;;
- bespaar)
- TEMPERATURE=15
- for RETRY in 1 2 3 4 5 6
- do
- RESULT=`curl -s -H "Session-token:$TOKEN" --request POST 'https://portal.icy.nl/data' --data "uid=$SN&temperature1=$TEMPERATURE" | tr -d '{}"' | awk -F":" '{print $4}'`
- [ $RESULT = OK ] && break
- sleep 300
- done
- ;;
- set)
- TEMPERATURE=$2
- for RETRY in 1 2 3 4 5 6
- do
- RESULT=`curl -s -H "Session-token:$TOKEN" --request POST 'https://portal.icy.nl/data' --data "uid=$SN&temperature1=$TEMPERATURE" | tr -d '{}"' | awk -F":" '{print $4}'`
- [ $RESULT = OK ] && break
- sleep 300
- done
- ;;
- check)
- echo "$SET"
- ;;
- up)
- NEWSET=`echo $SET + 1 |bc`
- for RETRY in 1 2 3 4 5 6
- do
- RESULT=`curl -s -H "Session-token:$TOKEN" --request POST 'https://portal.icy.nl/data' --data "uid=$SN&temperature1=$NEWSET" | tr -d '{}"' | awk -F":" '{print $4}'`
- [ $RESULT = OK ] && break
- sleep 300
- done
- ;;
- down)
- NEWSET=`echo $SET - 1 |bc`
- for RETRY in 1 2 3 4 5 6
- do
- RESULT=`curl -s -H "Session-token:$TOKEN" --request POST 'https://portal.icy.nl/data' --data "uid=$SN&temperature1=$NEWSET" | tr -d '{}"' | awk -F":" '{print $4}'`
- [ $RESULT = OK ] && break
- sleep 300
- done
- ;;
- *)
- echo "Please use one of the following options:"
- echo "check :Display current set point"
- echo "info :Display current temperature and setpoint"
- echo "set :Set the setpoint to the given value"
- echo "comfort :Set the setpoint to 20"
- echo "bespaar :Set the setpoint to 15"
- echo "up/down :Adjust the setpoint with + 1"
- exit 1
- ;;
- esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement