Umsteig von fhem.cfg auf configDB

Begonnen von -Stefan-, 01 November 2014, 17:08:43

Vorheriges Thema - Nächstes Thema

-Stefan-

Hallo zusammen,

ich verstehe noch nicht ganz, wie ich einen Umstieg auf eine MYSQL DB realisiere.
Ich möchte mir ein einges Webpanel in PHP programmieren und da ist es einfach die Werte in der DB zu haben um mit diesen weiter zu arbeiten.

Nun weiß ich aber nicht genau, was für Tabellen ich ür FHEM anlegen muss.
Aus dem WIKI weiß ich, ich muss das DBLog aktivieren (define logdb DbLog ./db.conf .*:.* ) sowie  eine db.conf (
%dbconfig=

              on => "mysql:database=fhem;localhost=fhem;port=3306",
        user=> "xxx",
        password => "xxx",
);
)
anlegen.
Aber wie geht es dann weiter? Was für Tabellen muss ich anlegen?
Wenn ich einen neuen Aktor hinzufüge wird dieser dann automatisch in die DB geschrieben?

Vielen Dank,

MfG
Stefan

maxritti

#1
Schau mal hier:

http://fhem.de/commandref.html#DbLog

Die Suche nach *sql im FHEM Verzeichnis bringt dann das hier zu Tage:

/opt/fhem/contrib/dblog/db_create_postgresql.sql
/opt/fhem/contrib/dblog/db_create_mysql.sql
/opt/fhem/contrib/dblog/db_create_sqlite.sql


Ach ja. Und neue Aktoren werden mit aufgenommen, da Deine Definition des DbLog mit der RegExp .*:.* alles loggt.

-Stefan-

Vielen Dank für deine Antwort.
Okay, super nun habe ich die DB erstellt.
Die configDB im Hauotverzeichnis /opt/fhem  angelegt und den DBLog definiert.
Nun steht die ganze Zeit bei mir " STATE waiting for connection"
und im Log : 2014.11.01 19:17:01 3: Connecting to database mysql:database=fhem;host=localhost;port=3306 with user fhemuser

Nun wollte ich mit configdb migrate alles in die DB schreiben. Dabei kommt aber folgender fehler: "Unknown command UNDEFINED, try help. "

Wie geht es denn weiter?
MfG
Stefan

Puschel74

#3
Hallo,

wenn du dein FHEM in die Datenbank schieben willst würde ich im Einplatinencomputerbereich unter Sonstiges nach betateilchens Beiträgen dazu suchen.
Dafür hat er die ja erstellt  ;)

Grüße

Edith: Hier ist doch was http://fhem.de/commandref.html#configdb
Edith2: Unter Sonstiges gibt es sogar einen Beitrag der sich mit configDB und genau deiner Fehlermeldung befasst:
http://forum.fhem.de/index.php/topic,21639.msg151265.html#msg151265
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

-Stefan-

Hallo,


ja habe diesen Beitrag von ihm gefunden " http://forum.fhem.de/index.php?topic=26394.0".
Auf der Seite " http://fhem.de/commandref.html#configdb " war ich auch schon und bin ja nun bei dem Punkt "Migrate your existing fhem configuration into the database  / configdb migrate " Und genau da kommt dann der Fehler Unknown command UNDEFINED, try help.

Grüße Stefan

Puschel74

siehe mein Edith2 oben
Aber da du nicht von FileLog auf DBLog wechseln willst sondern von fhem.cfg auf configDB bitte den Betreff erstmal anpassen.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

-Stefan-

Also ich habe nun nochmal nachgeschaut.
In /opt/fhem befinden sich:
- configDB.conf 
- configDB.pm
- fhem.cfg 
- fhem.pl

Desweiteren kann ich auch das Modul 98_configdb.pm nicht laden
Fehler: Attempt to reload configDB.pm aborted.
Compilation failed in require at ./FHEM/98_configdb.pm line 8.
BEGIN failed--compilation aborted at ./FHEM/98_configdb.pm line 8.


Das Paket libdbd-mysql-perl ist bei mir installiert. Habe zur Sicherheit auch noch das sqlite3 Modul installiert.



maxritti

Und das laut Command Ref angegebene perl package Text::Diff hast du auch installiert?

betateilchen

Welches Modul genau fehlt, sollte sich im Logfile finden lassen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

-Stefan-

Genau, das Paket libtext-diff-perl  habe ich ebenfalls installiert.

Im Log steht nur ttempt to reload configDB.pm aborted.
Compilation failed in require at ./FHEM/98_configdb.pm line 8.
BEGIN failed--compilation aborted at ./FHEM/98_configdb.pm line 8.



Gruß
Stefan

Puschel74

Hallo,

jetzt wäre noch interessant wann du das letzte update gemacht hast  ::)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

betateilchen

Nö, mit dem Update hat das nix zu tun. Das Modul, das in Zeile 8 von 98_configdb.pm nicht geladen wird, ist das configDB.pm selbst - steht ja auch in der Fehlermeldung.


  • Wie sehen die Rechte auf die Dateien in /opt/fhem aus?
  • Hat die configDB.conf einen korrekten Inhalt?
  • Ist die Datenbank korrekt angelegt?


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

-Stefan-

Das letze Update habe ich vor ca. einer Woche duchgeführt.
Das Modul 98_configdb.pm  ist auf dem neusten Stand zumindest wird dies nicht aufgeführt wenn ich nach neuen Updates prüfe.

Gruß
Stefan

-Stefan-

#13
Meine configDB.conf:
################################################################
%dbconfig= (
        connection => "mysql:database=fhem;host=localhost;port=3306",
        user => "fhemusrr",
        password => "xxxx",
);
################################################################


Rechte sehen wie folgt aus:
fhem dialout   configDB.pm
fhem dialout   configDB.conf (hier hatte ich aber auch schon root:root und fhem:root versucht)

Ja, über phpmysql kann ich mich auf die Datenbank einlogen und beim anlegen trat kein Fehler auf.


Gruß Stefan


betateilchen

Hör doch mal bitte auf, Dir über 98_configdb.pm Gedanken zu machen, das ist doch überhaupt nicht das Problem bei Dir!

Dein Problem liegt in configDB.pm, das ist eine andere Moduldatei.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

-Stefan-

#15
Okay.
Habe nun mal den RPi neugestartet und nun kommt beim configdb migrate folgende Fehlermeldung im Log
:/home/pi# DBD::mysql::db do failed: CREATE command denied to user 'fhemuser'@'localhost' for table 'fhemversions' at configDB.pm line 190.
Can't use an undefined value as a symbol reference at FHEM/Blocking.pm line 132.



-Stefan-

So nun hat dies schon mal geklappt. Habe die Rechte für den MYSQL Benutzer angepasst und siehe da er führt das migrate aus :)

DanHard

Starting fhem...
Use of uninitialized value $cfgDB_dbconn in pattern match (m//) at configDB.pm line 180.
Use of uninitialized value $cfgDB_dbconn in pattern match (m//) at configDB.pm line 182.
Use of uninitialized value $cfgDB_dbconn in pattern match (m//) at configDB.pm line 184.
Use of uninitialized value $cfgDB_dbconn in concatenation (.) or string at configDB.pm line 636.
Can't connect to data source 'dbi:' because I can't work out what driver to use (it doesn't seem to contain a 'dbi:driver:' prefix and the DBI_DRIVER env var is not set) at configDB.pm line 636


Habe heute in neues System auf meinem Cubietruck installiert.
Wollte auch gleich die fhem.cfg in eine DB schreiben.
Wenn ich nun aber fhem mit der DB starten will kommt der obige Fehler.

Installiert habe ich fhem auf dem IGOR Image mit der Homepage http://debian.fhem.de/.
Muss ich eventuell noch was an den Usern machen oder an den Gruppen? Arbeite momentan alles mit Root ab.
- FHEM auf RaspberryPi B
- RFXTRX 433
- 3x IT-1500
- 3x Thermo-, Hygro-Sensor TS34C

betateilchen

Du hast die benötigten perl Module für die Datenbankanbindung nicht installiert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DanHard


Zitat von: betateilchen am 22 Februar 2015, 10:37:15
Du hast die benötigten perl Module für die Datenbankanbindung nicht installiert.

text diff und sqlite3 genügen nicht?
- FHEM auf RaspberryPi B
- RFXTRX 433
- 3x IT-1500
- 3x Thermo-, Hygro-Sensor TS34C

betateilchen

nein, zu sqlite3 (das ist nur die Datenbank selbst) brauchst Du auch das passende perl Modul.

Bei Debian basiertem Linux: apt-get install libdbd-sqlite3-perl
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DanHard


Zitat von: betateilchen am 22 Februar 2015, 10:57:58
nein, zu sqlite3 (das ist nur die Datenbank selbst) brauchst Du auch das passende perl Modul.

Bei Debian basiertem Linux: apt-get install libdbd-sqlite3-perl

Okay Danke. Werde es morgen Testen.
Steht das irgendwo in der Commandref?
Habe es gestern sicher 10x durchgelesen.
- FHEM auf RaspberryPi B
- RFXTRX 433
- 3x IT-1500
- 3x Thermo-, Hygro-Sensor TS34C

betateilchen

ja, es steht da.

(http://up.picr.de/21073565oa.png)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DanHard


Zitat von: betateilchen am 22 Februar 2015, 11:40:41
ja, es steht da.

(http://up.picr.de/21073565oa.png)

Upps sorry habe ich komplett übersehen!
- FHEM auf RaspberryPi B
- RFXTRX 433
- 3x IT-1500
- 3x Thermo-, Hygro-Sensor TS34C

DanHard


Zitat von: betateilchen am 22 Februar 2015, 11:40:41
ja, es steht da.

(http://up.picr.de/21073565oa.png)

Upps sorry habe ich komplett übersehen!
- FHEM auf RaspberryPi B
- RFXTRX 433
- 3x IT-1500
- 3x Thermo-, Hygro-Sensor TS34C

DanHard

Wollte das Paket installieren und dann habe ich gemerkt das ich es schon installiert habe, aber leider wird mein FHEM nicht gestartet.
Hast du noch eine andere Idee?

Auf
perl fhem.pl configDB
folgt

Use of uninitialized value $cfgDB_dbconn in pattern match (m//) at configDB.pm line 180.
Use of uninitialized value $cfgDB_dbconn in pattern match (m//) at configDB.pm line 182.
Use of uninitialized value $cfgDB_dbconn in pattern match (m//) at configDB.pm line 184.
Use of uninitialized value $cfgDB_dbconn in concatenation (.) or string at configDB.pm line 636.
Can't connect to data source 'dbi:' because I can't work out what driver to use (it doesn't seem to contain a 'dbi:driver:' prefix and the DBI_DRIVER env var is not set) at configDB.pm line 636


Meine configDB.conf:

## for MySQL
################################################################
#%dbconfig= (
# connection => "mysql:database=configDB;host=db;port=3306",
# user => "root",
# password => "xxx",
#);
################################################################
#
## for PostgreSQL
################################################################
#%dbconfig= (
#        connection => "Pg:database=configDB;host=localhost",
#        user => "root",
#        password => "xxx"
#);
################################################################
#
## for SQLite (username and password stay empty for SQLite)
################################################################
#%dbconfig= (
#        connection => "SQLite:dbname=/opt/fhem/configDB.db",
#        user => "",
#        password => ""
#);
################################################################


Die Dateien fhem.pl und configDB befinden sich auch im selben Verzeichnis.

Danke für die Hilfe.
- FHEM auf RaspberryPi B
- RFXTRX 433
- 3x IT-1500
- 3x Thermo-, Hygro-Sensor TS34C

Wuppi68

da sind ja noch die Kommentarzeichen aka Hasches vor der DB Definition
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

DanHard

Ich schäme mich gerade in Grund und Boden.
Ich suche und suche und suche...
...und dann muss ich nur die # entfernen!

Tut mir leid das ich eure Zeit für so einen Quatsch beansprucht habe...
- FHEM auf RaspberryPi B
- RFXTRX 433
- 3x IT-1500
- 3x Thermo-, Hygro-Sensor TS34C

Newbee

Hallo,

habe gestern versucht meine fhem.cfg in eine configdb zu migrieren.

Was ich bis jetzt gemacht habe.

MySQL> create database fhem;
Query OK, 1 row affected (0.00 sec)

MySQL> CREATE USER 'fhemuser'@'localhost' IDENTIFIED BY 'fhemuser';
Query OK, 0 rows affected (0.00 sec)

MySQL> GRANT ALL PRIVILEGES ON fhem.* TO 'fhemuser'@'localhost';
Query OK, 0 rows affected (0.00 sec)

MySQL> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)


configdb.conf angelegt mit folgendem Inhalt. Pfad /opt/fhem

## for MySQL
################################################################
%dbconfig= (
        connection => "mysql:database=fhem;host=localhost;port=3306",
        user => "fhemuser",
        password => "xxx",
);
################################################################


configdb migrate liefert mir dann im LOG folgenden Eintrag.

2015.03.10 22:04:21 1: PERL WARNING: given is experimental at ./FHEM/98_configdb.pm line 35.
2015.03.10 22:04:21 1: PERL WARNING: when is experimental at ./FHEM/98_configdb.pm line 37.


Bin mir sicher der Fehler sitzt vor dem Rechner.  :o

Aber ich bekomme es einfach nicht hin.

Vielen Dank vorab.

Gruß Newbee
Intel-NUC mit ubuntu server 20.04; FHEM 6.0
HM, Dect, Netatmo, Hue

betateilchen

Zitat von: Newbee am 11 März 2015, 18:58:29
configdb migrate liefert mir dann im LOG folgenden Eintrag.

2015.03.10 22:04:21 1: PERL WARNING: given is experimental at ./FHEM/98_configdb.pm line 35.
2015.03.10 22:04:21 1: PERL WARNING: when is experimental at ./FHEM/98_configdb.pm line 37.


Bin mir sicher der Fehler sitzt vor dem Rechner.  :o

Nö. Die Migration sollte trotzdem funktioniert haben, oder?

Die Warnungen hängen mit Deiner perl-Version zusammen, zu der Du leider keine Angaben gemacht hast.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Newbee

Habe fhem mit perl fhem.pl configDB gestartet.

Folgende Fehlermeldung.

DBI connect('database=fhem;host=localhost;port=3306','fhemuser',...) failed: Access denied for user 'fhemuser'@'localhost' to database 'fhem' at configDB.pm line 636.

perl Vers. ist wie folgt.

This is perl 5, version 18, subversion 2 (v5.18.2) built for x86_64-linux-gnu-thread-multi
Intel-NUC mit ubuntu server 20.04; FHEM 6.0
HM, Dect, Netatmo, Hue

betateilchen

Eins nach dem anderen...

Bei perl 5.18.2 kannst Du die Warnungen wegen experimental einfach ignorieren, das sind keine echten Fehler.

Das Verbindungsproblem zu Deiner Datenbank musst Du selbst lösen, das hat nichts mit configDB zu tun, sondern mit MySQL.

CREATE USER 'fhemuser'@'localhost' IDENTIFIED BY 'fhemuser';

Dir ist schon klar, was Du da tust? Du weist dem User "fhemuser" das Passwort "fhemuser" zu.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Newbee

Zitat von: betateilchen am 11 März 2015, 19:36:07
Eins nach dem anderen...

Bei perl 5.18.2 kannst Du die Warnungen wegen experimental einfach ignorieren, das sind keine echten Fehler.

Das Verbindungsproblem zu Deiner Datenbank musst Du selbst lösen, das hat nichts mit configDB zu tun, sondern mit MySQL.

CREATE USER 'fhemuser'@'localhost' IDENTIFIED BY 'fhemuser';

Dir ist schon klar, was Du da tust? Du weist dem User "fhemuser" das Passwort "fhemuser" zu.

Nicht immer!  ;) Aber das war mal Absicht, kann ich mir dann besser merken (fürs testen)  ::)

Nun habe ich nach configdb migrate folgendes erhalten.

Ver 0 saved: Wed Mar 11 20:14:53 2015 def: 341 attr: 1102
Ver 1 saved: by cfgDB_Init  def: 3 attr: 4
-----------------------------------------------------------------
state: 2494 entries saved: Wed Mar 11 20:14:53 2015
-----------------------------------------------------------------
filesave: 51 files stored in database
-----------------------------------------------------------------


Wenn ich es richtig deute ERFOLG...  :D Lag an den Rechten in MySQL

DANKE!
Intel-NUC mit ubuntu server 20.04; FHEM 6.0
HM, Dect, Netatmo, Hue

Zilon

#33
Hallo zusammen,

ich betreibe FHEM nun schon seit einiger Zeit erfolgreich mit configDB. FHME läuft dabei auf einem RPi3, die DB liegt auf einem Synology NAS. Um auch IPv6 nutzen zu können, wollte ich nun die FHEMWEB-Definition ändern, was aus irgendwelchen Gründen nicht über das Interface möglich war. Also habe ich es direkt in der Datenbank via PHPMyAdmin versucht. Dabei ist mir aufgefallen, dass alle Einträgemehrfach in der configDB vorhanden sind, teilweise über 100x. Außerdem war mir die Bearbeitung nicht möglich, da es für die Einträge keine eindeutige ID gibt. Ist das so gewollt?

Danke und Gruß
Zilon

EDIT: Beim bearbeiten habe ich dann viele der mehrfach vorhandenen Einträge entfernt, jetzt lädt das Frontend nicht mehr.

Benni

Zitat von: Zilon am 09 April 2017, 13:02:04
Hallo zusammen,

ich betreibe FHEM nun schon seit einiger Zeit erfolgreich mit configDB. FHME läuft dabei auf einem RPi3, die DB liegt auf einem Synology NAS. Um auch IPv6 nutzen zu können, wollte ich nun die FHEMWEB-Definition ändern, was aus irgendwelchen Gründen nicht über das Interface möglich war. Also habe ich es direkt in der Datenbank via PHPMyAdmin versucht. Dabei ist mir aufgefallen, dass alle Einträgemehrfach in der configDB vorhanden sind, teilweise über 100x. Außerdem war mir die Bearbeitung nicht möglich, da es für die Einträge keine eindeutige ID gibt. Ist das so gewollt?

Danke und Gruß
Zilon

EDIT: Beim bearbeiten habe ich dann viele der mehrfach vorhandenen Einträge entfernt, jetzt lädt das Frontend nicht mehr.

Die FHEMWEB-Devices lassen sich natürlich über das Web-UI bearbeiten.
Alternativ gibt es auch noch telnet.

Und wenn man in der Datenbank rumfuhrwerkt ohne, dass man die Datenbankstruktur verstanden hat ist ist das grob fahrlässig und die Wahrscheinlichkeit, dass man sich was zerschießt eben sehr hoch.

Die Vielen Einträge waren lauter unterschiedliche Versionen der Konfiguration, und dazu gibt es natürlich eine eindeutige ID (für die jeweilige Version).
Keine Ahnung was du da jetzt alles raus gelöscht hast, aber sehr wahrscheinlich war die aktuelle Version der Konfiguration betroffen.

Du hast ja aber sicher ein Backup (der DB) gemacht, bevor du die Operation am offenen Herzen begonnen hast? ;) Das würde ich an deiner Stelle wiederherstellen, alles andere wird ziemlich müßig.

Sorry, aber ich fürchte mehr Hilfe wird da so nicht möglich sein.




Zilon

Alles wieder gut. Habe mittels Telnet FHEMWEB neu eingerichtet und nun geht alles wieder wie gewohnt. Über das UI wollte sich die Definition jedenfalls nicht änder lassen. Mittels Telnet hat das bei mir auch nur durch Löschen des vorherigen Devices und Einfügen eines Neuen funktioniert. Im Nachhinein ist das aber auch egal. Ich bin wieder zur alten Variante zurückgekehrt und nutze nginx als Reverse Proxy .

Dass die Einträge über Version und die entpsrechende VersionsID eindeutig sein sollten, habe ich mir dann auch überlegt, dass ist jedoch für PHPMyAdmin nicht so einfach erkennbar ;-) Im Umkehrschluss wird man natürlich so auch erst einmal davon abgehalten in DB rumzupfuschen.

Hab mir jetzt auch mal die weiteren Befehle für configDB angesehen (hätte ich natürlich früher machen sollen) und kann darüber jetzt die Datenbank ausmisten.

87insane

Hallo zusammen,

hänge mich mal hier dran, da dies mein neues "Projekt" sein wird.
Aktuell hänge ich auf normalen cfg Dateien usw.

Nachdem ich nun viel gelesen habe, frage ich mich zwei Dinge:
1. Gibt es eine Best Practice für die Umstellung? Wenn ja, wo ist diese dokumentiert? Oder kann man das so eben schreiben?
2. Welche Datenbank hängt man am besten dahinter? (Mein FHEM läuft auf einem Raspi 3 ).

Danke!

Astrofreak85

Steht doch mehr oder weniger im angehefteten Post hier...?

Was ich mich eher frage: Was bringts? Im Bezug auf die reine Verlagerung der config in die db wohl zumindest nicht mehr performance?
Zumindest hab ich bei meinen Tests vor einigen Jahren nix gemerkt...

mele

Zitat von: Astrofreak85 am 16 August 2019, 12:09:58
Steht doch mehr oder weniger im angehefteten Post hier...?

Was ich mich eher frage: Was bringts? Im Bezug auf die reine Verlagerung der config in die db wohl zumindest nicht mehr performance?
Zumindest hab ich bei meinen Tests vor einigen Jahren nix gemerkt...
Als tolles Feature auf jeden Fall die Versionierung (bei jedem save config), um im Zweifel alte Configs lesen zu können.

Gesendet von meinem SM-G973F mit Tapatalk

FHEM auf NUC/Proxmox (Rpi 2 / Rpi Zero W mit FHEM2FHEM, RFHEM)
Homematic/LaCrosse/PCA301/Shelly, Rollladen, Batterieaktor + Relais zur Schaltung Garagentor (Promatic 2), Xiaomi FlowerSens, Bewässerungssteuerung Garten und Gewächshaus, Weatherman und Landroid

87insane

Habe mir x Dinge durch gelesen... Es gibt x Varianten und ich dachte es gäbe wirklich ne Art best practice guide....

Laut lesen soll es schneller werden. Hinzu gibt es z.B. Befehle die ich mit den normalen Konfigs nicht machen kann. Beispiel wäre zb ein Logging das erst ab 10 Watt mit loggt und darunter nicht. Ist ggf. nicht das beste Beispiel aber ein Grund mehr. Bei normalen LOGs müsste man sonst Regexen oder sonst was.

Ist das von der Performance wirklich nicht spürbar?

LuckyDay

du verwechselst wohl

configDB mit logdb

;D

Otto123

#41
Zitat von: fhem-hm-knecht am 16 August 2019, 13:12:46
du verwechselst wohl

configDB mit logdb

;D
Und für DbLog gab es beim Leipziger Stammtisch jetzt sogar mal einen kleinen Lehrgang :)

Viel Erfolg
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

87insane

Will beides umstellen. Schrieb ich ja....
Dann google ich mal weiter...

Otto123

#43
Zitat von: 87insane am 16 August 2019, 15:33:51
Will beides umstellen. Schrieb ich ja....
Bin ich blind? Oder wo hast Du das verklausuliert?
Für configDb gibt es hier angepinnt einen Workshop. Direkt über diesen Thread.

Wenn Du das Vortragsscript von Heikos Workshop lesen willst gern, das ist öffentlich im Stammtisch Leipzig Thread. Da gibt es bald noch ein Update.

Meine Meinung: "Beides" sind trotzdem zwei getrennte Paar Schuhe.

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

87insane

Hey Otto....
Eingangs schrieb ich das ich konfig und log umstellen wollen würde. Die Vorteile (zumindest was ich las) sind Performance usw. Da ich nun eine woche UL habe, wollte ich das mal machen.

Gibt es auch Nachteile?

Gesendet von meinem LG-H850 mit Tapatalk


Otto123

Sorry aber zumindest ab dem Post in diesem Thread von 11:24 Uhr bis jetzt muss "das Du beides umstellen willst" irgendwo zwischen deinem Kopf und den Händen steckengeblieben sein.  ;D Aber egal, haben wir ja jetzt geklärt.
Wobei dieser Thread gemacht wurde wegen Umstieg von fhem.cfg auf configDb - den würde ich jetzt nicht für DbLog kapern.

Datenbank auf dem Raspberry mit SD Card (auf SD Card) würde ich nicht machen. Ich fürchte, das "frisst Löcher" in die SD Card.
Zum Umstieg auf configDb kann ich nichts sagen.
Umstieg auf DbLog evaluiere ich gerade, das bringt sicher viele Vorteile. Die Umstellung der Plots kommt bei mir nicht einfach rüber. Bau Dir dazu was zum Testen und probiere etwas.
So jetzt ist gut mit DbLog im falschen Thread  :-X
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

87insane

Guter Hinweis wegen der SD. 2.5 jahre hat sie nun auf dem Buckel und lebt noch ...die wird sicher bald fällig. Aber gut, hatte auch schon überlegt alle beweglichen Daten auf dem NAS aus zu lagern. Allerdings kann ich dann hibernation oder sonst was vergessen. Naja...ich überlege noch.

Aber du migrierst gerade auch und ich persönlich würde mich freuen von dir zu hören...wie es lief, was nicht so toll war und und und. Wenn es keiner lesen mag, gern auch PN. Denke aber das wäre für alle gut. :)

Gesendet von meinem LG-H850 mit Tapatalk


betateilchen

... denn sie wissen nicht, was sie tun ...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

87insane

? In dem Fall?

Gesendet von meinem LG-H850 mit Tapatalk


FHEM-User22

Hallo,
ich war mal 3 Jahre mit 2 Raspis auf ConfigDB. Ich habe keinerlei Vorteile gefunden. Jetzt bin ich wieder zurück auf die fhem.cfg.
Für mich ist die fhem.cfg einfacher, weil:
-man im äussersten Notfall diese händisch ändern kann. Ich meine nur im äussersten Notfall.
-auch kann man einfach die fhem.cfg sichern und wenn man wenigstens aufs Dateisystem kommt, kann man immer eine ältere reinkopieren, wenn mal gar nichts mehr geht.

Dies soll zwar auch bei der DB funktionieren, das habe ich aber nicht hinbekommen bzw. hatte keine Geduld dazu.

Weiterin habe ich gehört (bitte berichtigen, wenns nicht stimmt!) das die cfg sowieso nur beim Start einmal eingelesen wird und dann ist sie im RAM. Auch vom Umfang her ists egal, denn ich habe eine fhem.cfg mit über 12.000 Zeilen gesehen, die funktionierte super und schnell.

Dies sind aber nur meine Meinungen/Erfahrungen und ich lasse mich gerne anderweitig informieren.

Viele Grüße
FHEM auf Raspberry Pi und Proxmox und... und.... und....

mele

Ich nutze config.db dank SQL-Kentnissen gerne zum Nachschlagen oder Wiederherstellen einzelner Config-Teile. Diese läuft auf einer Diskstation im Raid.

Gerade das save config / Neustarts empfinde ich deutlich schneller und das SD-Problem gibts nicht mehr. Hatte vorher schon eine SSD dran, aber mangels Backup-Möglichkeit ein schlechtes Gefühl.

LogDB habe ich erst später aufgebaut. Das Ganze als Container auf meinem NUC.

Offtopic: FHEM läuft in einem separaten Container auf dem NUC. Dank Snapshots lässt sich hier vieles ausprobieren und zurückdrehen.

Gesendet von meinem SM-G973F mit Tapatalk

FHEM auf NUC/Proxmox (Rpi 2 / Rpi Zero W mit FHEM2FHEM, RFHEM)
Homematic/LaCrosse/PCA301/Shelly, Rollladen, Batterieaktor + Relais zur Schaltung Garagentor (Promatic 2), Xiaomi FlowerSens, Bewässerungssteuerung Garten und Gewächshaus, Weatherman und Landroid

dirkcx

#51
Wie komme ich denn nach dem Umstieg auf configDB.db wieder zurück auf fhem.cfg?
Gibts auch ein configdb [b]un[/b]migrate

Mein Problem ist, dass mein FHEM nach einem shutdown restart nicht mehr startet.

Das fhem.log zeigt nur den Fehler Undefined subroutine &MQTT::DEVICE::client_attr called at ./FHEM/10_MQTT_DEVICE.pm line 232.
aber vor dem shutdown lief es ja.

Natürlich kann ich wieder normal starten mit der alten fhem.cfg, aber dann gehen ja alle Änderungen seit der Umstellung verloren.
Und deaktivieren von Devices geht ja leider auch nicht mehr so einfach, in der fhem.cfg konnte ich ja Bereiche "includen".

Außerdem ist die DB (Sqlite3) nun schreibgeschützt, d.h. auch mit sqlite3 configDB.db kann ich die DB zwar lesen, aber nicht schreiben: Error: attempt to write a readonly database
Und ja, ich habe die db temporär auf chmod 777 gesetzt und auch chown/chgrp auf meinen user/gruppe gesetzt.

*UPDATE*: der Mqtt Fehler lag schlicht an der falschen Reihenfolge. Das Device MQTT2_SERVER war später definiert als MQTT2_DEVICEs, was zur nächsten Frage führt: wie kann man bei Nutzung der configDB die Startreihenfolge der Devices beim Start von FHEM beeinflussen? Ich bin jetzt leider wieder bei fhem.cfg statt auf der DB Lösung :-( 

Tipps? Vielen Dank im Voraus
Server: Gigabyte GB-BACE3160 | Ubuntu 20.04 LTS Server | aktuelles FHEM | CULUSB (busware) FS20/FHT/... | MySensors: seriell / esp8266 | ZigBee (Zigbee CC2531 / zigbee2mqtt) | homebridge / homebridge-config-ui

amenomade

Zurück auf fhem.cfg ist hier dokumentiert: https://forum.fhem.de/index.php/topic,30551.msg232131.html#msg232131
Aber ich vermute, dein Problem hat eine andere Ursache...
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

betateilchen

Zitat von: dirkcx am 15 Dezember 2019, 09:29:25
*UPDATE*: der Mqtt Fehler lag schlicht an der falschen Reihenfolge. Das Device MQTT2_SERVER war später definiert als MQTT2_DEVICEs, was zur nächsten Frage führt: wie kann man bei Nutzung der configDB die Startreihenfolge der Devices beim Start von FHEM beeinflussen? Ich bin jetzt leider wieder bei fhem.cfg statt auf der DB Lösung :-( 

Tipps? Vielen Dank im Voraus


Das solltest Du im entsprechenden Forum zu MQTT posten. Die Reihenfolge der devices sollte eigentlich inzwischen keine Rolle mehr spielen. Umso mehr wundert es mich, dass gerade bei von Rudi programmierten Modulen dieses Fehlverhalten nach wie vor auftritt. Das Problem muss vom Modulautor für MQTT2.* gelöst werden, nicht von der configDB.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Noch ein Tipp: Nach einem "configdb migrate" hilft es nicht, ein "shutdown restart" auszuführen, und zu hoffen, dass FHEM dann mit configDB startet. FHEM muss dazu einmal komplett beendet und danach neu (mit configDB im Startskript) gestartet werden. Bei einem "shutdown restart" werden zwischenzeitliche Änderungen im Startskript nicht berücksichtigt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

amenomade

Zitat von: betateilchen am 15 Dezember 2019, 12:52:00
Noch ein Tipp: Nach einem "configdb migrate" hilft es nicht, ein "shutdown restart" auszuführen, und zu hoffen, dass FHEM dann mit configDB startet. FHEM muss dazu einmal komplett beendet und danach neu (mit configDB im Startskript) gestartet werden. Bei einem "shutdown restart" werden zwischenzeitliche Änderungen im Startskript nicht berücksichtigt.
Und genauso wenn man zurück auf fhem.cfg kommen will (wenn es dann unbedingt nötig wäre...)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

dirkcx

Zitat von: betateilchen am 15 Dezember 2019, 12:52:00
Noch ein Tipp: Nach einem "configdb migrate" hilft es nicht, ein "shutdown restart" auszuführen, und zu hoffen, dass FHEM dann mit configDB startet. FHEM muss dazu einmal komplett beendet und danach neu (mit configDB im Startskript) gestartet werden. Bei einem "shutdown restart" werden zwischenzeitliche Änderungen im Startskript nicht berücksichtigt.

das hatte ich natürlich im /etc/systemd/system/fhem.service geändert, aber hier im konkreten Fall habe tatsächlich klassisch über die Kommandozeile gestartet "perl fhem.pl fhem.cfg"  ;)
Server: Gigabyte GB-BACE3160 | Ubuntu 20.04 LTS Server | aktuelles FHEM | CULUSB (busware) FS20/FHT/... | MySensors: seriell / esp8266 | ZigBee (Zigbee CC2531 / zigbee2mqtt) | homebridge / homebridge-config-ui

v1nc3nt

#57
Meiner Meinung nach fehlt in der Anleitung ein Hinweis für die Umstellung des Startskript. Im nachhinein ist das logisch, aber wenn man vor dem Problem sitzt, dass Fhem die Änderungen nicht in die DB übernimmt, dann sieht man das offensichtliche nicht. Bei mir kam in der Suche auch leider der Workshop für die Umstellung nicht, weswegen ich es auch nicht gefunden habe, habe aber im nachhinein über den Link im Commandref finden können. Trotzdem fände ich den Hinweis praktisch, da zumindest ich hauptsächlich das Commandref und ggf. das Wiki verwende.

Übrings ist das Startskript bei systemd-basierten System oft unter /etc/systemd/system/fhem.service zu finden als unter /etc/init.d/fhem wie es im Workshop beschrieben wird.

betateilchen

Zitat von: v1nc3nt am 01 September 2020, 22:29:22
Übrings ist das Startskript bei systemd-basierten System oft unter /etc/systemd/system/fhem.service zu finden als unter /etc/init.d/fhem wie es im Workshop beschrieben wird.

Mecker motz klugscheiß... mann mann mann...

Man achte einfach auf das Datum: als der Workshop 2016 entstand, war systemd noch kein Thema in/für FHEM.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!