Hallo Zusammen,
da ich immer wieder Probleme mit dem Update von FHEM auf meiner Fritzbox hatte, ja ich weiss man sollte diese abloesen, habe ich ein kleines Update Shell Script geschrieben.
Ok man koennte dies bestimmt auch besser schreiben, aber es funktioniert.
Da auch andere ab und an Probleme mit dem Update haben, wollte ich das Script mit euch teilen.
So nun zur Anleitung:
1.) Ausfuehren des Kommandos Update check
2.) Diese Ausgabe dann in eine Datei schreiben (diff_controls.txt)
3.) Das Script ebenfalls in eine Datei schreiben (update.sh)
4.) Das Update Verzeichnis erstellen
Bei mir liegen dann die Dateien und das Verzeichnis unter /var/media/ftp/uStor01/
5.) Wenn man in diesem Verzeichnis ist, das Script wie folgt aufrufen:
sh ./update.sh ../diff_controls.txt
Gruss
GrauesHaar
#!/bin/bash
#######################################################
#
# Update script for systems with problems during
# the fhem update command, like for the fritzbox.
# Looks like the fritzbox has not enough memory
# and the perl fhem.pl fhem.cfg update process will
# crash.
#
# Script created by GrauesHaar 2015-02-04
#
#######################################################
#
# Define some variables
#
#######################################################
Update=/var/media/ftp/uStor01/update
FHEM=/var/media/ftp/uStor01/fhem
Unused=/var/media/ftp/uStor01/fhem/unused
cd $Update
###############
# Get Updates
###############
while read line
do
name=$line
path=${name//UPD /}
directory="$(dirname "$path ")"
mkdir -p $directory
cd $directory
URL=${name//UPD /wget http://fhem.de/fhemupdate/}
$URL
cd $Update
done < $1
cd $Update/FHEM
wget http://fhem.de/fhemupdate/controls_fhem.txt
cd $Update
echo "Files received, press any key to continue"
read -n1 -s
cp -R * $FHEM
rm -R *
#####################
# Move unused files
#####################
grep MOV $FHEM/FHEM/controls_fhem.txt | while read line
do
name=$line
path=${name//MOV /}
path=${path// unused/}
directory="$(dirname "$path ")"
mkdir -p $Unused/$directory
mv $FHEM/$path $Unused/$directory
done
echo "Update done - please do a shutdown restart in FHEM"
Hallo Graus Haar,
bei mir kommt die Fehlermeldung:
./update.sh: 28: ./update.sh: Bad substitution
Die Ausgabe mit Debug:
pi@raspberrypi /opt $ sh -vx ./update.sh ../diff_controls.txt
#!/bin/bash
#######################################################
#
# Update script for systems with problems during
# the fhem update command, like for the fritzbox.
# Looks like the fritzbox has not enough memory
# and the perl fhem.pl fhem.cfg update process will
# crash.
#
# Script created by GrauesHaar 2015-02-04
#
#######################################################
#
# Define some variables
#
#######################################################
Update=/opt/update
+ Update=/opt/update
FHEM=/opt/fhem
+ FHEM=/opt/fhem
Unused=/opt/update/fhem/unused
+ Unused=/opt/update/fhem/unused
cd $Update
+ cd /opt/update
###############
# Get Updates
###############
while read line
do
name=$line
path=${name//UPD /}
directory="$(dirname "$path ")"
mkdir -p $directory
cd $directory
URL=${name//UPD /wget http://fhem.de/fhemupdate/} (http://fhem.de/fhemupdate/%7D)
$URL
cd $Update
done < $1
+ read line
+ name=UPD ./CHANGED
./update.sh: 28: ./update.sh: Bad substitution
Läuft auf RasPi
Verzeichnisse sind wie folgt eingestellt:
Update=/opt/update
FHEM=/opt/fhem
Unused=/opt/update/fhem/unused
Die update.sh und diff_controls.txt liegen in /opt
Die diff_controls.txt beginnt:
UPD ./CHANGED
UPD ./configDB.pm
UPD ./fhem.pl
UPD FHEM/00_CUL.pm
UPD FHEM/00_HMLAN.pm
UPD FHEM/00_HXB.pm
...
Probier doch mal folgendes:
chmod a+x update.sh
Dann fuehrst du das ganze wie folgt aus:
./update.sh ../diff_controls.txt
Koennte sein das der mit den Shells durcheinander kommt. BASH und SH
Das scheint zu helfen.
Das Script würde durchlaufen.
Ich habe aber wohl noch Rechteprobleme. Das Script kann keine Unterverzeichnis in update anlegen. Werde ich mir heute Abend näher ansehen.
Habe noch mal manuell upgedatet und anschließend ein wget http://fhem.de/fhemupdate/controls_fhem.txt in FHEM ausgeführt. Danach waren alle Updates OK. Löst allerdings die Verbindungsabbrüche nicht. Die treten auch bei manuellem Update auf.
Daher würde ich dein Script vorziehen. Vorab vielen Dank.
Gruß
Bernd
Das freut mich das ich dir damit helfen konnte.
Sollte es noch jemand hilfreich finden, oder Probleme oder aber auch Verbesserungen haben, bitte einfach in den Thread posten.
Angenehme Arbeitswoche
Hallo, ich wollte auch berichten, dass dein script mir beim update geholfen hat. ;D
Direkt aus fhem ging update nicht mehr. Ich habe fritzbox 7390 und Kabel Deutschland Anschluss.
Kann denn mal jemand sagen, woran das nun liegen soll ??
Ich habe sonst keine (sichtbaren) Probleme mit Internet ??
Gruss
Frank
http://forum.fhem.de/index.php/topic,39923.0.html (http://forum.fhem.de/index.php/topic,39923.0.html)
Hier gehts auch um update und um genau das Problem das es manchmal nicht klappt.
Hallo,
ich hatte gehofft selbt mit FHEM klarzukommen. Jetzt komme ich jedoch nicht weiter und habe mich deshalb hilfesuchend in diesem Forum angemeldet.
Als Neuling/Anfänger habe ich FHEM auf einem Raspberry installiert um damit mit Homematic Komponenten zuerst die Heizung zu steuern und später weiter auszubauen. Dafür gibt es ja gut funktionierende Anleitungen im Weg.
Leider habe ich auch das Timeout Problem beim Update von FHEM. Auch bei mir funktioniert FHEM nach dem fehlerhaften Update nicht mehr :-[
Mein Internetzugang ist über Unitymedia mit Fritzbox Cable 6340.
Gibt es denn schon neue Erkentnisse oder sogar schon eine dauerhafte Lösung zu diesem Problem (timeout beim Update)?
Im FHEMwiki habe gelesen, dass es noch das Kommando "update force" gibt. Ist das evtl. einen Versuch wert um ein Update ohne diese Timeout Unterbrechung durchzuführen.?
Vielen Dank im Voraus.
habe jetzt das Script von GrauesHaar in Raspbian mit root Rechten ausgeführt.
Bei den einzelnen Updates erscheint immer folgendes:
--2015-10-11 11:34:03-- http://%0D/
Resolving \r (\r)... failed: Name or service not known.
wget: unable to resolve host address `\r'
FINISHED --2015-10-11 11:34:03--
Total wall clock time: 0.07s
Downloaded: 1 files, 83 in 0s (2.11 MB/s)
--2015-10-11 11:34:03-- http://fhem.de/fhemupdate/www/jscolor/ct_background.svg
Resolving fhem.de (fhem.de)... 82.165.184.33
Connecting to fhem.de (fhem.de)|82.165.184.33|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 373 [image/svg+xml]
Saving to: `ct_background.svg'
100%[======================================>] 373 --.-K/s in 0s
danach:
Files received, press any key to continue
mv: cannot stat `/var/media/ftp/uStor01/fhem/www/pgm2/fhemweb_multiple.js': No such file or directory
Nach "shutdown restart" in FHEM stehen nun nach "update ceck" noch immer alle Dateien zum update unverändert dort.
Kann mir jemand helfen? Ich weiss wirklich nicht mehr weiter!
Vielen Dank im Voraus!