@Joachim,
Die Daten (z.B. Spannungen, Signale, RSSi) die fehlen, werden nicht auf der SDCard gespeichert
und können deshalb auch nicht von dort wiederhergestellt werden.
Ich überwache die Datenbanken der einzelnen Instanzen mit einem cronjob alle 5 Minuten
-> checkweew.sh -> */5 * * * * /etc/checkweewx.sh
(7 Instanzen von Weewx), Ja es laufen 7 Instanzen von WeeWx auf diesem RasPi !
wobei manche Ecowitt-Geräte unbedingt vorher Stromlos benötigen, dass mache ich mit
Shelly's - da ich mehrere Generation davon habe ist das auch im Script berücksichtigt
Das wird auch im Ordner /data protokolliert und alle config-Dateien von Weewx liegen bei
mir unter /etc/weewx/weewx?.conf (sind durchnummeriert)
Code: Alles auswählen
#!/bin/bash
#*/5 * * * * /etc/checkweewx.sh
# Debug-Optionen
set -o nounset
CheckTime=$(((5*60)+5))
dtz=$( /bin/date +'%Y/%m/%d %H:%M:%S' )
#echo "$dtz - CheckWeewx" >> /data/checkweewx.txt
CheckWeewx() {
vzeit=$( date -d "5 minute ago" +%s )
#dzeit=$( date -r $FileSDB +%s )
if [ -f "$FileSDB" ]; then
dzeit=$( date -r $FileSDB +%s )
else
dzeit=$vzeit
echo "$dtz - Nr:$nr - not found $FileSDB" >> /data/checkweewx.txt
fi
TimeDiff=$[vzeit - dzeit]
#echo "Nr:$nr - $TimeDiff - c:$CheckTime - v:$vzeit - d:$dzeit" >> /data/checkweewx.txt
if [ ${TimeDiff} -ge ${CheckTime} ]
then
echo "$dtz - Restart Nr:$nr - TimeDiff:$TimeDiff $FileSDB" >> /data/checkweewx.txt
sudo /etc/init.d/weewx$nr restart
#else
# echo "Nr:$nr - $TimeDiff - alles ok"
fi
}
CheckWeewxShelly() {
vzeit=$( date -d "5 minute ago" +%s )
#dzeit=$( date -r $FileSDB +%s )
if [ -f "$FileSDB" ]; then
dzeit=$( date -r $FileSDB +%s )
else
dzeit=$vzeit
echo "$dtz - Nr:$nr - not found $FileSDB" >> /data/checkweewx.txt
fi
TimeDiff=$[vzeit - dzeit]
#echo "Nr:$nr - $TimeDiff - c:$CheckTime - v:$vzeit - d:$dzeit" >> /data/checkweewx.txt
if [ ${TimeDiff} -ge ${CheckTime} ]
then
echo "$dtz - Power Off Nr:$nr - TimeDiff:$TimeDiff $FileSDB" >> /data/checkweewx.txt
curl http://$IPShelly/relay/0?turn=off
sleep 15
dtz=$( /bin/date +'%Y/%m/%d %H:%M:%S' )
echo "$dtz - Power On Nr:$nr" >> /data/checkweewx.txt
curl http://$IPShelly/relay/0?turn=on
sleep 15
dtz=$( /bin/date +'%Y/%m/%d %H:%M:%S' )
echo "$dtz - Restart Nr:$nr - TimeDiff:$TimeDiff $FileSDB" >> /data/checkweewx.txt
sudo /etc/init.d/weewx$nr restart
#else
# echo "Nr:$nr - $TimeDiff - alles ok"
fi
}
CheckWeewxShellyNew() {
vzeit=$( date -d "5 minute ago" +%s )
#dzeit=$( date -r $FileSDB +%s )
if [ -f "$FileSDB" ]; then
dzeit=$( date -r $FileSDB +%s )
else
dzeit=$vzeit
echo "$dtz - Nr:$nr - not found $FileSDB" >> /data/checkweewx.txt
fi
TimeDiff=$[vzeit - dzeit]
#echo "Nr:$nr - $TimeDiff - c:$CheckTime - v:$vzeit - d:$dzeit" >> /data/checkweewx.txt
if [ ${TimeDiff} -ge ${CheckTime} ]
then
echo "$dtz - Power Off Nr:$nr - TimeDiff:$TimeDiff $FileSDB" >> /data/checkweewx.txt
curl "http://$IPShelly/rpc/Switch.Set?id=0&on=false"
sleep 15
dtz=$( /bin/date +'%Y/%m/%d %H:%M:%S' )
echo "$dtz - Power On Nr:$nr" >> /data/checkweewx.txt
curl "http://$IPShelly/rpc/Switch.Set?id=0&on=true"
sleep 15
dtz=$( /bin/date +'%Y/%m/%d %H:%M:%S' )
echo "$dtz - Restart Nr:$nr - TimeDiff:$TimeDiff $FileSDB" >> /data/checkweewx.txt
sudo /etc/init.d/weewx$nr restart
#else
# echo "Nr:$nr - $TimeDiff - alles ok"
fi
}
#nr=
#FileSDB=/var/lib/weewx/weewx.sdb
#CheckWeewx
nr=1
FileSDB=/var/lib/weewx/weewx_ecowitt2.sdb
IPShelly=192.168.0.144
CheckWeewxShellyNew
nr=2
FileSDB=/var/lib/weewx/weewx_ecowitt.sdb
CheckWeewx
nr=3
FileSDB=/var/lib/weewx/weewx_wlludp.sdb
CheckWeewx
nr=4
FileSDB=/var/lib/weewx/weewx_ecowitt4.sdb
CheckWeewx
nr=5
FileSDB=/var/lib/weewx/weewx_ecowitt3.sdb
CheckWeewx
nr=6
FileSDB=/var/lib/weewx/weewx_ecowitt6.sdb
CheckWeewx
nr=7
FileSDB=/var/lib/weewx/davisconsole.sdb
CheckWeewx
Du mußt sehr wahrscheinlich das ändern bzw. auch den Log-Pfad (/data ) bzw. bei Shelly die IP-Adresse:
zu