Neues Modul: ElectricityCalculator

Begonnen von Sailor, 26 August 2016, 21:05:35

Vorheriges Thema - Nächstes Thema

Sailor

Hallo Herrmann

Zitat von: hermann258 am 30 August 2016, 19:18:55
Super Modul
Ich will es mit dem ArduCounter nutzen.
Gibt es da noch etwas zu beachten?

Wie alle anderen Zähler auch:
a) Es muss ein "continous counter" = fortlaufender Zähler sein.
b) Du musst die RegEx richtig angeben.
c) Es muss der richtige Zählerfaktor als Attribut angegeben werden.

Gruß
    Sailor
******************************
Man wird immer besser...

Sailor

Hallo Peter

Zitat von: peterK am 31 August 2016, 05:28:52
Eine Frage wenn ich das Reading KwhperCounts auf 1 setze dann übernimmt der genau meine regex.
Ändere ich dies z.B aus 0.1 dann wird irgendwas gerechnet , bei 0.01 noch was anders und bei 0.001 wieder was anderes.

Also der Satz ist der Brüller des Tages!  ;D
Frage: Was spukt dein Zähler raus? kWh, zehntel-kWh, hundertstel-kWh, tausendstel kWh = Wh,... usw. ?

Zitat von: peterK am 31 August 2016, 05:28:52
Würde diesen Faktor gerne benutzen um von 7 Stelligen Counter auf 4 Stellung.xxx zu kommen.
Was könnte ich falsch machen ?

Der Counter wird Modulseitig immer 3 Stellen hinter dem Komma haben. Da kannste machen nix!

Gruß
    Sailor
******************************
Man wird immer besser...

Sailor

Hallo Andre

Zitat von: justme1968 am 30 August 2016, 20:46:28
ich habe gerade etwas mit dem modul gespielt. schaut bis jetzt gut aus. danke...

könntest du noch unterstützung für stateFormat einbauen? dann kann man sich konfigurieren was man in der raum übersicht sieht statt nur active.

zu _EnergyCostDay: man könnte das reading ohne event erzeugen so das es nicht geloggt wird und per logProxy direkt aus dem reading in den plot holen.

gruss
  andre

Da müssen wir mal eingehend reden

Gruss
   Sailor
******************************
Man wird immer besser...

peterK

Hallo,
"Also der Satz ist der Brüller des Tages!  ;D
Frage: Was spukt dein Zähler raus? kWh, zehntel-kWh, hundertstel-kWh, tausendstel kWh = Wh,... usw. ?"

Danke erstmal für die "Konstruktive Kritik",
ja in der Tat spukt der HM-ESTX-WM einen Counter aus
z.b aktuell 2473411.00 dies entspricht echten 2473411 W. diese wird auch korrekt an Countercurrent übergeben. Aber eben nur wenn
ElectricityKwhPerCounts auf 1 steht. Bei ElectricityKwhPerCounts =0.01 steht im Countercurrent die Zahl 26731.073 obwohl dort eigentlich 24734.11 stehen sollte.
Bei ElectricityKwhPerCounts = 0.001 (was ja eigentlich richtig wäre Wh umrechnen in KWh) steht dort aber
_CounterCurrent   4488.434       2016-08-31 13:45:52 statt 2473.411
Peter

justme1968

ZitatDa müssen wir mal eingehend reden
eigentlich alles ganz einfach ... :)

für state format musst du:
- $readingFnAttributes in deine AttrList mit einbauen. damit bekommst du automatisch stateFormat und die ganzen event- attribute.
- $hash->{STATE} nicht mehr (bzw. nur noch ein mal im define) ändern. eventuell statt dessen ein state reading verwenden

um für _EnergyCostDay kein event zu erzeugen: z.b. vor dem readingsBeginUpdate ein einzelnes readingsSingleUpdate($hash, <..._EnergyCostDay>, $value, 0);

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Sailor

Hallo Peter

Zitat von: peterK am 31 August 2016, 13:50:52
ja in der Tat spukt der HM-ESTX-WM einen Counter aus
z.b aktuell 2473411.00 dies entspricht echten 2473411 W. diese wird auch korrekt an Countercurrent übergeben. Aber eben nur wenn
ElectricityKwhPerCounts auf 1 steht. Bei ElectricityKwhPerCounts =0.01 steht im Countercurrent die Zahl 26731.073 obwohl dort eigentlich 24734.11 stehen sollte.
Bei ElectricityKwhPerCounts = 0.001 (was ja eigentlich richtig wäre Wh umrechnen in KWh) steht dort aber
_CounterCurrent   4488.434       2016-08-31 13:45:52 statt 2473.411

Du hast also einen HM-ESTX-WM! Das ist schon mal viel Wert.

