Update für zum Totalausfall

Begonnen von desasterguy, 13 Dezember 2022, 08:31:55

Vorheriges Thema - Nächstes Thema

desasterguy

Liebes Forum,

ich nutze schon lange FHEM und habe auch alle paar Monate ein Update durch die Befehle update check und anschließend update gemacht wenn den updates zur Verfügung standen. Was auch bis dato in der Regel gut funktioniert hat.

Gestern hatte ich es genau so versucht mit dem Resultat das sich FHEM sich nicht mehr hat starten lassen.
Ich habe jetzt eine ältere Sicherheitskopie eingesetzt die wieder funktioniert.

Wenn ich diese per Updatebefehl auf den aktuellen Stand bringe habe ich den gleichen Effekt.  :o

Wie gehe ich am besten vor um den "Fehler" zu finden?

Hardware: MacMini 2,6 Ghz i7 mit macOS Catalina
Eingesetzte HA-Systeme: ccu3, Tahoma, mykm200 & HUE

Herzliche Dank für Tipps
VG Tim
2 x respbarry pi4, Somfy Tahoma, Philips HUE, Amazon Alexa, Homematic, elektr. Velux Fenster, Honeywell EvoHome Heizungssteuerung + Buderus Öl&Solaranlage mit KM100.

Fhem ist die Zentrale Steuereinheit auf 2 wandmontierten Touchpads.

Wernieman

- Was steht im FHEM Logfile, wenn Du startest?
- Läuft es mit der demo-config?

Du kennst: https://wiki.fhem.de/wiki/FHEM_startet_nicht_-_Tipps_zur_Fehlersuche
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

desasterguy

#2
Hallo Wernieman,

Du kennst: https://wiki.fhem.de/wiki/FHEM_startet_nicht_-_Tipps_zur_Fehlersuche -> ja, ist bekannt.

Hier der Output aus meinem bescheidenen Versuch.
macmini@Macmini ~ % ps ax | grep perl
1527 s000  R+     0:00.00 grep perl
macmini@Macmini ~ % service fhem status
zsh: command not found: service

--> Ich würde sagen FHEM läuft garnicht.



- Was steht im FHEM Logfile, wenn Du startest?
Wenn damit in meinem Fall die Datei fhem-2022-12.log gemeint ist die im FHEM im Ordner log abgelegt wird, sehe ich keine Fehlermeldung die mich weiter bringt.

Das Log fängt so an:
2022.12.13 08:56:01 1: Including fhem.cfg
2022.12.13 08:56:01 3: WEB: port 8083 opened
2022.12.13 08:56:01 2: eventTypes: loaded 2530 lines from ./log/eventTypes.txt
2022.12.13 08:56:01 1: HMCCU [ccu3] CCU port 8181 is reachable
2022.12.13 08:56:01 1: HMCCU [ccu3] Initialized version 5.0 222930908
2022.12.13 08:56:01 1: HMCCU [ccu3] Initializing device
2022.12.13 08:56:01 2: HMCCU [ccu3] Deleting old CCU configuration data
2022.12.13 08:56:01 2: HMCCU [ccu3] Updating device table
2022.12.13 08:56:01 1: HMCCU [ccu3] Can't read virtual groups from CCU. Response:
2022.12.13 08:56:01 1: HMCCU [ccu3] Read 28 devices with 216 channels from CCU 192.168.17.33
2022.12.13 08:56:01 1: HMCCU [ccu3] Read 6 programs from CCU 192.168.17.33
2022.12.13 08:56:01 1: HMCCU [ccu3] Read 0 virtual groups from CCU 192.168.17.33
2022.12.13 08:56:01 2: HMCCURPCPROC [d_rpc017033BidCos_RF] CCU interface BidCos-RF supports RPC multicalls

und hört viele Zeilen später so auf:
2022.12.13 08:56:05 3: tahoma_pod_0: unknown device=internal://1207-2284-2423/pod/0, subtype=DEVICE
2022.12.13 08:56:05 3: tahoma_stack: I/O device is tahoma2
2022.12.13 08:56:05 3: tahoma_stack: unknown device=homekit://1207-2284-2423/stack, subtype=DEVICE
2022.12.13 08:56:05 0: Featurelevel: 6.1
2022.12.13 08:56:05 0: Server started with 563 defined entities (fhem.pl:26775/2022-12-04 perl:5.018004 os:darwin user:macmini pid:1512)
2022.12.13 08:56:05 2: fb1 MISSING: set fb1 password
Can't use string ("1") as a HASH ref while "strict refs" in use at fhem.pl line 4842.

Ich hoffe, dass ich hier an der richtigen Stelle schaue...

