OWServer / OWDevice

Begonnen von Martin Fischer, 11 Januar 2013, 00:16:17

Vorheriges Thema - Nächstes Thema

Martin

Hallo ich versuche die ganze Zeit den Tagesverbrauch meines Stromzählers zu Logen
ohne Erfolg meine Config sieht so aus.
define Strom_Counter OWDevice 1D.A2D988000002 300
attr Strom_Counter alias Gesamtverbrauch
attr Strom_Counter fp_Grundriss 110,300,0,
attr Strom_Counter group Energie
attr Strom_Counter model DS2423
attr Strom_Counter offset 19197.7
attr Strom_Counter polls counters.A,counters.B
attr Strom_Counter room Energie
attr Strom_Counter stateFormat { sprintf("%.3f kWh %.3f Watt", ReadingsVal("Strom_Counter","energy","KW"), ReadingsVal("Strom_Counter","power","KW"));; }

attr Strom_Counter userReadings energy { ReadingsVal("Strom_Counter","counters.A",0)/375+AttrVal("Strom_Counter","offset",0);; }, power differential { 3.6*ReadingsVal("Strom_Counter","counters.A",0);; }
define Log_Strom_Counter FileLog ./log/Strom_Counter-%Y-%m.log Strom_Counter:counters.A.*|Strom_Counter:energy.*|Strom_Counter:daily.*|Strom_Counter:power.*
attr Log_Strom_Counter logtype Counter4:Plot,text
attr Log_Strom_Counter room Energie
define Strom weblink fileplot Log_Strom_Counter:Counter4:CURRENT
attr Strom label "Stromzähler"
attr Strom room Energie



Ich bekomme den momentan verbrauch unter Power und der Zählerstand wir auch aktualisiert (daily) so nun hätte ich gerne den Tagesgesamt Verbrauch wie mache ich das??
Also ein log der so aussehen könnte 01.05.2013 10 KW
Kann da einer helfen Bitte

Gruß
Martin

Martin

Hallo ich noch mal also ich bin immer noch nicht weiter mit dem Tageswert zu Loggen ??
Ich habe vieles gelesen einiges ausprobiert aber es will mir nicht gelingen.
Erkenntnis des heutigen Tages ich brauche wohl den Befehl  AMode
So wie hier in meiner Config habe ich es verstanden leider geht das nicht


define Strom_Counter OWDevice 1D.A2D988000002 300
attr Strom_Counter room Energie
attr Strom_Counter alias Stromverbrauch
attr Strom_Counter comment hex11
attr Strom_Counter fp_Grundriss 110,300,0,
attr Strom_Counter group Energie
attr Strom_Counter model DS2423
attr Strom_Counter offset 19197.0
attr Strom_Counter polls counters.A,counters.B
attr Strom_Counter AMode daily

attr Strom_Counter stateFormat { sprintf("%.3f kWh %.3f Watt", ReadingsVal("Strom_Counter","energy","?"), ReadingsVal("Strom_Counter","power","KW"));; }
attr Strom_Counter userReadings energy { ReadingsVal("Strom_Counter","counters.A",0)/375+AttrVal("Strom_Counter","offset",0);; }, consumption differential { 3.6*ReadingsVal("Strom_Counter","counters.A",0);; },daily
define Log_Strom_Counter FileLog ./log/Strom_Counter-%Y-%m.log Strom_Counter:counters.A.*|Strom_Counter:consumption.*|Strom_Counter:daily.*|Strom_Counter:day.*
attr Log_Strom_Counter logtype Counter4:Plot,text
attr Log_Strom_Counter room Energie
define Strom weblink fileplot Log_Strom_Counter:Counter4:CURRENT
attr Strom label "Stromzähler"
attr Strom room Energie

darauf bekomme ich diese Fehlermeldung
Strom_Counter: unknown attribute AMode
Kann mir einer weiter helfen bitte ???

Gruß
Martin

dougie


