FHEM Forum

FHEM => Sonstiges => Thema gestartet von: DerFrickler am 17 Januar 2017, 22:28:14

Titel: DbLog: set <name> userCommand <validSqlStatement>
Beitrag von: DerFrickler am 17 Januar 2017, 22:28:14
Hallo zusammen,

wie muss der Syntax bzw. das validSqlStatement aussehen, wenn ich ein

optimize table history;


über userCommand ausführen will?

Danke!
Titel: Antw:DbLog: set <name> userCommand <validSqlStatement>
Beitrag von: ghayne am 28 Januar 2017, 19:24:06
Zitat von: DerFrickler am 17 Januar 2017, 22:28:14
Hallo zusammen,

wie muss der Syntax bzw. das validSqlStatement aussehen, wenn ich ein

optimize table history;


über userCommand ausführen will?

Danke!

Fuer MySQL https://dev.mysql.com/doc/refman/5.7/en/optimize-table.html

Regards, Garry
Titel: Antw:DbLog: set <name> userCommand <validSqlStatement>
Beitrag von: abc2006 am 10 Februar 2017, 20:23:40
Ich häng mich hier mal ran. Hat nämlich genau mit userCommand zu tun:

Wenn ich ein
SELECT * FROM `history` WHERE TYPE='VZ' AND READING='total_power' AND DEVICE='Stromzaehler' limit 10;
ausführen lasse (mit userCommand) landet im Reading folgendes:

userCommandResult 2016-07-21 21:46:25

Erwarten würde ich aber:


mysql> SELECT * FROM `history` WHERE TYPE='VZ' AND READING='total_power' AND DEVICE='Stromzaehler' limit 10;
+---------------------+--------------+------+-------------------------------+-------------+------------------+------+
| TIMESTAMP           | DEVICE       | TYPE | EVENT                         | READING     | VALUE            | UNIT |
+---------------------+--------------+------+-------------------------------+-------------+------------------+------+
| 2016-07-21 21:46:25 | Stromzaehler | VZ   | total_power: 2732.78136528805 | total_power | 2732.78136528805 |      |
| 2016-07-21 21:46:35 | Stromzaehler | VZ   | total_power: 2712.59849520076 | total_power | 2712.59849520076 |      |
| 2016-07-21 21:46:45 | Stromzaehler | VZ   | total_power: 2699.7405223211  | total_power | 2699.7405223211  |      |
| 2016-07-21 21:46:54 | Stromzaehler | VZ   | total_power: 2691.10386158168 | total_power | 2691.10386158168 |      |
| 2016-07-21 21:47:04 | Stromzaehler | VZ   | total_power: 2677.20788650311 | total_power | 2677.20788650311 |      |
| 2016-07-21 21:47:14 | Stromzaehler | VZ   | total_power: 2661.53384368469 | total_power | 2661.53384368469 |      |
| 2016-07-21 21:47:23 | Stromzaehler | VZ   | total_power: 2712.94373499445 | total_power | 2712.94373499445 |      |
| 2016-07-21 21:47:33 | Stromzaehler | VZ   | total_power: 2706.72891915772 | total_power | 2706.72891915772 |      |
| 2016-07-21 21:47:42 | Stromzaehler | VZ   | total_power: 2710.29045328687 | total_power | 2710.29045328687 |      |
| 2016-07-21 21:47:52 | Stromzaehler | VZ   | total_power: 2704.11320669593 | total_power | 2704.11320669593 |      |
+---------------------+--------------+------+-------------------------------+-------------+------------------+------+
10 rows in set (0,11 sec)

mysql>


Mein Fehler?

Grüße,
Stephan
Titel: Antw:DbLog: set <name> userCommand <validSqlStatement>
Beitrag von: betateilchen am 10 Februar 2017, 22:24:25
Zitat von: abc2006 am 10 Februar 2017, 20:23:40
Erwarten würde ich aber:

...

Mein Fehler?

Falsche Erwartungshaltung an die Funktion.
Titel: Antw:DbLog: set <name> userCommand <validSqlStatement>
Beitrag von: abc2006 am 10 Februar 2017, 22:42:35
Also nicht mein Fehler.

Die Erwartungshaltung wurde u.a. durch die commandref  ("Der Befehl und ein zurückgeliefertes Ergebnis werden in entsprechende Readings geschrieben.") erzeugt.

Grüße,
Stephan
Titel: Antw:DbLog: set <name> userCommand <validSqlStatement>
Beitrag von: betateilchen am 10 Februar 2017, 23:19:46
Zitat von: abc2006 am 10 Februar 2017, 22:42:35
commandref  ("Der Befehl und ein zurückgeliefertes Ergebnis werden in entsprechende Readings geschrieben.") erzeugt.

... wenn es denn ein darstellbares Ergebnis gibt, was bei einem SELECT in diesem Zusammenhang nicht der Fall ist ;)

"set ... userCommand" ist ein quick&dirty-Tool, das ich vor langer Zeit einmal in DbLog eingebaut habe, weil ich es für Testzwecke gebraucht hatte. Es sollte nie ein vollwertiger Ersatz für "echte" SQL Abfragen auf die Datenbank sein.
Titel: Antw:DbLog: set <name> userCommand <validSqlStatement>
Beitrag von: abc2006 am 10 Februar 2017, 23:34:04
Alles klar, danke für die Info!

Grüße
Stephan