[Stromzähler (Ferraris)] Smart machen für unter 10€ mit ioBroker und NodeMCU [Tutorial] [HD]

  • ja meine zb...mein sensor schafft es einfach nicht. entweder ist die drehscheibe zu weit weg oder die plexischeibe des zählers verhindert es

  • Ich habe nach wie vor Probleme mit dem ESP Modul. Folgende Einträge stehen im Log. Vielleicht kann ja jemand was damit anfangen, ich habe keine Erklärung, warum es auf einmal nicht mehr klappt.

    485026 : WD : Uptime 8 ConnectFailures 0 FreeMem 28144

    515027 : WD : Uptime 8 ConnectFailures 0 FreeMem 28144

    545028 : WD : Uptime 9 ConnectFailures 0 FreeMem 28144

    575029 : WD : Uptime 9 ConnectFailures 0 FreeMem 28392

    575029 : MQTT : Connection lost

    576589 : MQTT : Connected to broker

    576593 : Subscribed to: /Stromzaehler/#

    605030 : WD : Uptime 10 ConnectFailures 2 FreeMem 28144

    635031 : WD : Uptime 10 ConnectFailures 1 FreeMem 28128

    665032 : WD : Uptime 11 ConnectFailures 0 FreeMem 28112
  • Ist dein IoBroker zwischendurch nicht erreichbar?


    Ich habe das Ganze inzwischen umgebaut.

    Nur den aktuellen Counter hochzuzählen funktioniert nicht richtig.

    Wenn der IoBroker zb. ein Backup macht, gehen die Verbräuche in der Zeit verloren.

    Besser ist es, mit dem Gesamtzähler zu arbeiten.

    Wenn Interesse besteht, kann ich das gerne ein wenig beschrieben.

  • Mach das mal :)

  • Moin !

    Ich habe nun auch den Stromzähler seit 3-4 Wochen erfolgreich laufen und die Ergebnisse werden täglich auf meiner ioBroker-Visualisierung im Flur angezeigt. Die Genauigkeit ist sehr hoch. Abweichungen sind kaum messbar.

    Ein Problem habe ich jedoch: wenn unsere Sauna einmal die Woche so mit ca. 13 kW/h saugt, dreht sich die Scheibe so schnell, daß nur ca. die Hälfte des Verbrauchs erfasst wird. Die Tips aus diesem Forum habe ich gelesen und den Counter Type auf "Falling" geändert. Debounce Time steht auf 200 mSec.

    Ich habe gedacht mit dem Typ "Falling" wird nur ein Messwert ja Umdrehung erzeugt, das ist aber nicht so. Ich musste im Script "Stromzähler allgemein" die Arbeitsvariable bei 150 belassen.

    Hat da jemand eine Erklärung dafür ? Und wie kann ich die 13 KW/h in den Griff bekommen ?

  • Die Erfahrung habe ich leider auch gemacht, dass der Zähler leider nur relativ genau arbeitet, wenn sich die Scheibe nicht zu schnell dreht. Wenn bei und Trockner und Waschmaschine zusammen den Strom verbraten, sind die Abweichungen schon bis zu 20 Kw/h pro Woche. Läuft nichts besonderes, sind es nur so 2-3 kw/h. Letztendlich muss man doch immer wieder manuell korrigieren.

  • Meine Theorie war so, dass ich erwartet habe, dass im Modus "Falling" nur einmal je Umdrehung getriggert wird. Nämlich beim Übergang von Reflexion zu Nichtreflexion am Beginn des roten Bereichs. Das sollte eigentlich für einen sauberen Trigger reichen. Die Scheibe dreht sich bei 14 kW/h ca. alle 3,5 Sek einmal rum.

    Aber wie schon erwähnt, wird auch dann bei steigender Flanke, also am Ende des roten Bereichs, nochmal getriggert. Dafür habe ich keine Erklärung. Vielleicht ist hier jemand technisch bewanderter als ich ?

  • Anfang und Ende ( pulse counter )


    löse das Problem doch einfach anders:

    Setzte den tcrt5000 auf Switch - aktive high.


    Im Iobroker bis 75 Zählen lassen.

    Daraus einfach weiter verarbeiten.

    (Trigger auf 1 und o bei Switch + 1 @ Umdrehungen.)

    Getestet bis 17kw / Stunde. ( 1 durchlauferhitzer und IT am Maximum. )


    Wenn mehr Infos benötigt werden, schreibe ich morgen aus dem Büro und nicht von unterwegs.

  • Bei mir sieht das ganz anders aus im ESP Easy Mega:

    Es gibt nur die Parameter :

    Counter Type: Delta/Total/Time

    Mode Type: LOW oder Change oder Raising oderFalling

    Debounce Time

    Das wars. Sieht ganz anders aus als bei dir. (wie bekommt man einen Screenshot in den Beitrag ?)

    Hast du evtl eine andere Version ?

  • Du musst den Pulse Counter löschen ( unten steht delete )

    Anschließend wählst Du bei einem Task ( in der Liste ganz unten ) : Switch Input.

    Konfiguration siehe mein ersten Screenshot.

    Daten einfach mal an sen Broker schicken und beobachten.

    Wenn er zuverlässig zählt ( sendet nur 1 oder 0 )

    Also im Detail:

    Da der Pegel jetzt auf high steht, ändert sich switch dann auf 1.

    Beim nächsten erkennen setzt er wieder ein high Signal und der switch schaltet auf 0.

    Also muss bei jeder Änderung des Switch eine Variable hochzählen.


    Kann gerne später das script bereitstellen.


    Per Windows kannst Du durch die drucktaste auf der Tastatur ein Screenshot machen ( in paint strg V )

    Beim Handy je nach Modell.

    Anschließend einen Bilderhoster deiner Wahl wählen und hochladen.

  • ok, danke für deine Hilfe !

    Habe "Switch Input" zunächst einmal parallel zum "Pulse Counter" eingerichtet. Als Datenpunkte habe ich dann als erstes die Arbeitsvariable und den Zählerstand erstellt. Der Script "Stromzähler Allgemein" zählt dann die Arbeitsvariable bis 75 hoch und erhöht danach den Zählerstand. Funktioniert im Moment wie gewünscht.

    Alles weitere, wie die Tages/Wochen/usw. Scripte kommt dann nach erfolgreichem Test.

    Es wird auf jeden Fall immer nur ein Impuls pro Umdrehung gezählt, soweit kann ich das schon sagen.

    So lasse ich das erst mal ein paar Tage laufen und schaue, wie genau die Zählung funktioniert.

    Zum Vergleich wäre dein Script sicher hilfreich !

  • Hatte auch erst Schwierigkeiten mit dem Pulse Counter, durch das ändern auf Switch läuft es 100% genau bei mir.

    Egal ob wenig Verbrauch, oder der Zähler durchdreht.

    Das dass schöne am high Pegel, er wird halt solange gehalten wie die rote Markierung erkannt wurde.

    Daher nur 1 oder 0. Ende.

    Script:

    https://www.daten-hoster.de/file/details/765318/Scripte.txt

    Mehr als 10000 Zeichen gehen hier nicht :/

    Daher ist alles in einer txt gespeichert.

    Fehlen noch die Feinheiten.

    Sobald mein Test abgeschlossen ist, geht es an die Details :)

    Derzeit werte ich alles eine Datenbank aus und gebe es per Push ans Handy und an meinen Computer in der Küche zur Visualisierung :)

  • Danke für die Skrips. Interessant finde ich den Momentanverbrauch. Dazu eine Frage: woher bekommst du den Datenpunkt "Zeit", der in deinem Screenshot auf 199103 steht ? Der wird ja als Divisor in deinem Skript benutzt.

    Im ESP Easy Mega wird mir nur "Switch" als Value angezeigt und an ioBroker übergeben. Das optionale Interval steht bei mir auf 0 sec.

  • Den Datenpunkt musst Du manuell anlegen, dazu dann folgendes Script:


    In der Textdatei sind mehr als 1 Script ^^

    Die 13,3 beziehen sich auf 75 Umdrehungen ( 1000 / 75 = 13,3333x )

  • Die Zeitberechnung kommt von hier:

    Entschuldige, hatte erst quatsch gelesen....

  • Uih !! Kannst du ein paar Erklärungen zum Script für die Zeitberechnung machen ? Habe den jetzt als Blockly vor mir und steige noch nicht ganz durch.

    Sicher ist eine Berechnung des Momentanverbrauchs auch für andere interessant !

    Wie ist es denn mit der Performance ? Verbraucht das nicht einiges an Rechenleistung ?

  • Da es "nur" ein Analogzähler ist, ist der Momentanverbrauch nur als "ca" anzusehen.

    Heißt im Detail, man bekommt immer den letzten durchschnitt mitgeteilt, mir persönlich reicht es, da sobald mehr Strom verbraucht wird ( Herd oder so ) direkt im Anschluss der Durchschnitts-Wert zusehen ist.

    Bei der Grundlast sieht es schon anders aus, Abends zum Beispiel benötigt mein Zähler x Min um eine Runde zu drehen.

    Aber man kann sich seine Grundlast ansehen und ggf. Maßnahmen ergreifen um die Last ein wenig zu Drücken wenn einem der Wert zu hoch erscheint, oder ist.

    Standby Geräte die nicht benötigt werden ( Fernseher - PCs etc ) können per Script und Taster abgeschaltet werden ( Wlan Steckdose vorausgesetzt )


    Erklärung zum Script:

    Als erstes benötigt man folgende Werte:

    Umdrehung Zähler - kWh ( Bei mir sind es 75, was auch fast Standard ist )

    Die Berechnung sieht dann wie folgt aus:

    1000 / 75 = 13,33~ x 3600 ( sec = 1 Stunde ) / Zeit ( in sec ) x 1000 ( in Wh )

    Die Zeit Variable ist einfach zu bekommen:

    Trigger auf Switch ( Also die Variable die geändert wird, wenn ein Signal am Zähler erkannt wurde )

    Aktualisiere variable ( moment )

    -----

    Timestamp - letzter Timestamp = Zeit in Sec für eine Umdrehen.


    Das eigentlich schon alles :)

    Performance Probleme oder eine höhere Last wegen der kleinen Berechnung konnte ich jetzt nicht feststellen.

    Hier mal ein Screen, darauf ist gut zuerkennen wann der Kühlschrank anspringt ^^

    6tewvmnb.png

  • OK, dann sind die Aktualisierungen im Script nach dem Zeitstamp per Zeitplan (Stunde, umdrehungen_stunde, letzte_woche usw) für den Momentanverbrauch nicht relevant ? das hat mich etwas verwirrt.

    Die Tages, Wochen und Monatsverbräuche und die Kosten dazu berechne ich bereits mit eigenen Scripts und präsentiere sie auf einem Tablet im Flur. So kann man auch schon anhand von Tagesverbräuchen sehen, wie die Verbräuche steigen, wenn z.B. die Sauna für 2-3 Stunden läuft. Da kommen sofort ca. € 6,- Extrakosten auf. Wahnsinn, wie teuer Strom geworden ist !

  • Ja die hatte ich noch da reingepackt, dachte das wäre ersichtlich dass die nicht dazugehören.

    Aber wie gesagt läuft ja auch erst im Testmodus und noch nicht verfeinert das ganze.

    Ja das stimmt, habe jeden Tag zwischen 16 - 20 kWh. sind mal eben 4,61€ + 28,41€ im Monat Gebühr.

    Wenn die Server Aufgaben zugeteilt bekommen, dann noch mehr.

    Zahle ~175€ im Monat für 2 Etagen.

    Lohnt sich drüber nachzudenken Photovoltaik aufs Dach zuschrauben hehe

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!