...ist doch gar nicht so schwer: definier dir eine Dummy Variable, und ein at, das um Mitternacht aufgerufen wird.
In dem at kopierst du dir den aktuellen Counter-Stand in die dummy Variable und vergleichst mit dem Wert vom Vortag.

VG
Ralf

Martin

Ja Super mit meinen Programmier Kenntnissen bringt mich das leider auch nicht weiter.
Aber hab trotzdem Dank geht das denn nicht auch anders ??
Du machst das doch auch mit den Tageswerten schreiben oder nicht?



Gruß
Martin

dougie

sub
prg_Daily_Stat()
 {
 #
 # Zunächst Differenz aktueller Wert - Wert von Gestern berechnen
 $data{DPval} = ReadingsVal("OW_Counter","displayA",0) - Value("DailyPowerDiff");
 # Tagesverbrauch in DailyPower speichern
 fhem ("set DailyPower $data{DPval}");
 # Aktuellen Wert speichern
 $data{DPval} = ReadingsVal("OW_Counter","displayA",0);
 fhem ("set DailyPowerDiff $data{DPval}");
}
#

Martin

Hallo ich noch mal ;)

also ich muss in der Config Fhem dann

define prg_Daily_Stat dummy
define Log_prg_Daily_Stat FileLog ./log/prg_Daily_Stat-%Y-%m.log DailyPower

eingeben ist das Richtig ??


Gruß
Martin

dougie


Nein.

prg_Daily_Stat() ist ein Programm in deiner 99_MyUtils.pm, welches du mit einem at jeweils um Mitternacht aufrufst.

Richtig ist, das du dann ein LogFile brauchst, das die Werte dann "einsammelt"

Beispiel:

define Log_Casa_Energy FileLog /var/InternerSpeicher/SMI-USBDISK-01/log/Casa_Energy-%Y.log DailyPower.*|DailyPowerDiff.*

Martin

So habe ich es jetzt gemacht


define Strom_Tag notify Strom_tag {prg_Daily_Stat}
attr Strom_Tag room Strom-Tag
attr Strom_Tag userReadings 1
define Log_Strom_Tag FileLog ./log/prg_Daily_Stat-%Y.log DailyPower.*|DailyPowerDiff.*
attr Log_Strom_Tag logtype Counter4:Plot,text

aber geht nicht ist wahrscheinlich auch alles falsch oder?

Gruß
Martin

dougie

Martin, ohne dir jetzt zu nahe treten zu wollen...

Ich hab dir mehrfach gesagt, das du ein "at" brauchst, das einmal um Mitternacht ausgeführt wird. Du hast ein "notify" definiert.

Es tut mir leid, aber wenn du den Unterschied zwischen at und notify noch nicht kennst, sehe ich mich zeitlich ausser stande hier weiter zu helfen. Da ist erst mal Selbststudium angesagt.

VG
Ralf

PS: gib mal {prg_Daily_Stat} in der Kommandozeile ein, und schau was passiert. :-)

Martin

Hallo da kommt Please define DailyPowerDiff first
aber Danke für deine Hilfe ja ich lese ja schon alles mögliche
im Forum um da weiter zu kommen aber leider habe ich nicht gefunden.


Gruß
Martin
 

Alexander Bauer

Zitat von: Martin Fischer schrieb am Mi, 23 Januar 2013 01:54> attr myowserver nonblocking 1 verhindert auch, dass fhem total hängt, wenn der OWServer mal weg ist?

leider nein.
.....

aber der erstere weg ist halt der elegantere, wenn es am ursprung gefixed wird.

Ist das in der Version http://owfs-developers.1086194.n5.nabble.com/New-release-2-9p0-td6812.html behoben?
--

Fhem auf Cubietruck mit Debian Wheezy und Homematic und 1-Wire

dougie

...ja, das war die Idee. Boris wollte da die entsprechende Abfrage zu einbauen. Hab leider noch nicht getestet, ob das jetzt schon läuft. Meine RPis hängen sich seit einiger Zeit einfach nicht mehr auf :)