a) Der spuckt Wh aus, nicht W.
b) Da das ElectricityCounter - Modul zwingend kWh braucht um richtig rechnen zu können, musst du das Attribut ElectricityKwhPerCounts auf 0.001 stellen.
c) Um den Wert des Counters im ElectricityCalculator device auf den Wert des mechanischen Zählers zu bekommen, musst du das Attribut ElectricityCounterOffset entsprechend der Rechnung WOffset = WMechanical - WModule [kWh] eintragen und 2 Lesevorgänge warten bis die Werte stimmen.

Der Zähler deines Zähler-Moduls steht deshalb auf 4488.434 weil er vor 4.488 kWh angefangen hat das erste mal zu zählen.



Zitat von: peterK am 31 August 2016, 13:50:52
Danke erstmal für die "Konstruktive Kritik",

Was soll ich dazu auch sagen: "Jedes Mal wenn ich den Faktor ändere, kommt bei der Berechnung was Anderes raus."  ;)

Gruß
    Sailor
******************************
Man wird immer besser...

Markus80

Hi, mal ne doofe Frage :

Ist das auch mit einem HM-ES-PMSw1 Homematic Schaltsteckdose mit Energiemessung möglich?

Gesendet von meinem C6903 mit Tapatalk


peterK

Hallo Sailer,

Danke schon mal.
Wenigstens war meine 'Denke' richtig.
Der Counteroffset Hinweis war richtig, ich hatte bei meinen Probiererein hier meinen "Ableseoffset" (war nicht 0) vergessen rauszunehmen.
Sorry Asch auf mein Haupt.
Jetzt stimmt es.
Danke
Peter



justme1968

ach ja: noch zwei kleinigkeiten:

- wenn du readings die nur modul intern verwendet werden wie z.b. _PrevRead oder _PowerDayCount mit einem . beginnen last sind sie für anwender unsichtbar und erzeugen ebenfalls keine events

- das gleiche gilt für _LastDT und _LastDV. wenn du meinst das die für die anwender interessant sind könntest du vielleicht den namen ändern so das kein Last drin auftaucht? das würde es beim loggen einfacher machen nur die relevanten Counter.*Last und Energy.*Last einträge zu erwischen und diese beiden nicht :)

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

C0mmanda

Zitat von: Markus80 am 31 August 2016, 18:59:35
Hi, mal ne doofe Frage :

Ist das auch mit einem HM-ES-PMSw1 Homematic Schaltsteckdose mit Energiemessung möglich?

Gesendet von meinem C6903 mit Tapatalk

Sollte gehen.
Die Energy-Readings sind identisch zum HM-ES-TX-WM.

Markus80

Dankeschön
Werde ich mal ausprobieren

Gesendet von meinem C6903 mit Tapatalk


Sailor

#26
Hi Andre

Zitat von: justme1968 am 31 August 2016, 20:06:18
- wenn du readings die nur modul intern verwendet werden wie z.b. _PrevRead oder _PowerDayCount mit einem . beginnen last sind sie für anwender unsichtbar und erzeugen ebenfalls keine events

- das gleiche gilt für _LastDT und _LastDV. wenn du meinst das die für die anwender interessant sind könntest du vielleicht den namen ändern so das kein Last drin auftaucht? das würde es beim loggen einfacher machen nur die relevanten Counter.*Last und Energy.*Last einträge zu erwischen und diese beiden nicht :)

Das ist ein heißer Hinweis!

Einfach ein "." vor dem Namen?

Ich probiere es aus!

Nachtrag: Habe ein "." vor "_PrevRead" und "_LastD" Readings gesetzt... nun geht das gesamteModul nicht mehr.  >:(
Ich forsche noch...

Gruß
    Sailor
******************************
Man wird immer besser...

justme1968

#27
vor den kompletten reading namen. d.h. als aller erstes zeichen. und beim wieder auslesen dann natürlich auch.

gruss
  andre

ps: wenn du es rückwärts kompatibel ändern willst musst du beim auslesen vermutlich die version ohne punkt als default in die version mit punkt verschachteln.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Sailor

Hallo Andre

Zitat von: justme1968 am 01 September 2016, 08:40:43
vor den kompletten reading namen. d.h. als aller erstes zeichen. und beim wieder auslesen dann natürlich auch.

Genau das war mein Fehler... vor dem auslesen natuerlich auch... Eingecheckt!

Gruss
    Sailor
******************************
Man wird immer besser...

Sailor

Moin

Ich möchte mal wissen, wieso ich jeden Morgen um 01:15Uhr eine plötzliche Leistungsaufnahme von sage und schreibe 46kW habe...

???????_PowerDayMax 46800.000 2016-09-01 01:15:59

Hat Jemand eine ähnliche Beobachtung?

Gruss
    Sailor
******************************
Man wird immer besser...