db.conf für LogDB mit configDB

Begonnen von Firefield, 10 Juni 2021, 17:51:59

Vorheriges Thema - Nächstes Thema

Firefield

Hi,
ich habe wieder einmal ein Problem, bei dem ich nicht weiterkomme.
...tl;dr ist -> wie ändere ich ein configfile in der configDB? Oder wie lad ich ein neues hoch?

Nachdem ich ,neulich' beim fhem Update die heating controls verloren hatte bin ich nun auf die Idee gekommen fhem mit proxmox in eine VM mit Debian zu stecken und die Datenbank in eine zweite VM, ebenfalls mit Debian.
Hat soweit auch geklappt, wenn man von einigem straucheln absieht, was aber eher an nicht so dollen Linuxkenntissen liegt: ConfigDB gesichert, logDB in 5Mio Datensaztschnipseln, was ich dann auch wieder importieren kann.
ConfigDB ist schon in der DB-VM angelegt, importiert und läuft.
Haken ist gerade die logDB, da kommt als Meldung

DbLog MariaDB DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) at ./FHEM/93_DbLog.pm line 3314.

Was die Fehlermeldung mir sagen will ist mir klar, warum die kommt auch. Im db.conf file steht noch host=localhost. Bloß an der Stelle wo das File liegt /opt/fhem/db.conf , was beim def dann ./db.conf ist, ist die richtige Adresse von der DB-VM eingetragen.
Internals dblog:

COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION ./db.conf
DEF ./db.conf .*:(battery|setpointTemp...stallvoll...|fertility|rain_hour).*
FUUID 5ede9749-f33f-944d-7885-ce0d7069707d6262
FVERSION 93_DbLog.pm:v4.12.3-s24440/2021-05-15
MODE synchronous
MODEL MYSQL
NAME MariaDB
NR 99
NTFY_ORDER 50-MariaDB
PID 579
REGEXP .*:(battery|setpointTemp....stallvoll...ux|moisture|fertility|rain_hour).*
STATE connected
TYPE DbLog
UTF8 0
dbconn mysql:database=fhem;host=localhost;port=3306
dbuser fhemuser


Inhalt /opt/fhem/db.conf

%dbconfig= (
connection => "mysql:database=fhem;host=192.168.178.64;port=3306"
user => "fhemuser",
passwort => "xxxx",
utf8 => 1
);

Hatte dann ein db1.conf erstellt und wollte den Namen in der DEF ändern, bekam dann aber die Meldung

Error on reading ./db1.conf from database!


Da ist mir dann aufgegangen, dass fhem die Datei aus der configDB liest.
Langer Text kurze Frage: wie ändere ich ein configfile in der Datenbank? Oder wie lad ich ein neues hoch?

Gigabyte GB-BACE-3150, 8GB RAM, 120GB SSD, Proxmox mit FHEM-VM und DB-VM| (ab und an aktuelles) FHEM mit ConfigDB+LogDB. MariaDB + phpmyadmin. | Zwave.me USB dongle, Jeelink, HM, BTLE und HUEbridge.

Beta-User

Hm, eigentlich sollte als fallback dann auch aus dem Filesystem gelesen werden, komisch...

Jedenfalls kann man mit den configDB-Befehlen auch files importieren, und ggf. auch direkt in FHEMWEB editieren, wenn sie sichtbar sind. Kommt mir so vor, als wäre da noch irgendwas anderes schräg (Rechte?).
Server: HP-elitedesk@Debian 12, 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

Firefield

mmh, ich hab nun die config in /contrib/dblog kopiert und von da aus mit dem 'copypastedefine'

define logdb DbLog ./contrib/dblog/db.conf .*:.*
ergebnis: Error on reading ./contrib/dblog/db.conf from database!

