Umzug einer FHEM Installation mit configDB und DBlog auf anderen Rechner

Begonnen von Pyrphoros, 17 September 2017, 22:37:41

Vorheriges Thema - Nächstes Thema

Pyrphoros

Hallo,

erst einmal ein Hallo an alle Mitglieder hier und auch ein Danke an alle. Ich lese hier schon eine ganz Weile in aller Stille mit und mir wurde hier schon öfters geholfen.

Ich bin die letzten Tage allerdings schier Wahnsinnig geworden. Leider habe ich trotz allen stöbern hier im Forum nichts gefunden, also frage ich jetzt einfach mal.

Ausgangssituation:
Ich wollte meine funktionierende FHEM Installation nach Docker umziehen. Soweit so gut, Docker läuft mittlerweile mit FHEM drinnen, nur nicht ganz so wie ich wollte.
Ich muss dazu sagen ich benutze sowohl die configDB als auch DBlog auf MySQL zum halten der Daten, was auch bisher tadellos funktioniert hat.
Blauäugig wie ich war habe ich angenommen, das ich mittels einer Sicherung das System einfach umziehen kann, aber das funktioniert leider nicht.
Ich habe die configDB.conf sowie die db.conf angepasst und habe die Datenbank im DockerContainer neu installiert und einen Restore gefahren. FHEM startet mit folgender Meldung:

looking for table: fhembinfilesave
testing: #1
found: `configDB`.`fhemb64filesave`
found: `configDB`.`fhemconfig`
found: `configDB`.`fhemstate`
found: `configDB`.`fhemversions`
table not found


und beendet sich sofort danach wieder. Keine weiteren Meldungen, nichts. (nebenbei, die Meldung "table not found" irritiert total bis ich endlich im Forum herausgefunden habe das die wohl normal ist). Ich habe dann angefangen schleifen zu drehen, sprich:

  • ohne Datenbank starten -> klappt
  • nur mit DBlog -> klappt
  • mit frischer configDB -> klappt
  • und so weiter ..
Um das ganze etwas abzukürzen, es haut mit beiden Datenbanken einfach nicht hin. Irgendetwas scheint in der configDB drinnen zu stehen was das System augenblicklich wieder stoppt.
Ich war auch nicht in der Lage "verbose" auf 5 zu setzen. Ich habe das dann von Hand in der Datenbank gemacht, hat aber nichts bewirkt.
Ohne Docker konnte ich ein neues FHEM mit der configDB starten, nur die DBlog konnte ich nicht aktivieren, weil in der alten Datei als host der localhost angegeben war, nur mittlerweile sollte da eine IP stehen. Auf dem Dateisystem habe ich alles korrekt geändert, nur die Änderungen ziehen nicht.
Ich habe es direkt im LogDevice mit rereadcfg probiert, habe in der configdb die db.conf gelöscht und neu importiert. Hatte den gleichen Effekt als ob in China ein Sack Reis umkippt.
Ich gehe mal stark davon aus, das der Fehler zwischen meinen Ohren liegt, aber ich komme einfach nicht darauf. Nach dem Roman meine Fragen:

  • Wie bekomme ich geänderte Datenbank Parameter für die DbLog in die configDB?
  • Was könnte FHEM so schlagartig ohne Fehlermeldung beendet haben wenn ich meine alte configDB benutze, mit einer leeren hat es ja funktioniert.

Ich hoffe mal meine Schilderung war nicht zu wage, aber ich habe keine Logs (außer dem Schnipsel oben) welche ich hier anhängen könnte.

Ich hoffe einer von Euch hat eine Idee.

Gruß
Oliver

Pyrphoros

Ist meine Frage so schräg? Hat vielleicht jemand eine Idee?

Besonders würde mich interessieren wie ich die DBlog Konfiguration in der configDB ändern kann, über das Dateisystem funktioniert es zumindest nicht.

Gruß
Oliver

Amenophis86

Ich meine es gab mal einen ähnlichen Thread, wo configDB und DBLog sich gegenseitig behindert haben. Ansonsten kannst du zB Betateilchen, als Maintainer von configDB, oder DS_Starter, als mit Maintainer von DBLog, auf den Thread aufmerksam machen.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

KillRob

Hallo,

ich hatte ein ähnliches Verhalten als ich nach configDB migriert habe. Ich wollte MySQL und nicht SQLlite.
DBlog lief ohne Problem. Dafür gab es auch ein SQL-File zum erstellen der Datenbank und Tabellen.
configDB legt seine Struktur selbst an. Man muss nur die DB vorher erstellen und hier ist mir ein kleiner, inzwischen korrigierter, Fehler unterlaufen:
Zu wenig rechte auf der configDB. FHEM schmiert sofort ab und hat nicht eine Zeile im LOG hinterlassen :-(

Eine Frage zu deiner Docker Config:
Du verwendest IPs? 172.17.x.y ?
Die IPs sind dynamisch. Es sollte lieber mit "--link" und der Kennung der DB laufen. So habe ich zumindest betreibe ich meine Web-Seiten...

Gruß
Robert

Pyrphoros

Meine Rechte auf den Datenbanken funktionieren bei mir, das ist kein Problem. Bis vor dem Umzug hat ja alles funktioniert, nur die Migration wollte nicht.
Mittlerweile läuft alles tadellos auf Docker, nur musste ich die Konfiguration halt manuell übertragen, das war ein gigantischer Aufwand, bei mir ist recht viel drinnen.

Was nach wie vor aussteht ist das Ändern der DBlog Konfiguration in der configDB. Das muss doch irgendwie möglich sein.

Was Docker betrifft, die Container laufen in einem eigenen Netzwerk und werden dort über die Container Namen referenziert, das funktioniert auch famos, keine Probleme damit.

Danke für den Hinweis, ich werde versuchen dort einmal nach zu fragen. Nur wie kann ich betateilchen auf diesen Thread aufmerksam machen?

Amenophis86

Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

CoolTux

PM geht bei Udo nicht, musst ne Mail senden. Einfach bei Udo seinem Profilbild auf den Briefumschlag klicken.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Amenophis86

Und ich dachte er hat PM wieder aktiviert. Hab extra geschaut bei ihm und gesehen, dass ich drauf klicken kann. Gerade mal getestet, Block Info kommt erst, wenn man auf senden klickt :) Aber ja, Email geht.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

DS_Starter

Nur mal als Idee, configDB habe ich nicht im Einsatz und kann es nicht testen.
Reicht nicht das geänderte db.conf in configDB neu zu mportieren ?

configdb fileimport ./db.conf

Grüsse
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Pyrphoros

leider hat das mit

configdb fileimport ...

nicht funktioniert, ich hatte sogar vorher die db.conf in der DB gelöscht, auch mittels des configdb Befehls. Nix zieht.

Ich probiere es mal via Email bei Betateilchen, ich hoffe er hat eine Idee, das kann so schwer ja nicht sein.

Gruß
Oliver

betateilchen

#10
Den Thread verfolge ich schon eine ganze Zeit, aber es sind einfach viel zu wenig Informationen, um wirklich helfen zu können.

Zitat von: Pyrphoros am 22 September 2017, 21:27:28
leider hat das mit
configdb fileimport ...
nicht funktioniert,


  • Was hat daran nicht funktioniert?
  • Konnte die Datei nicht importiert werden?
  • Gab es eine Fehlemeldung? Wenn ja - welche?
  • Wie sieht die DEF des dblog-devices aus?
  • Was liefert die Ausgabe von "configdb filelist"?
  • ...

Grundsätzlich haben configDB und DbLog datenbankseitig nichts miteinander zu tun, deshalb können sie sich auch nicht gegenseitig blockieren, wie hier im Thread schonmal vermutet.




Und das hier:

Zitat von: KillRob am 20 September 2017, 08:59:49
Zu wenig rechte auf der configDB. FHEM schmiert sofort ab und hat nicht eine Zeile im LOG hinterlassen :-(

erklärt sich durch ein bisschen Nachdenken von selbst. In welches LOG sollte FHEM irgendwas protokollieren, wenn während des Starts irgendwas schiefgeht und zu diesem Zeitpunkt logischerweise noch gar keine Log-devices existieren können...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

KillRob

Ich widerspreche nur ungern, aber wenn auf der configDB zu wenige Rechte sind und logDB schon seit Tagen funktioniert... und wie hier vom Entwickler geschrieben:
    Grundsätzlich haben configDB und DbLog datenbankseitig nichts miteinander zu tun, deshalb können sie sich auch nicht gegenseitig blockieren, wie hier im Thread schonmal vermutet.

Könnte man mit ein bisschen Nachdenken darauf kommen, dass FHEM in logDB eine Fehlermeldung schreibt!

betateilchen

oh, ein Popcorn-Thread, in dem mal wieder jeder meint, alles besser zu wissen. Na dann...

Dafür ist mir im Moment aber meine Zeit zu schade. Da geh ich lieber weiter Umzugskisten packen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Pyrphoros

Zitat von: betateilchen am 23 September 2017, 12:45:13
oh, ein Popcorn-Thread, in dem mal wieder jeder meint, alles besser zu wissen. Na dann...

Dafür ist mir im Moment aber meine Zeit zu schade. Da geh ich lieber weiter Umzugskisten packen.

Hi,

tut mir leid, ich weiß es wirklich nicht besser und ich habe die Anfrage ja ursprünglich gestellt.
Vergessen wir mal die Problem mit dem Umzug auf Docker, leider kann ich Dir keine weiteren Informationen geben, da ich wirklich keine habe. Das mit der configDB habe ich dadurch gelöst, das ich einfach eine neue erstellt habe und meine Daten von Hand übertragen, das läuft jetzt auch unter Docker vorzüglich. Ich habe zu dem Zeitpunkt noch mit IP Adressen gearbeitet. Für die configDB bin ich die bereits los geworden, nur für das Blog bekomme ich einfach nicht den Hostnamen statt der IP gesetzt.
Ich habe eine neue db.conf in das System Verzeichnis kopiert, die ist da und erhält die richtigen Daten.
Ich habe mit den configDB Befehlen fileimport die neue db.conf importiert und durchgestartet -> nix
Ich habe mittels der configDB Befehle die db.conf gelöscht, durchgestartet und danach neu importiert und wieder durch gestartet -> wieder nix

Der DbLog Eintrag in FHEM zeigt unter dbconn stets den selben Eintrag:
dbconn: mysql:database=fhemLogDB;host=192.168.100.12;port=3306

Es muss doch eine Möglichkeit geben diesen Eintrag zu ändern. Wie ich schon sagte, wahrscheinlich liegt der Fehler zwischen meinen Ohren. Hast Du bitte eine Idee wie ich das geändert bekomme ohne persönlich bei der Datenbank vorbei zu schauen und es von Hand zu ändern?

Da Du umzuziehen scheinst, alles Gute dafür.

Gruß
Oliver

DS_Starter

Hallo Oliver,

bis das eigentliche Problem gelöst ist, könnte ich dir anbieten eine DbLog-Version zur Verfügung zu stellen, bei der du über ein Attribut das Lesen der db.conf aus dem Dateisystem erzwingen könntest.
Dann hättest du zumindest erstmal die Möglichkeit die db.conf im Dateisystem so anzupassen wie benötigt, zu testen und in die DB zu loggen bis die Ursache bzw. Lösung für das eigentliche Problem gefunden ist, bzw. betateilchen den Umzugsstress hinter sich gelassen hat.

Wenn du das möchtest bzw. für dich sinnvoll ist, würde ich mich da mal dransetzen.

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Pyrphoros

Zitat von: DS_Starter am 23 September 2017, 15:45:20
Wenn du das möchtest bzw. für dich sinnvoll ist, würde ich mich da mal dransetzen.

Hallo Heiko,

also wenn Dir das nicht zu viel Aufwand ist gerne, ich war schon in der fhemconfig Tabelle nach dem Eintrag am suchen, habe ihn aber nichts außer einem Verweis auf die db.conf gefunden. Irgendwo müssen die Daten doch stehen.

Gruß
Oliver

betateilchen

#16
@Heiko: mach das bitte nicht. Es hilft nicht wirklich, das Problem zu lösen. Das Problem liegt weder an configDB noch an DbLog, sondern einfach in der Konfiguration der FHEM Installation selbst. Mit Deiner angebotenen "Spezialversion" machst Du die Fehlersuche noch schwieriger, weil es dann noch mehr Fehlerquellen gibt.

@Oliver: Ich würde Dir ja gerne helfen, aber das kann ich nicht wirklich, solange Du die von mir in meinem vorletzten Beitrag gestellten Fragen nicht beantwortest.

Und das mit dem Popcorn bezog sich nicht auf Dich, sondern auf den Klugscheißer vorher, der meinte, mich zurechtweisen zu müssen, was das Zusammenspiel zwischen configDB und DbLog angeht.



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

betateilchen

@Oliver:

Nochmal:

Zitat von: betateilchen am 23 September 2017, 12:11:54

  • Was hat daran nicht funktioniert?
  • Konnte die Datei nicht importiert werden?
  • Gab es eine Fehlemeldung? Wenn ja - welche?
  • Wie sieht die DEF des dblog-devices aus?
  • Was liefert die Ausgabe von "configdb filelist"
  • Was liefert die Ausgaeb von "list global"
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DS_Starter

Zitat@Heiko: mach das bitte nicht ...
ok, alles klar.
Dann lese ich mal interessiert mit...

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

betateilchen

Meine Vermutung ist, dass die Pfadangaben zwischen urpsrünglichem FHEM, der Docker Installation, dem Eintrag in der configDB filelist und dem DEF des dblog devices komplett durcheinander sind und deshalb eine völlig falsche db.conf geladen wird.

Aber um das belegen zu können, brauche ich Antworten auf die oben gestellten Fragen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Pyrphoros

Hallo,

tut mir leid, das meine Antwort sich hingezogen hat, ich war die letzten Tage stark gesundheitlich angeschlagen.

Zu den Fragen:

Generell habe ich mich an folgende Dokumentation der configDB gehalten: https://fhem.de/commandref.html#configdb


       
  • Was hat daran nicht funktioniert?
Es passiert einfach nichts, der Eintrag dbconn bleibt gleich

       
  • Konnte die Datei nicht importiert werden?
Nach einem configDB fileimport db.conf erhalte ich folgende Ausgabe:
127 bytes written from file ./db.conf to database
ansonsten passiert nichts

       
  • Gab es eine Fehlemeldung? Wenn ja - welche?
Keinerlei Meldung


       
  • Wie sieht die DEF des dblog-devices aus?


defmod logdb DbLog ./db.conf .*:.*
attr logdb DbLogSelectionMode Exclude/Include
attr logdb DbLogType Current/History
attr logdb asyncMode 1
attr logdb cacheLimit 200
attr logdb room Technik
attr logdb syncInterval 15



       
  • Was liefert die Ausgabe von "configdb filelist"

Files found in database: ------------------------------------------------------------
./db.conf
./FHEM/Feiertage.holiday
./FHEM/FhemUtils/uniqueID
./FHEM/template.layout
./log/eventTypes.txt
./www/gplot/SVG_logdb_1.gplot
./www/gplot/SVG_logdb_2.gplot
./www/gplot/SVG_logdb_3.gplot
./www/gplot/SVG_logdb_4.gplot
./www/gplot/SVG_logdb_5.gplot
./www/gplot/SVG_logdb_6.gplot
./www/gplot/SVG_logdb_7.gplot
./www/gplot/template.gplot
./www/gplot/templateDB.gplot



       
  • Was liefert die Ausgaeb von "list global"

Internals:
   DEF        no definition
   NAME       global
   NR         1
   STATE      no definition
   TYPE       Global
   currentlogfile ./log/fhem-2017-09-29.log
   logfile    ./log/fhem-%Y-%m-%d.log
Attributes:
   DbLogExclude .*
   autoload_undefined_devices 1
   autosave   1
   configfile configDB
   language   DE
   latitude   49.848044
   logfile    ./log/fhem-%Y-%m-%d.log
   longitude  7.850098
   modpath    .
   motd       SecurityCheck:

WEB,WEBgeofancy has no associated allowed device with basicAuth.
telnetPort has no associated allowed device with password/globalpassword.
Running with root privileges.
Restart FHEM for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.

   nofork     1
   perlSyntaxCheck 1
   room       Technik
   statefile  ./log/fhem.save
   updateInBackground 1
   userattr   DbLogExclude DbLogInclude cmdIcon devStateIcon devStateStyle genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,speaker,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon sortby webCmd webCmdLabel:textField-long widgetOverride
   verbose    4
   version    fhem.pl:15080/2017-09-17


Pyrphoros

So, nachdem ich es heute noch einmal mittels

configDB fileimport db.conf

probiert habe klappt es mit einem Male. Nach einem Restart werden die korrekten Parameter angezeigt. Einerseits gut das es jetzt funktioniert, andererseits total frustrierend da es nicht von Anfang an funktioniert hat und somit der Fehler nicht zu ermitteln ist.

@betateilchen
Ich hätte einen Wunsch.

Vielleicht könntest Du das mit der configDB so ändern, das zwar beim ersten Umstellen die Daten aus den Dateien ausgelesen werden, diese aber danach lesbar in die Datenbank geschrieben werden.
Das hätte den Vorteil, das diese ggf. mit Set Kommandos über das GUI geändert werden können und das eigentlich nicht mehr benutzte Dateien verschwinden können. Nur so als Idee.

Vielen Dank an alle die helfen wollten.

Gruß
Oliver

pc1246

Moin Oliver
Da ich mich ja auch gerade damit befasst habe. Du kannst doch jederzeit die Dateien aus der DB wieder zurueckholen, aendern und wieder einspielen!
Gib mal in die Kommandozeile von fhem "help configdb" ein. Dann siehst Du, welche Befehle es alles gibt. So habe ich eine Plotdatei repariert, die ich kaputtgespielt hatte!
Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

Pyrphoros

Zitat von: pc1246 am 05 Oktober 2017, 14:31:45
Moin Oliver
Da ich mich ja auch gerade damit befasst habe. Du kannst doch jederzeit die Dateien aus der DB wieder zurueckholen, aendern und wieder einspielen!
Gib mal in die Kommandozeile von fhem "help configdb" ein. Dann siehst Du, welche Befehle es alles gibt. So habe ich eine Plotdatei repariert, die ich kaputtgespielt hatte!
Gruss Christoph

Ja, das habe ich alles ausprobiert. Mittlerweile hat es ja geklappt, schhön wäre es nur zu wissen woher der Fehler kam, aber das liegt wohl in den Sternen.

Gruß
Oliver