Da ich leider noch einen alten Ferraris-Zähler besitze musste ich mir was einfallen lassen
um auch diesen im meinem FHEM einbinden zu können.
Nach etwas googeln hab ich doch recht schnell paar Lösungsansätze gefunden, ich habe mich dann für die Variante mit einer Reflektionslichtschranke entschieden.
Was wird benötigt:
- Wemos D1 mini*
- TCRT5000 (Reflektionslichtschranke)*
- Ferraris-Stromzähler Pulse Counter Gehäuse oder ähnliches
- Abzweigdose*
Den Wemos D1 mini* habe ich in einer Abzweigdose* untergebracht und mit einen Kabel (was ich so noch liegen hatte) mit dem Sensor verbunden.
Der Aufbau:
Der Aufbau ist bei diesem Projekt recht simpel, wie man hier sieht.
Hier noch paar Bilder als Anregung wie man den Aufbau gestalten könne.
Die ESPEasy Config:
Unter Controllers muss FHEM HTTP angelegt werden:
Nun muss noch die Reflektionslichtschranke konfiguriert werden:
In FHEM:
In FHEM wird der Sensor dann über das espBridge Modul eingebunden, das dann so in etwa aussieht.
Die Definition wäre diese:
defmod HA.Sensor.Strom ESPEasy 192.168.0.103 80 espBridge HA.Sensor.Strom_EG_Rechts attr HA.Sensor.Strom IODev espBridge attr HA.Sensor.Strom Interval 0 attr HA.Sensor.Strom group ESPEasy Device attr HA.Sensor.Strom icon measure_power_meter attr HA.Sensor.Strom presenceCheck 1 attr HA.Sensor.Strom room 2.1_Sensoren,6.0_Haus
Jetzt bekommen wir zwar die die Impulse (Drehungen) der Drehscheibe, mit den können wir aber aber so noch nicht viel anfangen.
Daher habe ich mir mal wieder ein DOIF gebaut das mir die Impulse aufsummiert um diese dann in den Modul ElectricityCalculator weiter verarbeiten zu können.
Ich habe im DOIF noch eine Funktionalität konfiguriert um den Impulse zu entboucen, nämlich das wait 0:3 Attribut.
Das wait 0:3 Attribut bewirkt das der Zustand cmd_1 erst nach wieder nach 3 Sekunden nach der Auslösung wieder erreicht werden kann.
Die DOIF Definition wäre dann diese:
defmod HA.DOIF.Sensor.Strom DOIF ([HA.Sensor.Strom:Pulse] eq "on") \ (\ set $SELF TotalCount {(ReadingsVal("$SELF","TotalCount",0) + 1)}\ )\ DOELSE\ () attr HA.DOIF.Sensor.Strom icon helper_doif attr HA.DOIF.Sensor.Strom readingList TotalCount attr HA.DOIF.Sensor.Strom wait 0:3
Jetzt haben wir einen brauchbaren TotalCount den wir an den ElectricityCalculator übergeben können.
Um jetzt das ganze Modul hier zu erklären würden den Rahmen sprengen, was aber noch zu erwähnen ist wie sich der Wert für das Attribut ElectricityKwhPerCounts errechnet.
Hierfür müssen wir auf unseren Zähler schauen dort ist nämlich angeben wie viele Umdrehungen die Scheibe pro kWh macht.
Wie in meinen und wahrscheinlich auch den meisten Fällen macht die Scheibe 75 Umdrehungen pro kWh das macht dann die Rechnung 1/75 = 0.0133333333333333 .
Und schon haben wir unseren wer für das Attribut ElectricityKwhPerCounts.
Hier noch die Definition meines ElectricityCalculator:
defmod HA.Calculator.Strom ElectricityCalculator HA.DOIF.Sensor.Strom:TotalCount.* attr HA.Calculator.Strom BasicPricePerAnnum 119.00 attr HA.Calculator.Strom Currency € attr HA.Calculator.Strom ElectricityCounterOffset 46999.037 attr HA.Calculator.Strom ElectricityKwhPerCounts 0.0133333333333333 attr HA.Calculator.Strom ElectricityPricePerKWh 0.2998 attr HA.Calculator.Strom MonthOfAnnualReading 11 attr HA.Calculator.Strom MonthlyPayment 94.00 attr HA.Calculator.Strom ReadingDestination CalculatorDevice attr HA.Calculator.Strom SiPrefixPower W attr HA.Calculator.Strom room 6.0_Haus attr HA.Calculator.Strom userReadings Nachzahlung\ {\ if (ReadingsVal("$name","HA.DOIF.Sensor.Strom_TotalCount_FinanceReserve",0) < 0)\ {\ "true";;;;\ }\ else\ {\ "false";;;;\ }\ }
Dann viel Spaß beim nachbauen 😀
Mit * markierte Links sind Amazon ParnerNet Affiliate Links