ConfigurableFirmataWifi und ESP8266 klappt prima

Begonnen von rob, 24 April 2018, 14:11:37

Vorheriges Thema - Nächstes Thema

rob

Hallo.

In diesem Thread wurde das Thema schon besprochen: https://forum.fhem.de/index.php/topic,43572.15.html. Ich wollte es aber nicht unsanft wecken  ;)

Ich habe den ConfigurableFirmataWifi.ino Sketch auf einem Wemos D1 mini Klon geflasht und zuvor die Anpassungen vorgenommen, wie von Familienpapi ganz am Ende in obigem Thread beschrieben.
Verwendet habe ich die Version 2.10, welche ich direkt via Bibliotheksverwaltung in der ArduinoIDE runterladen konnte.

Funktioniert hervorragend. Reagiert flink und sogar OneWire ist kein Problem. Vielleicht sagt mir bald mein Briefkasten via Telegram "Sie haben Post!"  8)

Zwei Anpassungen habe ich zuvor im Sketch für mich vorgenommen:
1) Zeile 231: Passwort Sonderzeichen escapen, weil sich der Wemos nicht ins Wifi einloggen konnte
  Mein WiFi-Passwort hat 63 Zeichen mit vielen Sonderzeichen (u.a. ' " ? \ ).
  Ich musste recht suchen, um herauszufinden, wie ich was escapen muss. Hier wurde ich fündig:http://en.cppreference.com/w/cpp/language/escape.
  Danach habe ich mit jeweils einem \ escaped. -> aus ' " ? \ wurde \' \" \? \\
  Die vielen anderen Sonderzeichen im PW konnte ich belassen.

2) neue Zeile nach #530: weil der ESP8266 bei mir einen AP á la AI-THINKER-xyz erstellt hatte
WiFi.mode(WIFI_STA);
  Dadurch wird auf StationMode gestellt - nur für den esp8266. Ggf. passt es aber woanders besser rein.

Vielleicht helfen diese Infos jmd. etwas Sucherei zu vermeiden.

Viele Grüße
rob

jensb

Hallo rob,

danke für deine Firmata-Erfolgsstory. Bitte schreib noch in deinen Post, welche ConfigurableFirmata Version du verwendet hast, das könnte dem einen oder anderen helfen.

Probier mal das FRM-Attribut "resetDeviceOnConnect=0" aus. Da du WiFi statt Kupfer verwendest, kann die Verbindung ja mal kurzzeitig unterbrochen werden. Im Normalfall resettet FRM das Firmata-Device, sobald die Verbindung wieder aufgebaut ist - und über dieses Attribut kann man das verhindern. Was die bessere Lösung für deinen Aufbau ist, müsstest du selbst austesten. Ich verwende eine aufgebohrte Version von StandardFirmataWiFi 2.5.7 (mit von FHEM unabhäniger IO-Logik auf dem ESP, Watchdog, Firmata-Ping-Verbindungsüberwachung und OTA-Update) und vor allem damit die autonome IO-Logik nicht unterbrochen wird, war das Deaktivieren des Resets wichtig.

Ansonsten könntest du "WiFi.mode(WIFI_STA)" noch mal auskommentieren. Der ESP sollte sich die letzte Einstellung merken. Allerdings weiß ich nicht mehr, ob permanent oder nur so lange bis der Strom abgeklemmt wird.

Grüße,
Jens
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb

rob

Hallo Jens.

Danke für Deine Rückmeldung + Infos. Version habe ich natürlich in obigem Post reingepackt.

Das vorgeschlagene Attribut habe ich gesetzt. Wahrscheinlich hätte ich irgendwann nach längerem Einsatz das kalte Wundern bekommen, warum ein Reset erfolgt - gut zu wissen und ich lerne gern dazu :)

Auskommentieren hab ich ebenfalls getestet: funktionert 1A. Der AP bleibt weg. Sowohl nach Strom trennen als auch nach absichtlichem Reset.

Für den geneigten Leser:
Folgendermaßen bin ich vorgegangen:
- Wemos vom Strom genommen und an meinem Laptop angeschlossen
- Sketch geladen, "WiFi.mode(WIFI_STA)" auskommentiert, kompiliert und neu geflasht -> kein AP erscheint
- Wemos vom Laptop getrennt und mit eigener Stromversorgung verbunden -> kein AP erscheint
- aus Fhem heraus resettet -> AP bleibt weg
Fazit: Der ESP merkt sich permanent, dass ich keinen AP wolte. Exzellent! 8)

Die ConfigurableFirmata auf dem Arduino und auf dem ESP machen richtig Spaß. Meinen Respekt + Dank an dieser Stelle für diese geniale Technik.

Viele Grüße
rob