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


15 Kommentare

SG · 22. April 2019 um 09:36

Hallo,

danke für diese Anleitung, funktioniert super! Benutze das Auslesemodul von stall.biz, damit habe ich keine Reflektionsprobleme.

Nun zu meiner Frage: Der ElectricityCalculator von FHEM schneidet Counts die innerhalb von 10 s kommen einfach weg, siehe auch die Commandref (“Intervalle kleienr als 10s werden ignoriert um Spitzen zu verhindern die von Blockaden des fhem Systems hervorgerufen werden”).

–> Problem: Sollte mal mehr als 1/75*3600*1000/10=4800 W abgenommen werden (Beispiel: Herd mit 4 Platten komplett an), verpasst ElectricityCalculator mit dem hier diskutierten Ansatz etwas. Hat jemand eine Lösung? Die 10 s kann man (soweit ich gesehen habe) leider nicht verstellen. Möchte auch ungern mit meinem ESP die Counts sammeln und dann erst übergeben, da dann die Leistungsauswertung falsch wäre.

Danke Euch und viele Grüße!

Robert Schier · 17. Februar 2019 um 11:18

Hallo,
habe das gleiche Problem wie Michael (Scheibe reflektiert zu stark)
Hat da jemand schon eine Lösung gefunden?
Bevor ich da mit Werkzeug rangehe.
An sonsten funtioniert die Schaltung sehr gut!

Grüße,
Rob

Michael · 5. Januar 2019 um 20:02

Hallo,

habs nachgebaut und soweit echt super.
Leider reflektiert die Scheibe vom Zähler stark so das es nicht funktioniert. Hab am Poti gedreht das bringt nix.
Wie habt ihr das gemacht?

Grüße

mmn · 7. Dezember 2018 um 00:26

… dann geh ich’s mal an, ESPEasy ist bei mir auch seit einiger Zeit produktiv.
Ist schon faszinierend, daß eine pfiffige Lösung für unter 10EUR die 80EUR-Homematic-Variante ablösen kann ..
Deine Anleitung ist erste Klasse, auch von mir vielen Dank dafür.

Ana · 27. November 2018 um 13:04

Hallo Dennis,
wie genau errechnet man den ElectricityCounterOffset kannst du mir eventuell ein Bsp geben?
Danke

    Shojo

    Shojo · 29. November 2018 um 22:18

    Hi Ana,

    der ElectricityCounterOffset ist die Differenz zu deinen echten Zählerstand.
    Also [echten Zählerstand] – [****_CounterCurrent] = ElectricityCounterOffset.

      Ana · 4. Dezember 2018 um 12:25

      Dankeschön

Dominik · 8. November 2018 um 19:29

Hast du ein Bild wie du die Lichtschranke in das gedruckte Teil gezwängt hast?

Habe beides hier aber irgendwie würde ich das nie da hineinbekommen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.