Forum: Mikrocontroller und Digitale Elektronik Messwerte mit 8266 an InfluxDB übertragen


von Andy K. (marc86)


Lesenswert?

Ich habe vor Messwerte die über eine TTL Schnittstelle reinkommen alle 
paar Sekunden über einen 8266 an InfluxDB(2) zu übertragen.
Mir ist nur nicht ganz klar wie ich das mit dem Timestamp handeln soll. 
Ich will zB dass das ganze auch ohne Internet funktioniert, daher ist 
die Frage muss der 8266 überhaupt die Zeit wissen?  Wenn man beim 
schreiben in InfluxDB keinen Zeitstempel mitgibt wird einfach die Zeit 
benutzt die der Server grad hat wenn die Daten reinkommen.

Beim 8266 hätte ich sonst ein weiteres Gerät was irgendwie die Zeit 
bekommen muss. Oder kann man das besser lösen?

: Verschoben durch Moderator
von Helmut -. (dc3yc)


Lesenswert?

Auch mit dem ESP8266 kannst du einen NTP-Server nach der Zeit fragen! 
Sollte eine Fritzbox im System sein, kann die auch als Zeitserver 
dienen.

von Christian H. (ch-hunn)


Lesenswert?

Wenn du die keine Messwerte verlieren darfst, musst du diese im ESP 
zwischenspeichern. Dann ist es aber auch erforderlich, dass du die 
Timestamp ebenfalls speicherst.
Wenn es jedoch "Verluste" geben darf, würde ich den einfachsten Weg 
gehen und mich auf die Serverzeit verlassen. So musst du nicht 
sicherstellen, dass alle Messstellen eine korrekte Zeit haben.

Ich betreibe in meinem Smarthome auch etliche Sensoren. Ich sende die 
Daten jedoch zuerst an einen MQTT-Server. Ein NodeRED abonniert die 
Messwerte und schiebt diese dann in die InfluxDB. Der Vorteil hier ist, 
dass ich auch von anderen Systemen die aktuellen Messwerte abgreifen 
kann.

von Roland P. (pram)


Lesenswert?

Christian H. schrieb:
> Ich sende die Daten jedoch zuerst an einen MQTT-Server. Ein NodeRED
> abonniert die Messwerte und schiebt diese dann in die InfluxDB

Ich mache das ähnlich, verwende aber Telegraf:

Tasmota - MQTT - Telegraf - InfluxDb.

Und dahinter hängt dann Grafana.

NodeRED zwackt zwar auch noch ein paar Daten ab. z. B. Stromverbrauch 
der Waschmaschine und schickt mir eine Meldung wenn diese fertig ist.

Falls du auch Tasmota verwenden willst, musst du ggf das 
Telemetrie-Intervall erhöhen, da die Sensorwerte im Standard nur alle 30 
s übertragen werden.

LG Roland

von Andy K. (marc86)


Lesenswert?

Gibt es mit Tasmota einen einfachen weg um von Daten die über die GPIO 
Pins reinkommen auf verschiedene Topics zu schicken?

ALso ich bin aktuell noch unschlüssig welchen Weg ich überhaupt gehen 
soll.

Arduino, Tasmota, ESPHome...

von Roland P. (pram)


Lesenswert?

Ob verschiedene Topics gehen, kann ich dir auf Anhieb nicht sagen.

ich bekomme periodisch über "tele/tasmota_XXXXXX/SENSOR" eine MQTT 
Nachricht mit allen konfigurierten Sensoren (Bei Steckdosen sind das die 
Energiewerte, an einem anderen ESP sind das die SML Werte von 3 
Stromzählern)

Bei Lichtschaltern kommt beim Tastendruck eine entsprechende cmnd/... 
Meldung.

https://tasmota.github.io/docs/MQTT/#fulltopic

Etliche DS1820 sowie Wechselrichter habe ich noch an einem AVR (Pollin 
AVR-NET-IO) in meiner HA. Diese senden ebenfalls über ethersex MQTT 
Nachrichten
(https://github.com/rPraml/ethersex)

Bei Tasmota ist ziemlich viel "on board" bist aber relativ "starr" - 
habe mir da auch selber ein Image für die Stromzähler compiliert.

Arduino ist einfach zum "zusammenstöpseln", sobald man aber mehr als 
einen Service (in deinem Beispiel MQTT + NTP + Wifi-AutoConfig + OTA + 
...) will, wirds vielleicht kompliziert.
EspHome kenne ich nicht, dürfte aber in eine ähnliche Kerbe wie Tasmota 
schlagen...

Welche Sensoren willst du genau anschließen?

Gruß
Roland

von Michael (bastler2)


Lesenswert?

Andy K. schrieb:
> Mir ist nur nicht ganz klar wie ich das mit dem Timestamp handeln soll.
> Ich will zB dass das ganze auch ohne Internet funktioniert, daher ist
> die Frage muss der 8266 überhaupt die Zeit wissen?

Für InfluxDB -- Nein.

Siehe: 
https://docs.influxdata.com/influxdb/v2/reference/syntax/line-protocol/

Das Line-Protocol ist trivial, Timestamp ist optional. Es wird die 
Server-Zeit statt dessen verwendet.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.