ChCh Öffnungsstatus
Version vom 24. März 2012, 03:35 Uhr von Florz (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Dieses Script wird einmal in der Minute gestartet und prüft das Ring-Signal der seriellen Schnittstelle. Wenn unsere Außenbeleuchtung eingeschaltet wird, gibt e…“)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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