#!/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