Eine Sache: die Adresstabelle ist ein EEPROM mit relativ "endlichen" Schreibzyklen.
Möglicherweise ist es also keine so gute Idee, die bcuaddrtab blind reinzuschreiben..
(wir denken z.B. an einen kleinen Fehler irgendwo, ein Monitoring-Tool o.ä. das den eibd alle 60s restartet, dann ist das EEPROM in einer Woche platt)
Mein Ansatz (das komplette Init-script ist etwas "speziell"):
Makki
Möglicherweise ist es also keine so gute Idee, die bcuaddrtab blind reinzuschreiben..
(wir denken z.B. an einen kleinen Fehler irgendwo, ein Monitoring-Tool o.ä. das den eibd alle 60s restartet, dann ist das EEPROM in einer Woche platt)
Mein Ansatz (das komplette Init-script ist etwas "speziell"):
Code:
# check/write bcuaddrtab
if [ "$EIBD_BACKEND" = "usb" -o "$EIBD_BACKEND" = "ft12" -o "$EIBD_BACKEND" = "bcu1" -a -n "$EIBD_URL" ]; then
EIBD_BCUADDRTAB=`bcuaddrtab -T 10 $EIBD_URL | cut -d ' ' -f 2`
if [ "$EIBD_BCUADDRTAB" = "expected" -o "$EIBD_BCUADDRTAB" = "failed" -o "$EIBD_BCUADDRTAB" = "timed" ]; then
# retry 1
echo -n "Unable to read BCU address table - retrying 1"
sleep 2
EIBD_BCUADDRTAB=`bcuaddrtab -T 10 $EIBD_URL | cut -d ' ' -f 2`
if [ "$EIBD_BCUADDRTAB" = "expected" -o "$EIBD_BCUADDRTAB" = "failed" -o "$EIBD_BCUADDRTAB" = "timed" ]; then
# retry 2
echo -n " - retrying 2 .."
sleep 2
EIBD_BCUADDRTAB=`bcuaddrtab -T 10 $EIBD_URL | cut -d ' ' -f 2`
if [ "$EIBD_BCUADDRTAB" = "expected" -o "$EIBD_BCUADDRTAB" = "failed" -o "$EIBD_BCUADDRTAB" = "timed" ]; then
echo -n " - FAILED on $EIBD_BACKEND (url $EIBD_URL) (size $EIBD_BCUADDRTAB) ! "
# only fail on usb/FT12 as bcu1 might still be ok
if [ "$EIBD_BACKEND" = "bcu1" ]; then
EIBD_BCUADDRTAB=0
else
log_end_msg 2
exit 2
fi
fi
fi
fi
if [ "$EIBD_BCUADDRTAB" -gt 0 ]; then
echo "Resetting BCU address table length! Old value $EIBD_BCUADDRTAB"
bcuaddrtab -T 30 -w 0 $EIBD_URL
fi
# fix for broken ABB/BJ USB-If
USBNAME=`findknxusb | grep ^device | cut -d '(' -f 2,3`
if [ "$EIBD_BACKEND" = "usb" -a "$USBNAME" = "ABB STOTZ-KONTAKT GmbH:KNX-USB Interface (MDRC))" ]; then
echo "ABB-fix: Resetting BCU address table length! Old value $EIBD_BCUADDRTAB"
bcuaddrtab -T 30 -w 0 $EIBD_URL
fi
fi


.
wobei wir dann gleich bei den anderen thread bezüglich der weiblichen akzeptanz wären....


Kommentar