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

  • Hallo Zusammen,

    ich habe versucht mir eine Zäherstandsermittlung zu basteln und habe kleines Problem beim Blockly und komme da nicht weiter.

    Der ioBroker bekommt alle 300 s von einer [definition='27','0']NodeMCU[/definition] einen Impulsstand übermittelt.

    Den Fehler was ich nicht weg bekomme liegt in der Berechnung "Steure ...Zaehlerstand mit Wert vom Objekt ID .... Zaehler / 10000".

    Das Skript nimmt den Wert von der vorhergehenden Berechnung "Steure ...Zaehler mit Wert vom Objekt ID .... Zaehler + Wert vom Objekt ID .... Differenz"

    Das Ergebnis "Zaehler"wird zwar im ioBroker richtig angezeit, aber es wird für die Berechnung der Wert von der vorhergehenden Berechnung genommen, also immer eine

    Aktualisierung später.

    Vielleicht kann mir da jemand helfen.

    Grüße Gerri

  • Hat nun alles geklappt?

    Würde mich freuen :)

    Da hier nur 10000 Zeilen erlaubt sind, schaue Dich mal hier um ( Momentverbrauch):

    https://www.techdroid.de/2018/11/analog…ment-verbrauch/

    Hab versucht es schritt für schritt zu erklären!

    Tagesverbrauch findest Du hier:

    https://www.techdroid.de/2018/11/analog…tagesverbrauch/


    @Gerri

    Berechne die Variablen einzeln, anschließend erst rechnest Du neu.

    Oder versuch mal statt steuere, aktualisiere zu nehmen, vielleicht übernimmt er dann ja sofort den neuen Wert!

    Denke Dein Fehler liegt darin das er mit Variablen aus dem Speicher rechnet und nicht mit den neu erstellten.

  • Ich habe mir die ganzen Berechnungen nochmal intensiv angeschaut und festgestellt, das zwar der Wert "Differenz" richtig eingetragen ist aber noch intern den vorhergehenden Wert gespeichert hat.

    Alle Berechnungen nehmen immer ihren Vorwert!

    Ich habe das ganze Skript gelöst und wieder Neu erstellt, einen Upload aller Adapter gemacht, den Skript- Adapter entfernt und neu installiert, leider ohne Erfolg!

  • Eine Verzögerung hatte ich auch schon bei allen möglichen Bausteinen eingegeben, aber das brachte auch keinen Erfolg.

    Ich hatte nochmal ein neues Skript erstellt und nahm für beispielweise 2 Berechnungen in Blockly erstellten Variablen dafür her und habe dann die Ergebnisse in die Objekt ID eintragen lassen.

    Entweder hatte ich da einen großen Fehler gemacht oder man muss das so machen, aber hat es funktioniert!! :):)  

  • Eine Verzögerung hatte ich auch schon bei allen möglichen Bausteinen eingegeben, aber das brachte auch keinen Erfolg.

    Ich hatte nochmal ein neues Skript erstellt und nahm für beispielweise 2 Berechnungen in Blockly erstellten Variablen dafür her und habe dann die Ergebnisse in die Objekt ID eintragen lassen.

    Entweder hatte ich da einen großen Fehler gemacht oder man muss das so machen, aber hat es funktioniert!! :):)  

    Könntest du mir dein Skript mal zur Verfügung stellen? Ich habe die gleichen Probleme wie du.

  • Ich bin grad etwas unsicher. Habe ALLES exakt wie im Video eingestellt. Doch mein TotalCounter zählt IMMER 1 dazu und nicht wie erklärt 2 (ein UND aus)... Ich mein, schlimm wärs sicher nicht, dann mach ich das Script halt mit 75 anstatt 150... aber unsicher macht mich das schon warum es nicht wie beschrieben beide Zustände zählt....

    Habe langsam drehen (mehrere Sekunden und schnell drehen in verschiedensten Geschwindigkeiten simuliert... immer plus 1) *kopfkratz*

    Das Video ist schon geil... hat alles auf anhieb geklappt.

  • ... ich denke mit einer debounce Zeit von einer Sekunde wirst du keine genauen Zeiten ermitteln können! Am besten das Hardwaremäßig sauber zur MCU bringen.

  • Hallöle,

    hab das Projekt auch umgesetzt und als Device "Switch" genommen. Lässt sich besser (75 Umdrehungen) rechnen und ist "eigentlich" zuverlässig.

    Dreht die Scheibe sich ein wenig schneller , passt alles. Ist aber der Verbrauch gen Null, dass heisst die Scheibe dreht sich gaaaaaaaaaaaaaaaaaaaaanz langsam (ca. 10 Sekunden bis der rote Balken vorbei ist), habe ich Abweichungen. Das ist natürlich ärgerlich, weil ich nicht täglich gucken will, ob die Zahlen stimmen.

    Es ist natürlich schwierig, die richtige Zeit zum Übermitteln zu finden, denn mal dreht die Scheibe schnell, mal langsam. Ich habe jetzt 12 Sekunden eingestellt.

    Wie habt ihr das zuverlässig gelöst?

    Welche Einstellungen habt ihr in der [definition='27','0']NodeMCU[/definition] gemacht mit Device "Switch"?

  • Du hast also anstatt "Pulse Counter" einen Switch gewählt?

    Habe große Probleme mit Device "Pulse Counter".

    Welchen Switch hast du denn in der [definition='27','0']NodeMCU[/definition] eingestellt? Da sind ja mehrere zur Auswahl.

  • Du hast also anstatt "Pulse Counter" einen Switch gewählt?

    Habe große Probleme mit Device "Pulse Counter".

    Welchen Switch hast du denn in der [definition='27','0'][definition='27','0']NodeMCU[/definition][/definition] eingestellt? Da sind ja mehrere zur Auswahl.

    Ich meine das in der Auswahl nur das Wort Switch stand. Kein Zusatz, nur Switch.

  • Ich vergleiche nachher mal Deine Einstellungen mit meinen und poste das Ergebnis.

Jetzt mitmachen!

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