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:

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