Neues Modul: GasCalculator

Begonnen von Sailor, 21 Januar 2016, 12:48:11

Vorheriges Thema - Nächstes Thema

Sailor

Dear fruit

Zitat von: fruit am 10 Februar 2016, 11:08:51
Done and all running smoothly now thanks
For a future update... you have a couple of typos in commandref predictabeable and cas-counter, on the same line :)

and for the benefit of other UK users... 'BasicPricePerAnnum' is Standing Charge (usually given as a daily rate).
UK energy tariffs can be complex - and really not designed to benefit the consumer :(

Thanks. I corrected it.

If you have time as a native speaker, please feel free to make any suggestions for improvements to the english commmandref.

Regards
     Sailor
******************************
Man wird immer besser...

Sailor

#46
Hallo Gerd

Zitat von: Gerd.Ternes am 13 Februar 2016, 16:42:59
Illegal division by zero at ./FHEM/73_GasCalculator.pm line 495.
danach kann ich den Server nicht mehr erreichen. Womit hängt das zusammen oder hat jemand das gleiche Problem?

Habe gerade eine neue Version 10821 eingecheckt. Ich hoffe damit den Fehler abgefangen zu haben.
Kannst du dies bitte testen und bestätigen?

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

Sailor

Hallo Gerd

Zitat von: Gerd.Ternes am 13 Februar 2016, 16:42:59
Weiterhin war (und ist) für mich interessant, Monats, und Tageswerte (durchschnittlicher Verbrauch/Tag bzw. Monat bzw. Woche) zus sehen. Lässt sich dies noch einbauen?

Sowas laesst sich immer machen...

Du musst mir nur sagen, was genau du brauchst.

Zum Beispiel "Arithmetischer Mittelwert aller Energie- (Verbrauchs-) Werte über den Zeitraum X"

Aber wozu braucht man den Mittelwert eines Verbrauchswertes ueber einen Zeitraum?
Das wäre dann doch wieder die Durchschnittsleistung.  ???

Oder habe ich da was falsch verstanden.. :o

Das Reading "EnergyDay"     liefert die Verbrauchswerte seit Mitternacht. (Reset um Mitternacht)
Das Reading "EnergyMonth" liefert die Verbrauchswerte seit dem 1ten des Monats. (Reset um Mitternacht am 1ten)
Das Reading "EnergyYear"    liefert die Verbrauchswerte seit dem 1ten des Jahres. (Reset um Mitternacht am 1ten Januar)

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

Gerd.Ternes

Hallo Sailor,

danke für die Rückmeldung. Ich habe die neue Version eingespielt und werde heute einmal sehen wie sie läuft.

Hinsichtlich der "Durchschnittswerte". Im Prinzip hast Du recht. Ich habe für mich jedoch (ist wohl ein Fimmel) einige Durchschnittswerte immer sichtbar, damit ich sehe, wo ich stehe (Bildschirmprint , bitte jedoch nicht auf die Zahlen achten, die habe ich noch nicht aktualisiert, da die mir auch immer nach dem letzten Neustart verloren gehen.)
Ich würde gerne sehen wo ich (im Vergleich) zum letzen Monat/Woche/Tag/Jahr stehe.
Dazu benötigt man dann (natürlich) auch einen Tageszaehler (jeweils für Woche/Monta/Jahr/Abrechenzeitraum)

VG

Gerd

bert

Bei mir funktioniert es. Läuft seit 3 Std. ohne Absturz.

Gruß Bert

Gerd.Ternes

Hallo Sailor,

ich habe das Modul jetzt rd. 20 Stunden bei meinem Testsystem im Einsatz. Bisher läuft alles Problemlos. Danke.
Werde es jetzt in meinem Produktivsystem aktivieren.
Hast du einmal bezüglich der Durchschnittswerte nachgedacht?

VG

Gerd

no_Legend

#51
Hi Mal neu Frage zu dem Device welches dem GasCalculator die Werte liefert.

Benotigt man ein Device welches schon mit Komma zahlen anliefert oder ohne?

Zur Erklärung:
Ich habe mein Firmata+ Reed Kontakt per HourCounter zur Erfassung der Impulse.
Nun habe ich hier den Counter ohne Komma also 1203177 und per Userreading 12031.77

Edit: es sieht danach aus dass das Modul lieber ohne Komma arbeitet.

Danke und Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

Sailor

Zitat von: no_Legend am 15 Februar 2016, 12:52:28
Edit: es sieht danach aus dass das Modul lieber ohne Komma arbeitet.

;)

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

