ElectricityCalculator bzw. GasCalculator

Begonnen von gehrt, 03 Februar 2023, 11:33:41

Vorheriges Thema - Nächstes Thema

gehrt

Hallo zusammen!

Leider ist irgendwie keine der Anleitungen so, dass man ohne stundenlanges Foren lesen auf einen grünen Zweig kommt. Hat bei mir jedenfalls noch nie funktioniert. Frustig.
Wenn FHEM einmal läuft - super. Oh weh man will was ändern oder neu hinzufügen. Aber das kennt sicherlich jeder, der sich nicht sehr intensiv mit FHEM beschäftigt / beschäftigen kann.

Mein Problem: Nach dem man nichts, aber auch wirklich gar nichts zum GasCalculator findet, stellt man irgendwann fest, dass das wohl das gleiche ist wie der ElectricityCalculator. Threads lesen, die dutzende Seiten lang sind, ist nicht wirklich hilfreich. Ich jedenfalls habe meine Fragen nicht beantworten können.
Es scheint so zu sein, dass man den Caclulator auf einen anfänglichen Wert einstellt, indem man GasCounterOffset setzt. Ein direktes Schreiben in ..._countsOverall_Meter ist wohl nicht vorgesehen. Ich hatte den GasCalculator irgendwie in Betrieb genommen und in ..._countsOverall_Meter stand der Wert vom Gasdzähler drin, der auch korrekt in (bei mir) 0.1er-Schritten hochgezählt wurde. Heute morgen stand da plötzlich 0.2 drin. Dann habe ich versucht über GasCounterOffset auf den aktuellen Gaszählerwert von 8388,1 durch schreiben von 8379.9 zu korrigieren, was auch funktioniert hat. Nach dem nächsten Impuls steht jetzt wider 0.1 drin und in  GasCounterOffset -4.
Was auch immer da läuft, ich verstehe es nicht.
Kann mir jemand helfen?

Edit: Der Statistics-Modul zählt auch nicht richtig. Die Werte stimmen zwar, passen aber nicht zu den Zeitpunkten.

Frustige Grüße
Gehrt
   

GeZi3560

Es ist eigentlich alles schön ( sogar auf deutsch) in der Devicehilfe dokumentiert.
Sogar ich bin damit klar gekommen.  :D

GasCalculator


Das GasCalculator Modul berechnet den Gas - Verbrauch und den verbundenen Kosten von einem oder mehreren Gas-Zählern.
Es ist kein eigenes Zählermodul sondern benötigt eine Regular Expression (regex or regexp) um das Reading mit dem kontinuierlich wachsenden Zählerstand von einem oder mehreren Gaszählern zu finden.

Sobald das Modul in der fhem.cfg definiert wurde, reagiert das Modul auf jedes durch das regex definierte event wie beispielsweise ein myOWDEVICE:counter.* etc.

Das GasCalculator Modul berechnet augenblickliche, historische statistische und vorhersehbare Werte von einem oder mehreren Gas-Zählern und erstellt die entsprechenden Readings.

Um zu verhindern, dass man bis zu 12 Monate warten muss, bis alle Werte der Realität entsprechen, müssen die Readings <DestinationDevice>_<SourceCounterReading>_Vol1stDay, <DestinationDevice>_<SourceCounterReading>_Vol1stMonth, <DestinationDevice>_<SourceCounterReading>_Vol1stYear und <DestinationDevice>_<SourceCounterReading>_Vol1stMeter entsprechend mit dem setreading - Befehl korrigiert werden. Diese Werte findet man unter Umständen auf der letzten Gas-Rechnung. Andernfalls dauert es bis zu 24h für die täglichen, 30 Tage für die monatlichen und bis zu 12 Monate für die jährlichen Werte bis diese der Realität entsprechen.


Define
define <name> GasCalculator <regex>
<name> :
Der Name dieses Berechnungs-Device. Empfehlung: "myGasCalculator".
<regex> :
Eine gültige Regular Expression (regex or regexp) von dem Event wo der Zählerstand gefunden werden kann
Beispiel: define myGasCalculator GasCalculator myGasCounter:countersA.*

Set
Die set - Funktion erlaubt individuelle Readings zu verändern um beispielsweise nach einem Stromausfall Werte zu korrigieren.
Die set - Funktion funktioniert für Readings welche im CalculatorDevice gespeichert wurden und zum update des Offsets zwischen den Zählern.
Die Readings welche im Counter - Device gespeichert wurden, müssen individuell mit set - Befehl gesetzt werden.
Der Befehl "SyncCounter" errechnet und update den Offset. Hierbei einfach den Wert des mechanischen Zählers eingeben.

Get
Die get - Funktion liefert nur den Wert des jeweiligen Readings zurück.
Die get - Funktion funktioniert nur für Readings welche im CalculatorDevice gespeichert wurden.
Die Readings welche im Counter - Device gespeichert wurden, müssen individuell mit get - Befehl ausgelesen werden.

