Webrepl Verbindung klappt nicht? Könnt ihr mir weiterhelfen?

Hallo,
ich verwende einen Wemos D1 Mini, HX711 und DS18B20. Alle 10 Minuten wird der Messwert an Thingspeak und einer InfluxDB gesendet. Soweit funktioniert alles.
Aber ich möchte jetzt per webrepl eine Verbindung herstellen um zu schauen ob alles ok ist. (Es werden laufend Status-Meldungen mit print(‘xyz’) ausgegeben. Diese möchte ich eben über webrepl anschauen.

Der Daemon ist gestartet, aber ich schaffe keine Verbindung.

“WebREPL daemon started on ws://192.168.43.186:8266
Started webrepl in normal mode”

Will ich mich verbinden, kommt immer “Disconnected”.
Warum klappt das nicht? Beide Geräte (Wemos und Laptop) sind mittels Hotspot über ein Handy im Internet. Keine Ahnung warum das nicht klappt.
Hat jemand eine Idee warum? Was könnte ich noch probieren.

Also der Wemos hängt an einem Handy mit Internetverbindung?
Der WebREPL daemon started auf 192.168.x.y. 192.168.x.y wird im Internet nicht gerouted. D.h. Du kannst von außen nicht auf diese Adresse zugreifen.
Zuerst müsstest Du wissen, welche IP Dein Handy hat. Dann musste das Handy eingehende Anfragen auf port 80 (vermute ich) an den Wemos weiter leiten.

Hab ich vermutlich falsch geschrieben, das Internet spielt keine Rolle.

beide Geräte, Wemos und der Laptop, mit dem ich auf den WEmos per Webrepl zugreifen möchte, sind mit dem Hotspot vom Handy verbunden. Also die beiden Geräte sind im selben Netzwerk!

Routet das Handy das nicht durch?

Bei einigen Routen kann man die Kommunikation von Geräten untereinander unterbinden, bei der FritzBox kann das als Option an- und abgeschaltet werden. Vielleicht schaust du in diese Richtung mal.

Hmm, guter Hinweise. Ich wüsste aber nicht wo und wie man da was bei Android einstellen kann.

Wie genau verbindest Du Dich denn mit dem Wemos?

Hiermit GitHub - micropython/webrepl: WebREPL client and related tools for MicroPython

Zwei Geräte innerhalb eines Hotspots zu verbinden scheint eine erstaunlich unübliche Anwendung zu sein. Außer zwei uralt Fragen hab ich dazu nichts gefunden.

Mir fallen jetzt nur noch zwei Dinge ein, die Du probieren könntest:

  • mit nmap (bzw. der zenmap GUI) einen Portscan auf den Wemos zu machen. Wenn da nichts raus kommt, blockiert der Hotspot die Verbindung.
  • den Hotspot durch einen normalen Router ersetzen. Wenn’s dann geht lag es am Hotspot, wenn nicht hast Du irgendwo ein Konfigurationsproblem.

Der Anwendungsfall ist sehr üblich würd ich sagen, zumindest für meine Anwendung.
Waage=Wemos
Handy= Hotspot / Internetverbindung für die Datenübertragung
Zur Zeit noch ein Laptop, später ein Raspi mit VNC-Verbindung zum anschauen der Debugging Infos und zum Updaten des Codes für den Wemos über Webrepl. Webrepl ist nicht immer aktiv, nur dann, wenn ich nachschauen will ob alles passt.

Eine schlaflose Nacht später, hab ich den Fehler gefunden.
Mein Hauptprogramm ist precompiled und wird mit import run.mpy im main.py aufgerufen.
und hier liegt der Hacken, im mpy-Code muss
import webrepl
webrepl.start()
enthalten sein, ohne klappts nicht.

Dokumentation zu webrepl ist da falsch, weil dort steht nichts, dass der Daemon im Code gestartet werden muss. (Starten im boot.py z.B. klappt auch nicht).
Während import webrepl_setup kam doch eindeutig:
Would you like to (E)nable or (D)isable it running on boot?

Komisch, aber jetzt funktionierts so wie ich mir das vorgestellt habe :)

2 Likes

Vielen Dank für die Informationen. Die WebREPL würde ich auch gerne mal testen. Vermutlich ist da aber im Pycom-Universum nichts zu holen.

Nur Interessehalber: Welches MicroPython hast Du denn auf dem Wemos?

Hi,
ich verwende :
Firmware for ESP8266 boards : esp8266-20190529-v1.11

Ich bin mir aber gar nicht mehr so sicher ob es doch nicht reicht den Code-Teil im boot.py zu lassen. Irgendwie ist das nicht sehr stabil, mal klappts, mal nicht.
Ich werde das nächste Woche mit einem “echten” Router versuchen, vielleicht macht das Handy doch Probleme?

sG
Martin

Vielen Dank. Die WebREPL hatte ich in der Tat – bisher nur aus der Ferne, d.h. ohne Gewähr – im Kontext von ESP8266 MCUs beobachtet und noch nicht im Kontext des ESP32.