NEWS
Keine Verbindung vom ESP-01S (Tasmota) zum ioBroker [gelöst]
-
Hallo,
ich habe einen ESP-01S mit Tasmota Version 13.2 geflashed.
Für die die das Modul nicht kennen: 1x WLAN, 2x GPIO, 1x RxD/TxD UART.
Das hat auch geklappt, Verbindung über WLAN steht.
GPIOs definiert mit:
GPIO0 = LED 1
GPIO1 = Seriel TxD
GPIO2 = LED 2
GPIO3 = Seriel RxD
Im ioBroker habe ich einen SONOFF Adapter zur Kommunikation genommen.
Bei den Objekten wird mir auch der Name, Tasmota-Version, IP, SSID usw. angezeigt.
Am RxD/TxD Pin habe ich das FTDI-Modul (USB <==> Seriell) angeschlossen, welches ich auch zum Flashen benutzt habe.
Da meine Zielanwendung später mit 19200 Baud 8n1 läuft, habe ich „Rules“ über die Tasmota-Konsole eingegeben:
Rule1 on System#Boot do Backlog Baudrate 19200 endon
Um die Regel zu aktivieren, muss man noch „Rule1 1“ eingeben
Nach einen Power-up Reset habe ich testweise „ABCDEFGH“ im Terminal-Programm eingegeben und mit 19200 8N1 gesendet.
Die LEDs auf dem FTDI-Adapter flackern und der ESP-01S antwortet mit {„Command“:“Unknown“}
Demnach scheint die Baudrate richtig zu sein und die Daten mindestens bis zum ESP-01S zu kommen.
Frage:
Warum interpretiert der ESP-01S die Zeichenkette und schickt sie nicht übers WLAN?
Was muss ich tun, damit die Daten im ioBroker ankommen (und wo)?
Für ein paar Tipps wäre ich dankbar.
VG Martin -
Demnach scheint die Baudrate richtig zu sein und die Daten mindestens bis zum ESP-01S zu kommen
eher eine Vermutung,
19200 ist gut , 8n1 sollte der Esp auch wissen.
Lesestoff Serial Commands -
@ralla66
Danke für den Link, hat mir ein ganzes Stück weitergeholfen.
Wenn ich in der Konsole z.B. eingebe:
Baudrate<Enter> => 19200
SerialBuffer<Enter> => 256
SerialConfig<Enter> => 8N1
SerialDelimiter<Enter> => 255 = Trennzeichen deaktiviert
Wenn man bei den Kommandos Parameter angibt, wird die Einstellung entsprechend geändert.
Bei "SerialSend" habe ich Schwierigkeiten.
Wenn ich eingebe: SerialSend<Enter> wird {"Command":"Error"} angezeigt.
Der "SerialSend<x> <string>" hat 2 Parameter. Aber so richtig verstanden habe ich die noch nicht.
Für <x> käme bei mir 4 oder 5 in frage, binär oder hexstring.
Aber <string>, soll das der SendeString sein?
Mein externes Gerät sendet alle paar Sekunden 12 binäre Bytes, die ich übertragen möchte (Auf das Format habe ich keinen Einfluß). Sagen wir als Beispiel für die 12 Bytes: "ABCDEFGHIJKL"
Müßte ich dann "SerialSend4 ABCDEFGHIJKL" in die Konsole eingeben?
Wenn ich das eingebe, sagt die Konsole: {"SerialSend":"Done"}
Wenn ich über die UART des ESP-01 "abcxyz<CR><LF>" sende, kommt in der Konsole {"SerialReceived":"61626378797A0D0A"} (61h=a 62h=b ...)
Soweit OK, aber irgendwie scheint es über WLAN nicht weiter zu gehen.
Im ioBroker kommt auch nichts an.
Irgendwie stecke ich hier fest, wie kommen die Daten zum ioBroker rüber? -
das sieht doch gut aus, dann geht schon mal Uart.
Eingebunden habe ich meine ESP im Mqtt Adapter.
Dann erscheint als Datenpunkt SerialReceive.
Ich suche mal ein Bild dazu. -
Bezüglich String, du kannst einen string senden nach ASCII Zeichen Satz.
Die Bedeutung der Zeichen wird per SerialDelimiter festgelegt.
SerialDelimiter 127 bedeutet es wird der ASCII Zeichensatz von 0 Dec bis 127 Dec beachtet.
Der ESP kann per Hardwareserial an Gpio 1 und 3 betrieben werden , dann wird SerialSend verwandt
und die Einstellungen sind dann unter Generic Ser TX und Ser RX.
Die Softwareserial bietet dann noch andere GPIO an mit den Einstellungen Ser BR TX und Rx.
Dann wird gesendet SSerialsend.
Hoffe mal ein wenig Licht in die Sache gebracht zu haben. -
@ralla66
Ich habe gesehen, dass Du den MQTT Adapter im ioBroker benutzt (ich hatte sonoff benutzt, hatte ich irgendwo mal gelesen)
Ich habe den "MQTT Broker/Client" benutzt und als Master koniguriert. (dann sieht es auch so aus wie bei sonoff)
Zuerst habe ich mir natürlich selber ein Bein gestellt und mich gewundert,
dass bei mqtt/0/stat/myESP/Result kein Ergebnis kommt.
Naja, man sollte auch an der richtigen Stelle lesen, bei mqtt/0/tele/myESP/Result
Wenn man weiss wie das alles funktioniert, ist es eigentlich ganz einfach.
Vielen Dank ralla66!
VG Martin