FHEM Forum

FHEM => fhem-users => Thema gestartet von: Tobias am 24 November 2012, 07:59:22

Titel: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Tobias am 24 November 2012, 07:59:22
                                                   

Hallo,

ich habe die letzten Tage das DbLog-Modul nochmal überarbeitet, incl Doku
am Ende.
Es wäre schön wenn es jemand oder mehrere testen können.

Was ist neu?
- Erkennung ob Postgresql/MySQL oder Oracle Datenbank benutzt wird
- Features von FileLog eingearbeitet
  -> delta-h / delta-d
  -> Regexp und (int) sowie int für die column_spec

Damit kann man nun ein Weblink für ein Plot erstellen.
Bitte dran denken, das fürs DbLog die Direktiven im .gplot wie folgt
definiert sein müssen:
#DbLog ::0
Alternativ kann man die Direktive im Weblink über das Attribut
"plotfunction" einstellen

Im Anhang nicht nur das Modul, sondern auch die DDL für eine PostGreSql DB
mit passenen Indices
 
viel spass

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Tobias am 24 November 2012, 08:01:24
                                                   

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

--
-- PostgreSQL database dump
--

SET statement_timeout = 0;
SET client_encoding = 'SQL_ASCII';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;

--
-- Name: fhem; Type: SCHEMA; Schema: -; Owner: fhem
--

CREATE SCHEMA fhem;


ALTER SCHEMA fhem OWNER TO fhem;

--
-- Name: SCHEMA fhem; Type: COMMENT; Schema: -; Owner: fhem
--

COMMENT ON SCHEMA fhem IS 'standard fhem schema';


SET search_path = fhem, pg_catalog;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: current; Type: TABLE; Schema: fhem; Owner: fhem; Tablespace:
--

CREATE TABLE current (
    "timestamp" timestamp without time zone,
    device character varying(64),
    type character varying(64),
    event character varying(512),
    reading character varying(64),
    value character varying(128),
    unit character varying(32)
);


ALTER TABLE fhem.current OWNER TO fhem;

--
-- Name: history; Type: TABLE; Schema: fhem; Owner: fhem; Tablespace:
--

CREATE TABLE history (
    "timestamp" timestamp without time zone,
    device character varying(64),
    type character varying(64),
    event character varying(512),
    reading character varying(64),
    value character varying(128),
    unit character varying(32)
);


ALTER TABLE fhem.history OWNER TO fhem;

--
-- Name: reading; Type: INDEX; Schema: fhem; Owner: fhem; Tablespace:
--

CREATE INDEX reading ON history USING btree (((((device)::text || '|'::text) || (reading)::text)), "timestamp");


--
-- PostgreSQL database dump complete
--
Titel: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Tobias am 24 November 2012, 13:22:37
                                                   

ich habs mal in contrib/dblog eingecheckt.
Was müsste ich tun damit es vom contrib ins Hauptverzeichnis wandern kann?
Doku habe ich übernomen und entsprechend erweitert (hinten dran am Modul)

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: tiptronic am 24 November 2012, 13:27:06
                                                 

Hi Tobias,

Du hast die Datei leider mit einem falschen Encoding eingecheckt... jetzt sind alle Sonderzeichen (z.B. °) weg...

Ausserdem hast Du den Support für SQLITE wegoptimiert -- ganz schlecht, denn die verwende ich ausschliesslich!  Könntest Du das wieder einbauen?

Ich fände es adäquater, wenn man hier vielleicht vorher eine Diskussion anstösst, bevor man Features ausbaut... Auch wenn man sie selbst nicht braucht - andere brauchen sie vielleicht.

Danke

Andy


On 24.11.2012, at 08:01, tobias.faust wrote:

>
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com
> <93_DbLog.pm>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: tiptronic am 24 November 2012, 13:48:06
                                                 

Hi Tobias,

was mir noch aufgefallen ist:

DbLog_ExecSQL() hat bislang 0 oder 1 zurückgegeben - je nachdem, ob etwas schief gegangen ist oder nicht. Jetzt gibt DbLog_ExecSQL() bei Fehlern 'undefined' zurück. Obwohl dies derzeit wohl keine Auswirkungen hat, tendiere ich doch eher zur 0/1 Variante, da dies einfach verlässlicher ist.

andy


On 24.11.2012, at 13:27, Andy Fuchs wrote:

> Hi Tobias,
>
> Du hast die Datei leider mit einem falschen Encoding eingecheckt... jetzt sind alle Sonderzeichen (z.B. °) weg...
>
> Ausserdem hast Du den Support für SQLITE wegoptimiert -- ganz schlecht, denn die verwende ich ausschliesslich!  Könntest Du das wieder einbauen?
>
> Ich fände es adäquater, wenn man hier vielleicht vorher eine Diskussion anstösst, bevor man Features ausbaut... Auch wenn man sie selbst nicht braucht - andere brauchen sie vielleicht.
>
> Danke
>
> Andy
>
>
> On 24.11.2012, at 08:01, tobias.faust wrote:
>
>>
>>
>> --
>> To unsubscribe from this group, send email to
>> fhem-users+unsubscribe@googlegroups.com
>> <93_DbLog.pm>
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Martin Fischer am 24 November 2012, 13:52:11
Am Samstag, 24. November 2012, 04:22:37 schrieb tobias.faust:
> ich habs mal in contrib/dblog eingecheckt.
> Was müsste ich tun damit es vom contrib ins Hauptverzeichnis wandern kann?

nichts! denn dblog sollte weiterhin in contrib bleiben, da es a) nur wenige
nutzen und b) es noch ein _zusätzliches_ configFile benötigt.

nicht alles muss immer in trunk. dafür haben wir ja schliesslich auch contrib.

aber ich muss auch andy recht geben:
wenn du schon _bestehende_ sachen anpasst, dann solltest du sicherstellen, das
sie _kompatibel_ bleiben. oder aber forken..

gruss martin

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Tobias am 24 November 2012, 18:35:09
                                                   

Hi,

zum Rückgabewert von DbLog_ExecSQL: das ist eine interne Funktion,
eigentlich nicht gedacht um von außen aufgerufen zu werden. Ich habe es
geändert weil ich nicht nur true/false zurückhaben möchte, sondern bei
einem Select das gesamte Resultset benötige. Ich kann aber bei einem Fehler
eine 0 zurückgeben lassen, ok??

bzgl zusätzlichem configfile: ich kann es gerne ändern das man das beim
Define angeben kann, ok??
Das es wenige nutzen kann ich nicht nachvollziehen, zb,. WebIO nutzen wohl
noch weniger und ist trotzdem im main-zweig...

Ich würde es wirklich gerne im trunc sehen....

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: tiptronic am 24 November 2012, 18:39:17
                                                 

Am 24.11.2012 um 18:35 schrieb "tobias.faust" :

> zum Rückgabewert von DbLog_ExecSQL: das ist eine interne Funktion, eigentlich nicht gedacht um von außen aufgerufen zu werden. Ich habe es geändert weil ich nicht nur true/false zurückhaben möchte, sondern bei einem Select das gesamte Resultset benötige. Ich kann aber bei einem Fehler eine 0 zurückgeben lassen, ok??

Das wäre ok: Wenigstens halt nicht undefined... falls man die Funktion doch mal braucht ist das nicht sehr zielführend.

> bzgl zusätzlichem configfile: ich kann es gerne ändern das man das beim Define angeben kann, ok??
> Das es wenige nutzen kann ich nicht nachvollziehen, zb,. WebIO nutzen wohl noch weniger und ist trotzdem im main-zweig...
>
> Ich würde es wirklich gerne im trunc sehen....
>

Mir wäre wichtiger, dass Du die weg-optimierte SQLITE wieder einbaust (ich weiss nicht, ob jemand auch noch andere DBDs verwendet, weil die sind ja auch hops gegangen)

andy

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Tobias am 24 November 2012, 18:45:07
                                                   

SQLITE kann ich gerne machen. dazu benötige ich folgende Angaben:
- den connectstring aus dem configfile
- die Formatierung und Befehl timestamp -> char
- und die Formatierung und Befehl char -> timestamp, beides für das Format:
YYYY-MM-DD_HH24:MI:SS

gruss

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: tiptronic am 24 November 2012, 18:47:57
                                                 

Ich frage mich, warum Du das nicht einfach so lässt, wie es der Original-Author vorgesehen hat. Und wenn Du nun die PostgreSQL noch dazu machen willst, setzt Du diese als Special-Case davor.

andy


Am 24.11.2012 um 18:45 schrieb "tobias.faust" :

> SQLITE kann ich gerne machen. dazu benötige ich folgende Angaben:
> - den connectstring aus dem configfile
> - die Formatierung und Befehl timestamp -> char
> - und die Formatierung und Befehl char -> timestamp, beides für das Format: YYYY-MM-DD_HH24:MI:SS
>
> gruss
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Tobias am 24 November 2012, 18:56:20
                                                   

Leider klappt das aber nicht weil jede Datenbank unterschiedliche
Datumsformatierungen kennt. Aber auf die bin ich angewiesen um die GET
Funktion implementieren zu können. Ich mus eine feste Formatierung vorgeben
damit der Rest von FHEM die Daten weiterverarbeiten kann


On Saturday, November 24, 2012 6:47:59 PM UTC+1, tiptronic wrote:
>
> Ich frage mich, warum Du das nicht einfach so lässt, wie es der
> Original-Author vorgesehen hat. Und wenn Du nun die PostgreSQL noch dazu
> machen willst, setzt Du diese als Special-Case davor.
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: tiptronic am 24 November 2012, 18:59:28
                                                 

Also bisher hat das ganz wunderbar funktioniert.

Wie wär's wenn Du das switch-statement in die GET-Funktion einbaust. Damit zwingst Du nicht alle User dazu ihre Installation zu ändern, nur weil Du GET möchtest.

andy



Am 24.11.2012 um 18:56 schrieb "tobias.faust" :

> Leider klappt das aber nicht weil jede Datenbank unterschiedliche Datumsformatierungen kennt. Aber auf die bin ich angewiesen um die GET Funktion implementieren zu können. Ich mus eine feste Formatierung vorgeben damit der Rest von FHEM die Daten weiterverarbeiten kann
>
>
> On Saturday, November 24, 2012 6:47:59 PM UTC+1, tiptronic wrote:
> Ich frage mich, warum Du das nicht einfach so lässt, wie es der Original-Author vorgesehen hat. Und wenn Du nun die PostgreSQL noch dazu machen willst, setzt Du diese als Special-Case davor.
>
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Martin Fischer am 24 November 2012, 19:04:19
Am Samstag, 24. November 2012, 09:35:09 schrieb tobias.faust:
> [...]
> bzgl zusätzlichem configfile: ich kann es gerne ändern das man das beim
> Define angeben kann, ok??

nein, da dann das passwort im klartext in der oberfläche zu sehen ist.

gruss

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Martin Fischer am 24 November 2012, 19:05:53
btw: die diskussion gehört eigentlich nach fhem-developers

gruss

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Tobias am 24 November 2012, 19:06:51
                                                   

gib mir doch einfach die benötigten INformationen.
Würde ich das nicht machen würde das Modul fette Fehler werfen falls fhem
Daten anfordert...
Was mich aber interessiert, wie monitorst du die Daten? Kann ja nur
außerhalb von fhem sein...
Vieleicht nutzen nur so wenig das Modul weil keine Plots möglich waren..?

Ändern sollte keiner was, ich bin bestebt soviel wie möglich DB´s
unterstützen zu können.


On Saturday, November 24, 2012 6:59:31 PM UTC+1, tiptronic wrote:
>
> Also bisher hat das ganz wunderbar funktioniert.
>
> Wie wär's wenn Du das switch-statement in die GET-Funktion einbaust. Damit
> zwingst Du nicht alle User dazu ihre Installation zu ändern, nur weil Du
> GET möchtest.
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Tobias am 24 November 2012, 19:09:16
                                                   

stimmt :(

On Saturday, November 24, 2012 7:04:21 PM UTC+1, Martin Fischer wrote:
>
> Am Samstag, 24. November 2012, 09:35:09 schrieb tobias.faust:
> > [...]
> > bzgl zusätzlichem configfile: ich kann es gerne ändern das man das beim
> > Define angeben kann, ok??
>
> nein, da dann das passwort im klartext in der oberfläche zu sehen ist.
>
> gruss
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Dr. Boris Neubert am 24 November 2012, 19:22:07
                                             

Hallo Tobias,

ich bin der ursprüngliche Autor von 93_DbLog.pm.

Am 24.11.2012 18:35, schrieb tobias.faust:
> bzgl zusätzlichem configfile: ich kann es gerne ändern das man das
> beim Define angeben kann, ok??

Die zusätzliche Konfigurationsdatei dient dazu, die Kennwörter nicht für
jeden lesbar in der fhem-Konfiguration und Geräte-Definition (list &
Co.) zu haben.
> Ich würde es wirklich gerne im trunc sehen....
Ich habe nichts dagegen, solange Du dafür Support leistet.

Grüße
Boris

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Tobias am 24 November 2012, 19:45:56
                                                   

Hi Boris,
der Supportaufgabe bin ich mir bewusst.
bzgl der Kennwortproblematik hab ich mir die letzte Stunde auch schon
gedanken gemacht aber noch nichts besseres gefunden als wie es jetzt
(configfile) ist.

On Saturday, November 24, 2012 7:22:09 PM UTC+1, Boris wrote:
>
> Hallo Tobias,
>
> ich bin der urspr�ngliche Autor von 93_DbLog.pm.
>
> Am 24.11.2012 18:35, schrieb tobias.faust:
> > bzgl zus�tzlichem configfile: ich kann es gerne �ndern das man das
> > beim Define angeben kann, ok??
>
> Die zus�tzliche Konfigurationsdatei dient dazu, die Kennw�rter nicht
> f�r
> jeden lesbar in der fhem-Konfiguration und Ger�te-Definition (list &
> Co.) zu haben.
> > Ich w�rde es wirklich gerne im trunc sehen....
> Ich habe nichts dagegen, solange Du daf�r Support leistet.
>
> Gr��e
> Boris
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: tiptronic am 24 November 2012, 19:55:15
                                                 

Am 24.11.2012 um 19:06 schrieb "tobias.faust" :

> gib mir doch einfach die benötigten INformationen.

z.B:

%dbconfig= (
   connection => "SQLite:dbname=/var/log/fhem.db",
   user => "user",
   password => "pass",
);

Da die SQLITE aber eine Textbasierte Datenbank ist, gibt es kein dediziertes Datumsformat. Derzeit wird von 93_DbLog  der Timestamp so geloggt:
"YYYY-MM-DD HH:MM:SS"  (z.B.: 2011-03-31 22:01:59).

andy



> Würde ich das nicht machen würde das Modul fette Fehler werfen falls fhem Daten anfordert...
> Was mich aber interessiert, wie monitorst du die Daten? Kann ja nur außerhalb von fhem sein...
> Vieleicht nutzen nur so wenig das Modul weil keine Plots möglich waren..?
>
> Ändern sollte keiner was, ich bin bestebt soviel wie möglich DB´s unterstützen zu können.
>
>
> On Saturday, November 24, 2012 6:59:31 PM UTC+1, tiptronic wrote:
> Also bisher hat das ganz wunderbar funktioniert.
>
> Wie wär's wenn Du das switch-statement in die GET-Funktion einbaust. Damit zwingst Du nicht alle User dazu ihre Installation zu ändern, nur weil Du GET möchtest.
>
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Tobias am 25 November 2012, 06:27:21
                                                   

Hi,
teste mal bitte dieses DBLog auf a) SQLite Unterstützung und b) Codepage
bei °C

Kannst du bitte auch mal ein Get testen? zb:
get DbLog - - 2012-11-10 2012-11-26 KS300:temperature::
Falls es nicht funktioniert stell mal bitte loglevel auf 4, führe das Get
nochmal aus und prüfe mal bitte das SQL im Log direkt auf deiner SQLite
welche Datum's parameter falsch sind
Habe hier kein SQLite um zu testen....

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: tiptronic am 25 November 2012, 14:05:11
                                                 

Ich möchte nochmal vorausschicken, dass ich mit dieser Lösung immer noch nicht warm werde.

In der ursprünglichen Variante von Boris kann ich jede x-beliebige dbd verwenden, um Daten rauszuschreiben (neben 'normalen' Datenbanken eben auch nach Excel, CSV, etc...). Das hat das DBLog-Modul extrem flexibel gemacht.

Das verschwindet jetzt leider alles, da der derzeitige Code restriktiv nur die bekannten Datenbank-Schemen zulässt.

Ich plädiere nach wie vor dafür, dass das Verhalten vom DB_Log generisch bleibt. Selbstverständlich kann man die Datenbanken explizit deklarieren und ein Flag setzen, welches GET signalisiert, ob es ausgeführt werden soll oder nicht.

On 25.11.2012, at 06:27, "tobias.faust" wrote:

> Hi,
> teste mal bitte dieses DBLog auf a) SQLite Unterstützung und b) Codepage bei °C

Das String-Encoding ist immer noch inkorrekt... Alle Umlaute und Sonderzeichen in den Literals sind '?' (Fragezeichen)

> Kannst du bitte auch mal ein Get testen? zb:

Im GET fehlen die Felder TYPE und EVENT (der z.B. nützlich ist, um festzustellen, ob irgendwas schief gegangen ist).

> get DbLog - - 2012-11-10 2012-11-26 KS300:temperature::
> Falls es nicht funktioniert stell mal bitte loglevel auf 4, führe das Get nochmal aus und prüfe mal bitte das SQL im Log direkt auf deiner SQLite welche Datum's parameter falsch sind
> Habe hier kein SQLite um zu testen....

SQLite ist doch praktisch auf jeder Linux oder Mac-Kiste drauf...

Kleiner Tipp: vielleicht solltest Du Deinen Code-Editor auf etwas umstellen, was nativ mit UTF-8 arbeitet

andy



--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Tobias am 25 November 2012, 21:04:57
                                                   

ich prüfe nochmal ein paar möglichkeiten um die Fixierung doch aufheben zu
können.
Die Rückgabewerte des GET Befehls sind fix und nicht von mir ausgedacht.
Schließlich muss die Plotfunktion mit klarkommen. Aber ich denk mir noch
was aus um das noch besser hinzubekommen.

Mein CodeEditor ist die Shell per nano. Ein Tip wo man da ne Codepage
umstellen kann?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Guest am 25 November 2012, 21:19:41
Originally posted by: <email address deleted>

> Mein CodeEditor ist die Shell per nano. Ein Tip wo man da ne Codepage
> umstellen kann?
>

Bei nano so direkt nicht. Ein nano like Editor mit Codepages ist z.B.
 mcedit (vom Midnight Commander, unter Debian ist das das Paket mc)

Gruß
Markus

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: tiptronic am 25 November 2012, 21:50:50
                                                 

On 25.11.2012, at 21:04, tobias.faust wrote:

> ich prüfe nochmal ein paar möglichkeiten um die Fixierung doch aufheben zu können.
> Die Rückgabewerte des GET Befehls sind fix und nicht von mir ausgedacht. Schließlich muss die Plotfunktion mit klarkommen. Aber ich denk mir noch was aus um das noch besser hinzubekommen.

Das wäre super... dann bekommst Du auch meinen Segen ;-)

> Mein CodeEditor ist die Shell per nano. Ein Tip wo man da ne Codepage umstellen kann?

Auf welcher Plattform?

Ich nehme BBEdit oder TextMate (OSX)...

andy

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Tobias am 26 November 2012, 18:37:39
                                                   

Update:

- keine Einschränkung mehr auf den DB-Typ
- Codepage (hoffentlich) jetzt richtig
- neuer Parameter: loglevel
- FS20 Parse-Teil angepasst.

Bitte testet mal, insbesondere den FS20 Teil. Jetzt ist er auch für Plots
benutzbar

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: tiptronic am 27 November 2012, 10:14:35
                                                 

On 26.11.2012, at 18:37, tobias.faust wrote:

> - keine Einschränkung mehr auf den DB-Typ
> - Codepage (hoffentlich) jetzt richtig

nope... immer noch verkehrt..., sorry.

