EI-OT Forum

Unsere EI-OT Module können sehr weitreichend und individuell genutzt werden, oftmals setzt dies aber eine gewisse Kenntnis der Hardware sowie Software / Firmware voraus.

Bei Fragen oder auch Anregungen, einfach das jeweilige Forum auswählen und Stelle eine Frage anklicken.

  1. Form auswählen
  2. Textfeld Deine Frage / Titel hier eingeben ausfüllen
  3. im Haupttextfeld kurz das Thema / Frage / Problem umschreiben
    • Im Bezug von Tasmota können Screenshots der Konsole oft hilfreich sein und können als Datei (klick auf Datei anhängen) der Frage angefügt werden
  4. abschliessend  Stelle eine Frage anklicken.

Keine Sorge, sollte das Forum / Thema unklar sein – einfach posten – wir rücken den Beitrag bei Bedarf in das richtige Forum.

Für unsere Kunden ist keine gesonderte Registrierung erforderlich,
lediglich (falls noch nicht mit dem Kundenkonto angemeldet) unten in der Menüleiste Login aufrufen

  1. Benutzername oder Emailadresse des EI-OT Kundenkontos
  2. Passwort des EI-OT Kundenkontos

eingeben, Recaptcha bestätigen und anmelden klicken.

Grüße
Markus

ThingSpeak (Was ist...
 
Benachrichtigungen
Alles löschen

ThingSpeak (Was ist kein MQTT)

0
Themenstarter

hmm ich will ja nichts Falsches von mir geben aber die "Dinger sprechen" nur schwerlich.

Da ich in letzter Zeit häufig im Bezug ThingSpeak "MQTT" in Kombination mit Tasmota angeschrieben wurde,
habe ich mir das ThingSpeak heute mal vorgenommen.

Vorweg ja da war es wieder, unter Devices auf der ThingSpeak Seite gibt es "MQTT", hier kann man entsprechend
MQTT Parameter

Client ID
Username
Password

generieren und in der MQTT Konfiguration des Tasmota Moduls eintragen.

Als Host Eintrag noch mqtt3.thingspeak.com und Port 1883 setzen speichern,
wechselt man in die Tasmota Konsole wird auch gleich die erfolgreiche Verbindung bestätigt.

Soweit so gut, da die vorgegebenen Tasmota Topics

  • tele
  • cmnd
  • state

nicht für den ThingSpeak Client - also gemeint sind die Channels - und ja das ist ein Client zumindest aus dem MQTT Standard / Verständnis

Da die Daten als Raw Text übertragen werden sollen (Tasmota überträgt standardmässig im JSON Format) funktioniert das Senden der
Daten via MQTT nicht im klassischen Verfahren.

Zum einfachen Verständnis laut ThingSpeak Dokumentation wie folgt

channels/CHANNEL-ID/publish/fields/field1

 oder

channels/CHANNEL-ID/publish/field1

Da das Ganze, wie bereits erwähnt als Raw Text übertragen werden soll,
könnte dies mit einer einfachen Rule funktionieren beispielsweise

Rule1 on AM2301#Temperature do Publish channels/2794191/publish/fields/field1 %value% ENDON

und ja ich habe die jeweilige Channel ID verwendet, die Konsole gibt auch brav

13:30:39.767 MQT: channels/2794191/publish/fields/field1 = 24.30

aus, aber in der Übersicht der Channel Stats von ThingSpeak wird nichts angezeigt.

Nun auf ThinkSpeak gibt es keinerlei Möglichkeit auf MQTT Daten / Logs, ... zuzugreifen,
wenn ich mir aber so manche API Tutorials (leider nur HTTPS GET....) anschaue fällt mir auf,
dass stets keine Leerzeichen zwischen field und topic also field1=24.30 gesetzt werden (kann natürlich auch an der v´Verwendung von Url's also die EInspraung von %20... sein.

Vielleicht hat jemand übersehen das laut MQTT Standard Space unterdrückt wird!

Also zurück zur ThingSpeak Dokumentation aber nun basierend auf dem empfohlenen MQTT Client im Detail MQTTX.

Da ich von Haus aus ein bequemer Mensch bin strikt nach der Vorgabe von ThingSpeak

Die Verbindung war auch gleich hergestellt, allerdings nur für ein paar Augenblicke,
dann zeigt MQTTX abwechselnd Connected Reconnecting, ganz gleich was man auch immer in den Verbindungseinstellungen angibt.
Eine wirkliche Verbindung, dass man beispielsweise eine MQTT Topic anlegen kann war nicht möglich.

Also im Topic Feld ganz unten die Topic

channels/2794191/publish

eingetragen und im Textfeld darunter den Wert

field1=60&status=MQTTPUBLISH

dann mal wieder auf verbinden geklickt und ab und an auf den Senden Button und siehe da von gefühlten 20 mal Senden kamen 2 Nachrichten auch an.

Also mit MQTT hat das nichts zu tun, unterm Strich wird zwar das MQTT Protokoll verwendet aber die Grundlagen Publish / Subscribe / LWT 
existieren nicht.

  1. Im Eigentlichen gibt es einen Sensor
  2. wenn der Werte hat
  3. werden die auf den MQTT Broker durchgereicht
  4. und Clients können die Topic (Sensorwerte) abbonieren

So wie es hier erscheint fragt der ThingSpeak Client (oder was immer das auch ist) in einem vorgegebenen Intervall ab
und der andere Client / Sensor hat dann Daten bereitzustellen.

Selbstredend ist da eine Rule mit dem Trigger MQTTConnected der erste Gedanke wie beispielsweise

Rule1 on Mqtt#Connected do Publish channels/2794191/publish .... 

Selbst wenn man sich strikt an die folgende Dokumentation seitens ThingSpeak hält

Feld „Im Kanal veröffentlichen“.

Alternativ können Sie Folgendes eingeben, um in einem einzelnen Kanalfeld zu veröffentlichen.

" Thema": channels/<channelID>/publish/fields/field1

Datenfeld: 45

Ersetzen Sie <channelID> durch die Kanal-ID. Diese PUBLISH- Nachricht veröffentlicht einen Wert von 45 in Feld 1 des angegebenen Kanals.

 

auf Tasmota übersetzt - sobald eine MQTT Verbindung hergestellt ist, Sende den Wert 45 -

Rule1 on Mqtt#Connected do Publish channels/2794265/publish/fields/field1 45 ENDON

Also wenn eine MQTT Verbindung besteht dann sende, leider stellt sich die Frage wie haben die .... auszusehen,
bzw. wie muss man das im Tasmota Quellcode integrierte MQTT zweckentfremden sodass ThingSpeak etwas versteht.

An dieser Stelle sei erwähnt, ein Großteil der gängigen MQTT Client Apps wird seitens ThingSpeak nicht unterstützt.

Zurück zu Tasmota, nach über 10 Stunden Spielerei komme ich zu dem Schluß

ThingSpeak und Tasmota sind nicht kompatibel,

bzw. zwar unterstützt Tasmota MQTT, "leider" aber basierend auf geltenden Standards.

Mal wieder ein gutes Beispiel für Was ist kein MQTT 

 

Dieses Thema wurde geändert Vor 5 Monaten 2 mal von admin
Teilen: