93_DbLog - Vorschläge zur Weiterentwicklung

Begonnen von betateilchen, 28 Februar 2014, 20:46:31

Vorheriges Thema - Nächstes Thema

betateilchen

#15
Doch, das ist so. Die Verbindungen werden wegen plotfork generiert.

Vermutlich, weil sonst die vielen Handles durcheinanderkommen.

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

justme1968

sobald plotfork gesetzt ist wird pro prozess eine eigene db connection aufgemacht. das muss so sein weil sich die prozesse sonst auf der einen connection in die quere kommen. es zeigt also kein problem sonder ganz im gegenteil das alles richtig arbeitet.

die meldung könnte man aber inzwischen auf level 4 oder sogar 5 schieben. die war nur aus debug gründen anfangs auf level 3.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

Ja, das mit dem "in die Quere kommen" ist mir inzwischen auch klar geworden. Gibt lustige Plots, wenn man versucht, das zu ändern 8)

Zitat von: justme1968 am 26 März 2014, 18:27:32die meldung könnte man aber inzwischen auf level 4 oder sogar 5 schieben.

Das hatte ich zwischenzeitlich bei mir auch schon so gemacht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

ich hab das schließlich nicht ohne grund eingebaut :)
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Tobias

Alles klar. Also Kein bug. Kam nicht von mir deswegen war es mir auch nicht gleich bewusst ohne in den  Code geschaut zu haben.

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

betateilchen

es ist auch nicht ganz einfach nachzuvollziehen, was von wem in dem Modul stammt :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

der patch und der kommentar beim einchecken sagt aber ganz klar fix for plotfork.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

jaja... ich meinte jetzt, im Modul erkennbar, nicht in SVN.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

es scheint mit dem plotfork in dblog auch an anderen Stellen Probleme zu geben...

http://forum.fhem.de/index.php/topic,21087.0.html
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

da gibt es tatsächlich ein problem. hier gab es keins :).

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

Im Anhang eine Modulversion, die auch bei nicht existierenden Datenbankverbindungen das Logdevice anlegt und in diesem Fall alle 5 Sekunden versucht, die Verbindung aufzubauen.

Bitte um Tests und Rückmeldungen.

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

betateilchen

Hallo Tobias,

könntest Du bitte diese Änderung einbauen


################################################################
#
# Verbindung zur DB aufbauen
#
################################################################
sub DbLog_Connect($)
{
  my ($hash)= @_;

  my $configfilename= $hash->{CONFIGURATION};
  my @config;
  my %dbconfig;

  if(configDBUsed()) {
    my $c  = _cfgDB_Readfile($configfilename);
    if(! $c) {
      Log3 $hash->{NAME}, 1, "Cannot open database configuration file $configfilename.";
      return 0;
    }
    @config = split(/\n/,$c);
  } else {
    if(!open(CONFIG, $configfilename)) {
      Log3 $hash->{NAME}, 1, "Cannot open database configuration file $configfilename.";
      return 0;
    }
    @config=<CONFIG>;
    close(CONFIG);
  }

  eval join("", @config);


damit künftig die Verbindungsdateien auch aus einem in der configDB gespeicherten Konfigurationsfile gelesen werden können. Sonst ändert sich nicht, das define wird genau so durchgeführt wie bisher, nur dass das Konfigurationsfile nicht mehr im lokalen Dateisystem sondern in der configDB gesucht wird. Dazu reicht es aus, eine bestehende Konfigurationsdatei einmalig in die Datenbank zu importieren.

configdb fileimport ./FHEM/logDB.cfg

Wobei ich an dieser Stelle die grundsätzliche Frage in den Raum stellen möchte, ob es wirklich Sinn macht, bei jedem Verbindungsaufbau die komplette Konfiguration neu zu lesen (die sich in einem laufenden fhem besser niemals ändern sollte!) oder ob man das Lesen nicht in das DEFINE verlagern sollte.

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

Tobias

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

betateilchen

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

Tobias

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter