Erstmal Danke für die Anleitung.
Habe furchtlos und erfolgreich Schritt 1. bis 3. absolviert.
Bei 4. kommt FM:
Unknown command configdb, try help.
EDIT:
Im log steht
BEGIN failed--compilation aborted at ./FHEM/98_configdb.pm line 9.
Compilation failed in require at ./FHEM/98_configdb.pm line 9.
2016.05.31 17:20:28 0: Attempt to reload configDB.pm aborted.
UPDATE:
Nachdem ich die libtext-diff-perl nochmal installiert hatte, ging es.
Migration ist gestartet :)
Migration ist durch und FHEM läuft auch wieder.
Auf den ersten Blick alles OK.
Mein Problem von vorhin war sicher, daß ich bei Schritt 1. eine FM übersehen hatte und libtext-diff-perl nicht korrekt installiert war.
An betateilchen's Anleitung lag es also nicht.
Danke und Gruß
Wie in einem anderen Thread bereits erwähnt würde ich gerne eine Datei, speziell die myUtils, mit einem externen Editor bearbeiten.
Momentan läuft das ganz bei mir so, dass per sftp auf meinen cubietruck gehe, die Datei mit atom öffne, bearbeite und in FHEM einem reload 99_myUtils mache.
Würde das auch mit configdb gehen? Inetwa Datei exportieren und FHEM anweisen die exportierte Datei zu verwenden. Nach getaner Arbeit die Datei wieder importieren.
Prinzipiell kannst Du das machen, Du solltest aber nach dem Exportieren die 99_myUtils.pm aus der configDB löschen. Sonst werden nämlich sowohl die 99_myUtils.pm als auch die 99_myUtils aus dem Dateisystem BEIDE geladen und ausgeführt. Dann überschreibt eine Datei die andere.
Aber warum nimmst Du nicht den in fhem verfügbaren Editor codemirror zum Bearbeiten?
Das bietet Dir ein paar Vorteile:
- die Datei kann ohne Export/Import direkt in einem laufenden fhem bearbeitet werden
- codemirror bietet ein fhem-spezifisches Syntax-Highlighting
- die Datei wird automatisch wieder genau dorthin gespeichert, wo sie hingehört
- die Datei wird nach dem Abspeichern automatisch neu geladen, dabei erfolgt eine vollständige Prüfung der Datei auf Fehler.
zu 1. codemirror ist gut, aber ein richtiger Editor ist besser. Ich muss nicht immer durch die Datei Scrollen bis ich bin wo ich hin will, ich habe Text-Folding und kann Änderungen im Editor rückgängig machen, auch nachdem sie abgespeichert wurde.
zu 2. Wenn ich die myUtils bearbeite reicht mir eine Perl Syntax-Highlighting
zu 3. Ich speicher die Datei ja auch wieder unter dem gleichen Namen ab
zu 4. Das mache ich dann von Hand wobei auch die Prüfung erfolgt
Unterm Strich sieht es dann so aus:
configdb fileexport FHEM/99_myUtils.pm
configdb filedelete FHEM/99_myUtils.pm
Änderungen durchführen
configdb fileimport FHEM/99_myUtils.pm
?
Dann könnte man das ja auch mit einem Dummy lösen
define edit_myUtils dummy
attr edit_myUtils webCmd edit:done
attr edit_myUtils userReadings edit:edit {fhem("configdb fileexport FHEM/99_myUtils.pm; configdb filedelete FHEM/99_myUtils.pm")}, done:done {fhem("configdb fileimport FHEM/99_myUtils.pm")}
so, oder so ähnlich ;)
Die letzte Zeile, nach Abschluss und Test aller Änderungen, sollte filemove verwenden, nicht fileimport.
Dann wird nämlich die Datei automatisch nach dem Import wieder aus dem Dateisystem gelöscht um das bereits beschriebene Doppel-Laden der Datei zu verhindern.
configdb fileexport FHEM/99_myUtils.pm
configdb filedelete FHEM/99_myUtils.pm
Änderungen durchführen
configdb filemove FHEM/99_myUtils.pm
Und die Idee mit dem dummy und den webCmd ist auch nicht schlecht :)
Suchen und Texfolding kann codemirror m.W. auch. Dass ein kompletter externer Editor natürlich noch mehr kann, ist unbestritten.
So, Spieltrieb war stärker und ein backup sowieso mal wieder angesagt. Jetzt habe es auch gewagt, bekam auch artig die Meldung, dass die Migration erfolgreich gewesen wäre und nun eine vermutlich saudoofe Frage:
Wie erkenne ich jetzt, dass FHEM über configDB läuft und nicht über fhem.cfg?
Für mich sieht das genau gleich aus, insbesondere kann ich alle meine schönen includes scheinbar weiter einzeln editieren?
Was bei mir erforderlich war: ich mußte aus irgendwelchen Gründen fhem.pl mit sudo starten, sonst meldete er einen Zugriffsfehler auf die derzeitige logfile, Rechte darauf sind fhem:dialout.
Nach einem reboot ist FHEMWEB wieder da, sieht aber nach wie vor nicht verändert aus.
Zitat von: joe_re am 31 Mai 2016, 21:55:01
Wie erkenne ich jetzt, dass FHEM über configDB läuft und nicht über fhem.cfg?
Für mich sieht das genau gleich aus, insbesondere kann ich alle meine schönen includes scheinbar weiter einzeln editieren?
Klicke mal in der Navigationsleiste links auf "Save config", dann muss die Meldung kommen "configDB saved".
Technisch siehst Du es, wenn Du in das device "global" schaust, dann steht da beim Attribut configfile der Wert configDB anstatt fhem.cfg
Natürlich kannst Du Deine includes weiter bearbeiten, sie werden ja durch die Migration nicht gelöscht. Aber sie werden nicht mehr verwendet, d.h. die Änderungen wirken sich nicht aus.
Zitat von: betateilchen am 31 Mai 2016, 22:01:31
Klicke mal in der Navigationsleiste links auf "Save config", dann muss die Meldung kommen "configDB saved".
Fehlanzeige, er meldete "wrote configuration to fhem.cfg".
Habe es jetzt nochmal mit dem manuellen Starten incl. configDB gemacht, dann klappt es auch mit dem save in configDB. Das allerdings nur bis ich den PI neu starte, dann ist er wieder bei fhem.cfg. Wie mache ich es zum Standard, dass FHEM mit configDB startet?
Indem Du im Start-Skript - normalerweise /etc/init.d/fhem - die entsprechende Option aktivierst. Dort sind von Haus aus beide Möglichkeiten enthalten, Du musst nur die gewünschte aktiv setzen und die jeweils andere auskommentieren.
#
# perl fhem.pl fhem.cfg
# if you want to use configDB for configuration,
# use this command to start fhem:
#
perl fhem.pl configDB
#
# and remove/comment the above line including fhem.cfg
Zitat von: betateilchen am 31 Mai 2016, 22:27:23
Indem Du im Start-Skript - normalerweise /etc/init.d/fhem - die entsprechende Option aktivierst. Dort sind von Haus aus beide Möglichkeiten enthalten, Du musst nur die gewünschte aktiv setzen und die jeweils andere auskommentieren.
Danke, das war's natürlich. Kaum hat man eine DAU-Anleitung, stellt "man" das Denken ein... Sorry!
Es wird auch MySQL und sogar PostgreSQL unterstützt. Das wären dann aber keine 5 Schritte mehr sondern 7 (bildlich) gesprochen. Wie das geht steht gut Dokumentiert in der Commandref. Es gibt aber zu bedenken das man sich ein wenig mit MySQL auskennen sollte.
Grüße
Zitat von: CoolTux am 01 Juni 2016, 06:17:03
Es wird auch MySQL und sogar PostgreSQL unterstützt. Das wären dann aber keine 5 Schritte mehr sondern 7 (bildlich) gesprochen. Wie das geht steht gut Dokumentiert in der Commandref. Es gibt aber zu bedenken das man sich ein wenig mit MySQL auskennen sollte.
Tja, die commandref wird aber anscheinend nicht gerne gelesen ::)
Es ändert sich dann außerdem auch das Backup-Verfahren. Entweder man hat selbst schon ein entsprechendes Backup-Konzept für seine Datenbank (sollte eigentlich so sein!) oder man verwendet das
configdb dump Kommando, das ein Dump der entsprechenden Datenbank (!) dann gzipped im
./log-Verzeichnis ablegt. Nichts desto trotz ist so wie CoolTux schreibt, eine gewisse DB-Erfahrung dazu sinnvoll.
Zitat von: ernst1024 am 01 Juni 2016, 08:09:37
Ich finde auch man sollte das Forum abschaffen bis auf ein Unterforum mit nur einem Beitrag: Lesen sie die cmdref. :)
Und ich hatte angenommen, du hättest gestern was gelernt. Das Forum ist gut und sinnvoll, aber nicht dafür da, die Inhalte der Dokumentation zu wiederholen. Wenn man hier in Forum Dinge beantworten kann, in dem man einfach ein sinnvolles Stichwort für die commandref-Suche gibt, ist das gut und richtig. Auch der Hinweis darauf, dass man sich die commandref mal näher ansehen soll, ist (fast) nie falsch.
Es hat auch niemand behauptet, dass man nicht nachfragen darf. Nachfragen mit Substanz in der Art: ich habe das und das versucht (mit genauer Beschreibung), aber es funktioniert nicht mit der und der Fehlerbeschreibung, sind sogar sehr erwünscht. Genau das ist es, wie so ein Forum funktioniert. Es ist NICHT dazu da, jedem sein Kochrezept zu geben, aber sehr wohl, um ihm auf die Sprünge zu helfen.
Dein Spruch oben ist unangebracht und auch nicht lustig. Und steht in keinem Verhältnis zu dem Rest deines Beitrags. Es gibt nicht nur schwarz und weiß. Siehe es mal aus der Sicht der Helfer, die sich alle, entgegen manch anderer, oft engstirniger Meinung, gerade im FHEM Forum sehr viel Mühe geben (wenn der Hilfesuchende erkennen lässt, dass er Hilfe annimmt). Du machst das Forum ständig schlecht. Es ist aber alles andere als das. Ich bin ich vielen Bereichen unterwegs und es gibt kaum ein Forum, das so viele geduldige und helfende User hat, wie dieses hier.
Zitat:
Aber warum nimmst Du nicht den in fhem verfügbaren Editor codemirror zum Bearbeiten?
Das bietet Dir ein paar Vorteile:
Vielleicht habe ich es noch nicht gefunden, aber der eingebaute Editor hat nicht die Möglichkeit, auf eine bestimmte Zeile zu springen. Das benötigt man, wenn man beim Abspeichern perl - Syntaxfehler hat. Daher nehme ich dann immer NodPatd+. Damit geht es dann schneller, die falsche Stelle im Code zu finden.
Ok. Die nächste Frage ist ja im Beitrag davor schon fast beantwortet worden. Für eine andere Anwendung würde ich irgendwann mal eine mysql installieren. Dann wäre es vermutlich doch sinnvoller, die gleich für die configdb zu verwenden? Vielleicht kann man der einfachheithalber den ersten Beitrag diesbezüglich doch noch ergänzen....
Elektrolurch
Zitat von: betateilchen am 31 Mai 2016, 15:41:48
Wichtig: Keine Angst haben!
Die vorhandenen Konfigurationsdateien werden bei der beschriebenen Migration nicht angetastet und nicht verändert!
FHEM kann nach dem Test jederzeit wieder mit fhem.cfg gestartet werden.
@ Betateilchen,
Vorab: Danke, für den Workshop, meine "Angst" vor Datenbanken hat sich deutlich minimiert!
In der Rückschau habe ich jetzt dann zum einen nochmal die (englische) commandref überflogen und auch diverse Punkte, die mir noch unklar waren im Forum gefunden. Dickes Lob, das ist -wie die Umstellungsanleitung auch - alles zwar knapp gefaßt, aber sehr gut nachvollziehbar. Vor diesem Hintergrund folgende Anmerkungen:
Wenn ich mich mit was neuem beschäftige, sehe ich mir in der Regel die commandref und das Wiki an; wenn es entsprechende Threads gibt auch diese (na ja, jedenfalls bis zu einem gewissen Punkt, oft wird es entweder sehr speziell oder es geht vom eigentlichen Thema weg). In der commandref steht für einen Datenbank-Newbie wie mich erst mal nur irgendwas zwischen Bahnhof und Abfahrt; es ist so wie es sein sollte - eine technische Referenz, die ein gewisses Grundwissen voraussetzt.
Das Wiki ist mehr oder weniger der Hinweis, dass es die Option der configDB gibt und welche DB-Systeme derzeit unterstützt werden. Das sagt mir als Normaluser: nichts...
Tür ins Haus:
Der Wikieintrag zu dblog ist da m.E. vorbildlich und es wäre evtl. eine Überlegung, das auch in diese Richtung für configdb etwas "aufzuhübschen". Ist eigentlich nicht viel Arbeit, da ja alles (allerdings verstreut) da ist, vorstellen würde ich mir das in die Richtung:
- Beginnt mit: Für wen interessant? => Leute, die z.B.
-- eine Versionierungsmöglichkeit haben wollen, wenn sie Dinge austesten.
-- nicht ständig immer wieder dieselben Daten aus dem Internet ziehen wollen, die sich gar nicht/seltenst ändern (z.B. Ferienkalender oder Mülltermine, wobei das vermutlich auch auf andere Weise geht)
- (Dann die notwendigen Dinge, die in der FHEM-Konfiguration anzupassen sind, das ist bei configDB nicht relevant).
- Wie mache ich es als Normaluser?
=> Der Workshop hier, wobei mir als Standard-PI-user einige sudo's gefehlt haben und mir auch nicht mehr präsent war, dass fhem als Service läuft und daher sinnvollerweise auch so gestoppt werden kann.
=> beim global-device prüfen, ob configDB korrekt eingestellt ist, FHEM mit dieser Konfiguration also läuft
=> wie mache ich es permanent (=idR. "/etc/init.d/fhem" editieren, in meinem Fall wohl auch die nutzlosen "include"-Reste löschen/wegspeichern)
Neu sollten m.E. dazu
- Backup, Notfallstrategie und Umkehrbarkeit
-- (für sqlite: DB-file kann genauso durch ein einfaches Kopieren gesichert werden wie seither die fhem.cfg)
-- Starten im Notfallmodus (https://forum.fhem.de/index.php/topic,46538.0.html)
-- zurück zu fhem.cfg über attr global... + save + Änderung des Startscripts (init.d)
- Hinweis auf sqlite-Basics (da reicht m.E. ein purer Verweis auf das, was bei dblog schon steht).
- Zum Abschluß/zur Abrundung des Werbeeffekts vielleicht noch der Rückblick auf den Appetizer (warum überhaupt)
-- wie lasse ich mir die letzten 4 Änderungen eines bestimmten Devices anzeigen (ich weiß, steht min. ansatzweise in der commandref)
-- wie importiere ich die Ferien-icals der kommenden 2 Schuljahre/meinen Müllkalender oder was auch immer... (den Teil mit dem Importieren habe ich bislang noch nicht kapiert, allerdings hab' ich es auch noch nicht versucht)
Nix für ungut!
Hallo,
anbei, für alle Englischmuffel die deutsche Übersetzung für die command.ref.
=begin html de
<a name="configdb"></a>
<h3>configdb</h3>
<ul>
Beginnend mit der Version 5079 ist es möglich Fhem über eine Konfigurationsdatenbank, anstatt über reine Textdateien (z.B. fhem.cfg), zu Konfigurieren.<br/>
Somit wird die Möglichkeit eröffnet komplett auf die cfg-Dateien und alle damit verbundenen Probleme zu verzichten.<br/>
Weiterhin ermöglicht configDB eine Versionierung von unterschiedlichen Konfigurationen verbunden mit der Möglichkeit auf beliebige vorher gehende Konfiguarionen zurück zu gehen.<br/>
Der Zugriff auf die Datenbank erfolgt über das Perl-Datenbank-Interface DBI.<br/>
<br/>
<b>Interakation mit anderen Modulen</b><br/>
<ul><br/>
Aktuell benutzen folgende Fhem-Module<br/>
<br/>
<li>02_RSS.pm</li>
<li>55_InfoPanel.pm</li>
<li>91_eventTypes</li>
<li>93_DbLog.pm</li>
<li>95_holiday.pm</li>
<li>98_SVG.pm</li>
<br/>
configDB um ihre Konfiguration in der Datenbank vorzuhalten,<br/>
anstatt sie in Konfigurationsdateien im Dateisystenm abzulegen.<br/>
<br/>
Hierzu ist es notwendig die Konfiguartionsdateien in die Datenbank zu importieren.<br/>
<br/>
Beispile:<br/>
<code>configdb fileimport FHEM/nrw.holiday</code><br/>
<code>configdb fileimport FHEM/myrss.layout</code><br/>
<code>configdb fileimport www/gplot/xyz.gplot</code><br/>
<br/>
<b>Der Import, die Migration hat keine negativen Auswirkungen aud die Definitionen Deiner holiday oder RSS Objekte.</b><br/>
<br/>
<b>Während der Migration werden alle Konfiguartionsdateien der aktuellen Konfiguration<br/>
automatisch importiert.</b><br>
<br/>
Bei einem Import werden bestehende Einträge früherer Imports in die Datenbank überschrieben.<br/>
<br/>
</ul><br/>
<br/>
<b>Voraussetzungen / Installation</b><br/>
<ul><br/>
<li>Bitte zunächst das Perl Packet Text::Diff, sofern noch nicht geschehen, installieren.</li><br/>
<li>sudo apt-get update</li><br/>
<li>sudo apt-get install libtext-diff-perl</li><br/><br/>
<li>Eine weitere Voraussetzung ist eine installierte Datenbank. Unterstützt werden SQLITE, MYSQL und POSTGRESQL.</li><br/>
<li>Für die Installation einer Datenbankunterstützung findest Du im Internet ausreichend detailierte Beschreibungen.</li><br/>
<li>Weiterhin das dazugehörende Perl DBD Modul,<br/><br/>
z.B. für sqlite3 unter Debian Systemen wird das Paket libdbd-sqlite3-perl benötigt</li><br/>
<li>Als nächstes muss eine leere Datenbank angelegt werden, z.B. mit sqlite3:<br/>
<pre>
mba:fhem Dein_Datenbanname$ sqlite3 configDB.db
SQLite version 3.7.13 2012-07-17 17:46:21
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> pragma auto_vacuum=2;
sqlite> .quit
mba:fhem Dein_Datenbanname$
</pre></li>
<li>Die dazugehörenden Tabellen werden automatisch angelegt.</li><br/>
<li>Jetzt ist eine Konfigurationsdatei, in der die Verbindungsinformationen zur Datenbank hinterlegt werden, anzulegen.<br/>
<br/>
<b>WICHTIG:</b>
<ul><br/>
<li>Diese Datei <b>muss</b> den Namen "configDB.conf" haben. Bitte hier auf Groß/Kleinschreibung achten.</li>
<li>Diese Datei <b>muss</b> sich im selben Verzeichnis wie die fhem.pl und die configDB.pm, z.B. /opt/fhem befinden.</li>
</ul>
<br/>
<pre>
## für MySQL
################################################################
#%dbconfig= (
# connection => "mysql:database=configDB;host=db;port=3306",
# user => "fhemuser",
# password => "fhempassword",
#);
################################################################
#
## für PostgreSQL
################################################################
#%dbconfig= (
# connection => "Pg:database=configDB;host=localhost",
# user => "fhemuser",
# password => "fhempassword"
#);
################################################################
#
## für SQLite (username and password stay empty for SQLite)
################################################################
#%dbconfig= (
# connection => "SQLite:dbname=/opt/fhem/configDB.db",
# user => "",
# password => ""
#);
################################################################
</pre></li><br/>
</ul>
<b>Start mit einer komplett neuen "frischen" Fhem Installation</b><br/>
<ul><br/>
Es ist einfach... starte Fhem mit folgendem Aufruf:<br/><br/>
<ul><code>perl fhem.pl configDB</code></ul><br/>
<b>configDB</b> ist das Schlüsselwort über das Fhem angewiesen wird die Datenbank für die Konfiguration zu benutzen.<br/>
<br/>
<b>Das wars...</b> Alle Aktionen, wie save, rereadcfg usw. sollten nun wie erwartet funktionieren.
</ul>
<br/>
<b>or:</b><br/>
<br/>
<b>Automatischer Start von Fhem mit configdb</b><br/>
<ul><br/>
Es ist einfach... editiere unter /etc/init.d die datei fhem und ändere den Aufruf:<br/><br/>
<ul><code>perl fhem.pl fhem.cfg</code></ul><br/>
in:<br/><br/>
<ul><code>perl fhem.pl configDB</code></ul><br/>
<b>configDB</b> ist das Schlüsselwort über das Fhem angewiesen wird die Datenbank für die Konfiguration zu benutzen.<br/>
<br/>
<b>Das wars...</b> Alle Aktionen, wie save, rereadcfg usw. sollten nun wie erwartet funktionieren.
</ul>
<br/>
<b>or:</b><br/>
<br/>
<b>Migration einer bestehenden Fhem Konfiguration in die Datenbank.</b><br/>
<ul><br/>
Auch das ist einfach... <br/>
<br/>
<li>Starte Fhem ein letztes Mal mit der fhem.cfg<br/><br/>
<ul><code>perl fhem.pl fhem.cfg</code></ul></li><br/>
<br/>
<li>Transferiere die bestehende Konfiguration in die Datenbank<br/><br/>
<ul>Gib<br/><br/><code>configdb migrate</code><br/>
<br/>
in die Kommandozeile im Fhem Webfrontende ein.</ul><br/></br>
Nun bitte etwas Geduld! Die Migration kann etwas Zeit in Anspruch nehmen, insbesondere bei Kleincomputern wie RaspberryPi oder Beaglebone.<br/>
Das Ende der Migration wird durch einen Datenbankstatus im Frontend angezeigt.<br/>
Die original Konfigurationsdateien werden während der Migration weder verändert noch gelöscht.</li><br/>
<li>Beende Fhem durch Eingabe von shutdown in der Kommandozeile.</li><br/>
<li>Nun erfolgt der neustart von Fhem mit dem Schlüsselwort configDB<br/><br/>
<ul><code>perl fhem.pl configDB</code></ul></li><br/>
<b>configDB</b> ist das Schlüsselwort über das Fhem angewiesen wird die Datenbank für die Konfiguration zu benutzen.<br/>
<br/>
<b>Das wars...</b> Alle Aktionen, wie save, rereadcfg usw. sollten nun wie erwartet funktionieren.
</ul>
<br/><br/>
<b>Zusätzliche Funktionen</b><br/>
<ul><br/>
Das neue Kommando <code>configdb</code> wird in Fhem bereit gestellt.<br/>
und kann mit unterschiedlichen Parametern genutzt werden.<br/>
<br/>
<li><code>configdb attr [attribute] [value]</code></li><br/>
Hierdurch werden Werte an Attribute des configdb-Moduls im Backend und Frontend weiter geben.<br/>
<br/>
<code> configdb attr private 1</code> - Setze das Attribut mit dem Namen 'private' auf den Wert 1.<br/>
<br/>
<code> configdb attr private</code> - Lösche das Attribut mit dem Namen 'private'<br/>
<br/>
<code> configdb attr</code> - Zeige alle definierten Attribute.<br/>
<br/>
Aktuell wird nur ein Attribut unterstützt. Wenn 'private' auf den Wert 1 gesetz wird, wird die User und Password Information<br/>
in der 'configdb info' Ausgabe nicht angezeigt.<br/>
<br/>
<li><code>configdb diff <device> <version></code></li><br/>
Vergleiche den Konfigurationsstand für das Device <device>
der aktuellen Konfiguartion 0 mit der Version <version><br/>
Beispiel für eine gültige Anfrage:<br/>
<br/>
<code>configdb diff telnetPort 1</code><br/>
<br/>
führt zu einer beispielhaften Anzeige:
<pre>
compare device: telnetPort in current version 0 (left) to version: 1 (right)
+--+--------------------------------------+--+--------------------------------------+
| 1|define telnetPort telnet 7072 global | 1|define telnetPort telnet 7072 global |
* 2|attr telnetPort room telnet * | |
+--+--------------------------------------+--+--------------------------------------+</pre>
<b>Spezial: configdb diff all current</b><br/>
<br/>
Hierdurch wird ein Versionsabgleich aller gesicherten Versionen zur Version 0 <br/>
und sich im Speicher befindlichen noch nicht gesicherten Version (also der aktuell laufenden Installation).<br/>
<br/>
<li><code>configdb dump</code></li><br/>
Schreibt ein "dump file" der Datenbank.<br/>
<br/>
<br/>
<li><code>configdb filedelete <Filename></code></li><br/>
Löscht eine Konfigurationsdatei, z.B. nrw.holiday, aus der Datenbank.<br/>
<br/>
<br/>
<li><code>configdb fileexport <targetFilename></code></li><br/>
Exportiert die angegebene Konfigurationsdatei oder Fhem Datei aus der Datenbank in das Dateisystem.<br/>
Beispiel:<br/>
<br/>
<code>configdb fileexport FHEM/99_myUtils.pm</code><br/>
<br/>
<br/>
<li><code>configdb fileimport <sourceFilename></code></li><br/>
Importiert die angegebene Konfigurationsdatei oder Fhem Datei in die Datenbank.<br/>
Beispiel:<br/>
<br/>
<code>configdb fileimport FHEM/99_myUtils.pm</code><br/>
<br/>
<br/>
<li><code>configdb filelist</code></li><br/>
Zeigt alle in der Datenbank gespeicherten Konfigurationsdateien / Fhem Dateien.<br/>
<br/>
<br/>
<li><code>configdb filemove <sourceFilename></code></li><br/>
Importiert die angegebene Konfigurationsdatei oder Fhem Datei in die Datenbank und<br/>
löscht danach die Dateien aus dem lokalen Dateisystem.<br/>
Beispiel:<br/>
<br/>
<code>configdb filemove FHEM/99_myUtils.pm</code><br/>
<br/>
<br/>
<li><code>configdb fileshow <Filename></code></li><br/>
Zeigt den Inhalt der in der Datenbank gespeicherten Konfigurationsdatei / Fhem Datei.<br/>
<br/>
<br/>
<li><code>configdb info</code></li><br/>
Anzeige von Datenbankstatistiken<br/>
<pre>
--------------------------------------------------------------------------------
configDB Database Information
--------------------------------------------------------------------------------
dbconn: SQLite:dbname=/opt/fhem/configDB.db
dbuser:
dbpass:
dbtype: SQLITE
--------------------------------------------------------------------------------
fhemconfig: 7707 entries
Ver 0 saved: Sat Mar 1 11:37:00 2014 def: 293 attr: 1248
Ver 1 saved: Fri Feb 28 23:55:13 2014 def: 293 attr: 1248
Ver 2 saved: Fri Feb 28 23:49:01 2014 def: 293 attr: 1248
Ver 3 saved: Fri Feb 28 22:24:40 2014 def: 293 attr: 1247
Ver 4 saved: Fri Feb 28 22:14:03 2014 def: 293 attr: 1246
--------------------------------------------------------------------------------
fhemstate: 1890 entries saved: Sat Mar 1 12:05:00 2014
--------------------------------------------------------------------------------
</pre>
Ver 0 referenziert immer auf die aktuell laufende Konfiguration.<br/>
<br/>
<li><code>configdb list [device] [version]</code></li><br/>
Sucht nach dem device mit dem Namen [device] in der gespeicherten Konfiguration [version]<br/>
im Datenbakarchiv.<br/>
Default Wert [device] = % zeigt alle Devices.<br/>
Default Wert [version] = 0 zeigt die Devices der aktuellen Konfiguration.<br/>
Beispiele für zulässige Anfragen:<br/>
<br/>
<code>get configDB list</code><br/>
<code>get configDB list global</code><br/>
<code>get configDB list '' 1</code><br/>
<code>get configDB list global 1</code><br/>
<br/>
<li><code>configdb recover <version></code></li><br/>
Stellt eine historische Version aus dem Datenbankarchiv wieder her.<br/>
<code>configdb recover 3</code> <b>kopiert</b> die Version #3 im Datenbankarchiv
in die Version #0.<br/>
Hierdurch wird die aktuelle Version #0 überschrieben.<br/><br/>
<b>Wichtig!</b><br/>
Die wiederhergestellt Version <b>wird nicht</b> automatisch aktiviert!<br/>
Hierzu ist es notwendig durch <code>rereadcfg</code> oder besser - <code>shutdown restart</code> einen Neustart zu veranlassen.<br/>
<br/>
<li><code>configdb reorg [keep]</code></li><br/>
Löscht alle gespeicherten Version größer [keep] aus dem Datenbankarchiv.<br/>
Der Vorgabewert für ist keep = 3.<br/>
Diese Funktion kann z.B. für einen nächtlichen reorganisations Job über eine at-Definition genutzt werden.<br/>
<br/>
<li><code>configdb search <searchTerm> [searchVersion]</code></li><br/>
Sucht nach eine speziellen Suchbegriff in der vorgegeben Version (default=0)<br/>
<pre>
Example:
configdb search %2286BC%
Result:
search result for: %2286BC% in version: 0
--------------------------------------------------------------------------------
define az_RT CUL_HM 2286BC
define az_RT_Clima CUL_HM 2286BC04
define az_RT_Climate CUL_HM 2286BC02
define az_RT_ClimaTeam CUL_HM 2286BC05
define az_RT_remote CUL_HM 2286BC06
define az_RT_Weather CUL_HM 2286BC01
define az_RT_WindowRec CUL_HM 2286BC03
attr Melder_FAl peerIDs 00000000,2286BC03,
attr Melder_FAr peerIDs 00000000,2286BC03,
</pre>
<br/>
<li><code>configdb uuid</code></li><br/>
Gibt eine uuid für eigene Zwecke zurück.<br/>
<br/>
</ul>
<br/>
<br/>
<b>Anmerkungen des Autors</b><br/>
<br/>
<ul>
<li>Für eine schnelle Installation sind zwei Beispiele für Datenbank und Konfigurationsdatei (sqlite only!) vorhanden.<br/>
Einfach in das Fhem Installationsverzeichnis kopieren (z.B. /opt/fhem) und los legen.</li>
<br/>
<li>Die Fhem Frontend Option "Edit files"->"config file" wird nicht mehr angezeigt, wenn configDB genutzt wird.</li>
<br/>
<li>Sei geduldig, wenn Du "save" ausführtst.
(unabhängig ob manuell oder durch klicken auf "save config").<br/>
Das Modul braucht etwas Zeit, um die Versionsinformationen in die Datenbank zu schreiben.<br/>
Das erfolgreiche sichern wird durch eine Meldung im Frontend angezeigt.</li>
<br/>
<li>In Planung befinden sich weitere Funtionen, vor allem aber Performanceverbesserungen.</li>
<br/>
<li>Und nun, viel Spaß und alles wird gut!</li>
</ul>
</ul>
=end html_DE
=cut
Vielleicht mag Betateilchen sie ja übernehmen.
Grüße Jörg
Ganz klares und mit mir nicht verhandelbares Statement zu den letzten zwei Beiträgen:
- Von mir wird es keinen Wiki Eintrag zur configDB geben. Und ich möchte eigentlich auch keinen von jemandem anderen verfassten Wikieintrag haben. Warum ich das so klar sage, habe ich im Forum schon mehrfach erklärt.
- Es wird keine deutsche commandref geben. Die gab es nämlich schonmal, aber der Pflegeaufwand für eine zweisprachige commandref ist mir einfach zu hoch. Ausserdem ist der vorgeschlagene deutsche Text nicht aktuell.
Zu 2: Ist eine Übersetzung nach Fhem Update aus dem dann verfügbarem Modul und nicht jeder spricht Englisch und ohne Deutschtümelei, wir leben in Deutschland und wenn verhandelbar würde ich die Pflege übernehmen.
Grüße Jörg
Gesendet von iPad mit Tapatalk
Schade, dass Rudi seinerzeit nicht entschieden hat, die Konfiguration von Anfang an in eine Datenbank zu legen. Dann würde heute kein Mensch so negativ darüber diskutieren.
Zitat von: joe_re am 01 Juni 2016, 10:45:09
=> Der Workshop hier, wobei mir als Standard-PI-user einige sudo's gefehlt haben
Meine Workshops gehen immer davon aus, dass man mit root-Rechten arbeitet, sonst lassen sich keine Pakete installieren. Spätestens beim Lesen der apt-get Befehle sollte das jedem klar sein. Ansonsten mangelt es dem Leser bereits an grundlegendem Linux Verständnis.
Zitat von: joe_re am 01 Juni 2016, 10:45:09
- Backup, Notfallstrategie und Umkehrbarkeit
...
-- zurück zu fhem.cfg über attr global... + save + Änderung des Startscripts (init.d)
...
-- Starten im Notfallmodus
Wenn ich in meinem Leben immer so negativ und pessimistisch gedacht hätte, wie Du es hier zum Ausdruck bringst, wäre ich längst nicht mehr am Leben.
Zitat von: joe_re am 01 Juni 2016, 10:45:09
- Hinweis auf sqlite-Basics (da reicht m.E. ein purer Verweis auf das, was bei dblog schon steht).
Das ist nicht Aufgabe des Modulautors, denn solche Basics stehen zigtausendfach im Internet. Gleiches gilt für die von Dir beschriebenen Themen Dienste starten/stoppen (auch das ist nicht modulspezifisch) und andere Punkte Deiner Liste.
Zum Thema Notfallmodus: Bis heute hat noch kein configDB Anwender diesen Modus nachgefragt. So ist es noch mit ein paar anderen, durchaus vorhandenen, Features.
Dein Beitrag ist (für mich) ein extrem negatives Beispiel dafür, wie man so eine Sache nicht begegnen sollte. Du redest viel zuviel von "zurück, Nofallmodus, Umkehrbarkeit" und anderen "schrecklichen" Dingen. Genau über die Notwendigkeit solcher Möglichkeiten soll sich der Benutzer überhaupt keine Gedanken machen müssen.
--
Zitat von: JoWiemann am 01 Juni 2016, 13:05:58
Zu 2: Ist eine Übersetzung nach Fhem Update aus dem dann verfügbarem Modul
Diese Behauptung stimmt einfach nicht.
Zitat:
Ganz klares und mit mir nicht verhandelbares Statement zu den letzten zwei Beiträgen:
1. Von mir wird es keinen Wiki Eintrag zur configDB geben. Und ich möchte eigentlich auch keinen von jemandem anderen verfassten Wikieintrag haben. Warum ich das so klar sage, habe ich im Forum schon mehrfach erklärt.
2. Es wird keine deutsche commandref geben. Die gab es nämlich schonmal, aber der Pflegeaufwand für eine zweisprachige commandref ist mir einfach zu hoch. Ausserdem ist der vorgeschlagene deutsche Text nicht aktuell.
Gut, dass es Meinungsfreiheit gibt. Aber leider ist die Aussage oben ja ziemlich widersprüchlich: Kein wiki, aber jeden anraunzen, der es wagt eine Frage zu stellen, die vielleicht nicht dem hohen an sich selbst gestellten Anforderungen entspricht.
....
Und mit "englisch" stellt sich mir die Frage, wieviele englisch sprachige Nutzer fhem hat und ob die Anzahl größer ist, als die deutschsprachigen Nutzer.... Und wenn der Pflegeaufwand für zwei Sprachen zu groß erscheint, so wäre ich eher dafür, die englische Version abzushaffen oder konsequenter Weise das Forum komplett auch nur noch in englisch zu führen.
Zitat von: Elektrolurch am 01 Juni 2016, 13:19:06
Aber leider ist die Aussage oben ja ziemlich widersprüchlich: Kein wiki, aber jeden anraunzen, der es wagt eine Frage zu stellen, die vielleicht nicht dem hohen an sich selbst gestellten Anforderungen entspricht.
Ich raunze niemanden an, der eine Frage stellt. Im Wiki steht einfach viel zu viel Mist von Leuten, die nicht verstanden haben, was sie eigentlich tun, aber dann der Meinung sind, dieses Halbwissen auch noch dokumentieren zu müssen.
Zitat von: Elektrolurch am 01 Juni 2016, 13:19:06
Und mit "englisch" stellt sich mir die Frage, wieviele englisch sprachige Nutzer fhem hat und ob die Anzahl größer ist, als die deutschsprachigen Nutzer
In den Entwicklungsrichtlinien von fhem steht, dass ein Modul, um es einchecken zu dürfen, eine englische Dokumentation haben
muss. Eine zusätzliche deutsche Dokumentation ist dem Entwickler freigestellt. Und ich habe mich explizit dagegen entschieden. Die Pflege/Bereitstellung einer deutschen commandref durch jemanden anderes hilft mir nicht wirklich weiter, denn ich muss trotzdem kontrollieren, ob die deutsche Übersetzung technisch/fachlich und inhaltlich korrekt ist. Das kostet genausoviel Zeit wie eine deutsche commandref selbst zu pflegen.
Die englische commandref ist die einzige für mich als Entwickler verbindliche Dokumentationsstelle.
Es gibt übrigens noch mehr Module, die keine deutsche commandref haben, darüber diskutiert auch niemand.
Ok, ich habe verstanden, dass configBD ein Expertenfeature ausschließlich für Leute mit Datenbank-Vorkenntnissen bleiben soll.
Damit bin ich aus der Diskussion raus und verbleibe mit der Empfehlung, das wenigstens im Wiki und der commandref entsprechend klarzustellen (wie bei den includes, über die ich in diese Diskussion hier reingeschlittert bin)! Ob deutsch, englisch oder beides, ist mir reichlich egal. Sollte der Eindruck entstanden sein, dass die ENGLISCHE Fassung der commandref "schuld" sei: Nö, ich kann ganz gut auch mit einer nur englischen Fassung, deutsch macht es allenfalls angenehm (auch hier im Forum). Das setzt aber voraus, dass ich über die technischen Hintergründe wenigstes soviel weiß, dass ich's einordnen kann und mich selber traue (von daher hatte die sachlich korrekte englische Expertenfassung vor der ausdrücklichen Aufforderung es auch als Datenbank-Newbie doch wenigstens zu versuchen seinen Zweck voll erfüllt...).
Dann werde ich wohl heute Abend schleunigst den Rückweg in bekannte Gefielde (fhem.cfg) antreten, solange das nicht mit deutlich höherem Aufwand verbunden ist.
Tut mir leid, wenn ich eure Zeit und Nerven vergeudet haben sollte. :(
Zitat von: joe_re am 01 Juni 2016, 13:34:56
Ok, ich habe verstanden, dass configBD ein Expertenfeature ausschließlich für Leute mit Datenbank-Vorkenntnissen bleiben soll.
Nein, Du hast nichts verstanden. configDB soll genau KEIN Expertenfeature sein. Und Datenbank-Vorkenntnisse sind nicht erforderlich. Genau DAS sollte der Workshop zeigen.
Natürlich können Leute mit Datenbankkenntnissen die configDB anders nutzen (beispielsweise auf mysql oder postgresql verwenden) aber für Otto Normalverbraucher gibt es prinzipiell keinen Unterschied in der Handhabung. Schon gar nicht, wenn ein Benutzer mit fhem anfängt.
Vermutlich hast Du auch noch viereckige Räder an Deiner Holzkarre, weil Du den Sinn von runden Rändern noch nicht verstanden hast und sie Dir suspekt sind, oder?
Zitat von: betateilchen am 01 Juni 2016, 13:16:58
Meine Workshops gehen immer davon aus, dass man mit root-Rechten arbeitet, sonst lassen sich keine Pakete installieren. Spätestens beim Lesen der apt-get Befehle sollte das jedem klar sein. Ansonsten mangelt es dem Leser bereits an grundlegendem Linux Verständnis.
vielleicht diesen hinweis in den ersten post kopieren, um die "angstschwelle" noch weiter zu senken.
Zitat von: frank am 01 Juni 2016, 13:44:15
vielleicht diesen hinweis in den ersten post kopieren,
hab ich grade erledigt, danke.
Zitat von: joe_re am 01 Juni 2016, 13:34:56
Ok, ich habe verstanden, dass configBD ein Expertenfeature ausschließlich für Leute mit Datenbank-Vorkenntnissen bleiben soll.
Damit bin ich aus der Diskussion raus und verbleibe mit der Empfehlung, das wenigstens im Wiki und der commandref entsprechend klarzustellen (wie bei den includes, über die ich in diese Diskussion hier reingeschlittert bin)! Ob deutsch, englisch oder beides, ist mir reichlich egal. Sollte der Eindruck entstanden sein, dass die ENGLISCHE Fassung der commandref "schuld" sei: Nö, ich kann ganz gut auch mit einer nur englischen Fassung, deutsch macht es allenfalls angenehm (auch hier im Forum). Das setzt aber voraus, dass ich über die technischen Hintergründe wenigstes soviel weiß, dass ich's einordnen kann und mich selber traue (von daher hatte die sachlich korrekte englische Expertenfassung vor der ausdrücklichen Aufforderung es auch als Datenbank-Newbie doch wenigstens zu versuchen seinen Zweck voll erfüllt...).
Dann werde ich wohl heute Abend schleunigst den Rückweg in bekannte Gefielde (fhem.cfg) antreten, solange das nicht mit deutlich höherem Aufwand verbunden ist.
Tut mir leid, wenn ich eure Zeit und Nerven vergeudet haben sollte. :(
Hast Du nicht. In der Expertendiskussion ging es um sagen wir es vorsichtig externe Datenbanken. Also nicht sqlite. sqlite ist eine Art Datenbank die man in seine Anwendung integrieren kann. Es gibt jede Menge Software die dieses Format verwendet.
Für Experten gibt es aber auch die Möglichkeit eine externe "richtige" Datenbank zu verwenden. So zum Beispiel MySQL.
Ich weiß das war jetzt Leihenhaft ausgedrückt aber so kann man es sich vielleicht besser vorstellen.
Ich kann mich nicht daran erinnern, dass jemals irgendwer hier im Forum technisch hinterfragt hätte, wie fhem (bzw. das darunterliegende Dateisystem des Betriebssystems) die fhem.cfg abspeichert.
Warum eigentlich nicht? Weil man - völlig zurecht - davon ausgeht, dass fhem das richtig macht.
Warum begegnet man configDB nicht einfach mit der gleichen - positiven - Erwartungshaltung? Die Datenbank wurde seinerzeit von Rudi und mir gemeinsam soweit generisch in fhem integriert (dazu waren durchaus auch Änderungen an uralten fhem-Mechanismen nötig) dass sie für den Anwender völlig transparent funktioniert und man überhaupt nicht darüber nachdenken braucht, wohin die Konfiguration nun tatsächlich geschrieben wird.
Zitat von: betateilchen am 01 Juni 2016, 13:40:31
Nein, Du hast nichts verstanden.
Korrekt ausgedrückt: Das ist es, was bei mir als ganz persönlicher Eindruck entstanden ist.
Ich habe sehr wohl kapiert, WIE es geht, der Workshop war ja klar (auch wenn es bei den zweien, die es nach der Anleitung gemacht haben, "typische" "Normaluser"-Rückfragen/-Meldungen gab). Von daher gebe ich Dir absolut recht, wenn Du sagst, es seien gerade keine Vorkenntnisse erforderlich (mal abgesehen davon, dass man natürlich su-Rechte braucht, aber wer das nicht weiß, tummelt sich eher nicht hier).
Ohne die seitherigen Diskussionen dazu jetzt im Einzelnen nachvollzogen zu haben, kurz zusammengefaßt:
- Entweder es ist für eine größere Anzahl von "Optimisten mit Erfahrung" (=Pessimisten) geeignet. Dann braucht es eine "copy/paste" Anleitung für Leute, die sich trauen (und sorry, dass ich mir um eines meiner zentralen Systeme Sorgen mache, wenn Leute mit mehreren hundert Einträgen hier sich wieder aus configdb verabschiedet haben, suchen macht halt u.a. auch vorsichtig...)
- oder man möchte keinen "Mist von Leuten, die nicht verstanden haben", was sie tun (=Expertenfeature, oder?)
Zitat von: CoolTux am 01 Juni 2016, 13:49:09
Hast Du nicht. In der Expertendiskussion ging es um sagen wir es vorsichtig externe Datenbanken. Also nicht sqlite. sqlite ist eine Art Datenbank die man in seine Anwendung integrieren kann. Es gibt jede Menge Software die dieses Format verwendet.
...ich nutze seit knapp 10 Jahren amarok extrem gerne (auch wenn ich das verloren gegangene crossfading immer noch schmerzlich vermisse)! Aber das hat auch Schwierigkeiten, zu kapieren, welches Cover es anzeigen soll und die zugrundeliegende Datenbank zerschieße ich mir alle paar Jahre mal; aber das war jetzt off-topic...
Von daher nehme ich aber schon für mich in Anspruch, diesen Teil verstanden zu haben.
Zitat von: betateilchen am 01 Juni 2016, 14:01:26
Ich kann mich nicht daran erinnern, dass jemals irgendwer hier im Forum technisch hinterfragt hätte, wie fhem (bzw. das darunterliegende Dateisystem des Betriebssystems) die fhem.cfg abspeichert.
Warum eigentlich nicht? Weil man - völlig zurecht - davon ausgeht, dass fhem das richtig macht.
Um mich selbst zu grob zu zitieren: Wäre es damals der Standard gewesen, hätte ich mich nicht die Bohne darum geschert, was im Hintergrund los ist, das tue ich in vielen anderen Fällen tatsächlich nicht... Jetzt wollten mich ein paar Leute aber ermuntern, dass ich eine (vielleicht nur für mich persönlich) wichtige Entscheidung treffe, nämlich mein funktionierendes System zu ändern. Verzeiht mir, wenn ich vor diesem Hintergrund Fragen stelle, zumal, wenn es dann keine wirkliche Bevorzugung einer bestimmten Datenbanktechnik (sqlite) gibt und jedenfalls bis zu diesem Workshop auch keine "Normaluser"-kompatible Doku. (Und ich fürchte, diese hier wird irgendwann auch "verschütt" gehen, wenn sie nicht an prominenterer Stelle verlinkt wird).
Wenn gewünscht, mach' ich gerne den Wikieintrag, der entspricht dann halt leider meinen bescheidenen Kenntnissen.
Zitat von: joe_re am 01 Juni 2016, 14:23:10
...ich nutze seit knapp 10 Jahren amarok extrem gerne (auch wenn ich das verloren gegangene crossfading immer noch schmerzlich vermisse)! Aber das hat auch Schwierigkeiten, zu kapieren, welches Cover es anzeigen soll und die zugrundeliegende Datenbank zerschieße ich mir alle paar Jahre mal; aber das war jetzt off-topic...
Von daher nehme ich aber schon für mich in Anspruch, diesen Teil verstanden zu haben.
Das wäre so ein perfektes Beispiel. Du hast Amarok installiert und es hat von vornherein funktioniert. Du kannst aber auch eine MySQL Datenbank anbinden statt der sqlite. Musst hat das Schema selbst anlegen und die Tabellenstruktur anlegen.
Genau so ist es mit configDB
Wobei es für configDB nichtmal notwendig ist, die Tabellen anzulegen, weil die in einer leeren Datenbank automatisch angelegt werden. Lediglich die Datenbank selbst und ein Benutzer, der darauf zugreifen darf, muss für mysql und postgresql im Vorfeld angelegt werden.
Für sqlite braucht man das alles nicht, deshalb kann man da die Anwendung für den Anwender vollständig betriebsbereit vordefinieren.
Zitat von: CoolTux am 01 Juni 2016, 14:29:50
Das wäre so ein perfektes Beispiel.
...Danke, genau so war es gedacht...
Zitat von: CoolTux am 01 Juni 2016, 14:29:50
Du kannst aber auch eine MySQL Datenbank anbinden statt der sqlite.
...ist off-Topic, aber das war einer der eher nicht geglückten Versuche, "mal was mit" MySQL zu machen, weil sqlite(?) nicht so funktioniert hat wie erwartet...
Genauso off-Topic: Und wenn es schon eine deutlich weiter verbreitete Anwendung nicht schafft, alles so in der Datenbank abzuspeichern, wie "man" es erwarten würde, dann erhöht das beim darüber Nachdenken nicht mein Vertrauen darin, dass es klug ist, die fhem.cfg aufzugeben.
(wie gesagt off-Topic, aber wegen des "show-me": wie oft muß (-te?, könnte sein, dass es mittlerweile funktioniert) man versuchen, im Cover-Suchfenster ein anderes Cover übernehmen, bis amarok das sichtbar übernommen hat (oder mußte man nur amarok neu starten?)
Ähnliches beim integrierten Tag-Editor. Extern editieren und dann den entsprechenden Zweig neu einlesen, oder wie?)
Zitat von: joe_re am 01 Juni 2016, 14:46:48
Genauso off-Topic: Und wenn es schon eine deutlich weiter verbreitete Anwendung nicht schafft, alles so in der Datenbank abzuspeichern, wie "man" es erwarten würde, dann erhöht das beim darüber Nachdenken nicht mein Vertrauen darin, dass es klug ist, die fhem.cfg aufzugeben.
Auch offtopic: es liegt doch immer am Entwickler, wie er seine Applikation baut, die mit sqlite arbeiten soll.
Die weltweit verbreitete Versionsverwaltung subversion nutzt schließlich auch sqlite. Ohne dass das jemand hinterfragen würde.
Und subversion dürfte noch weiter verbreitet sein als amarok.
Zitat von: joe_re am 01 Juni 2016, 14:46:48
(wie gesagt off-Topic, aber wegen des "show-me": wie oft muß (-te?, könnte sein, dass es mittlerweile funktioniert) man versuchen, im Cover-Suchfenster ein anderes Cover übernehmen, bis amarok das sichtbar übernommen hat (oder mußte man nur amarok neu starten?)
Ähnliches beim integrierten Tag-Editor. Extern editieren und dann den entsprechenden Zweig neu einlesen, oder wie?)
Ich muß gestehen meine Amarok Zeiten sind gut und gerne 7 Jahre und mehr her. Damals hatte ich aber eine MySQL Datenbank am rennen und auch Zugriffe von unterschiedlichen Amarok Instanzen ermöglicht. Alles lief ohne Probleme. Auch das Taggen und die Covers. Wo genau Dein Problem lag/lieg vermag ich nicht zu sagen.
Zitat
Auch offtopic: es liegt doch immer am Entwickler, wie er seine Applikation baut, die mit sqlite arbeiten soll.
Die weltweit verbreitete Versionsverwaltung subversion nutzt schließlich auch sqlite. Ohne dass das jemand hinterfragen würde.
Und subversion dürfte noch weiter verbreitet sein als amarok.
Wohl war
Grüße
Zitat Betateilchen:
Meine Workshops gehen immer davon aus, dass man mit root-Rechten arbeitet, sonst lassen sich keine Pakete installieren. Spätestens beim Lesen der apt-get Befehle sollte das jedem klar sein. Ansonsten mangelt es dem Leser bereits an grundlegendem Linux Verständnis.
Ich hoffe, dass war nicht so gemeint, dass man sich mit root einloggen muss, sondern dass man sudo verwendet? Wenn nicht.....
...Ansonsten mangelt es dem Leser bereits an grundlegendem Linux Verständnis.
Bis jetzt habe ich noch nicht erschliessen können, welche Vorteile die configdb haben soll.
Als Nachteil habe ich nur, so weit ja oben dargestellt wurde, mitbekommen, dass man nicht mehr so einfach die 99_myUtils... - Dateien mit einem externen Editor bearbeiten kann. (müssen immer ein- und ausgecheckt werden?)
Solange, siehe meine unbeantwortete Frage oben, es mit dem fhem-Editor nicht möglich ist, auf eine bestimmte Zeilennummer zu springen, ist das für mich ein KO-Kriterium für den Einsatz von configdb, da ich sehr häufig von der Möglichkeit einen externen Editor zu nutzen Gebrauch mache.
Ich habe so ein wenig den Eindruck, siehe auch die Signatur von Betateilchen, dass es sich bei der configdb um einen "Glaubenskrieg" handelt (Karren mit eckigen Rädern... sind schon strange Argumente)....
Elektrolurch
Zitat von: betateilchen am 01 Juni 2016, 15:03:53
Auch offtopic: es liegt doch immer am Entwickler, wie er seine Applikation baut, die mit sqlite arbeiten soll.
Zitat von: CoolTux am 01 Juni 2016, 15:05:46
Wo genau Dein Problem lag/lieg vermag ich nicht zu sagen.
OK, zurück zum Thema:
- wir sind uns einig, dass jeder so seine Erfahrungen gemacht hat und ich auch
schon gestern zumindest eine grobe Vorstellung davon hatte, auf was ich mich einlasse, als ich die Umstellung einfach gemacht habe?
- Wo genau liegt das Problem, wenn ich dann zusammenfassend alle mir bekannten/präsenten Stichworte aufliste (auch wenn das pessimistisch wirkt) und die unbedarfte Frage stelle, warum das nicht an zentraler Stelle für die Nachwelt an der Stelle gestrafft zusammengefaßt wird, wo man (?) es vermuten würde (=für mich: Wiki, ich bin da aber nur begrenzt wählerisch, ich hatte nach meinem Verständnis eigentlich nicht von der Commandref gesprochen!).
Ich hätte das eigentlich auch lieber nur direkt per PM an Betateilchen geschickt, was aber geblockt wurde (aus durchaus nachvollziehbaren Gründen, ich krieg' auch schon einige PM betreffend MySensors mit Fragen, die man genauso gut öffentlich beantworten könnte bzw. bezüglich Infos die ich auch schon öffentlich gepostet habe).
Zitat von: Elektrolurch am 01 Juni 2016, 15:42:42
Bis jetzt habe ich noch nicht erschliessen können, welche Vorteile die configdb haben soll.
An die Allgemeinheit:
Nennt mir
ein wirklich gutes Argument, warum ich weiter configDB nutzen soll und ich wäge das nochmal ab!
Erklärt es mir, möglichst auf einem passenden Niveau, meinen ungefähren Kenntnisstand in EDV-Themen solltet Ihr ja zwischenzeitlich einigermaßen einschätzen können.
Zitat von: Elektrolurch am 01 Juni 2016, 15:42:42
Solange, siehe meine unbeantwortete Frage oben, es mit dem fhem-Editor nicht möglich ist, auf eine bestimmte Zeilennummer zu springen,
Mit dem in fhem enthaltenenen Editor codemirror kann man sehr wohl zu einer bestimmten Zeilennummer springen. Und der Editor ist völlig unabhängig davon, wie/wo man seine Konfiguration ablegt.
Zitat von: Elektrolurch am 01 Juni 2016, 15:42:42
Ich hoffe, dass war nicht so gemeint, dass man sich mit root einloggen muss, sondern dass man sudo verwendet? Wenn nicht.....
Ich sprach ausdrücklich von root-
Rechten. Wie man sich diese Rechte im Einzelfall verschafft, muss jeder selbst entscheiden.
Und bezüglich "Hoffnung" solltest vielleicht besser mit einem Kirchenvertreter kommunizieren. Hoffnung und Softwareentwicklung passen nicht zusammen.
Zitat Betateilchen:
Mit dem in fhem enthaltenenen Editor codemirror kann man sehr wohl zu einer bestimmten Zeilennummer springen. Und der Editor ist völlig unabhängig davon, wie/wo man seine Konfiguration ablegt.
Muss ich jetzt Dir die Antwort noch aus der Nase ziehen? Ist es so schwer, die Frage zu beantworten? Wie springt man nun auf eine Zeilennummer?
Wie Du ev. meiner Signatur entnehmen kannst, bin ich auf einen Screen-Reader angewiesen und mit dem hat sich mir bisher die Möglichkeit nicht erschlossen, wie das mit der Zeilennummer geht.
Ich habe also nicht umsonst die Frage gestellt und hätte mich auch über eine "wirklich hilfreiche" Antwort gefreut.
Aber das scheint ja zuviel verlangt zu sein.
Wusstest Du schon, dass es sich bei einem Betateilchen um ein negativ geladenes Teilchen (Elektron) handelt? Soweit zum Thema "Hoffnung".
Elektrolurch
Zitat von: Elektrolurch am 01 Juni 2016, 16:14:46
Wusstest Du schon, dass es sich bei einem Betateilchen um ein negativ geladenes Teilchen (Elektron) handelt?
Natürlich weiß ich das.
Aber wusstest Du schon, warum ich 2005 diesen Benutzernamen im Internet angenommen habe?
Genau deswegen.
Es ist nicht Aufgabe dieses Threads, die Funktionsweise von codemirror zu erklären.
codemirror hat einen eigenen Thread hier im Forum. Und es ist ein Third-Party-Produkt, das im Internet über eine ausgezeichnete Dokumentation und eine eigene Community verfügt.
Aber um Deine Frage trotzdem zu beantworten, auch wenn sie überhaupt nichts mit der Konfigurationsdatenbank zu tun hat: Ich tippe im Editorfenster ALT-G, dann kommt ein Popup, in dem ich die Zeilennumer eingebe und dann lande ich an der gewünschten Stelle.
Es wäre schön, wenn wir hier in der Diskussion endlich wieder auf das eigentliche Thema dieses Threads zurückkommen würden. Also das, was im Eingangsbeitrag beschrieben steht. Danke.
Zitat von: betateilchen am 01 Juni 2016, 16:48:20
Ich tippe im Editorfenster ALT-G, dann kommt ein Popup, in dem ich die Zeilennumer eingebe und dann lande ich an der gewünschten Stelle.
Es wäre schön, wenn wir hier in der Diskussion endlich wieder auf das eigentliche Thema dieses Threads zurückkommen würden. Also das, was im Eingangsbeitrag beschrieben steht. Danke.
(Nur noch ganz kurz :-[) Das scheint keine Standardfunktionialität von codemirror zu sein. Das funktioniert bei mir in FHEM nämlich nicht. Und auch auf der Codemirror-Seite ist das ganze erst unter Addons zu finden. Dieses Addon scheint in der, mit FHEM ausgelieferten Variante derzeit wohl nicht enthalten zu sein.
Zitat:
codemirror hat einen eigenen Thread hier im Forum. Und es ist ein Third-Party-Produkt, das im Internet über eine ausgezeichnete Dokumentation und eine eigene Community verfügt.
Ich habe heute das erste Mal davon gehört, dass der eingebaute Editor "Code Mirror" heißt, also: Ich hätte noch nicht einmal die Chance gehabt, danach gezielt zu suchen (und in der CommandRef, der fhem - Bibel, steht davon auch nichts) ....
Das liebe ich nämlich an solchen Antworten...
Entschuldigung für meine grenzenlose Unkenntnis, ich werde Besserung geloben... und jeden Tag das Forum auswendig lernen.
Zitat:
Aber um Deine Frage trotzdem zu beantworten, auch wenn sie überhaupt nichts mit der Konfigurationsdatenbank zu tun hat: Ich tippe im Editorfenster ALT-G, dann kommt ein Popup, in dem ich die Zeilennumer eingebe und dann lande ich an der gewünschten Stelle.
Vielen Dank für die erteilte Gnade einer Antwort. Hat mir wirklich viel Zeit erspart.
Und die Frage hatte doch etwas mit diesem Beitrag zu tun: Es ging nämlich darum, Vor- und Nachteile von configdb abzuwägen. Und eine umständliche Bedienung mit einem externen Editor wäre halt ein Nachteil gewesen.
Man kann natürlich auch die user weiter in Unkenntnis lassen, aber so überzeugt man auch niemanden.
Wie wäre es mit einem neuen nickname? Würde alpa-Teilchen oder alpha-Tier vorschlagen. alpa-Teilchen sind positiv geladen, aber das ist ja sicher bekannt.
Elektrolurch
Wo ist eigentlich das Popcorn?
Zitat:
(Nur noch ganz kurz :-[) Das scheint keine Standardfunktionialität von codemirror zu sein. Das funktioniert bei mir in FHEM nämlich nicht. Und auch auf der Codemirror-Seite ist das ganze erst unter Addons zu finden. Dieses Addon scheint in der, mit FHEM ausgelieferten Variante derzeit wohl nicht enthalten zu sein.
Danke für die Info. Kann mich nämlich so dunkel daran erinnern, dass ich alle möglichen Varianten mit Modifier+G ausprobiert hatte und keine Möglichkeit einer Zeilennummereingabe erschien. Daher bin ich dann auf NotePad+ ausgewichen.
Zitat von: Elektrolurch am 01 Juni 2016, 17:09:24
Ich habe heute das erste Mal davon gehört, dass der eingebaute Editor "Code Mirror" heißt, gezielt zu suchen
Dafür, dass Du davon zum ersten Mal gehört hast, kann aber niemand was. codemirror ist seit Februar 2014 Thema: https://forum.fhem.de/index.php/topic,20444.0.html und wenn ich mich recht erinnere, ist er sogar in der fhem.cfg.demo unter FHEMWEB zu finden.
Zitat von: betateilchen am 01 Juni 2016, 16:48:20
Es wäre schön, wenn wir hier in der Diskussion endlich wieder auf das eigentliche Thema dieses Threads zurückkommen würden. Also das, was im Eingangsbeitrag beschrieben steht. Danke.
Zurück zum Thema. :)
Zitat von: betateilchen am 31 Mai 2016, 15:41:48
Außerdem würde ich mich freuen, wenn möglichst viele Anwender es einfach mal ausprobieren und melden, welche Probleme nach einer Migration auftreten, damit ich mögliche Fehlerquellen beseitigen und/oder besser dokumentieren kann.
Ich habe die Migration gerade eben mal auf einem Cubietruck ausprobiert und es hat soweit alles geklappt. Zwei Dinge sind mir aufgefallen:
- Es wäre nicht schlecht, wenn man zu Beginn erwähnt, dass Fhem beendet sein sollte, bevor man beginnt
- Ein Hinweis zum richtigen Verzeichnis (cd /opt/fhem) im 3. Schritt, würde sicherlich nicht schaden
Außerdem ist bei mir nach der Migration ein Fehler aufgetreten, der vorher nicht auftrat. Auf meinem Cubietruck läuft ein Hardware Watchdog, eingerichtet nach dieser Anleitung von Betateilchen:
https://forum.fhem.de/index.php?topic=20553.0 (https://forum.fhem.de/index.php?topic=20553.0)
Seit der Migration wird die Datei
/opt/fhem/log/fhem.save offenbar nicht mehr aktualisiert, so dass der Watchdog den Cubietruck neustartet. Kann das mit der Änderung zusammenhängen?
Außerdem bekomme ich nach dem Neustart nachfolgende Fehlermeldung:
Messages collected while initializing FHEM:
configDB: vccu: unknown IODev hmusb specified
Zitat von: marvin78 am 01 Juni 2016, 17:15:51
Wo ist eigentlich das Popcorn?
Habe ich mich auch schon gefragt.
B2T: da ich sowieso vorhatte auf DBlog umzustellen, werde ich dann auch die Konfiguration auf DB umstellen.
Zitat von: Spezialtrick am 01 Juni 2016, 19:03:25
Es wäre nicht schlecht, wenn man zu Beginn erwähnt, dass Fhem beendet sein sollte, bevor man beginnt
Muss man nicht zwingend.
Zitat von: Spezialtrick am 01 Juni 2016, 19:03:25
Ein Hinweis zum richtigen Verzeichnis (cd /opt/fhem) im 3. Schritt, würde sicherlich nicht schaden
Es gibt nicht "das" richtige Verzeichnis, da fhem auf einigen Plattformen nicht in /opt/fhem liegt, sondern z.B. in /var/fhem
Die Transferleistung, fhem aus dem Verzeichnis zu starten, in dem es installiert ist, hatte ich einfach als vorhanden vorausgesetzt. Das hat nix mit configDB zu tun, Du musst auch im Installationsverzeichnis stehen, wenn Du fhem mit fhem.cfg starten willst. Das steht auch in der fhem Doku.
Zitat von: Spezialtrick am 01 Juni 2016, 19:03:25
Seit der Migration wird die Datei /opt/fhem/log/fhem.save offenbar nicht mehr aktualisiert,
Logisch, denn dieses stateFile liegt ja in der Datenbank, und da kann der watchdog nicht reinschauen.
Einfache Abhilfe:
define at_heartbeat at +*00:01:00 {qx(touch /opt/fhem/log/fhem.heartbeat)}
und den watchdog auf diese Datei schauen lassen.
Zitat von: Spezialtrick am 01 Juni 2016, 19:03:25
Außerdem bekomme ich nach dem Neustart nachfolgende Fehlermeldung:
Messages collected while initializing FHEM:
configDB: vccu: unknown IODev hmusb specified
Nachschauen, ob die vccu vorhanden ist, wenn ja: 1. Fehlermeldung löschen, 2. Konfiguration abspeichern
Falls nicht vorhanden: 1. vccu einmal neu anlegen, 2. Fehlermeldung löschen, 3. Konfiguration abspeichern
Fehlermeldung wird gelöscht mit
attr global motd none
Nach einem Neustart sollte die Meldung nicht mehr erscheinen.
Zitat von: Hauswart am 01 Juni 2016, 19:18:32
B2T: da ich sowieso vorhatte auf DBlog umzustellen, werde ich dann auch die Konfiguration auf DB umstellen.
Sehr löblich! Aber bitte zwei getrennte Datenbanken verwenden und nicht alles in eine packen.
Zitat von: Benni am 01 Juni 2016, 17:06:35
Dieses Addon scheint in der, mit FHEM ausgelieferten Variante derzeit wohl nicht enthalten zu sein.
Dann sollte mal jemand den Maintainer von codemirror darum bitten, das feature in fhem mit auszuliefern ;)
Zitat von: betateilchen am 01 Juni 2016, 19:23:31
Sehr löblich! Aber bitte zwei getrennte Datenbanken verwenden und nicht alles in eine packen.
Guter Hinweis. Sollte man in den Anleitungen mit erwähnen.
Fängst Du jetzt auch noch an mit Negativkriterien?
Das "Schlimme" ist ja, dass es durchaus auch funktioniert, wenn man alles in eine Datenbank packt. Aber es macht nicht wirklich viel Sinn. Es ist also nur eine Empfehlung, kein Muss. Aber ich denke, die Mehrzahl der Anwender wird ohnehin nicht auf die Idee kommen, alles zusammenzupacken.
Zitat von: betateilchen am 01 Juni 2016, 19:21:15
Es gibt nicht "das" richtige Verzeichnis, da fhem auf einigen Plattformen nicht in /opt/fhem liegt, sondern z.B. in /var/fhem
Die Transferleistung, fhem aus dem Verzeichnis zu starten, in dem es installiert ist, hatte ich einfach als vorhanden vorausgesetzt. Das hat nix mit configDB zu tun, Du musst auch im Installationsverzeichnis stehen, wenn Du fhem mit fhem.cfg starten willst. Das steht auch in der fhem Doku.
Das ist mir bewusst, aber anderen vielleicht nicht. Es war ja auch nur ein Vorschlag.
Zitat
Logisch, denn dieses stateFile liegt ja in der Datenbank, und da kann der watchdog nicht reinschauen.
Einfache Abhilfe:
define at_heartbeat at +*00:01:00 {qx(touch /opt/fhem/log/fhem.heartbeat)}
und den watchdog auf diese Datei schauen lassen.
Vielen Dank! Funktioniert einwandfrei. :)
Zitat
Nachschauen, ob die vccu vorhanden ist, wenn ja: 1. Fehlermeldung löschen, 2. Konfiguration abspeichern
Falls nicht vorhanden: 1. vccu einmal neu anlegen, 2. Fehlermeldung löschen, 3. Konfiguration abspeichern
Fehlermeldung wird gelöscht mit attr global motd none
Nach einem Neustart sollte die Meldung nicht mehr erscheinen.
VCCU ist vorhanden und funktioniert auch die ganze Zeit. Wenn ich die Fehlermeldung lösche, taucht sie nach dem Neustart wieder auf. ???
Zitat von: betateilchen am 01 Juni 2016, 19:23:31
Sehr löblich! Aber bitte zwei getrennte Datenbanken verwenden und nicht alles in eine packen.
Könntest du auch eine Anleitung für den Umstieg auf DBlog erstellen?
Zitat von: betateilchen am 01 Juni 2016, 19:47:19
Fängst Du jetzt auch noch an mit Negativkriterien?
Das "Schlimme" ist ja, dass es durchaus auch funktioniert, wenn man alles in eine Datenbank packt. Aber es macht nicht wirklich viel Sinn. Es ist also nur eine Empfehlung, kein Muss. Aber ich denke, die Mehrzahl der Anwender wird ohnehin nicht auf die Idee kommen, alles zusammenzupacken.
Ich finde nicht das es ein Negativkretikpunkt ist. Ich finde, das es ist nicht mal ein Kritikpunkt. Klar kann man alles in eine DB stecken. Aber sowas macht man nicht. Bin der Meinung sowas ist eines dieser vielen ungeschriebenen Gesetze. Und wer aus dem Bereich kommt hat sogar passende Beispiele wieso es so sein sollte.
Bestes Beispiel ist das Handling von Transaktionsfiles. Wenn Du da auf die Idee kommst mehrere Anwendungen auf eine DB laufen zu lassen, na dann Prost Mahlzeit.
Zitat von: Spezialtrick am 01 Juni 2016, 19:49:23
Könntest du auch eine Anleitung für den Umstieg auf DBlog erstellen?
Soviel Geld hast Du nicht 8) Das soll bitte der Modulmaintainer von DbLog machen, das ist nämlich
erheblich mehr Aufwand und da hagelt es
garantiert nach der Umstellung Probleme.
Zu Deinem vccu Problem: vermutlich wird das Attribut der vccu bereits zu einem Zeitpunkt zugeordnet, zu dem der hmusb noch nicht vorhanden oder noch nicht vollständig initialisiert ist.
Zitat von: CoolTux am 01 Juni 2016, 19:53:41
Ich finde nicht das es ein Negativkretikpunkt
Von Kritikpunkt hat niemand gesprochen/geschrieben.
Ok. Negativkriterium. :D
Aber meine Meinung bleibt die selbe. Es ist nicht mal ein Kriterium. ;D
Hallo,
habe jetzt erfolgreich mein Testsystem auf configDB umgestellt.
Die Produktivsysteme folgend dann am Wochenende.
Grüße Jörg
Super, herzlichen Glückwunsch :)
Kommt es mir nur so vor oder ist das ganze ins Rennen gekommen weil ich hier die letzten Tage so viele Fragen gestellt habe ;D
Zitat von: betateilchen am 01 Juni 2016, 19:28:48
Dann sollte mal jemand den Maintainer von codemirror darum bitten, das feature in fhem mit auszuliefern ;)
Soeben passiert: https://forum.fhem.de/index.php/topic,54112.0.html ;D
Zitat von: CoolTux am 01 Juni 2016, 20:45:48
Kommt es mir nur so vor oder ist das ganze ins Rennen gekommen weil ich hier die letzten Tage so viele Fragen gestellt habe ;D
Den Pokal wollte jemand anderes haben! 8)
Lustige Truppe hier....
Zitat von: Spezialtrick am 01 Juni 2016, 19:49:23
Könntest du auch eine Anleitung für den Umstieg auf DBlog erstellen?
Die Anleitung im Fhemwiki schon mal angesehen?
Und ja, das mit der dblog-Geschichte sieht nach Aufwand aus.
Da das Testen doch mehreren wichtig erscheint: bleibe jetzt erst mal bei configdb...
Ansonsten:
- Einigkeit bei der Referenzplattform: Fehlanzeige ::) (obwohl die Statistik Bände spricht). Ergo: wer einen Cubie mit C64-Peripherie unter wasauchimmerix ans Laufen bekommt, ist eher derjenige, der den Transfer einer RPi-Standardanleitung für raspbian jessie hinbekommt, oder? (vollständige Installation dauert nur 15 Min ;), und dd gibt's auch noch, dann geht's in 45 sec.+booten)
- Wenn Anleitung, dann besser vollständig, also mit den sodu's, init.d etc, wo es notwendig/sinnvoll ist (og. Anleitung als Vorbild?) Dann startet man nicht versehentlich Dienste, die NICHT mit Admin-Rechten gestartet werden sollten mit ebensolchen, nur weil der "Normaluser" meint, das sei jetzt alles am einfachsten per sudo su zu machen
- Für Datenbank-Laien: in den Anleitungen einfach darauf achten, dass sich das bei mehreren DB-Diensten nicht unbeabsichtigt in die Quere kommt und die sinnvollen Datenbankstrukturen "automatisch" nebeneinander angelegt werden.
Und: Beruhigend, dass selbst Experten sich gegenseitig überfordern, wenn sie zu viel voraussetzen 8) 8) 8)
Nun noch eine Frage:
Letztens hatte ich bei mir das Problem mit dem Onkyo Receiver. Dieser brachte FHEM total zum Absturz und ein beenden und neustarten des Dienstes führte ebenfalls direkt wieder zum Absturz.
Ich habe dann händisch die IP des Receivers in der fhem.cfg geändert und fhem lies sich wieder starten.
Wäre so etwas auch mit configDB möglich? Also für jemanden ohne Datenbankkenntnisse?
Ja ist es.
Es gibt ein Art Rescue Start. Schau mal hier im Forum. Udo hatte das sehr gut beschrieben wie das gehen soll.
Edit: gefunden (https://forum.fhem.de/index.php/topic,46538.msg382805.html#msg382805)
Vielen Dank, dann kann ich mir das ja noch mal überlegen :)
fhem-log wird ganz normal geschrieben und landet nicht in der DB, zu mindest nicht von Hause aus. Eventuell kann man die Datei Importieren und sie wird dann in der DB weiter geschrieben. Das vermag ich aber nicht zu sagen.
Wenn Du weisst was Du machst und wie es geht kann man auch über die DB selber Einträge ändern. Aaaaaabbbber, Du musst wissen was Du machst. Also lieber zweimal überlegen.
Zitat von: ernst1024 am 02 Juni 2016, 09:20:25
Dann stellt sich mir im Anschluss die Frage wird denn fhem-xx.log weiter normal geschrieben oder landet das auch alles in der DB?
Log hat definitiv nichts mit configDB zu tun!
Das hier sollten unerfahrende nie nie niemals machen.
Hier mal eine kleine Einsicht in die DB Struktur
In meinem Fall ist mein Schemaname für die ConfigDB fhemConfigDB
MariaDB [fhemConfigDB]> show databases;
+--------------------+
| Database |
+--------------------+
| fhem |
| fhemConfigDB |
| information_schema |
+--------------------+
3 rows in set (0.00 sec)
Hier eine Übersicht der Tablellen. Es ist zu vermuten das die Config in der Tabelle "fhemconfig" zu finden ist
MariaDB [fhemConfigDB]> show tables;
+------------------------+
| Tables_in_fhemConfigDB |
+------------------------+
| fhembinfilesave |
| fhemconfig |
| fhemstate |
| fhemversions |
+------------------------+
4 rows in set (0.00 sec)
Hier nun die Spaltennamen der Tablelle.
MariaDB [fhemConfigDB]> show columns from fhemconfig;
+-------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+-------+
| COMMAND | char(32) | YES | | NULL | |
| DEVICE | char(64) | YES | | NULL | |
| P1 | char(50) | YES | | NULL | |
| P2 | text | YES | | NULL | |
| VERSION | int(11) | YES | | NULL | |
| VERSIONUUID | char(50) | YES | | NULL | |
+-------------+----------+------+-----+---------+-------+
6 rows in set (0.00 sec)
Und nun zu guter letzt ein Eintrag für eine Devicedefinition
MariaDB [fhemConfigDB]> select * from fhemconfig where DEVICE='rr_Marko' and VERSIONUUID = '6ae9dc22fdcc824483447073b3f8220a';
+---------+----------+-------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------+
| COMMAND | DEVICE | P1 | P2 | VERSION | VERSIONUUID |
+---------+----------+-------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------+
| define | rr_Marko | ROOMMATE | AnniKraussStr,Eltern | 77 | 6ae9dc22fdcc824483447073b3f8220a |
| attr | rr_Marko | alias | Marko | 78 | 6ae9dc22fdcc824483447073b3f8220a |
| attr | rr_Marko | devStateIcon | .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home | 79 | 6ae9dc22fdcc824483447073b3f8220a |
| attr | rr_Marko | event-on-change-reading | state,presence,wayhome,location | 80 | 6ae9dc22fdcc824483447073b3f8220a |
| attr | rr_Marko | group | Marko | 81 | 6ae9dc22fdcc824483447073b3f8220a |
| attr | rr_Marko | icon | people_sensor | 82 | 6ae9dc22fdcc824483447073b3f8220a |
| attr | rr_Marko | room | AnniKraussStr | 83 | 6ae9dc22fdcc824483447073b3f8220a |
| attr | rr_Marko | rr_locations | atwork,home,wayhome,underway | 84 | 6ae9dc22fdcc824483447073b3f8220a |
| attr | rr_Marko | rr_realname | group | 85 | 6ae9dc22fdcc824483447073b3f8220a |
| attr | rr_Marko | rr_states | home,gotosleep,asleep,awoken,absent,gone | 86 | 6ae9dc22fdcc824483447073b3f8220a |
| attr | rr_Marko | rr_wakeupDevice | rr_Marko_wakeuptimer1 | 87 | 6ae9dc22fdcc824483447073b3f8220a |
| attr | rr_Marko | sortby | 0 | 88 | 6ae9dc22fdcc824483447073b3f8220a |
| attr | rr_Marko | webCmd | state | 89 | 6ae9dc22fdcc824483447073b3f8220a |
+---------+----------+-------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+----------------------------------+
13 rows in set (3.30 sec)
Nun kann man natürlich, wenn man Ahnung hat in der Datenbank Änderungen machen. Hierzu muß man aber wissen wie genau das Schema arbeitet und welche der vielen Versionen nun aktuell ist, damit man auch wirklich die aktuelle bearbeitet.
Aber das sollte man nicht wirklich machen!!!
Zitat von: CoolTux am 02 Juni 2016, 09:47:29
Das hier sollten unerfahrende nie nie niemals machen.
<...>
Aber das sollte man nicht wirklich machen!!!
Ein Post nach dem sogenannte Böhmermann-Prinzip ;D
So zu sagen
Hätte ich wohl mal "Aus aktuellem Anlass" schreiben sollen. ;D
Aber es wurde ja nach techn. Background gefragt.
Ich befürchte ja das Udo mich zerlegen wird wenn er das hier liest. Hoffe er mag mich trotzdem noch leiden können :)
Zitat von: ernst1024 am 02 Juni 2016, 10:22:44
Jedenfalls würde mir so eine Vorgehensweise eher zusagen als die doch eher umständliche mit rescue=1 usw.
8), lauter Pessimisten hier 8)
An die Datenbankexperten:
Wäre es möglich, die Datenbank für den Havariefall auch einfach mit einem "alten" Stand zu starten? Auslösendes (nicht zwangsläufig schuldiges) Element dürfte ja die bzw. eine der letzten Änderung/en gewesen sein. Also könnte es ausreichen, fhem zu sagen, dass es die configBD mit dem vorletzten Stand starten soll. Dann anschließend diesen Stand mit einem Save zum aktuellen machen und den nächsten Versuch starten? Erfordert vermutlich Modifikationen, wäre aber eventuell "endanwenderfreundlicher".
Also etwa in der Art (weder geprüft noch recherchiert:) "sudo service fhem restart configDB -1"
Oder ist das zu schlicht gedacht?
Ja und Nein. Dein Versuch mit -1 müsste ja implementiert sein. Was Du aber machen kannst ist,
NICHTS
.....
Dieser Text wurde auf Grund unüberlegten handels wieder entfernt. To High Risk Faktor
Zitat von: CoolTux am 02 Juni 2016, 09:47:29
Hier mal eine kleine Einsicht in die DB Struktur
Zitat von: CoolTux am 02 Juni 2016, 09:57:05
Ich befürchte ja das Udo mich zerlegen wird wenn er das hier liest. Hoffe er mag mich trotzdem noch leiden können :)
Die Datenbankstruktur ist doch kein Geheimnis, das steht doch sogar alles im zugehörigen perl Modul - und ist somit open-source.
Ich würde trotzdem dringend davon abraten, irgendwelche Änderungen direkt in den Datenbanktabellen vorzunehmen. Zumindest wird es von mir dazu keinen Support geben.
Zitat von: ernst1024 am 02 Juni 2016, 10:22:44
Jedenfalls würde mir so eine Vorgehensweise eher zusagen als die doch eher umständliche mit rescue=1 usw.
Du magst sie umständlich finden. Aber sie funktioniert und sorgt mit fhem-Bordmitteln dafür, dass auch der "Normaluser", der keine Ahnung von Datenbanken hat, sein System wieder recovern und eine vorherige, funktionierende Version wiederherstellen kann. Und DAS ist meine Zielgruppe, wenn ich ein Modul schreibe. Nicht die Datenbankexperten.
Zitat von: joe_re am 02 Juni 2016, 10:44:00
Also etwa in der Art (weder geprüft noch recherchiert:) "sudo service fhem restart configDB -1"
Das funktioniert nicht so einfach, weil fhem die Übergabe von Startparametern (ausser der Angabe eines configfiles) nicht zuläßt. Und daran soll bitte auch nichts geändert werden!
Genau deshalb habe ich den Weg über die Umgebungsvariable gewählt, die dann bei der Initialisierung geprüft wird. Und welche Version tatsächlich eine funktionierende ist, wird der Anwender in den seltensten Fällen "aus dem Kopf" wissen, deshalb hat er mit meiner Lösung die Möglichkeit, in die Liste vorhandener Konfigurationen zu schauen und die gewünschte Konfiguration selbst zu bestimmen.
Da dieser Fall ohnehin nicht täglich auftritt, halte ich die gewählte Vorgehensweise durchaus für zumutbar.
Zitat von: CoolTux am 02 Juni 2016, 10:54:56
Was Du aber machen kannst ist,
Jetzt haue ich Dich wirklich, wenn ich Dich zu sehen kriege. Wie kann man nur so einen Scheiß empfehlen?
Ok ich sehe ein, das wäre dann zu Recht.
Ich nehme es wieder raus. Gibt zu viele Spielkinder auf der Welt
Sorry
Das hier sollte ein Workshop für Leute sein, denen die "Angst" vor der Konfigurationsdatenbank genommen werden soll.
Inzwischen sind wir hier soweit, dass selbsternannte Datenbankexperten hier Manipulationen auf Datenbankebene beschreiben wollen. Was soll das? Das kontrkariert den Sinn dieses Threads komplett. Ausserdem komme ich mir hier im Thread zeitweise vor, als würde ein Blinder einem Tauben versuchen zu erklären, was Farben sind.
Sehr frustrierend. Aber eigentlich hatte ich nichts anderes erwartet. Es gibt (mehrjährige Erfahrung hier im Forum) eben immer eine bestimmte Gruppe von Leuten, die jeden Ansatz, Anfängern etwas möglichst einfach zu beschreiben, kaputtreden.
Eigentlich sehr bedauerlich - für die Anfänger. Aber ich kanns nicht ändern.