[gelöst] DBLog Fehler bei SVG Grafik

Begonnen von Pyromane, 22 August 2015, 02:49:03

Vorheriges Thema - Nächstes Thema

Pyromane

Hallo,

ich möchte gerne SVG Grafiken aus gespeicherten Daten(PostgreSQL Datenbank) erstellen, erhalte jedoch keine Devices zur Auswahl (siehe Anhang) sondern lediglich folgende Fehlermeldung im Log:
2015.08.18 23:45:25 1: PERL WARNING: DBD::Pg::st execute failed: ERROR:  column "current.value" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: select device,reading,value from current where device <> '' ...
                              ^ at /opt/fhem//FHEM/93_DbLog.pm line 1681.
2015.08.18 23:45:25 1: PERL WARNING: DBD::Pg::st fetchrow_array failed: no statement executing at /opt/fhem//FHEM/93_DbLog.pm line 1682.

In der besagten Zeile steht folgendes:
1678    my $dbhf = $defs{$dlName}{DBHF};
1679    my $query = "select device,reading,value from current where device <> '' group by device,reading order by device,reading";
1680    my $sth = $dbhf->prepare( $query ); 
1681    $sth->execute();



Wenn man die Spalte "value" mit in das GROUP BY mit aufnimmt erhält man Werte, wobei ich mir jedoch nicht sicher bin ob das die gewünschten sind. (Ich habe es nur in der SQL Konsole getestet, da ich die Auswirkungen in FHEM nicht abschätzen kann.)

Bitte um Unterstützung. Danke!

Pyromane

Da ich den Beitrag laut maintainer.txt im falschen Bereich eröffnet habe bitte nach Automatisierung verschieben. Danke!

Tobias

#2
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

Pyromane

Mal eben schnell eine VM zum Testen aufgesetzt und die Datenbank eingespielt.
Mit der orig. 93_DbLog.pm erhalte ich die im ersten Beitrag angeführte Fehlermeldung.
Mit der DbLog, welche zum Testen gedacht war, schaut das Logfile wie folgt aus:
2015.08.26 21:38:13 1: Including fhem.cfg
2015.08.26 21:38:13 3: telnetPort: port 7072 opened
2015.08.26 21:38:13 3: WEB: port 8083 opened
2015.08.26 21:38:13 2: eventTypes: loaded 2 events from ./log/eventTypes.txt
Scalar found where operator expected at ./FHEM/93_DbLog.pm line 43, near "$hash"
(Missing semicolon on previous line?)
"my" variable $hash masks earlier declaration in same scope at ./FHEM/93_DbLog.pm line 102, <$fh> line 33.
"state" variable @_ masks earlier declaration in same scope at ./FHEM/93_DbLog.pm line 102, <$fh> line 33.
2015.08.26 21:38:13 1: reload: Error:Modul 93_DbLog deactivated:
syntax error at ./FHEM/93_DbLog.pm line 43, near "$hash"
Global symbol "$hash" requires explicit package name at ./FHEM/93_DbLog.pm line 44, <$fh> line 33.
Global symbol "$hash" requires explicit package name at ./FHEM/93_DbLog.pm line 65, <$fh> line 33.
Global symbol "$hash" requires explicit package name at ./FHEM/93_DbLog.pm line 66, <$fh> line 33.
syntax error at ./FHEM/93_DbLog.pm line 68, near "}"
Can't use global @_ in "my" at ./FHEM/93_DbLog.pm line 73, near "= @_"
Global symbol "$def" requires explicit package name at ./FHEM/93_DbLog.pm line 74, <$fh> line 33.
syntax error at ./FHEM/93_DbLog.pm line 98, near "}"
Can't use global @_ in "my" at ./FHEM/93_DbLog.pm line 102, near "= @_"
syntax error at ./FHEM/93_DbLog.pm line 108, near "}"
./FHEM/93_DbLog.pm has too many errors.

2015.08.26 21:38:13 0: syntax error at ./FHEM/93_DbLog.pm line 43, near "$hash"
Global symbol "$hash" requires explicit package name at ./FHEM/93_DbLog.pm line 44, <$fh> line 33.
Global symbol "$hash" requires explicit package name at ./FHEM/93_DbLog.pm line 65, <$fh> line 33.
Global symbol "$hash" requires explicit package name at ./FHEM/93_DbLog.pm line 66, <$fh> line 33.
syntax error at ./FHEM/93_DbLog.pm line 68, near "}"
Can't use global @_ in "my" at ./FHEM/93_DbLog.pm line 73, near "= @_"
Global symbol "$def" requires explicit package name at ./FHEM/93_DbLog.pm line 74, <$fh> line 33.
syntax error at ./FHEM/93_DbLog.pm line 98, near "}"
Can't use global @_ in "my" at ./FHEM/93_DbLog.pm line 102, near "= @_"
syntax error at ./FHEM/93_DbLog.pm line 108, near "}"
./FHEM/93_DbLog.pm has too many errors.

2015.08.26 21:38:13 1: Including ./log/fhem.save
2015.08.26 21:38:13 1: configfile: Cannot load module DbLog
2015.08.26 21:38:13 1: usb create starting
2015.08.26 21:38:13 1: usb create end
2015.08.26 21:38:13 2: Error messages while initializing FHEM: configfile: Cannot load module DbLog
2015.08.26 21:38:13 0: Featurelevel: 5.6
2015.08.26 21:38:13 0: Server started with 8 defined entities (version $Id: fhem.pl 9118 2015-08-23 12:43:56Z rudolfkoenig $, os linux, user fhem, pid 1829)

Tobias

merkwürdig, mein fhem hat nicht gemeckert...
Bitte nochmal testen....
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

Pyromane

Scheint soweit zu funktionieren, SVG Grafiken kann ich erstellen. Danke!  :)

Allerdings erhalte ich folgende Meldungen im Log:

2015.08.28 09:28:48 1: Including fhem.cfg
2015.08.28 09:28:48 3: telnetPort: port 7072 opened
2015.08.28 09:28:48 3: WEB: port 8083 opened
2015.08.28 09:28:48 2: eventTypes: loaded 2 events from ./log/eventTypes.txt
given is experimental at ./FHEM/93_DbLog.pm line 1318, <$fh> line 33.
when is experimental at ./FHEM/93_DbLog.pm line 1320, <$fh> line 33.
when is experimental at ./FHEM/93_DbLog.pm line 1328, <$fh> line 33.
when is experimental at ./FHEM/93_DbLog.pm line 1338, <$fh> line 33.
when is experimental at ./FHEM/93_DbLog.pm line 1346, <$fh> line 33.
given is experimental at ./FHEM/93_DbLog.pm line 1351, <$fh> line 33.
when is experimental at ./FHEM/93_DbLog.pm line 1352, <$fh> line 33.
when is experimental at ./FHEM/93_DbLog.pm line 1353, <$fh> line 33.
when is experimental at ./FHEM/93_DbLog.pm line 1354, <$fh> line 33.
when is experimental at ./FHEM/93_DbLog.pm line 1367, <$fh> line 33.
2015.08.28 09:28:48 3: Connecting to database Pg:database=fhemdaten;host=127.0.0.1 with user fhem
2015.08.28 09:28:48 3: Connection to db Pg:database=fhemdaten;host=127.0.0.1 established for pid 1830
2015.08.28 09:28:48 3: Connection to db Pg:database=fhemdaten;host=127.0.0.1 established
2015.08.28 09:28:48 1: Including ./log/fhem.save
2015.08.28 09:28:48 1: usb create starting
2015.08.28 09:28:48 1: usb create end
2015.08.28 09:28:49 2: SecurityCheck:  WEB has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2015.08.28 09:28:49 0: Featurelevel: 5.6
2015.08.28 09:28:49 0: Server started with 9 defined entities (version $Id: fhem.pl 9118 2015-08-23 12:43:56Z rudolfkoenig $, os linux, user fhem, pid 1830)
2015.08.28 09:32:28 1: PERL WARNING: Argument "AU_WDS10" isn't numeric in subtraction (-) at ./FHEM/92_FileLog.pm line 627, <GEN16> line 14.

Tobias

das liegt glaub ich an deiner perl version...
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

rudolfkoenig

Ich meine, dass neuere Perl Versionen given & when als experimental eingestuft haben, und Warnungen ausgeben.
Wie man das Problem "richtig" loest, weiss ich allerdings nicht.

Pyromane

Danke für die Rückmeldung!

Was hat es mit der Warnung in der letzten Zeile des Logs auf sich?
2015.08.28 09:32:28 1: PERL WARNING: Argument "AU_WDS10" isn't numeric in subtraction (-) at ./FHEM/92_FileLog.pm line 627, <GEN16> line 14.

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

stromer-12

Um die experimental Warnungen wegzubekommen, habe ich bei mir folgende Zeile am Anfang nach den use Anweisungen eingefügt:
no warnings 'experimental::smartmatch';
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

Pyromane

Bitte die Änderungen noch einpflegen, damit ein Update nicht immer die 93_DbLog.pm überschreibt. Danke!

rapster

Welche änderugen?
Und ein update ist doch dazu da alte dateien zu überschreiben?

Pyromane

Zitat von: rapster am 26 Oktober 2015, 17:50:20
Welche änderugen?
Die Datei, die Tobias im dritten Beitrag verlinkt hat.
Zitat von: Tobias am 26 August 2015, 08:12:28
Bitte mal testen...

http://forum.fhem.de/index.php/topic,40176.msg326353.html#msg326353


Zitat von: rapster am 26 Oktober 2015, 17:50:20
Und ein update ist doch dazu da alte dateien zu überschreiben?
Tobias hatte die Änderungen nur in der Datei die im Forum vorgenommen, da ab in den letzten Tagen einige DBLog Änderungen durch andere Benutzer durchgeführt wurden hat es die händisch reinkopierte wieder überschrieben.

rapster

Bitte mal den Thread zuende lesen den du gerade verlinkt hast, danke