FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: justme1968 am 22 Mai 2013, 09:37:16

Titel: DbLog patch
Beitrag von: justme1968 am 22 Mai 2013, 09:37:16
der angehängte 3 zeilen patch erlaubt es auch 'normale' readings eines dummy devices zu loggen.

problem: beim dummy device werden bisher alle readings auf den namen 'data' gesetzt. der eigentliche name des readings geht verloren. auch ein dummy device. das behindert z.b. beim plotten sehr.

ich lese z.b. per GetHttpFile daten von einer wetter seite, schreibe die nierschlagsmenge in einen dummy und erzeuge mit einem user reading die niederschlagsrate. ohne den patch bekommen beide readings im dbog den typ 'data'.
der patch ist zwar nicht 100% zuverlässig weil das state reading auch eine ':' im wert enthalten könnte das sollte aber bei dummys recht unwarscheinlich sein. eigentlich sollte man 'data' noch durch 'state' ersetzen. aber das wäre nicht mehr rückwärts kompatibel.

gruss
  andre
Titel: Aw: DbLog patch
Beitrag von: Tobias am 27 Mai 2013, 11:21:06
Habe den Patch eingebaut. Zusätzlich noch folgendes, s.u.
Bitte um Tests. Dann wirds eingecheckt, spätestens nächste Woche.
Zitat<li>delta-ts<br>
                Ermittelt die vergangene Zeit zwischen dem letzten und dem aktuellen Logeintrag
                in Sekunden und ersetzt damit den originalen Wert.
              </li>
            </ul></li>
            <li>&lt;regexp&gt;<br>
              Diese Zeichenkette wird als Perl Befehl ausgewertet. Die regexp wird vor dem angegebenen &lt;fn&gt; Parameter ausgeführt.
              <br>
              Bitte zur Beachtung: Diese Zeichenkette darf keine Leerzeichen
              enthalten da diese sonst als &lt;column_spec&gt; Trennung
              interpretiert werden und alles nach dem Leerzeichen als neue
              &lt;column_spec&gt; gesehen wird.<br>
              <b>Schlüsselwörter</b>
              <li>$val ist der aktuelle Wert die die Datenbank für ein Device/Reading ausgibt.</li>
              <li>$ts ist der aktuelle Timestamp des Logeintrages.</li>
              <li>Wird als $val das Schlüsselwort "hide" zurückgegeben, so wird dieser Logeintrag nicht
                  ausgegeben, trotzdem aber für die Zeitraumberechnung verwendet.</li>
              <li>Wird als $val das Schlüsselwort "ignore" zurückgegeben, so wird dieser Logeintrag
                  nicht für eine Folgeberechnung verwendet.</li>
            </li>

<li><code>get DbLog - - 2013-05-26 2013-05-28 Pumpe:data::delta-ts:$val=~s/on/hide/</code><br>
           Realisierung eines Betriebsstundenzählers.Durch delta-ts wird die Zeit in Sek zwischen den Log-
           einträgen ermittelt. Die Zeiten werden bei den on-Meldungen nicht ausgegeben welche einer Abschaltzeit
           entsprechen würden.</li>
Titel: Aw: DbLog patch
Beitrag von: justme1968 am 30 Juni 2013, 12:56:27
kann es sein das mein patch von ganz oben verloren gegangen ist?

im letzten dblog update ist wieder das alte porblematische verhalten was die dummies angeht.

gruss
  andre
Titel: Aw: DbLog patch
Beitrag von: Tobias am 05 Juli 2013, 12:25:10
Hi Andre,
ist nicht verloren.. nur mangels Rückmeldung (noch) nicht eingecheckt...
Titel: Aw: DbLog patch
Beitrag von: justme1968 am 05 Juli 2013, 12:28:48
achso.

ich war nur überrascht weil ein anderer dblog patch gekommen ist und meine lokale änderung natürlich überschrieben hat.
Titel: Aw: DbLog patch
Beitrag von: Tobias am 05 Juli 2013, 19:50:23
habe es eingecheckt.
Hat mich einiges an Nerven und Zeit gekostet durch den FHEM SVN-Umzug und meiner "veralteten" DbLog.pm version...
Titel: Aw: DbLog patch
Beitrag von: justme1968 am 05 Juli 2013, 19:57:28
danke!
 
  andre