nächster versuch war per phpmyadmin ein file in fhemb64filesave abzulegen. das hat auch geklappt. Da kommt dann als Fenster mit 'could not read connection' im log mit verbose 5 ist da allerdings nichts anders. Dachte dann ich hab da irgendwas falsch getippt und dann noch ein file hochgeladen mit dem user für die die configdb, denn der funktioniert ja. Ergebnis ist aber dasselbe  :(
bin in einer kleinen sackgasse
Gigabyte GB-BACE-3150, 8GB RAM, 120GB SSD, Proxmox mit FHEM-VM und DB-VM| (ab und an aktuelles) FHEM mit ConfigDB+LogDB. MariaDB + phpmyadmin. | Zwave.me USB dongle, Jeelink, HM, BTLE und HUEbridge.

Firefield

nach mal drüber schlafen hab ich nun nen weg gefunden.
zurück zu fhem.cfg, file ändern und wieder migrate configDB
das file für die connection zur mariadb vm hat auf anhieb funktioniert, hatte also keinen vertipper oder sonstige fehler drinne.

nach der migration hab ich dann aus neugier nochmal in der fhemb64filesave geschaut was da jetzt an filename gelandet ist, bloß um zu merken, dass ich die dateierweiterung vergessen hatte. dh ich hatte es ohne .conf abgelegt...kein wunder also :o ??? ::) :-[

  ;D ;D
Gigabyte GB-BACE-3150, 8GB RAM, 120GB SSD, Proxmox mit FHEM-VM und DB-VM| (ab und an aktuelles) FHEM mit ConfigDB+LogDB. MariaDB + phpmyadmin. | Zwave.me USB dongle, Jeelink, HM, BTLE und HUEbridge.

betateilchen

Zitat von: Firefield am 10 Juni 2021, 17:51:59
Langer Text kurze Frage: wie ändere ich ein configfile in der Datenbank? Oder wie lad ich ein neues hoch?

Der einfachste Weg wäre gewesen, die Datei mit "configdb fileexport <Dateiname>" aus der configDB in das Filesystem zu exportieren.
Dann kann die Datei nach Belieben geändert werden, anschließend wird die geänderte Datei dann wieder mit "configdb filemove <Dateiname>" in die Datenbank verschoben.

Bei diesem Vorgehen wäre der Fehler mit dem Dateinamen (vergessene Dateiendung) vermutlich sofort aufgefallen.

Bei mir werden die .cfg Dateien, die ich für DbLog verwende, in FHEMWEB unter "Edit files" aufgeführt und können somit direkt in FHEM bearbeitet werden.
Dazu ist in der FHEMWEB Instanz das entsprechende Attribut editFileList gesetzt:


attr web editFileList Own modules and helper files:$MW_dir:^(.*sh|[0-9][0-9].*Util.*pm|.*cfg|.*holiday|myUtilsTemplate.pm|.*layout|.*tpl)$\
gplot files:$FW_gplotdir:^.*gplot$

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

Firefield

danke für die info, das ist in der tat einfacher. in dem fall befand sich das problem wieder vor dem bildschirm. hatte zwar die commandref gefunden, dachte aber das ist dann ein 'device' mit namen cofigdb bzw den ich dachte dem teil eben verpasst zu haben. da hab ich dann gedanklich dblog und configdb in einen topf geworfen und mich gewundert, dass ich da die optionen beim set nicht finde  :o 
ists wirklich so, dass configdb kein device in dem sinne ist das man findet? Oder überseh ich da noch was?
Gigabyte GB-BACE-3150, 8GB RAM, 120GB SSD, Proxmox mit FHEM-VM und DB-VM| (ab und an aktuelles) FHEM mit ConfigDB+LogDB. MariaDB + phpmyadmin. | Zwave.me USB dongle, Jeelink, HM, BTLE und HUEbridge.

betateilchen

Zitat von: Firefield am 12 Juni 2021, 14:23:48
ists wirklich so, dass configdb kein device in dem sinne ist das man findet?

Ja, das ist tatsächlich so. Es gibt ja schließlich kein "define... " dafür.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!