ChCh Öffnungsstatus
Dieses Script wird einmal in der Minute gestartet und prüft das Ring-Signal der seriellen Schnittstelle. Wenn unsere Außenbeleuchtung eingeschaltet wird, gibt es dieß im IRC bekannt. Ebenso gibt es das Ausschalten bekannt.
#! /bin/bash # USER CONFIG # IRC_USER="chch" IRC_CHANNEL="#chaoschemnitz" IRC_SERVER="irc.freenode.net" ON_MSG="licht an" OFF_MSG="licht aus" ############### # SYSTEM CONFIG # II_START_TIMEOUT=10 IRC_PREFIX=/var/irc PORT="port:000003F8" CAT=/bin/cat CUT=/usr/bin/cut TAIL=/usr/bin/tail GREP=/bin/grep ECHO=/bin/echo PS=/bin/ps SLEEP=/bin/sleep II=/usr/bin/ii ################# IRC_CHAN_IN=$IRC_PREFIX/$IRC_SERVER/$IRC_CHANNEL/in IRC_CHAN_OUT=$IRC_PREFIX/$IRC_SERVER/$IRC_CHANNEL/out IRC_SRV_IN=$IRC_PREFIX/$IRC_SERVER/in II_RUNNING=$($PS awx | $GREP "ii" | $GREP "\-n $IRC_USER") RING=$($CAT /proc/tty/driver/serial | $GREP "$PORT" | $GREP -o "RI") # FIND OUR LAST STATUS MESSAGE PREV_MSG=$($CAT $IRC_CHAN_OUT | $CUT -d":" -f2 | $GREP -e "^[0-9]\{2\} <$IRC_USER> $ON_MSG\$\|^[0-9]\{2\} <$IRC_USER> $OFF_MSG\$" | $TAIL -n1 | $GREP -oe "$ON_MSG\|$OFF_MSG") # RESTART II if [ -z "$II_RUNNING" ]; then $II -n $IRC_USER -i $IRC_PREFIX & while [ $II_START_TIMEOUT -gt 0 -a ! -a $IRC_SRV_IN ]; do $SLEEP 1 done if [ $II_START_TIMEOUT -le 0 -a ! -a $IRC_SRV_IN ]; then exit 1 fi echo "/j $IRC_CHANNEL" > $IRC_SRV_IN if [ $? -ne 0 ]; then exit 1 fi fi # CHOOSE CORRECT MESSAGE if [ -z "$RING" ]; then MSG="$OFF_MSG" else MSG="$ON_MSG" fi # SEND MESSAGE IF IT DIIFERS FROM PREVIOUS STATUS if [ "$MSG" != "$PREV_MSG" ]; then $ECHO -e "$MSG\n" > $IRC_CHAN_IN fi if [ $? -ne 0 ]; then exit 1 fi