fruit

Zitat von: Sailor am 13 Februar 2016, 21:46:34If you have time as a native speaker, please feel free to make any suggestions for improvements to the english commmandref.
I probably could not have written better :)
Just a couple of minor points...
'shown on the mechanic meter' better 'shown on the mechanical meter' - as you have it in the next paragraph :)
'able to read at least 2 times the counter' better 'able to read the counter at least 2 times'

Many here in the UK have quarterly billing (every 3 months, often estimated or customer supplied reading)
Not tried yet but I assume zeroing xxx_FinanceReserve after paying the bill will start to count what is owed on the supplier's next bill

All running well here after my initial setup problems, many thanks
Feel free to follow up in German if you prefer

Sidey

Hi,

da ich mir geade aus einem Hallsensor und einem Arduino einen Gaszähler gebaut habe, bin ich auf dieses Modul gestoßen.
Das Modul klingt gut, mir ist nur nicht ganz klar, wie es Zählt. :)

Mein Sensor fängt an bei 0, nachdem er gestartet wurde. Also jedesmal wenn ich neu flashe, resette oder sonstwas passiert.
Für jeden Impuls den ich messe wird der counter erhöht.

Sollte der Sensor seine Daten nicht an FHEM übertragen können, weil FHEM abgestürzt oder die Verbindung unterbrochen ist, dann gibt der Counter die Differenz an.

Funktioniert das Modul mit meinem Sensor? Ich habe ja "nur" das Reading definiert, indem ich eine regex angegeben habe. Aber ob das Modul nun einfach jede Änderung zählt oder es den Counter wert nur übernimmt habe ich nicht verstanden.


Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

no_Legend

Zitat von: Sidey am 21 Februar 2016, 22:17:14
Hi,

da ich mir geade aus einem Hallsensor und einem Arduino einen Gaszähler gebaut habe, bin ich auf dieses Modul gestoßen.
Das Modul klingt gut, mir ist nur nicht ganz klar, wie es Zählt. :)

Mein Sensor fängt an bei 0, nachdem er gestartet wurde. Also jedesmal wenn ich neu flashe, resette oder sonstwas passiert.
Für jeden Impuls den ich messe wird der counter erhöht.

Sollte der Sensor seine Daten nicht an FHEM übertragen können, weil FHEM abgestürzt oder die Verbindung unterbrochen ist, dann gibt der Counter die Differenz an.

Funktioniert das Modul mit meinem Sensor? Ich habe ja "nur" das Reading definiert, indem ich eine regex angegeben habe. Aber ob das Modul nun einfach jede Änderung zählt oder es den Counter wert nur übernimmt habe ich nicht verstanden.


Grüße Sidey


Es gibt dafür Drei Möglichkeiten:

1. Du hängste einen Hourcounter dazwischen. (Habe ich selbst im einsatz)
Der Hourcounter zählt die Impulse.
Welchen Counter Wert das Arduino in Device hat interessiert HourCounter nicht.
Der GasCalculator nutzt dann den Counter vom HourCounter
Es soll noch erwähnt werden, dass der GasCalculator wie folgt dann HourCounter:
Bsp: GasVerbrauch:countsOverall:.*

2. Du machst ein Monotonic User Reading auf das Arduino IN Device

3. ArduCount
http://www.fhemwiki.de/wiki/ArduCounter
Vorteil hier ist, dass der Zähler auch funktioniert, wenn FHEM mal hängt.
Und die Daten werden nur zyklisch abgerufen.

Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

Sailor

Hi Sidey

Zitat von: Sidey am 21 Februar 2016, 22:17:14
da ich mir geade aus einem Hallsensor und einem Arduino einen Gaszähler gebaut habe, bin ich auf dieses Modul gestoßen.
Das Modul klingt gut, mir ist nur nicht ganz klar, wie es Zählt. :)

Das Modul zählt gar nicht... es greift auf Deinen (Hall-)Zähler zu.

Zitat von: Sidey am 21 Februar 2016, 22:17:14
Mein Sensor fängt an bei 0
Für jeden Impuls den ich messe wird der counter erhöht.
Das hört sich gut an!

Zitat von: Sidey am 21 Februar 2016, 22:17:14
Also jedesmal wenn ich neu flashe, resette oder sonstwas passiert.
Das ist wiederum nicht gut. Du solltest vielleicht darüber nachdenken ein Zählermodul mit Puffer-Batterie dazwischen zu schalten.
Ansonsten darfst du nach jedem fhem - update den Offset neu programmieren.

Zitat von: Sidey am 21 Februar 2016, 22:17:14
Sollte der Sensor seine Daten nicht an FHEM übertragen können, weil FHEM abgestürzt oder die Verbindung unterbrochen ist, dann gibt der Counter die Differenz an.
Der Sensor macht nur "Schalter auf" und "Schalter zu". Dieser sendet absolut nix zu fhem. Wichtig ist das Zählermodul dahinter.
Wo ist der Sensor denn angeschlossen?

Zitat von: Sidey am 21 Februar 2016, 22:17:14
Funktioniert das Modul mit meinem Sensor? Ich habe ja "nur" das Reading definiert, indem ich eine regex angegeben habe. Aber ob das Modul nun einfach jede Änderung zählt oder es den Counter wert nur übernimmt habe ich nicht verstanden.

Mein Modul stellt keine Verbindung zu Sensoren her. Es braucht ein bereits funktionierendes Device welches via RegEx auf das entsprechende Zähler-Reading zugreift.
Es nimmt den Counter - Wert wie er kommt. Sollte nach einem Reset dein Wert wieder auf = gehen, wird mein Modul negative Verbrauchs-Werte berechnen und ist somit Nosens.

Gruss
   Sailor

******************************
Man wird immer besser...

fruit

The panStamp counter I have resets on battery change but I use a dummy and notify to keep the counter in step
define Gas dummy

define G_Count_notify notify SWAP_03:G_Count:.* {\
my $count = Value( "SWAP_03" );;\
my $val = ( 1000 * ReadingsVal( "Gas", "state", "" ) + ( $count > 0?( $count * 5 ):0 ) ) / 1000;;\
fhem "set Gas $val";;\
}
Feel free to follow up in German if you prefer

Sidey

This is an interesting solution.

But there are two things i didn't understand.

Why multiply the dummy value with 1000 and divide later with 1000?

Why multiply the countet with 5 when it isn't zero?
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

fruit

Zitat von: Sidey am 22 Februar 2016, 09:07:18
This is an interesting solution.

But there are two things i didn't understand.
Sorry, I kept it short as I posted in English, I hope this makes more sense...
ZitatWhy multiply the dummy value with 1000 and divide later with 1000?
My gas meter has a ring/counter for 1/1000 m3 and that is what I take readings from.
I record my reading as something like 8587.234
I multiply and divide so the calculation is done with integer values to give an accurate result - floating point divide may not be accurate!
ZitatWhy multiply the countet with 5 when it isn't zero?
My meter has two magnets on the 1/1000 m3 ring, every pulse therefore equals 5/1000 m3
Others may be different of course
Feel free to follow up in German if you prefer