Zu deiner Frage bezüglich demo-config:
Mir war bis zu deiner Frage garnicht bewusst, dass es dies gibt. Wie kann ich FHEM auf die Demo-Config verweisen?
Wenn es damit gehen würde, würde es bedeuten, dass sich der Fehler in der cfhem.cfg befindet?

Fragen über Fragen....  :-[




2 x respbarry pi4, Somfy Tahoma, Philips HUE, Amazon Alexa, Homematic, elektr. Velux Fenster, Honeywell EvoHome Heizungssteuerung + Buderus Öl&Solaranlage mit KM100.

Fhem ist die Zentrale Steuereinheit auf 2 wandmontierten Touchpads.

binford6000


Beta-User

Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

betateilchen

Zitat von: desasterguy am 13 Dezember 2022, 09:14:39
macmini@Macmini ~ % service fhem status
zsh: command not found: service

--> Ich würde sagen FHEM läuft garnicht.

ich würde sagen, Dein Mac kennt einfach den Befehl "system" nicht (was normal ist)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Sailor

Moin

Ich muss gestehen, dass dieser Fehler unter Anderem bei der 73_km200.pm kleiner Version 26850 auftritt.

Der Unterschied ist

my ($hash) = @_; versus my $hash = @_;

Letzterer Ausdruck führt bei manchen Usern zum Absturz. Allerdings nicht bei allen.
Deswegen war die Fehlersuche auch so schwer... Bei mir liefen beide Ausdrücke.
Mit dem Fix in Version 26850 scheint es bei Allen zu laufen.

Dumm nur, dass die Fehlermeldung auf fhem.pl line 4842. verweist und nicht auf mein 73_km200 - Modul.

Gruß
    Sailor
******************************
Man wird immer besser...

betateilchen

#7
my $hash = @_;

Mit dieser Zuweisung (ein array an einen scalar) steht in $hash anschließend die Anzahl der array-Elemente, aber nicht irgendein Wert aus dem array selbst.

Die Fehlermeldung/der Absturz wird auch nicht durch diese Zuweisung selbst verursacht, sondern durch den im Fortgang erfolgenden Versuch, die Variable $hash auch tatsächlich als hash zu verwenden. Steht ja auch klar in der Fehlermeldung:

Can't use string ("1") as a HASH ref while "strict refs" .../code]

--
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Sailor

Hallo Udo

Zitat von: betateilchen am 13 Dezember 2022, 11:16:43
Mit dieser Zuweisung (ein array an einen scalar) steht in $hash anschließend die Anzahl der array-Elemente, aber nicht irgendein Wert aus dem array selbst.

OK ist verstanden, aber warum funktioniert dies bei über der Hälfte der User und bei der anderen Hälfte nicht.

Gruß
    Sailor
******************************
Man wird immer besser...

desasterguy

#9
Hallo in die Runde,

erst mal ein Dankeschön für die ganzen Feedbacks!
Also stand in der log doch der gesuchte Fehler nur habe ich es nicht erkannt. Was mich auch nicht wundert als "Anwender".

Zwei Fragen tun sich jetzt auf:  ;D

1. wie kann ich ein Update ausführen und dabei ein Modul ausschließen?
2. bedeutet das dann für mich, dass ich beim KM200 keine Updates mer aufspielen kann oder wird der Bug im "Hintergrund" gefixt? Tut mir leid wenn die Antwort auf meine Frage schon in der Unterhaltung inkludiert war. Ich habe es zumindest nicht rauslesen können.

VG Tim
2 x respbarry pi4, Somfy Tahoma, Philips HUE, Amazon Alexa, Homematic, elektr. Velux Fenster, Honeywell EvoHome Heizungssteuerung + Buderus Öl&Solaranlage mit KM100.

Fhem ist die Zentrale Steuereinheit auf 2 wandmontierten Touchpads.

Wernieman

1. Forumssuche: https://forum.fhem.de/index.php?topic=38344.0
2. Sailor hat doch schon geschrieben, das er dran arbeitet ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

betateilchen

Der Fehler ist schon behoben, eine aktualisierte Version kommt morgen per regulärem Update.

Alternativ könnte man die korrigierte Version jetzt schon aus SVN holen und manuell installieren,
aber als unbedarfter Anwender sollte man besser die Geduld bis morgen aufbringen.

Zitat von: desasterguy am 13 Dezember 2022, 11:56:49
1. wie kann ich ein Update ausführen und dabei ein Modul ausschließen?

Generell gibt es ein Attribut, um Dateien vom Update auszuschließen.
Aber mach das update einfach erst morgen, dann brauchst Du nix ausschließen.


---
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: Sailor am 13 Dezember 2022, 11:48:37
OK ist verstanden, aber warum funktioniert dies bei über der Hälfte der User und bei der anderen Hälfte nicht.

Ich glaube ehrlich gesagt nicht, dass das wirklich bei irgendjemandem so funktioniert hat, wie es eigentlich gedacht ist.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

desasterguy

Zitat von: betateilchen am 13 Dezember 2022, 12:07:02
Der Fehler ist schon behoben, eine aktualisierte Version kommt morgen per regulärem Update.

Alternativ könnte man die korrigierte Version jetzt schon aus SVN holen und manuell installieren,
aber als unbedarfter Anwender sollte man besser die Geduld bis morgen aufbringen.

Generell gibt es ein Attribut, um Dateien vom Update auszuschließen.
Aber mach das update einfach erst morgen, dann brauchst Du nix ausschließen.


---

Danke für die Rückmeldungen. Ja, ich habe Geduld.
Darf jetzt mein Tablet Ui nochmal aus alten Schnipsel zusammenkleben. Das hatte es auch verhauen warum auch immer.
Und statt zu Fragen (was ich ja jetzt zum Glück gemacht habe) habe ich erst mal einen Tag rumgedoktert und die aktuelle Version des UI komplett zerschossen.  ::)
Kleiner Lichtblick -> lernen durch Schmerz hat mich dazu gebracht ab und zu Backups zu machen
Aber die große Erleuchtung, ein Backup vor jedem Update zu machen, war leider noch nicht dabei.
Und weiter geht es auf dem Pfad -> lernen durch Schmerz  :)


2 x respbarry pi4, Somfy Tahoma, Philips HUE, Amazon Alexa, Homematic, elektr. Velux Fenster, Honeywell EvoHome Heizungssteuerung + Buderus Öl&Solaranlage mit KM100.

Fhem ist die Zentrale Steuereinheit auf 2 wandmontierten Touchpads.

Otto123

#14
Zitat von: desasterguy am 13 Dezember 2022, 08:31:55
Ich habe jetzt eine ältere Sicherheitskopie eingesetzt die wieder funktioniert.
Es ist ja scheinbar alles wieder im Lot, trotzdem noch der Hinweis:

FHEM schreibt vor dem update die Dateien weg die durch das update überschrieben werden.

Man kann also im Normalfall immer relativ zügig auf den Stand vorm Update zurück - leider ist das wenig bekannt.
Die Pfade können auf dem Mac anders sein, aber vom Prinzip her:
Schauen was da ist:
ls /opt/fhem/restoreDir/update
Die Pfad-Angabe YYYY-MM-DD durch das gewünschte Datum ersetzen:
sudo -su fhem cp -R /opt/fhem/restoreDir/update/YYYY-MM-DD/* /opt/fhem/

Falls FHEM noch läuft, aber ein Modul spinnt, kann man es auch in FHEM machen:
help restore oder hier 
https://wiki.fhem.de/wiki/Update#R.C3.BCcksichern_beim_Update_.C3.BCberschriebener_Dateien

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

desasterguy

Hallo Otto,

danke für den Hinweis. Hätte bestimmt auch funktioniert, wenn ich nicht schon den ganzen Ordner paar mal neu erstellt hätte. Da hätte eine Nagelschere genügt, ich habe zur Axt gegriffen.  ::)

Um aber für die Zukunft besser gerüstet zu sein finde ich das Bewustsein um diese Funktion sehr wichtig.
Meine alte FHEM Konfiguration konnte ich so aus dem alten Ordner der noch im "Papierkorb" war extrahieren.

Was aber interessant ist, auch bei den Backups die FHEM gemacht hatte, war wohl der Ordner "tabelt" der im Ordner "www" liegt nicht mit gesichert worden. Kümmert sich das automatische Backup (nur) um seine Hauptdateien und ignoriert Extras wie in meinem Fall Tablet-UI ?

VG Tim
2 x respbarry pi4, Somfy Tahoma, Philips HUE, Amazon Alexa, Homematic, elektr. Velux Fenster, Honeywell EvoHome Heizungssteuerung + Buderus Öl&Solaranlage mit KM100.

Fhem ist die Zentrale Steuereinheit auf 2 wandmontierten Touchpads.

Otto123

wir reden über zwei Dinge:

  • Automatisch vorm update werden alle Moduldateien die aktualisiert werden und config Dateien sowie stateFile gesichert, es wird vorher kein automatisches save ausgeführt!
  • Das Kommando backup: sichert meines Wissens alles im Pfad (z.B.  /opt/fhem) außer den backup Pfad (damit kein rekursives Backup entsteht).
Es gibt eine global "Option" backup_before_update, die führt dann bei update zusätzlich zu 1. noch 2. aus.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz