Installation auf Synology DS212j funktioniert nicht mehr

Begonnen von jemu75, 14 Februar 2016, 13:36:17

Vorheriges Thema - Nächstes Thema

jemu75

Hallo,

ich habe nach den hier vorgefundenen Anleitungen eine Neuinstallation von FHEM auf meiner DS212j vorgenommen.
Von Martin Fischer habe ich fhem-5.3-mfr-1.1-syno-88f628x.spk zur Installation verwendet.
Soweit hat alles geklappt. Da die Installation Version 5.3 mitbringt, wollte ich nun gleich mit einem update beginnen.
Leider bekomme ich beim update die Fehlermeldung "File 'controls_fhem.txt' (remote) is corrupt, Update canceled..."
Hat jemand einen Vorschlag, wie ich die aktuelle Version 5.7 auf die Diskstation bekomme?

Besten Dank! :-)
Jens.

joachimS

Ich habe denselben Fehler.
Allerdings habe ich sogar die Paket Installation versucht  manuell mit 5.7 überschrieben was aber vermutlich nicht geklappt hat obwohl ich das fhem.pl, was das package verwendet, manuell überschrieben habe.
Ich habe auch controls_fhem.txt gelöscht und fhem neu gestartet.
Im Log klappt es auch nicht mit den Variablen :
2016 09:05:02 1: update File 'controls_fhem.txt' (remote) is corrupt
2016.02.16 09:05:02 3: update get http://fhem.de/fhemupdate4/svn/controls_fhem.txt
2016.02.16 09:05:02 1: update check Releases => local: Fhem 5.5 (DEVELOPMENT) remote: Fhem 5.6 (DEVELOPMENT)
2016.02.16 09:05:02 3: update get http://fhem.de/fhemupdate4/svn/FHEM/FhemUtils/release.pm
2016.02.16 09:03:25 0: Server started with 140 defined entities (version $Id: fhem.pl 5705 2014-04-30 10:26:25Z rudolfkoenig $, os linux, user root, pid 7040)

Ich hatte auch ein anderes Problem mit Perl, vermutlich falsche Version angezogen , das ich durch mehrere Restarts zufällig lösen konnte:

2016.02.16 08:19:18 3: n_batt_chk return value: Global symbol "@gmail" requires explicit package name at (eval 2790) line 2. } } Log 3, "@: Batteriewarnung %";
{system("/bin/echo \"FHEM Batteriewarnung @ %\" |
/opt/bin/nail -s \"FHEM Batteriewarnung @ %\" email\@@gmail.com &" )};
2016.02.16 08:19:18 3: eval: { if("%" !~ m/ok/) {
2016.02.16 08:19:18 1: PERL WARNING: Possible unintended interpolation of @gmail in string at (eval 2790) line 2.
Gruss
Joachim

(fhem auf Synology DS209, CUL, FS20, FHT, EM, HM, Keymatic, Hue, OpenDTU)

schnitzelbrain

Hallo
ich hab bei meiner DS111 das gleiche Problem hab aber eine "Quick and Dirty" lösung gefunden.
danach hat das Update funktioniert.

in der 99_Update die bei 5.3 noch existiert ist folgender passus:
# parse file
  if ($controlFile) {
    foreach my $l (split("[\r\n]", $controlFile)) {
      chomp($l);
      Log 5, "update $from controls_".lc($pack).".txt: $l";
      my ($ctrl,$date,$size,$file,$move) = "";
      if ($l =~ m/^(UPD) (20\d\d-\d\d-\d\d_\d\d:\d\d:\d\d) (\d+) (\S+)$/) {
        $ctrl = $1;
        $date = $2;
        $size = $3;
        $file = $4;
      } elsif ($l =~ m/^(DIR) (\S+)$/) {
        $ctrl = $1;
        $file = $2;
      } elsif ($l =~ m/^(MOV) (\S+) (\S+)$/) {
        $ctrl = $1;
        $file = $2;
        $move = $3;
      } elsif ($l =~ m/^(DEL) (\S+)$/) {
        $ctrl = $1;
        $file = $2;
      } else {
        $ctrl = "ESC"
      }
      if ($ctrl eq "ESC") {
        Log 1, "update File 'controls_".lc($pack).".txt' ($from) is corrupt";
        $ret = "File 'controls_".lc($pack).".txt' ($from) is corrupt";
      }
      last if ($ret);
#      if ($local) {
#        next if ($l =~ m/^(DEL|MOV) /);
#      }
      $control{$pack}{$file}{ctrl} = $ctrl;
      $control{$pack}{$file}{date} = $date;
      $control{$pack}{$file}{size} = $size;
      $control{$pack}{$file}{file} = $file;
      $control{$pack}{$file}{move} = $move;
    }
  }
  return ($ret, \%control);
}


Das Problem ist das bei der jetzigen controls_fhem.txt als erstes folgendes steht
REV 10865

Wenn ich jetzt dem script folge dann sehe ich das "REV" nicht geparst wird und somit der script mit "ESC" Antwortet und somit "update File 'controls_fhem.txt' (remote) is corrupt" ausgibt sowie abbricht.

Meine Lösung :)
} else {
        $ctrl = "ESC"
      }


