Merge commit '1f7761d53c316364ed555bf6db2b5a347be4cd99'

This commit is contained in:
root 2017-03-13 23:37:25 +00:00
commit 478f9224de
5 changed files with 87 additions and 23 deletions

10
README
View File

@ -1,8 +1,8 @@
Steuerung Stomversorgung im Chaostreff Chemnitz mittels PIFACE 2
Taster-Codes (k=kurz, l=lang, sl=sehr lang):
Taster-Codes (k=kurz, l=lang):
k l -> diesen Raum an-/ausschalten
k sl -> alle Räume anschalten
sl -> alle Räume ausschalten
k k l -> experimentell (derzeit Licht in der Lounge)
k -> Licht in diesem Raum
l -> alle Räume ausschalten
kk -> diesen Raum an-/ausschalten
kl -> alle Räume anschalten

View File

@ -90,6 +90,8 @@ def exec_chch_button_cmd(event):
if count == 1:
if event.pin_num == 0:
call(["/home/automation/chch-power/light.sh","1"])
elif event.pin_num == 1:
call(["/home/automation/chch-power/light.sh","2"])
else:
sys.stderr.write("No room specific function for room " + str(event.pin_num) + "\n")
# '. .' toggle current room

View File

@ -10,6 +10,14 @@ lounge_light_toggle() {
./light.sh 1
}
e-lab_light() {
./light.sh 2 "$1"
}
e-lab_light_toggle() {
./light.sh 2
}
cd "$(dirname $0)"
rm -f "$COMMAND_FILE"
mkfifo "$COMMAND_FILE"
@ -21,16 +29,23 @@ while true; do
echo "ERROR: illegal characters" >&2
continue
fi
COLOR_STRING="$(echo "$line " | cut -d" " -f2 | grep -oe "[a-z]\?[0-9a-fA-F]*" | head -n1)"
case "$line" in
lounge_light_toggle)
lounge_light_toggle
;;
lounge_light*)
lounge_light "$(echo "$line " | cut -d" " -f2 | grep -oe "[a-z]\?[0-9a-fA-F]*" | head -n1)"
lounge_light "$COLOR_STRING"
;;
e-lab_light_toggle)
e-lab_light_toggle
;;
e-lab_light*)
e-lab_light "$COLOR_STRING"
;;
*)
echo "ERROR; available commands:" >&2
echo "lounge_light lounge_light_toggle" >&2
echo "lounge_light lounge_light_toggle e-lab_light e-lab_light_toggle" >&2
;;
esac
done < "$COMMAND_FILE"

View File

