Kurz nach Mitternacht ist die Weewx Ecowitt Instanz (GW3000) stehen geblieben.
Einige Daten, wie z.B. Temperatur, werden nach einem 'sudo systemclt restart weewx' automatisch wieder nachgetragen,
aber nicht alle Daten.
Ich würde mir ein Script erstellen, welches bei Ausbleiben von Daten einen automatischen Restart ausführt.
Welches Kriterium wäre dafür geeignet?
Alter der Grafiken in der Html, Syslog ?
automatischer Restart/Reboot nach Stop
- Werner
- Site Admin
- Beiträge: 6117
- Registriert: 04 Dez 2001 01:00
- Wohnort: Lackenhäuser
- Danksagung erhalten: 147 mal
- Kontaktdaten:
Re: automatischer Restart/Reboot nach Stop
@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)
Du mußt sehr wahrscheinlich das ändern bzw. auch den Log-Pfad (/data ) bzw. bei Shelly die IP-Adresse:
zu
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
Code: Alles auswählen
sudo /etc/init.d/weewx$nr restart Code: Alles auswählen
sudo systemclt restart weewx$nr - JoachimF
- Beiträge: 339
- Registriert: 08 Dez 2021 20:29
- Wohnort: Carces
- Hat sich bedankt: 1 mal
- Kontaktdaten:
Re: automatischer Restart/Reboot nach Stop
@Werner
meine Lösung sieht so aus :
Ich vergleiche ein Bilderstellungsdatum mit der aktuellen Zeit (- 6m).
Sudo systemclt habe ich in der /etc/sudoers auf nopasswd gesetzt.
SmartHome habe ich nicht und werde ich auch nicht hier in Südfrankreich installieren.
$FileSDB ??
Was prüfts du bzgl. der Datenbank?
meine Lösung sieht so aus :
Code: Alles auswählen
#!/bin/bash
#ECO Weewx
#Datum der Modify Zeit in Unixtime
bildzeit=$(stat /var/www/html/weewx/eco/dayhum.png --format='%Y')
#echo $bildzeit
#date -d@$bildzeit
#aktuelle Zeit minus 6 Minuten in Unixtime
sixminutezeit=$( date -d "6 minute ago" +%s )
#echo sixminutezeit
# Differenz größer 6 Minuten (360) erfolgt ein Restart
if [ "$sixminutezeit" -gt "$bildzeit" ] ; then
echo "6 Minuten Differenz - Restart von ECO"
sudo systemctl restart weewx1
fi
Sudo systemclt habe ich in der /etc/sudoers auf nopasswd gesetzt.
SmartHome habe ich nicht und werde ich auch nicht hier in Südfrankreich installieren.
$FileSDB ??
Was prüfts du bzgl. der Datenbank?
- Werner
- Site Admin
- Beiträge: 6117
- Registriert: 04 Dez 2001 01:00
- Wohnort: Lackenhäuser
- Danksagung erhalten: 147 mal
- Kontaktdaten:
Re: automatischer Restart/Reboot nach Stop
@Joachim,
Damit wird das Änderungsdatum der Datenbank geprüft.
Shelly-Steckdosen kann man auch nur Lokal nutzen und sind
eben ideal wenn man etwas automatisch steuern muß.
$FileSDB ??
Was prüfts du bzgl. der Datenbank?
Code: Alles auswählen
dzeit=$( date -r $FileSDB +%s )Shelly-Steckdosen kann man auch nur Lokal nutzen und sind
eben ideal wenn man etwas automatisch steuern muß.
- JoachimF
- Beiträge: 339
- Registriert: 08 Dez 2021 20:29
- Wohnort: Carces
- Hat sich bedankt: 1 mal
- Kontaktdaten:
Re: automatischer Restart/Reboot nach Stop
@Werner,
date -r war mir nicht bekannt
Aus der man page
-r, --reference=FILE
display the last modification time of FILE
und ich werde es auch zur Überwachung der DB benutzen.
date -r war mir nicht bekannt
Aus der man page
-r, --reference=FILE
display the last modification time of FILE
und ich werde es auch zur Überwachung der DB benutzen.