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.
- Form auswählen
- Textfeld Deine Frage / Titel hier eingeben ausfüllen
- 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
- 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
- Benutzername oder Emailadresse des EI-OT Kundenkontos
- Passwort des EI-OT Kundenkontos
eingeben, Recaptcha bestätigen und anmelden klicken.
Grüße
Markus
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.
- Im Eigentlichen gibt es einen Sensor
- wenn der Werte hat
- werden die auf den MQTT Broker durchgereicht
- 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