configDB mit Pi4 Bookworm und MariaDB 10.11.3

Begonnen von khk123, 06 August 2023, 12:43:15

Vorheriges Thema - Nächstes Thema

khk123

Hat jemand configDB auf einem Pi4 mit Bookworm und MariaDB 10.11.3 am Laufen?

Bei mir gibt es in einer neu aufgesetzen und relativ nackten FHEM-Installation das Problem, dass FHEM zwar startet, aber dann hängen bleibt.
Ein configDB migrate lief anstandslos.
Starting migration...
Processing: database initialization
Processing: save config
Processing: save state
Processing: fileimport
importing: ./log/eventTypes.txt
importing: ./www/gplot/template.gplot
importing: ./www/gplot/templateDB.gplot
importing: ./FHEM/template.layout
importing: /opt/fhem/db.conf
importing: ./FHEM/FhemUtils/uniqueID
Migration completed

-----------------------------------------------------------------
 configDB Database Information
-----------------------------------------------------------------
 d:$Id: configDB.pm 27560 2023-05-12 19:51:55Z betateilchen $
 c:unknown
-----------------------------------------------------------------
 dbconn: mysql:database=fhem;host=127.0.0.1;port=3306
 dbtype: MYSQL
-----------------------------------------------------------------
 loaded:       
 lastReorg:   
 config:       41 entries

 Ver 1 saved: by cfgDB_Init  def: 3 attr: 6
-----------------------------------------------------------------
 filesave: 7 files stored in database
-----------------------------------------------------------------


Aber der folgende Start mit configDb ergibt einen Timeout:
sudo systemctl start fhem
Job for fhem.service failed because a timeout was exceeded.
See "systemctl status fhem.service" and "journalctl -xeu fhem.service" for details.

systemctl status fhem.service
● fhem.service - FHEM Home Automation
     Loaded: loaded (/etc/systemd/system/fhem.service; enabled; preset: enabled)
     Active: activating (start) since Sun 2023-08-06 12:17:01 CEST; 8s ago
Cntrl PID: 2060 (perl)
      Tasks: 1 (limit: 3932)
        CPU: 461ms
     CGroup: /system.slice/fhem.service
             └─2060 /usr/bin/perl fhem.pl configDB

Aug 06 12:17:01 fhem42t systemd[1]: Starting fhem.service - FHEM Home Automation...
Aug 06 12:17:02 fhem42t perl[2060]: 2023.08.06 12:17:02 0: Featurelevel: 6.2
Aug 06 12:17:02 fhem42t perl[2060]: 2023.08.06 12:17:02 0: Server started with 1 defined entities (fhem.pl:27750/2023-07-11 perl:5.036000 os:linux user:fhem pid:2060)

Noch ein Hinweis: Mit SQlite funktioniert alles.

Viele Grüße
Karlheinz
FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa

rudolfkoenig

Ich wuerde als naechstes aus dem Terminal "perl fhem.pl -d configDB" absetzen, und hoffen, dass im Log mehr zu ehen ist.

khk123

Da kommt leider auch nicht viel mehr. Mir fällt allerdings auf, dass immer die Meldung "Server started with 1 defined entities" kommt.
Sollten da nicht alle definierten Devices gezählt sein?

perl fhem.pl -d configDB
2023.08.07 10:52:15 5: Loading ./FHEM/99_SUNRISE_EL.pm
2023.08.07 10:52:15 5: Loading ./FHEM/99_Utils.pm
2023.08.07 10:52:15 5: Initializing Type Library:
2023.08.07 10:52:15 4: configDB read config
2023.08.07 10:52:15 4: configDB reading file: .fhem.save
2023.08.07 10:52:15 4: configDB read state .fhem.save
2023.08.07 10:52:15 5: Cmd: >setstate global no definition<
2023.08.07 10:52:15 5: Starting notify loop for global, 1 event(s), first is INITIALIZED
2023.08.07 10:52:15 5: createNotifyHash
2023.08.07 10:52:15 5: End notify loop for global
2023.08.07 10:52:15 0: Featurelevel: 6.2
2023.08.07 10:52:15 0: Server started with 1 defined entities (fhem.pl:27750/2023-07-11 perl:5.036000 os:linux user:pi42t pid:1588)