andy


> - neuer Parameter: loglevel
> - FS20 Parse-Teil angepasst.
>
> Bitte testet mal, insbesondere den FS20 Teil. Jetzt ist er auch für Plots benutzbar
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Tobias am 27 November 2012, 11:19:20
                                                   

Sicher das deiner richtig eingestellt ist?

folgendes Get gibt mir die °C korrekt in FHEM aus

get DbLog - all 2012-11-27_08 2012-11-27_09 KS300:temperature::

Timestamp: Device, Type, Event, Reading, Value, Unit
=====================================================
2012-11-27 08:00:49: KS300, KS300, temperature: 5.2, temperature, 5.2, °C
2012-11-27 08:05:54: KS300, KS300, temperature: 5.3, temperature, 5.3, °C
2012-11-27 08:08:27: KS300, KS300, temperature: 5.3, temperature, 5.3, °C
2012-11-27 08:16:04: KS300, KS300, temperature: 5.5, temperature, 5.5, °C
2012-11-27 08:23:42: KS300, KS300, temperature: 5.8, temperature, 5.8, °C
2012-11-27 08:38:57: KS300, KS300, temperature: 5.8, temperature, 5.8, °C
2012-11-27 08:59:17: KS300, KS300, temperature: 5.7, temperature, 5.7, °C
#KS300:temperature::



On Tuesday, November 27, 2012 10:14:38 AM UTC+1, tiptronic wrote:
>
>
> On 26.11.2012, at 18:37, tobias.faust >
> wrote:
>
> - keine Einschränkung mehr auf den DB-Typ
> - Codepage (hoffentlich) jetzt richtig
>
>
> nope... immer noch verkehrt..., sorry.
>
> andy
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: tiptronic am 27 November 2012, 12:29:50
                                                 

On 27.11.2012, at 11:19, "tobias.faust" wrote:

> Sicher das deiner richtig eingestellt ist?
>
> folgendes Get gibt mir die °C korrekt in FHEM aus
>
> get DbLog - all 2012-11-27_08 2012-11-27_09 KS300:temperature::

Die SQLite allerdings gibt nichts aus:

get log_DB - all 2012-11-27_08 2012-11-27_12 BALKON:temperature::
Timestamp: Device, Type, Event, Reading, Value, Unit
=====================================================
#BALKON:temperature::

Das Statement dazu kann die SQLite leider nicht ausführen:

Executing SELECT
        STRFTIME('%Y-%m-%d %H:%i:%s', TIMESTAMP),
        DEVICE,
        READING,
        VALUE
      ,TYPE,EVENT,UNIT
       FROM history
       WHERE 1=1
        AND (DEVICE || '|' || READING) = ('BALKON|temperature')
        AND TIMESTAMP > DATETIME('2012-11-27 08:00:00', '%Y-%m-%d %H:%i:%s')
        AND TIMESTAMP < DATETIME('2012-11-27 12:00:00', '%Y-%m-%d %H:%M:%S')
       ORDER BY TIMESTAMP

Wenn Du die Datums-Funktionen rausnimmst, dann gehts...


SELECT
        TIMESTAMP,
        DEVICE,
        READING,
        VALUE,TYPE,EVENT,UNIT
       FROM history
       WHERE 1=1
        AND (DEVICE || '|' || READING) = ('BALKON|temperature')
        AND TIMESTAMP > '2012-11-27 08:00:00'
        AND TIMESTAMP < '2012-11-27 12:00:00'
       ORDER BY TIMESTAMP


...allerdings sind die Sonderzeichen immer noch verkehrt (die stehen so in der Datenbank). Das spuckt das Log aus (die ersten 3 sind aus dem normalen DbLog, die letzten drei von Deiner Version gelogt).

   BALKON   temperature   9.2   CUL_WS   temperature: 9.2   °C
   BALKON   temperature   9.2   CUL_WS   temperature: 9.2   °C
   BALKON   temperature   9.2   CUL_WS   temperature: 9.2   °C
   BALKON   temperature   9.2   CUL_WS   temperature: 9.2   ?C
   BALKON   temperature   9.2   CUL_WS   temperature: 9.2   ?C
   BALKON   temperature   9.2   CUL_WS   temperature: 9.2   ?C

andy



>
> Timestamp: Device, Type, Event, Reading, Value, Unit
> =====================================================
> 2012-11-27 08:00:49: KS300, KS300, temperature: 5.2, temperature, 5.2, °C
> 2012-11-27 08:05:54: KS300, KS300, temperature: 5.3, temperature, 5.3, °C
> 2012-11-27 08:08:27: KS300, KS300, temperature: 5.3, temperature, 5.3, °C
> 2012-11-27 08:16:04: KS300, KS300, temperature: 5.5, temperature, 5.5, °C
> 2012-11-27 08:23:42: KS300, KS300, temperature: 5.8, temperature, 5.8, °C
> 2012-11-27 08:38:57: KS300, KS300, temperature: 5.8, temperature, 5.8, °C
> 2012-11-27 08:59:17: KS300, KS300, temperature: 5.7, temperature, 5.7, °C
> #KS300:temperature::
>
>
> On Tuesday, November 27, 2012 10:14:38 AM UTC+1, tiptronic wrote:
>
> On 26.11.2012, at 18:37, tobias.faust wrote:
>
>> - keine Einschränkung mehr auf den DB-Typ
>> - Codepage (hoffentlich) jetzt richtig
>
> nope... immer noch verkehrt..., sorry.
>
> andy
>
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: tiptronic am 27 November 2012, 12:34:24
                                                 

Hi Tobias,

ich hab' das alles mal so gefixt, wie ich es reklamiert hatte. Und jetzt geht's - sowohl die Sonderzeichen (encoding), als auch die Datenbankabfrage:

fhem> get log_DB - all 2012-11-27_08 2012-11-27_12 BALKON:temperature::
Timestamp: Device, Type, Event, Reading, Value, Unit
=====================================================
2012-11-27 08:07:50: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
2012-11-27 08:10:46: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
2012-11-27 08:13:43: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
2012-11-27 08:19:36: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
2012-11-27 08:22:20: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
2012-11-27 08:22:32: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
2012-11-27 08:28:13: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
2012-11-27 08:31:09: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
2012-11-27 08:34:06: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
2012-11-27 08:37:02: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
2012-11-27 08:48:48: BALKON, CUL_WS, temperature: 8.7, temperature, 8.7, °C
2012-11-27 08:51:45: BALKON, CUL_WS, temperature: 8.7, temperature, 8.7, °C





Gruß

andy
--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: tiptronic am 27 November 2012, 12:36:52
                                                 

Sorry... hatte noch ein paar Log-Ausgaben drin.







On 27.11.2012, at 12:34, Andy Fuchs wrote:

> Hi Tobias,
>
> ich hab' das alles mal so gefixt, wie ich es reklamiert hatte. Und jetzt geht's - sowohl die Sonderzeichen (encoding), als auch die Datenbankabfrage:
>
> fhem> get log_DB - all 2012-11-27_08 2012-11-27_12 BALKON:temperature::
> Timestamp: Device, Type, Event, Reading, Value, Unit
> =====================================================
> 2012-11-27 08:07:50: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
> 2012-11-27 08:10:46: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
> 2012-11-27 08:13:43: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
> 2012-11-27 08:19:36: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
> 2012-11-27 08:22:20: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
> 2012-11-27 08:22:32: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
> 2012-11-27 08:28:13: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
> 2012-11-27 08:31:09: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
> 2012-11-27 08:34:06: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
> 2012-11-27 08:37:02: BALKON, CUL_WS, temperature: 8.6, temperature, 8.6, °C
> 2012-11-27 08:48:48: BALKON, CUL_WS, temperature: 8.7, temperature, 8.7, °C
> 2012-11-27 08:51:45: BALKON, CUL_WS, temperature: 8.7, temperature, 8.7, °C
>
>
>
>
> Gruß
>
> andy<93_DbLog.pm>--
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com


--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: tiptronic am 27 November 2012, 12:58:43
                                                 

Eine Frage noch:

Gibt's einen bestimmten Grund, warum Du bei einem leeren 'value' das reading auf 'data' setzen willst?

if(!defined($value) || $value eq "") {$value=$reading; $reading="data";}

Das haut mir meine Datenbank-Abfragen zusammen.

Bislang war es so, dass wenn der value leer ist, auch das data-Feld leer blieb. Würde Dich das sehr stören, das so zu lassen?

andy

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Tobias am 27 November 2012, 13:07:29
                                                   

Du meinst sicher bei FS20?
Hintergrund ist, das man ein definiertes Reading hat. Wenn das Reading
einmal on und einmal off, also unterschiedlich, ist bekommst du keinen Plot
sauber hin. Wenn aber das Reading immer data ist passen auch die Values
on|off in der zeitlichen Abfolge.
Oder hab ich deine Frage falsch verstanden?

On Tuesday, November 27, 2012 12:58:49 PM UTC+1, tiptronic wrote:
>
> Eine Frage noch:
>
> Gibt's einen bestimmten Grund, warum Du bei einem leeren 'value' das
> reading auf 'data' setzen willst?
>
> if(!defined($value) || $value eq "") {$value=$reading; $reading="data";}
>
> Das haut mir meine Datenbank-Abfragen zusammen.
>
> Bislang war es so, dass wenn der value leer ist, auch das data-Feld leer
> blieb. Würde Dich das sehr stören, das so zu lassen?
>
> andy
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: tiptronic am 27 November 2012, 14:01:56
                                                 

On 27.11.2012, at 13:07, "tobias.faust" wrote:

> Du meinst sicher bei FS20?
> Hintergrund ist, das man ein definiertes Reading hat. Wenn das Reading einmal on und einmal off, also unterschiedlich, ist bekommst du keinen Plot sauber hin. Wenn aber das Reading immer data ist passen auch die Values on|off in der zeitlichen Abfolge.
> Oder hab ich deine Frage falsch verstanden?

Also bei mir werden jetzt solche Datensätze angelegt:

   global   GLOBAL   DEFINED NetIO1   data   DEFINED NetIO1   

oder

   global   GLOBAL   REREADCFG   data   REREADCFG   

oder

   global   GLOBAL   INITIALIZED   data   INITIALIZED   

oder

   CUNO   CUL   UNKNOWNCODE A00   data   UNKNOWNCODE A00   


Dort sollte im Reading aber eigentlich nicht 'data' stehen...

andy

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Erweiterung DbLog Modul, bitte t esten
Beitrag von: Tobias am 27 November 2012, 14:22:41
                                                   

verstanden...
kommentiere mal bitte Zeile 236-242 aus:

# Default
    else {
        if($value eq "") {
            $reading= "data";
            $value= $event;
        }
    }

wenn das dein Problem löst kommts eben wieder raus..
Allerdings wüsste ich dann nicht wie man bei undefinierten devices ein
gemeinsames Reading hinbekommt falls man plotten möchte.
Dann müsste man erst die Parse-Funktion um das gewünschte Device erweitern..

Aber vieleicht hilft ja dann auch der letzte GET-Parameter weiter. Die
in der habe ich erweitert sodass jetzt auch komplexe Regexp
möglich sind
zb. aus der Doku:
  • get myDbLog - - 2012-11-10 2012-11-20
    Bodenfeuchte:data::$val=~s/.*B:\s([-\.\d]+).*/$1/eg


               Example of OWAD: value like this: "A: 49.527 % B: 66.647 %
    C: 9.797 % D: 0.097 V"


               and output for port B is like this: 2012-11-20_10:23:54
    66.647



  • --
    To unsubscribe from this group, send email to
    fhem-users+unsubscribe@googlegroups.com
    Titel: Re: Erweiterung DbLog Modul, bitte t esten
    Beitrag von: tiptronic am 27 November 2012, 15:50:36
                                                     

    Hi Tobias,

    ja klar - ich hab' das bei mir schon auskommentiert... Mir ging's vielmehr drum, ob Du das so drin lassen willst, oder nicht. Wenn ersteres muss ich nochmal über meine SQL-Statements nachdenken.

    b) Hast Du mal das Modul ausprobiert, dass ich Dir geschickt hatte (mit dem korrigierten Encoding)?

    andy

    On 27.11.2012, at 14:22, tobias.faust wrote:

    > verstanden...
    > kommentiere mal bitte Zeile 236-242 aus:
    >
    > # Default
    >     else {
    >         if($value eq "") {
    >             $reading= "data";
    >             $value= $event;
    >         }
    >     }
    >
    > wenn das dein Problem löst kommts eben wieder raus..
    > Allerdings wüsste ich dann nicht wie man bei undefinierten devices ein gemeinsames Reading hinbekommt falls man plotten möchte.
    > Dann müsste man erst die Parse-Funktion um das gewünschte Device erweitern..
    >
    > Aber vieleicht hilft ja dann auch der letzte GET-Parameter weiter. Die in der habe ich erweitert sodass jetzt auch komplexe Regexp möglich sind
    > zb. aus der Doku:
    >
  • get myDbLog - - 2012-11-10 2012-11-20 Bodenfeuchte:data::$val=~s/.*B:\s([-\.\d]+).*/$1/eg

    >            Example of OWAD: value like this: "A: 49.527 % B: 66.647 % C: 9.797 % D: 0.097 V"

    >            and output for port B is like this: 2012-11-20_10:23:54 66.647
    >

  • >
    > --
    > To unsubscribe from this group, send email to
    > fhem-users+unsubscribe@googlegroups.com

    --
    To unsubscribe from this group, send email to
    fhem-users+unsubscribe@googlegroups.com
    Titel: Re: Erweiterung DbLog Modul, bitte t esten
    Beitrag von: Tobias am 27 November 2012, 15:55:59
                                                       

    ich lass das jetzt so auskommentiert, so wars vorher ja auch. Muss sehen
    wohin das führt. ggf muss man später nochmal nachbessern.
    Die Codepage wurde bei mir als ANSI as UTF8 angezeigt. Da ich bei mir schon
    wieder weitere Änderungen vorgenommen hatte, habe ich nur die codepage
    angepasst.
    Werde heute abend die aktuelle Version hier nochmal Posten, danach gehts
    ins SVN

    --
    To unsubscribe from this group, send email to
    fhem-users+unsubscribe@googlegroups.com
    Titel: Re: Erweiterung DbLog Modul, bitte t esten
    Beitrag von: tiptronic am 27 November 2012, 16:00:00
                                                     

    OK - ich schau dann nochmal drauf - aber bisher sieht das gut aus.

    -- soll ich ggf das Encoding ändern, falls es nicht passt?

    andy

    On 27.11.2012, at 15:55, tobias.faust wrote:

    > ich lass das jetzt so auskommentiert, so wars vorher ja auch. Muss sehen wohin das führt. ggf muss man später nochmal nachbessern.
    > Die Codepage wurde bei mir als ANSI as UTF8 angezeigt. Da ich bei mir schon wieder weitere Änderungen vorgenommen hatte, habe ich nur die codepage angepasst.
    > Werde heute abend die aktuelle Version hier nochmal Posten, danach gehts ins SVN
    >
    > --
    > To unsubscribe from this group, send email to
    > fhem-users+unsubscribe@googlegroups.com

    --
    To unsubscribe from this group, send email to
    fhem-users+unsubscribe@googlegroups.com
    Titel: Re: Erweiterung DbLog Modul, bitte t esten
    Beitrag von: Tobias am 27 November 2012, 18:12:08
                                                       

    hier nochmal der letzte Stand.
    Falls die codepage immer noch nicht passt weiß ich auch nicht. Änder es
    dann mal bitte und poste es bitte hier nochmal...

    --
    To unsubscribe from this group, send email to
    fhem-users+unsubscribe@googlegroups.com
    Titel: Re: Erweiterung DbLog Modul, bitte t esten
    Beitrag von: tiptronic am 27 November 2012, 18:29:26
                                                     

    Ich trau's mich fast nicht zu sagen, aber die String Literals sind immer noch zerschossen...

    Was für einen Editor verwendest Du denn?

    Ich hab's korrigiert und angehängt.

    andy





    On 27.11.2012, at 18:12, tobias.faust wrote:

    > hier nochmal der letzte Stand.
    > Falls die codepage immer noch nicht passt weiß ich auch nicht. Änder es dann mal bitte und poste es bitte hier nochmal...
    >
    > --
    > To unsubscribe from this group, send email to
    > fhem-users+unsubscribe@googlegroups.com
    > <93_DbLog.pm>


    --
    To unsubscribe from this group, send email to
    fhem-users+unsubscribe@googlegroups.com
    Titel: Re: Erweiterung DbLog Modul, bitte t esten
    Beitrag von: Tobias am 27 November 2012, 18:56:22
                                                       

    Geprüft und eingecheckt.  SVN-Log gepflegt.

    Editor war zuletzt Notepad++ mit  "ANSI as UTF8"
    Das nächste Mal prüfe ich es mit Ultraedit. Tagsüber hab ich nur Windoof
    zur Verfügung

    Die nächste Testphase gibts dann im Developer-Bereich

    On Tuesday, November 27, 2012 6:29:30 PM UTC+1, tiptronic wrote:
    >
    > Ich trau's mich fast nicht zu sagen, aber die String Literals sind immer
    > noch zerschossen...
    >
    > Was für einen Editor verwendest Du denn?
    >
    > Ich hab's korrigiert und angehängt.
    >
    > andy
    >
    >
    >
    >
    >
    > On 27.11.2012, at 18:12, tobias.faust >
    > wrote:
    >
    > > hier nochmal der letzte Stand.
    > > Falls die codepage immer noch nicht passt weiß ich auch nicht. Änder es
    > dann mal bitte und poste es bitte hier nochmal...
    > >
    > > --
    > > To unsubscribe from this group, send email to
    > > fhem-users+...@googlegroups.com
    > > <93_DbLog.pm>
    >
    >

    --
    To unsubscribe from this group, send email to
    fhem-users+unsubscribe@googlegroups.com
    Titel: Re: Erweiterung DbLog Modul, bitte t esten
    Beitrag von: Guest am 11 Dezember 2012, 10:24:49
    Originally posted by: <email address deleted>

    Hiho,

    danke für die Änderungen - Werte werden bei mir in die mysql geschrieben.
    Kannst du noch ein Beispiel für einen Plot geben? Hab schon mal etwas an
    meinem Gplot file rum gebastelt aber ich bekomme keine Werte angezeigt.

    so stehtst im gplot File
    #DbLog OWX_Counter01:Gas:4:::
    #DbLog OWX_Counter01:Gas_rate:6:::

    plot \
    using 1:6 ls l1 axes x1y2 title 'Gas m^3' with lines lw 2,\
    using 1:4 ls l0fill axes x1y1 title 'Gas m^3/h' with lines lw 2

    hatte vorher #Filelog 4::: und #Filelog 6:::

    oder muss ich im sagen das er anderst logen muss? Aktuell hab ich noch ein
    Filelog zusätzlich am laufen.


    Vielen Dank

    Basti

     

    --
    To unsubscribe from this group, send email to
    fhem-users+unsubscribe@googlegroups.com
    Titel: Re: Erweiterung DbLog Modul, bitte t esten
    Beitrag von: Tobias am 11 Dezember 2012, 12:52:07
                                                       

    Hier eines meiner gplot files:

    #
    # Display the measured temperature and
    # a FS20 Device, eg. temperature and electric heating
    #
    # Plotfunction Example
    # attr Plotfunction Laube_Temperatur:temperature
    Laube_Heizung:data:::$val=~s/(on|off).*/$1eq"on"?1:0/eo

    set terminal png transparent size crop

    #set output '.png'
    set xdata time
    set timefmt "%Y-%m-%d_%H:%M:%S"
    set xlabel " "
    set title ''
    #set grid xtics y2tics
    set y1label "Temperatur in C"

    set y2tics ("Off" 0, "On" 1)
    #set y2range [-0.1:1.1]
    #set y2label "Status"


    #FileLog 4:T\x3a|temperature:0:
    #DbLog
    #DbLog

    plot \
         axes x1y1 title 'Temperatur' with lines
         axes x1y2 title 'FS20 Status' with steps

    --
    To unsubscribe from this group, send email to
    fhem-users+unsubscribe@googlegroups.com