chch-power/light.sh

43 lines
928 B
Bash
Executable File

#!/bin/bash
TMPFILE=/tmp/light_state
touch $TMPFILE
LIGHT_STATE=$(cat $TMPFILE)
[ -z "$LIGHT_STATE" ] && LIGHT_STATE=0
if [ -z "$1" ]; then
STATE_0="a\x00\x03\x00\x00\x00;000000000000000000"
STATE_1="a\x00\x03\xff\xff\xff;255255255255255255"
STATE_2="n\x00\x02\x01\x00;170000070150000050"
LIGHT_STATE=$(( $LIGHT_STATE+1 ))
case $LIGHT_STATE in
0)
STATE=$STATE_0
;;
1)
STATE=$STATE_1
;;
2)
STATE=$STATE_2
;;
*)
STATE=$STATE_0
LIGHT_STATE=0
;;
esac
else
COLOR_A="$(echo $1 | sed "s/\(..\)\(..\)\(..\)/\\\x\2\\\x\1\\\x\3/g")"
COLOR_B="$(echo $1 | while read -N2 code; do printf "%03d" $((16#$code)); done)"
STATE="a\x00\x03$COLOR_A;$COLOR_B$COLOR_B"
fi
for i in {1..5}; do
echo -en "$(echo "$STATE" | cut -d";" -f1)" > /dev/udp/172.23.92.15/49152 &
echo -en "$(echo "$STATE" | cut -d";" -f2)" > /dev/udp/172.23.92.16/31302 &
sleep .01
done
echo $LIGHT_STATE > $TMPFILE