Die Tabelle fhemconfig sieht eigentlich nach dem "configDB migrate" gut aus (s. anh. Bild).

Bzgl. sqlite muss ich mich aber korrigieren. Der Start zeigt das gleiche Verhalten wie mit MariaDB. Was aber funktioniert ist dbLog.Du darfst diesen Dateianhang nicht ansehen.

FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa

betateilchen

#3
Zitat von: khk123 am 07 August 2023, 14:00:08Bzgl. sqlite muss ich mich aber korrigieren. Der Start zeigt das gleiche Verhalten wie mit MariaDB. Was aber funktioniert ist dbLog.

Zuallererst: configDB und DbLog haben absolut nichts miteinander zu tun.

Deine Installation hat das Problem vermutlich hier:

2023.08.07 10:52:15 4: configDB read config
2023.08.07 10:52:15 4: configDB reading file: .fhem.save
2023.08.07 10:52:15 4: configDB read state .fhem.save
2023.08.07 10:52:15 5: Cmd: >setstate global no definition<
2023.08.07 10:52:15 5: Starting notify loop for global, 1 event(s), first is INITIALIZED

Da wird versucht, das statefile zur geladenen Konfiguration zu lesen, aber der Name .fhem.save passt eigentlich überhaupt nicht. Darüber, wie sowas auftritt, muss ich erstmal nachdenken.

Andererseits wurde das global device angelegt und eine passende Zeile (setstate...) aus dem statefile gelesen.
Danach wird das "global:INITIALIZED" getriggert.

ZitatMir fällt allerdings auf, dass immer die Meldung "Server started with 1 defined entities" kommt.
Sollten da nicht alle definierten Devices gezählt sein?

Naja, das einzige device, das geladen wird, ist das global device. Deshalb hat Dein FHEM nur 1 entity.

Es gibt in Deinem Screenshot mit der Tabelle auch noch ein paar Ungereimtheiten, aber das wird dann die zweite Analyse.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

#4
Teste mal bitte mit der angehängten Version der configDB.pm

  • vorhandene configDB.pm in /opt/fhem ersetzen
  • FHEM nochmal mit fhem.cfg neustarten
  • "configdb migrate" nochmal ausführen
  • danach bitte mit "perl fhem.pl -d configDB" nochmal testen, ob FHEM korrekt startet
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

khk123

Zitat von: betateilchen am 07 August 2023, 14:36:04Zuallererst: configDB und DbLog haben absolut nichts miteinander zu tun.
Das ist mir schon klar. Sollte auch nur der Hinweis sein, dass MariaDB funktioniert.

Hab deine Anweisungen befolgt und es läuft wieder.  :) Zur Info aus den Start-Msgs habe ich einige Meldungen entfernt. Hab jetzt auch wieder über systemctl gesartet und alles ist ok.

Bin ja neugierig, woran lag es denn?

Besten Dank für die schnelle Lösung.


Starting migration...
Processing: database initialization
Processing: save config
Processing: save state
Processing: fileimport
importing: ./log/eventTypes.txt
importing: ./www/gplot/template.gplot
importing: ./www/gplot/templateDB.gplot
importing: ./FHEM/template.layout
importing: /opt/fhem/db.conf
importing: ./FHEM/FhemUtils/uniqueID
Migration completed

-----------------------------------------------------------------
 configDB Database Information
-----------------------------------------------------------------
 d:$Id: configDB.pm 27560 2023-05-12 19:51:55Z betateilchen $
 c:unknown
-----------------------------------------------------------------
 dbconn: mysql:database=fhem;host=127.0.0.1;port=3306
 dbtype: MYSQL
-----------------------------------------------------------------
 loaded:       64387a12c589bfa39d3da1a4e33f4a22
 lastReorg:   
 config:       42 entries

 Ver 0 saved: Mon Aug  7 17:52:31 2023 def: 6 attr: 19
 Ver 1 saved: by cfgDB_Init  def: 3 attr: 6
-----------------------------------------------------------------
 filesave: 9 files stored in database
-----------------------------------------------------------------

perl fhem.pl -d configDB
2023.08.07 17:53:48 5: Cmd: >attr global userattr DbLogExclude:textField-long DbLogInclude:textField-long DbLogValueFn:textField-long cmdIcon devStateIcon:textField-long devStateStyle icon sortby webCmd webCmdLabel:textField-long widgetOverride<
2023.08.07 17:53:48 5: Cmd: >attr global autoload_undefined_devices 1<
2023.08.07 17:53:48 5: Cmd: >attr global logfile ./log/fhem-%Y-%m.log<
2023.08.07 17:53:48 5: Cmd: >attr global modpath .<
2023.08.07 17:53:48 5: Loading ./FHEM/99_SUNRISE_EL.pm
2023.08.07 17:53:48 5: Loading ./FHEM/99_Utils.pm
2023.08.07 17:53:48 5: Cmd: >attr global statefile ./log/fhem.save<
2023.08.07 17:53:48 5: Cmd: >attr global verbose 3<
2023.08.07 17:53:48 5: Initializing Type Library:
2023.08.07 17:53:48 4: configDB read config 64387a12c589bfa39d3da1a4e33f4a22
2023.08.07 17:53:48 4: configDB reading file: 64387a12c589bfa39d3da1a4e33f4a22.fhem.save
2023.08.07 17:53:48 4: configDB read state 64387a12c589bfa39d3da1a4e33f4a22.fhem.save
2023.08.07 17:53:48 5: Cmd: >attr global userattr DbLogExclude:textField-long DbLogInclude:textField-long DbLogValueFn:textField-long cmdIcon devStateIcon:textField-long devStateStyle icon sortby webCmd webCmdLabel:textField-long widgetOverride<
2023.08.07 17:53:48 5: Cmd: >attr global autoload_undefined_devices 1<
2023.08.07 17:53:48 5: Cmd: >attr global logfile ./log/fhem-%Y-%m.log<
2023.08.07 17:53:48 5: Cmd: >attr global modpath .<
2023.08.07 17:53:48 5: Cmd: >attr global statefile ./log/fhem.save<
2023.08.07 17:53:48 5: Cmd: >attr global verbose 3<
2023.08.07 17:53:48 5: Cmd: >define LogDatabase DbLog /opt/fhem/db.conf .*<
2023.08.07 17:53:48 5: Loading ./FHEM/93_DbLog.pm
.
.
.
2023.08.07 17:53:57 0: Featurelevel: 6.2
2023.08.07 17:53:57 0: Server started with 6 defined entities (fhem.pl:27750/2023-07-11 perl:5.036000 os:linux user:pi42t pid:2795)
FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa

khk123

FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa

betateilchen

Zitat von: khk123 am 07 August 2023, 18:15:48Besten Dank für die schnelle Lösung.

Danke für die schnelle Rückmeldung, dann werde ich die Korrektur heute noch einchecken, damit sie morgen auch per update verteilt wird.

Zitat von: khk123 am 07 August 2023, 18:15:48Bin ja neugierig, woran lag es denn?

Es war ein Fehler, der nur bei einer Migration auftreten konnte.
Ursache dafür war eine Änderung, die ich vor ca. 18 Monaten gemacht hatte.

Interessant finde ich, dass es bisher niemandem aufgefallen war.

Obwohl: vielleicht ist es auch in der Vergangenheit schon bei Anwendern aufgetreten, die eine Migration versucht haben.
Aber sie kamen nicht auf den Gedanken, das Problem hier im Forum zu melden.

Die Folge: Fehler, die ich nicht kenne, kann ich nicht beheben :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

khk123

War auch meine erste Neuinstallation seit geraumer Zeit. Meist gab es nur ein Restore eines Backups. Und ja: Fehler, die nicht gemeldet werden, kann man nicht beheben.  :) 

Danke nochmal für den schnellen Support! ;D
FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa