Also eigentlich kommt da 0.1333 peridosich raus. Wenn ich das mit Serial.println(trigger_step); ausgebe, dann wird da immer 0.01 ausgeben, also auf zwei Nachkommastellen gerundet. Das ist mir natürlich zu ungenau. Sollte ich das ganze lieber als ulong speichern?
Warum zählst Du nicht einfach die Striche und nur, wenn Du Das brauchst, machst Du daraus eine menschenlesbare Zahl?
Also dann 'Anzahl Striche/75' - Da reichen dann auch zwei Nachkommastellen.
Du brauchst kein float
Du hast keinerlei Rundungsfehler, erst bei der Anzeige und dort stören Diese nicht
Für Deine rev_per_kWh reicht der Datentyp byte (0...255), spart auch wieder ein Byte.
Mit welchem Sensor detektierst Du den roten Strich?
Hatte, vor einigen Jahren, mit einem CNY70 (Reflex-Koppler) eher bescheidene Ergebnisse - hatte aber auch damit zu tun, daß der Zähler 'zählt', als mit der Ausrichterei (ein Ferraris-Zähler zählt nur hängend, liegend auf dem Tisch tut Der rein gar Nichts - hat mich zwei Abende gekostet).
Nachteil bei dieser Methode: Beim nächsten Ablese-Termin muß der mühsam ausgerichtete Sensor wohl wieder ab.
Ich hole mir den letzten Zählerstand aus ioBroker und addiere die Umdrehungen seit Boot des NodeMCU hinzu. Die Summe schicke ich dann wieder zum ioBroker. Funktioniert an sich auch, aber
Meine Testausgaben sehen im Moment so aus:
StromKwhSeitBoot: 0.00000000 Stromumdrehungen: 74
StromKwhSeitBoot: 1.00000000 Stromumdrehungen: 75
Aus irgendeinem Grund werden keine Nachkommastellen berechnet.