Attributes
Sollten die unten ausfeg&auuml;hrten Attribute bei der Definition eines entsprechenden Gerätes nicht gesetzt sein, so werden sie vom Modul mit Standard Werten automatisch gesetzt
Zusätzlich können die globalen Attribute wie room verwendet werden.
BasicPricePerAnnum : Eine gültige float Zahl für die jährliche Grundgebühr in der gewählten Währung für die Gas-Versorgung zum End-Verbraucher.
Dieser Wert stammt vom Gas-Zulieferer und steht auf der Gas-Rechnung.
der Standard Wert ist 0.00
Currency : Eines der vordefinerten Währungssymbole: [€,£,$].
Der Standard Wert ist €

disable : Deaktiviert das devive. Das Modul wird nicht mehr auf die Events reagieren die durch die Regular Expression definiert wurde.
Der Standard Wert ist 0 = ativiert.

GasCounterOffset : Eine gültige float-Zahl für den Volumen Unterschied = Offset (Nicht der Unterschied zwischen Zählimpulsen) zwischen dem am mechanischen Gaszähler und dem angezeigten Wert im Reading dieses Device.
Der Offset-Wert wird wie folgt ermittelt: VOffset = VMechanisch - VModule
Der Standard-Wert ist 0.00
GasCubicPerCounts : Eine gültige float-Zahl für die Menge an Zählimpulsen pro gewählter Volumen-Grundeinheit.
Der Wert ist durch das mechanische Zählwerk des Gaszählers vorgegeben. GasCubicPerCounts = 0.01 bedeutet, dass jeder Zählimpuls ein hunderstel der gewählten Volumengrundeinheit.
Der Standard-Wert ist 0.01
GasNominalHeatingValue : Eine gültige float-Zahl für den Heizwert des gelieferten Gases in [kWh/ gewählter Volumeneinheit].
Dieser Wert stammt vom Gas-Zulieferer und steht auf der Gas-Rechnung.
Der Standard-Wert ist 10.00

GaszValue : Eine gültige float-Zahl für die Zustandszahl des Gases basierend auf der Installation des Gas-Zälers in Relation b zum Höhenunterschieds der Hauptversorgungsstation des Gas Zulieferers.
Dieser Wert stammt vom Gas-Zulieferer und steht auf der Gas-Rechnung.
Der Standard-Wert ist 1.00

GasPricePerKWh : Eine gültige float-Zahl für den Gas Preis in der gewählten Währung pro kWh.
Dieser Wert stammt vom Gas-Zulieferer und steht auf der Gas-Rechnung.
Der Standard-Wert ist 0.0654

MonthlyPayment : Eine gültige float-Zahl für die monatlichen Abschlagszahlungen in der gewählten Währung an den Gas-Lieferanten.
Der Standard-Wert ist 0.00

MonthOfAnnualReading : Eine gültige Ganz-Zahl für den Monat wenn der mechanische Gas-Zähler jedes Jahr durch den Gas-Lieferanten abgelesen wird.
Der Standard-Wert ist 5 (Mai)

ReadingDestination : Eines der vordefinerten Device als Ziel der errechneten Readings: [CalculatorDevice,CounterDevice].
Das CalculatorDevice ist das mit diesem Modul erstellte Device.
Das CounterDevice ist das Device von welchem der mechanische Zähler ausgelesen wird.
Der Standard-Wert ist CalculatorDevice.

Volume : Eine der vordefinierten Volumensymbole für die Volumeneinheit [m³,ft³].
der Standard-Wert ist m³


Readings
Sobald das Device in der Lage war mindestens 2 Werte des Zählers einzulesen, werden automatisch die entsprechenden Readings erzeugt:
Der Platzhalter <DestinationDevice> steht für das Device, welches man in dem Attribut ReadingDestination oben festgelegt hat. Dieser Platzhalter bleibt leer, sobald man dort CalculatorDevice ausgewählt hat.
Der Platzhalter <SourceCounterReading> steht für das Reading welches mit der Regular Expression definiert wurde.
<DestinationDevice>_<SourceCounterReading>_EnergyCostLastDay
: Energiekosten in der gewählten Währung des letzten Tages.
<DestinationDevice>_<SourceCounterReading>_EnergyCostMeter
: Energiekosten in der gewählten Währung seit Anfang des Monats wo der Gas-Versorger den Zähler abliest.
<DestinationDevice>_<SourceCounterReading>_EnergyCostMeterLast
: Energiekosten in der gewählten Währung der letzten Zählperiode des Gas-Versorgers.
<DestinationDevice>_<SourceCounterReading>_EnergyCostMonth
: Energiekosten in der gewählten Währung seit Anfang des Monats.
<DestinationDevice>_<SourceCounterReading>_EnergyCostMonthLast
: Energiekosten in der gewählten Währung des letzten Monats.
<DestinationDevice>_<SourceCounterReading>_EnergyCostYear
: Energiekosten in der gewählten Währung seit Anfang des Jahres.
<DestinationDevice>_<SourceCounterReading>_EnergyCostYearLast
: Energiekosten in der gewählten Währung des letzten Jahres.
<DestinationDevice>_<SourceCounterReading>_EnergyDay
: Energieverbrauch in kWh seit Mitternacht.
<DestinationDevice>_<SourceCounterReading>_EnergyDayLast
: Gesamter Energieverbrauch des letzten Tages (Gestern).
<DestinationDevice>_<SourceCounterReading>_EnergyMeter
: Energieverbrauch in kWh seit Anfang seit Anfang des Monats wo der Gas-Versorger den Zähler abliest.
<DestinationDevice>_<SourceCounterReading>_EnergyMeterLast
: Gesamter Energieverbrauch der letzten Zählerperiode des Gas-Versorgers.
<DestinationDevice>_<SourceCounterReading>_EnergyMonth
: Energieverbrauch in kWh seit Anfang seit Anfang des Monats (Mitternacht des 01.).
<DestinationDevice>_<SourceCounterReading>_EnergyMonthLast
: Gesamter Energieverbrauch im letzten Monat.
<DestinationDevice>_<SourceCounterReading>_EnergyYear
: Energieverbrauch in kWh seit Anfang seit Anfang des Jahres (Mitternacht des 01. Januar).
<DestinationDevice>_<SourceCounterReading>_EnergyYearLast
: Gesamter Energieverbrauch in kWh des letzten Kalender-Jahres.
<DestinationDevice>_<SourceCounterReading>_FinanceReserve
: Finanzielle Reserve basierend auf den Abschlagszahlungen die jeden Monat an den Gas-Versorger gezahlt werden. Bei negativen Werten ist von einer Nachzahlung auszugehen.
<DestinationDevice>_<SourceCounterReading>_MonthMeterReading
: Anzahl der Monate seit der letzten Zählerablesung. Der Monat der Zählerablesung ist der erste Monat = 1.
<DestinationDevice>_<SourceCounterReading>_Meter
: Zählerstand am Gaszähler. Bei Differenzen muss das Offset-Attribut korrigiert werden.
<DestinationDevice>_<SourceCounterReading>_PowerCurrent
: Aktuelle Heizleistung. (Mittelwert zwischen aktueller und letzter Messung)
<DestinationDevice>_<SourceCounterReading>_PowerDayAver
: Mittlere Heitzleistung seit Mitternacht.
<DestinationDevice>_<SourceCounterReading>_PowerDayMax
: Maximale Leistungsaufnahme seit Mitternacht.
<DestinationDevice>_<SourceCounterReading>_PowerDayMin
: Minimale Leistungsaufnahme seit Mitternacht.
<DestinationDevice>_<SourceCounterReading>_Vol1stDay
: Erster Volumenmesswert des Tages (Mitternacht).
<DestinationDevice>_<SourceCounterReading>_VolLastDay
: Verbrauchtes Volumen des vorherigen Tages.
<DestinationDevice>_<SourceCounterReading>_Vol1stMonth
: Erster Volumenmesswert des Monats (Mitternacht des 01.).
<DestinationDevice>_<SourceCounterReading>_VolLastMonth
: Verbrauchtes Volumen des vorherigen Monats.
<DestinationDevice>_<SourceCounterReading>_Vol1stYear
: Erster Volumenmesswert des Jahres (Mitternacht des 01. Januar).
<DestinationDevice>_<SourceCounterReading>_VolLastYear
: Verbrauchtes Volumen des vorherigen Jahres.
<DestinationDevice>_<SourceCounterReading>_Vol1stMeter
: Erster Volumenmesswert des Zeitraums seit Anfang des Monats wo der Gas-Versorger den Zähler abliest.
<DestinationDevice>_<SourceCounterReading>_VolLastMeter
: Verbrauchtes Volumen des vorherigen Abrechnungszeitraums.
Raspberry Pi 4 4GB, MariaDB,2 Cul V3 868 ,1 Cul V3, 433, Zwave-USB, Conbee2, DeConz, MAX WT und Ventile,HM, Somfy, Fibaro, Shellys, Tradfri, Lidl Zigbee

ergerd

Für den ElectricityCalculator gibt es eine gute Beschreibung im fhem Wiki.
Zusammen mit der vorgenannten Devicehilfe zum GasCalculator sollte es kein Problem sein.
Gleiches gilt für den WaterCalculator.
FHEM auf RasPi 4, ZigBee, 1Wire2WLAN, DS2423, Buderus KM200, Button+, LaCrosseGateway, PCA301, ConBee III, LuftdatenInfo, OneWireGW, Div. ESPs u. Shellys