wie Daten per WLAN zu FHEM übertragen

Begonnen von roedert, 25 Oktober 2017, 20:57:06

Vorheriges Thema - Nächstes Thema

roedert

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?

Wuehler

Mein Grillthermometer habe ich per arduino an fhem angebunden (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

Frank_Huber

Espeasy? IMHO gibt es da direkt einen  eingangs modus für Zähler

Gesendet von meinem S3_32 mit Tapatalk


sash.sc

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

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

roedert

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...

Wernieman

Anstatt Web könntest Du auch per Telnet-Schnittstelle die Daten übertragen ... hat sogar weniger Overhead als Web ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

habeIchVergessen

mit UDP-Multicast kommst du in den Bereich von 0.6 ms (s. hier)

roedert

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.

cs-online

Du kannst doch über ESPEasy auch den analog-Pin auslesen und den Wert dann an ein FHEM-Device übertragen lassen oder ?
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

roedert

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.   

sash.sc

.man kann doch ein delay einstellen......


Gesendet von meinem E6653 mit Tapatalk

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb