Auf einem nodeMCU frage ich in einer Schleife alle 50ms einen anlogen Eingang ab um Impulse zu erkennen. Welche Möglichkeiten bieten sich an, die gezählten Impulse periodisch an FHEM zu übertragen.
Testweise habe ich auf dem ESP einen Webserver installiert und frage den Wert aus FHEM per HTTPMOD ab - das funktioniert zwar, die Dauer der Abfrage liegt zwischen 20ms und 300ms. Und ie 300ms sind eindeutig zu lang, da ich in der Zeit ja nicht meine Abfrageschleife weiterführen kann.
Ungern wollte ich jetzt so große "Gerüste" wie mySensors, Firmata, oder EsayESP installieren nur um diesen einen Wert aller paar Minuten zu übertragen.
Welchen besten Weg könnte man gehen um die Werte mit möglichst wenig Unterbrechung der Abfrageschleife zu übertragen?
Mein Grillthermometer habe ich per arduino an fhem angebunden (https://forum.fhem.de/index.php/topic,77756.msg696765.html#msg696765 (https://forum.fhem.de/index.php/topic,77756.msg696765.html#msg696765)).
Da rufe ich vom arduino aus die Http—cmd Schnittstelle von fhem auf. Das csrf—Token hat es etwas komplizierter gemacht. Läuft aber einwandfrei.
In der angehängten Datei im verlinkten Thread gibt es die Funktion send2fhem(). Vielleicht hilft es. Einen Webserver brauchte ich dazu nicht auf dem arduino.
Viel Erfolg
Espeasy? IMHO gibt es da direkt einen eingangs modus für Zähler
Gesendet von meinem S3_32 mit Tapatalk
In espeasy gibt es den impulse Zähler. Den benutze ich für ne s0 Schnittstelle von einem Stromzähler die Impulse zu zählen.
Klappt ganz gut
Gruß Sascha
Gesendet von meinem E6653 mit Tapatalk
Der PulseCounter nützt mir nix. Ich bekomme ja keine sauberen Impulse sondern eine analoge Kurve vom Fototransistor aus der ich mir nach eigenen Vorgaben selbst erst die Impulse erkennen muss. Die "Logik" dafür läuft ja auf dem ESP schon...
Anstatt Web könntest Du auch per Telnet-Schnittstelle die Daten übertragen ... hat sogar weniger Overhead als Web ...
mit UDP-Multicast kommst du in den Bereich von 0.6 ms (s. hier (https://forum.fhem.de/index.php/topic,45545.0.html))
Danke, schau ich mir mal in Ruhe an ... aber soooo eilig habe ich es gar nicht ;)
Alles was bis 30...40ms geht wäre ok, aber die 300ms die eine Abfrage auf den Webserver braucht, sind mir doch eben zu lange.
Du kannst doch über ESPEasy auch den analog-Pin auslesen und den Wert dann an ein FHEM-Device übertragen lassen oder ?
Zitat von: cs-online am 29 Oktober 2017, 17:38:31
Du kannst doch über ESPEasy auch den analog-Pin auslesen und den Wert dann an ein FHEM-Device übertragen lassen oder ?
Der Analog-Pin wird in einer Schleife alle 50 ms (also 20mal/sec) ausgelesen und dann daraus ein Impuls erkannt und gezählt. Diese "Erkennungs-Logik" sollte schon schon lokal auf dem ESP bleiben, 20 Werte Analog-Werte/sec zu FHEM zu übertragen und dort auswerten wäre Unsinn und zeitlich wahrscheinlich auch gar nicht machbar.
.man kann doch ein delay einstellen......
Gesendet von meinem E6653 mit Tapatalk