in

} else {
        $ctrl = "REV"
      }


ändern.
Im Prinzip ist egal was zurückkommt es sollte nur nicht ESC oder eine der im script verwendeten Möglichkeiten sein.

danach lief das Update durch und die 99_Update kann gelöscht werden da in der neuen Struktur ja die 98_Update vorhanden ist.

Hoffe dies hilft bis offiziell gepatch wird.

Schnitzelbrain

joachimS

Danke,
Mein Problem ist auch, dass ich den Code des Packages nicht finde.
Ist bei mir /usr/FHEM , aber eigentlich ist das ein Link.
Gruss
Joachim

(fhem auf Synology DS209, CUL, FS20, FHT, EM, HM, Keymatic, Hue, OpenDTU)

schnitzelbrain

Zitat von: joachimS am 18 Februar 2016, 13:20:02
Danke,
Mein Problem ist auch, dass ich den Code des Packages nicht finde.
Ist bei mir /usr/FHEM , aber eigentlich ist das ein Link.

Bei meiner DS111 komme ich über zwei Wege ran:

1. direkt
/usr/local/FHEM/share/fhem/FHEM/99_update.pm

oder

2. Symlink
/volume1/@appstore/FHEM/share/fhem/FHEM/99_update.pm

Was ja letztendlich zwei mal die gleiche Datei ist.

jemu75

Super. Habe eben noch mal eine neue Installation aufgesetzt und die oben beschriebene Änderung in der 99_update.pm vorgenommen.
Es hat geklappt. :-)

Dankeschön!

guhu

Hallo, danke für den Tip, hat wunderbar funktioniert.
Wie habe ihr die Perl-Erweiterungen (CPAN) installiert? Ich habe die DS215j, da helfen die im Netz auffindbaren Anleitungen nicht so recht weiter. Kommt man mittlerweile mit dem bordeigenen Perl weiter? Das Selberkompilieren auf der Box hat bisher nicht funktioniert.

Ich bin dankbar für jeden Hinweis.
FHEM 5.9 auf Synology DS918+ (in Docker), HM-CFG-USB2 mit hmlan, HM-CC-RT-DN, HM-SEC-SC-2, nanoCUL,a-culfw,deCONZ,Brennenstuhl-Steckdosen,-FB
Module:ENIGMA2,SONOS,FRITZBOX,FB_CALLLIST,WDT_TIMER,VCONTROL300,WITHINGS

joachimS

Bei mir war die Korrektur im 98_update notwendig da ich kein 99_update hatte.
2016.03.03 00:37:22 1: update saving statefile
2016.03.03 00:37:21 3: update get http://fhem.de/fhemupdate4/svn/controls_fhem.txt
2016.03.03 00:37:21 1: update check Releases => local: Fhem 5.5 (DEVELOPMENT) remote: Fhem 5.6 (DEVELOPMENT)
2016.03.03 00:37:21 3: update get http://fhem.de/fhemupdate4/svn/FHEM/FhemUtils/release.pm
Gruss
Joachim

(fhem auf Synology DS209, CUL, FS20, FHT, EM, HM, Keymatic, Hue, OpenDTU)

schnitzelbrain

Zitat von: guhu am 22 Februar 2016, 08:59:05
Hallo, danke für den Tip, hat wunderbar funktioniert.
Wie habe ihr die Perl-Erweiterungen (CPAN) installiert? Ich habe die DS215j, da helfen die im Netz auffindbaren Anleitungen nicht so recht weiter. Kommt man mittlerweile mit dem bordeigenen Perl weiter? Das Selberkompilieren auf der Box hat bisher nicht funktioniert.

Ich bin dankbar für jeden Hinweis.

Ich muss leider sagen das ich die DS111 Installation nicht weitergeführt habe.

Eigentlich genau aus dem Grund, nachinstallieren von notwendigen Perl Modulen ging nicht, wird aber für fhem Module benötigt.

Jetzt  Raspi für 35€ und gut ist. Alles läuft ohne Probleme.

Das NAS macht jetzt wofür es da ist und die Raspi ist zum basteln.

guhu

Bei mir läuft es mittlerweile gut auf der DS. Ich nutze Optware-ng. Das hat zwar keine komplette Entwicklungsumgebung und CPAN läuft nicht, allerdings habe ich alle benötigten Perl-Module auf Anfrage sofort erhalten. Toller Service!
FHEM 5.9 auf Synology DS918+ (in Docker), HM-CFG-USB2 mit hmlan, HM-CC-RT-DN, HM-SEC-SC-2, nanoCUL,a-culfw,deCONZ,Brennenstuhl-Steckdosen,-FB
Module:ENIGMA2,SONOS,FRITZBOX,FB_CALLLIST,WDT_TIMER,VCONTROL300,WITHINGS