@ -12,17 +12,17 @@ sign() {
ROOM_COUNT=3
DFAULT_LIGHT_STATE=0
STATE_0="a\x00\x03\x00\x00\x00|000000000000000000;\
000000000000000000;\
000000000000000000"
a\x00\x03\x00\x00\x00|000000;\
000000000000000000"
STATE_1="a\x00\x03\xff\xff\xff|255255255255255255;\
000000000000000000;\
000000000000000000"
a\x00\x03\xff\xff\xff|FFFFFF;\
000000000000000000"
STATE_2="n\x00\x02\x01\x00|!;\
000000000000000000;\
000000000000000000"
n\x00\x02\x01\x00|FFCC11;\
000000000000000000"
STATE_3="!/usr/bin/python3 /home/automation/fensterbogenbeleuchtung_animations/animations.py|!;\
000000000000000000;\
000000000000000000"
a\x00\x03\xff\xff\xff|!;\
000000000000000000"
get_room_color_string() {
case "$ROOM_NUMBER" in
@ -32,7 +32,8 @@ case "$ROOM_NUMBER" in
echo "a\x00\x03$COLOR_A|$COLOR_B$COLOR_B"
;;
2)
echo ""
COLOR_A="$(echo "$COLOR" | sed "s/\(..\)\(..\)\(..\)/\\\x\2\\\x\1\\\x\3/g")"
echo "a\x00\x03$COLOR_A|$COLOR"
;;
3)
echo ""
@ -80,14 +81,41 @@ case "$ROOM_NUMBER" in
fi
;;
2)
find "$(dirname "$TMPFILE_PID_BASE")" -name "$(basename "${TMPFILE_PID_BASE}_2_*")" -exec sh -c 'cat {} | xargs kill; rm -f {}' \;
# COLOR_A="$(echo "$STATE" | cut -d";" -f2 | cut -d"|" -f1)"
# COLOR_B="$(echo "$STATE" | cut -d";" -f2 | cut -d"|" -f2)"
# echo -en "$COLOR_A" > /dev/null
# echo -en "$COLOR_B" > /dev/null
echo "not implemented" >&1
exit 1
COLOR_B="$(echo "$STATE" | cut -d";" -f2 | cut -d"|" -f2)"
# if [ "${COLOR_B:0:1}" == "!" ]; then
#
# else
# echo -en "$COLOR_A" > /dev/udp/172.23.92.18/49152 &
# fi
if [ "${COLOR_B:0:1}" == "!" ]; then
(
R=$(( RANDOM % 256 )); G=$(( RANDOM % 256 )); B=$(( RANDOM % 256 ))
while true; do
R_=$(( RANDOM % 256 )); G_=$(( RANDOM % 256 )); B_=$(( RANDOM % 256 ))
while [ $R -ne $R_ -o $G -ne $G_ -o $B -ne $B_ ]; do
DR=$(sign $(($R_-$R))); DG=$(sign $(($G_-$G))); DB=$(sign $(($B_-$B)))
R=$(($R+$DR)); G=$((G+$DG)); B=$(($B+$DB))
for i in 5:$R 4:$G 3:$B; do
wget -q -O- http://172.23.92.5/ecmd?channel%20$(echo $i | cut -d: -f1)%20$(echo $i | cut -d: -f2) > /dev/null 2>&1 &
COLOR_B_TMP="$(echo "$COLOR_B_TMP" | cut -c3-)"
done
sleep .1
done
done
) &
echo $! > ${TMPFILE_PID_BASE}_2_B
else
COLOR_B_TMP=$COLOR_B
for i in 5 4 3; do
wget -q -O- http://172.23.92.5/ecmd?channel%20$i%20$(printf "%d" "0x${COLOR_B_TMP:0:2}") > /dev/null 2>&1 &
COLOR_B_TMP="$(echo "$COLOR_B_TMP" | cut -c3-)"
done
fi
;;
3)
# find "$(dirname "$TMPFILE_PID_BASE")" -name "$(basename "${TMPFILE_PID_BASE}_3_*")" -exec sh -c 'cat {} | xargs kill; rm -f {}' \;
# COLOR_A="$(echo "$STATE" | cut -d";" -f3 | cut -d"|" -f1)"
# COLOR_B="$(echo "$STATE" | cut -d";" -f3 | cut -d"|" -f2)"
# echo -en "$COLOR_A" > /dev/null

View File

@ -31,7 +31,20 @@ lounge_light_toggle() {
echo "OK $COMMAND"
}
e-lab_light() {
COMMAND="e-lab_light $1"
echo "$COMMAND" >> $COMMAND_FILE
echo "OK $COMMAND"
}
e-lab_light_toggle() {
COMMAND="e-lab_light_toggle"
echo "$COMMAND" >> $COMMAND_FILE
echo "OK $COMMAND"
}
read COMMAND
COLOR_STRING="$(echo "$COMMAND " | cut -d" " -f2 | grep -oe "[a-z]\?[0-9a-fA-F]*" | head -n1)"
case "$COMMAND" in
status)
status
@ -40,11 +53,17 @@ case "$COMMAND" in
lounge_light_toggle
;;
lounge_light\ *)
lounge_light "$(echo "$COMMAND " | cut -d" " -f2 | grep -oe "[a-z]\?[0-9a-fA-F]*" | head -n1)"
lounge_light $COLOR_STRING
;;
e-lab_light_toggle)
e-lab_light_toggle
;;
e-lab_light\ *)
e-lab_light $COLOR_STRING
;;
*)
echo "ERROR; available commands:" >&2
echo "status, lounge_light [string], lounge_light_toggle" >&2
echo "status, lounge_light [string], lounge_light_toggle, e-lab_light [string], e-lab_light_toggle" >&2
exit 1
;;
esac