FHEM Forum

FHEM => Sonstiges => Thema gestartet von: pechnase am 24 Juni 2019, 21:45:54

Titel: DbRep attr reading Wildcard %
Beitrag von: pechnase am 24 Juni 2019, 21:45:54
Guten Abend,

ich verwende DbRep zum Löschen von Einträgen, die älter als 31 Tage sind:

defmod Loeschen31TageHeizungRegelm DbRep WhngDB
attr Loeschen31TageHeizungRegelm allowDeletion 1
attr Loeschen31TageHeizungRegelm comment 09.03.2018: löscht Daten der Heizungs-, Solaranlage älter als 31 Tage
attr Loeschen31TageHeizungRegelm devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr Loeschen31TageHeizungRegelm device Heizung_Solar
attr Loeschen31TageHeizungRegelm executeAfterProc set WhngDB reopen
attr Loeschen31TageHeizungRegelm executeBeforeProc set WhngDB reopen 1200
attr Loeschen31TageHeizungRegelm reading Temp-Abgas-Ist,Brennerstatus,Fehler%,Neigung,Niveau,Oelverbrauch-Codierung,Solar-Waermemenge,Geraetekennung,state,state_party,state_spar,UpdateTime,SystemZeit,HeizkreispumpeM2,Sammelstoerung,Solar-Betriebsstunden,Solarpumpe,Speicherladepumpe,Temp-Kessel-Ist,Temp-Kessel-Soll,Temp-Kollektor-Ist,Temp-Raum-Soll,Temp-Ruecklauf-Ist,Temp-Speicher-Ist,Temp-Vorlauf-Ist,Zirkulationspumpe
attr Loeschen31TageHeizungRegelm room DB
attr Loeschen31TageHeizungRegelm timeOlderThan 2678400

setstate Loeschen31TageHeizungRegelm Warning - delEntries finished, but command message after delEntries appeared
setstate Loeschen31TageHeizungRegelm 2019-06-24 03:00:01 Heizung_Solar--Temp-Abgas-Ist/Brennerstatus/Fehler//Neigung/Niveau/Oelverbrauch-Codierung/Solar-Waermemenge/Geraetekennung/state/state_party/state_spar/UpdateTime/SystemZeit/HeizkreispumpeM2/Sammelstoerung/Solar-Betriebsstunden/Solarpumpe/Speicherladepumpe/Temp-Kessel-Ist/Temp-Kessel-Soll/Temp-Kollektor-Ist/Temp-Raum-Soll/Temp-Ruecklauf-Ist/Temp-Speicher-Ist/Temp-Vorlauf-Ist/Zirkulationspumpe----DELETED_ROWS_HISTORY-- 8560
setstate Loeschen31TageHeizungRegelm 2019-06-24 03:00:01 afterdelEntries_message Reopen executed.
setstate Loeschen31TageHeizungRegelm 2019-06-24 03:00:01 state Warning - delEntries finished, but command message after delEntries appeared


Im attr reading gibt es innerhalb der durch Kommas getrennten Aufzählung ein reading 'Fehler%' weil es die readings Fehler01, Fehler02 usw. gibt. Wird diese oben gezeigte Definition ausgeführt, 'wirkt' der Wildcard % nicht. Erzeuge ich ein neues DbRep, das im attr reading nur 'Fehler%' enthält, scheint es zu funktionieren.
Was mache ich falsch? Danke.
Wolfgang
Titel: Antw:DbRep attr reading Wildcard %
Beitrag von: DS_Starter am 24 Juni 2019, 21:55:38
Hallo Wolfgang,

die Commandref zum Attribut "reading" sagt:

reading - Abgrenzung der DB-Selektionen auf ein bestimmtes oder mehrere Readings sowie exkludieren von Readings. Mehrere Readings werden als Komma separierte Liste angegeben. SQL Wildcard (%) wird in einer Liste als normales ASCII-Zeichen gewertet.

Bedeutet, es wird nach einem String "Fehler%" gesucht.

LG,
Heiko
Titel: Antw:DbRep attr reading Wildcard %
Beitrag von: pechnase am 24 Juni 2019, 22:16:42
Hallo Heiko,
danke für die schnelle Antwort. Den Satz habe ich in der Commandref gelesen, aber dann falsch interpretiert. Im Klartext heißt das, dass in einer redings Liste keine Wildcards möglich sind. Richtig?
Danke
Wolfgang
Titel: Antw:DbRep attr reading Wildcard %
Beitrag von: DS_Starter am 24 Juni 2019, 22:23:23
Ja, richtig Wolfgang.
Du könntest das Device kopieren und dort das reading nur auf "Fehler%" setzen was deinen Zweck dann erfüllen würde.

LG,
Heiko
Titel: Antw:DbRep attr reading Wildcard %
Beitrag von: DS_Starter am 24 Juni 2019, 22:27:37
Aber ich nehme es mal auf meine ToDo Liste. Vielleicht habe ich eine Idee die ich in einem kommenden Release von DbRep umsetzen kann damit das dann auch funktioniert.  :)

Grüße,
Heiko
Titel: Antw:DbRep attr reading Wildcard %
Beitrag von: DS_Starter am 01 September 2019, 15:16:15
Hallo Wolfgang,

ich habe mir meine ToDo bzgl. DbRep vorgenommen und angefangen deine Anregung umzusetzen.
Zunächst ist die Möglichkeit SQL-Wildcards in Listenangaben anzugeben, für das attr device gegeben.
Näheres hier: https://forum.fhem.de/index.php/topic,53584.msg971175.html#msg971175

In einem zweiten Schritt nehme ich mir das Attr readings vor, um welches es dir ja eigentlich ging.

Grüße,
Heiko
Titel: Antw:DbRep attr reading Wildcard %
Beitrag von: DS_Starter am 02 September 2019, 22:57:12
Hallo Wolgang,

in einer Reading-Liste sind nun auch SQL Wildcards möglich und werden als solche ausgewertet -> https://forum.fhem.de/index.php/topic,53584.msg971529.html#msg971529

LG