URL auf lokale IP umleiten / CaptivePortal

Begonnen von dadoc, 06 Mai 2019, 16:12:30

Vorheriges Thema - Nächstes Thema

dadoc

Hallo zusammen,
ich bin Besitzer einer Wetterstation (Ventus W830), die keine Möglichkeit bietet, die Daten lokal abzugreifen und an fhem zu übergeben. Die Daten gehen ausschließlich an Wetterportale wie Wunderground.
Ich möchte sie aber lokal haben. Das lässt sich erreichen, indem man den Call an das Wetterportal (rtupdate.wunderground.com) über den DNS abgreift und an fhem über die lokale IP übermittelt. Das ist hier im Forum auch schon verschiedentlich diskutiert wurden (z.B.
https://forum.fhem.de/index.php/topic,44022.195.html).
Die Fritzbox hat ja keine Möglichkeit, das einzustellen, und nur dafür einen DNS auf einem Raspi laufen zu lassen finde ich überdimensioniert.
Daher die Frage an die Experten, ob sich das nicht auch mit einem ESP8266 (Wemos 1D mini) erreichen lässt.
Ich habe es mit dem CaptivePortalAdvanced-Beispiel aus den Platformio-Beispielen versucht, aber nachdem ich es mit Hängen und Würgen auf die Platine gebracht habe, funktioniert es nicht wie erhofft. Auch mit der einfacheren Version https://platformio.org/lib/show/2952/DNSServer/examples (sie sich aber zumindest auf Anhieb ohne Fehler flashen lässt) habe ich es nicht hinbekommen - die scheinen ja alle nur dafür ausgelegt zu sein, URLs auf den Webserver auf dem Wemos umzuleiten.
Ich bin bei solchen Themen leider (noch) kein Experte. Vielleicht denke da auch zu kompliziert? Ginge es evtl mit dem ESPAsyncWebServer einfacher?

Redirect to another URL

//to local url
request->redirect("/login");

//to external url
request->redirect("http://esp8266.com");


Ich wäre sehr dankbar, wenn Ihr mich da auf die richtige Spur setzen könnten.
Grüße
Martin
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

Christoph Morrison

Bist du dir sicher, dass dnsmasq auf einem PI nicht weniger Arbeit (und stabiler) ist, als das über ein eigenes Gerät zu lösen? Im Prinzip muss ja nur die Wetterstation dnsmasq nutzen, nicht das ganze Netz ... in Pihole ist dnsmasq auch schon eingebaut, falls du einen betreibst.

dadoc

Da bin ich mir keineswegs sicher ;) Ich wollte es nur vermeiden, auf dem fhem-Produktiv-Raspi Experimente zu machen, und einen zweiten Raspi nur für DNS laufen zu lassen erschien mir übertrieben. Und da ich weder mit dnmasq noch mit Pinhole Erfahrung habe, dachte ich, dass so ein 2-Euro-Teil (zumal ich es eh hier herumliegen habe) vielleicht eine elegante Lösung wäre.
Prinzipiell müsste es damit ja gehen, soweit ich das verstehe. Nur wie?
Grüße
Martin
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

Tedious

Nimm wie vorgeschlagen einfach PiHole. Das lohnt sich denn doppelt und dreifach...
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

dadoc

Danke, ist mir schon klar, dass das mit pi-hole bzw. dnsmasq geht, das haben wir ja im anderen Thread diskutiert. Aber mal abgesehen davon, dass ich beruflich bedingt eine klare Meinung zu Adblockern habe, habe ich auch keine Lust, nur wegen einer lumpigen Wetterstation meine Fritzbox in Sachen DNS auszubooten und den ganzen Verkehr über einen Raspi laufen zu lassen.
Daher habe ich meine Frage ja hier im ESP-Forum gestellt. Mich würde ja zuerst nur mal interessieren, ob es damit möglich ist:

-> Wetterstation mit softAP des Wemos verbinden -> rtupdate.wunderground.com auf dem Wemos auf die fhem-IP des lokalen Fritzbox-Netzes umbiegen.

Grüße
Martin
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

sbiermann

Nimm doch einfach nur den DNS des Pi für die Wetterstation. Setzt aber voraus du kannst dir das WLAN ohne DHCP in der Wetterstation konfigurieren. Dann läuft alles über die Fritzbox und die Wetterstation über den Pi.

dadoc

Die Konfiguration geschieht über eine App (WS Tool). Soweit ich mich erinnere bzw. das von hier aus ausprobieren kann (Station steht in Spanien), gibt es dafür keine Möglichkeit. Man kann nur die Wlan Credentials eintragen und sonst nichts.
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

RappaSan

Schon mal über /etc/hosts probiert, die Adresse umzubiegen?
Z.B so:
192.168.100.33   rtupdate.wunderground.com

dadoc

Wo sollte ich die denn editieren? Dazu müsste ich ja eine /etc/hosts auf dem Router (FB 7490) haben bzw. Freetz installieren?
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

yersinia

Dies ginge wohl mal: https://adrian-jagusch.de/2015/03/domains-abfangen-mit-der-fritzbox-als-dns-server/

Allerdings scheint die fritzbox hier stark begrenzt zu sein:
https://forum.ubuntuusers.de/topic/subdomain-im-heimnetz-funktioniert-nur-auf-hos/
https://avm.de/service/fritzbox/fritzbox-7490/wissensdatenbank/publication/show/663_DNS-Auflosung-privater-IP-Adressen-nicht-moglich/

Die bessere Lösung wäre wirklich einen anderen DNS Server im lokalen Netzwerk zu nutzen. Man müsste wahrscheinlich gar nicht soviel einrichten, ein einfacher DNS Service der alle Anfragen ungefiltert an den Provider-DNS (analog FB) weiterleitet und nur die eine URL 'verbiegt'.

Wie ich sehe hast du schon vier RasPi laufen - auf einem kann man sicher so einen Service einrichten. Möglicherweise sogar pi-hole (idealerweise mit DNScrypt) um dessen Vorzüge zu genießen.
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

dadoc

"mal" ist das richtige Wort. Das geht nicht mehr mit den neueren FritzOS.
An "Standort 2" habe ich nur einen Raspi laufen, und wie oben geschrieben will ich nicht nur wegen einer lausigen Wetterstation den gesamten DNS-Traffic weg von der FB auf den Raspi schaufeln. Das wird mir - auch wg. diverser VPN-Tunnel - zu kompliziert und wackelig.
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

Tedious

Was ich nicht verstehe - ich hab mir jetzt den Thread mal angeschaut, da steht vom Entwickler explizit

ZitatDu brauchst in deinem Netzwerk einen lokalen DNS, der einen Namen zu der IP 192.168.2.2 auflöst. Diesen Namen trägst du unter Server in der WH2600 Oberfläche ein. Eine direkte IP funktioniert dort nicht. Bei einer Fritzbox reicht der dortige DNS aus, du musst nur den Namen nehmen, den die Fritzbox sich da merkt (oder ihn dort entsprechend ändern). Testen kannst du die Namensauflösung mit einem einfachen Ping (zB "ping meinfhemserver.fritz.box").

Was spricht gegen die Vorgehensweise?
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

dadoc

Das bezieht sich auf eine andere Wetterstation (WH2600). Bei der W830 kannst Du keinen DNS eintragen. Das Vorgehen mit einem "normalen" DNS ist wie gesagt hier skizziert: https://forum.fhem.de/index.php/topic,44022.msg932129.html#msg932129
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

RappaSan

#13
Zitat von: dadoc am 08 Mai 2019, 11:53:48
Wo sollte ich die denn editieren? Dazu müsste ich ja eine /etc/hosts auf dem Router (FB 7490) haben bzw. Freetz installieren?
Haste natürlich recht. Wenn sonst kein Gerät wie z.B. ein RPi die Namensauflösung in Deinem Netzwerk bewerkstelligen kann, wird es mit der Fritzbox problematisch.

Kannst auch noch versuchen, ob dieser Artikel
https://adrian-jagusch.de/2015/03/domains-abfangen-mit-der-fritzbox-als-dns-server/
weiterhilft.

dadoc

Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

RappaSan


yersinia

Nur mal so zurück zu den Basics (vlt findet man noch eine andere Lösungsoption):
- die Wetterstation ruft eine URL auf; wahrscheinlich kann man diese nicht editieren (sonst könnte man einen fritzbox host (zB fhempi.fritz.box) nutzen, bei dem die FB die URL auflöst)
- wahrscheinlich kann man keine IP in der Wetterstation hinterlegen (anstelle einer URL)
- in der FB ist es schwierig bis unmöglich den DNS Dienst zu manipulieren (siehe Vorposts)
- ein weiterer/separater DNS-Server im Netzwerk ist nicht gewünscht bzw. nicht möglich

Was bleibt denn noch übrig an Optionen?
- Profil bei WU anlegen und die Daten dort abgreifen? (via HTTPMOD zB; wiki oder auch Forum)
- Hat die Wetterstation ein UI an der man aktuelle Daten ablesen kann? Wenn ja, kann man dies via HTTPMOD auslesen und einfach in der FB versuchen die ZielURL zu weatherunderground sperren?
- Den besagten Wemos D1 mini Ansatz nochmals zu verfolgen und diesen als WIFI-AP mit eigenem DNS nutzen (Beispiel)
- ?
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

dadoc

Zitat von: yersinia am 08 Mai 2019, 14:46:41
- die Wetterstation ruft eine URL auf; wahrscheinlich kann man diese nicht editieren (sonst könnte man einen fritzbox host (zB fhempi.fritz.box) nutzen, bei dem die FB die URL auflöst)
korrekt.
Zitat- wahrscheinlich kann man keine IP in der Wetterstation hinterlegen (anstelle einer URL)
korrekt
Zitat- in der FB ist es schwierig bis unmöglich den DNS Dienst zu manipulieren (siehe Vorposts)
Korrekt - es ginge wohl mit Freetze, aber man muss ja auch die Verhältnismäßigkeit im Auge haben.
Zitat- ein weiterer/separater DNS-Server im Netzwerk ist nicht gewünscht bzw. nicht möglich
Bedingt. Ein geeigneter DNS auf einem Wemos ist ja eigentlich das, was ich im ersten Post angefragt hatte.


ZitatWas bleibt denn noch übrig an Optionen?
- Profil bei WU anlegen und die Daten dort abgreifen? (via HTTPMOD zB; wiki oder auch Forum)
Das habe ich. Aber einerseits macht WU sein API dicht, andererseits war der WU Datenverkehr nie wirklich zuverlässig. Z.B. heute regnet es 4 mm, morgen wird als Niederschlagsmenge für die letzten beiden Tage 0 mm angezeigt usw.
Zitat- Hat die Wetterstation ein UI an der man aktuelle Daten ablesen kann? Wenn ja, kann man dies via HTTPMOD auslesen und einfach in der FB versuchen die ZielURL zu weatherunderground sperren?
Nein, die hat nur eine Inneneinheit
Zitat- Den besagten Wemos D1 mini Ansatz nochmals zu verfolgen und diesen als WIFI-AP mit eigenem DNS nutzen (Beispiel)
JAAAAA ;) Aber Dein Beispiel ist das Captive Portal, das ich in fast identischer Form ausprobiert hatte. Es lenkt URLs aber immer nur auf den eigenen Webserver (den auf dem Wemos). Genau dafür suche ich eine Lösung.
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

yersinia

Zum Thema WU und API: Ich lade Daten eines Temperatursensors nach WU hoch (Modul WUup.pm). Dafür benötige ich ein Profil und bekomme für meine "Wetterstation" eine PWS-ID.
Mit dieser PWS-ID kann ich zumindest die ist-Daten auslesen (wie im wiki beschrieben mit HTTPMOD). Genauso lese ich bisher erfolgreich eine andere Wetterstation aus. Ohne API Key.
Mal schauen, ob und wann WU diesen Weg abschaltet.

[OT]Vorhersagen bekomme ich via Proplanta was auch medium gut ist (dies liegt aber an der Datenlage bei Proplanta).[/OT]

Das CaptivePortal ist wahrscheinlich der richtige Weg. Weil hier immerhin ein DNS-Service genutzt wird. Vielleicht muss man da noch weiter suchen und rumexperimentieren.
Ich hatte noch sowas gefunden: https://www.hackster.io/rayburne/esp8266-captive-portal-5798ff
ZitatShow me the magic
// if DNSServer is started with "*" for domain name,
// it will reply with the provided IP to all DNS requests
   dnsServer.start(DNS_PORT, "*", apIP);
Wenn ich das richtig verstehe, könnte man anstelle der apIP auch die fhemIP setzen; ich könnte mir da sowas wie dnsServer.start(DNS_PORT, "rtupdate.wunderground.com", fhemIP); vorstellen.
Allerdings weiss ich noch nicht, wie man verhindert, dass die Wetterstation sich einen anderen DNS sucht (zB die FB). Kann man das in der Wetterstation manipulieren? Sprich: IP Adressdaten manuell setzen? Weil für den "Rest" muss FHEM in einem für die Wetterstation empfangbaren Netz sein.

Vielleicht hilft auch noch diese Version: https://github.com/reischle/CaptiveIntraweb
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

dadoc

Zitat von: yersinia am 08 Mai 2019, 15:57:12
Das CaptivePortal ist wahrscheinlich der richtige Weg. Weil hier immerhin ein DNS-Service genutzt wird. Vielleicht muss man da noch weiter suchen und rumexperimentieren.
Ich hatte noch sowas gefunden: https://www.hackster.io/rayburne/esp8266-captive-portal-5798ffWenn ich das richtig verstehe, könnte man anstelle der apIP auch die fhemIP setzen; ich könnte mir da sowas wie dnsServer.start(DNS_PORT, "rtupdate.wunderground.com", fhemIP); vorstellen.
Das war auch meine Hoffnung, geht aber nicht.
Zitat
Allerdings weiss ich noch nicht, wie man verhindert, dass die Wetterstation sich einen anderen DNS sucht (zB die FB). Kann man das in der Wetterstation manipulieren? Sprich: IP Adressdaten manuell setzen? Weil für den "Rest" muss FHEM in einem für die Wetterstation empfangbaren Netz sein.
Die Wetterstation wäre ja direkt mit dem softAP des Wemos verbunden, der für sie dann (in meinem Verständnis) den DNS macht.
ZitatVielleicht hilft auch noch diese Version: https://github.com/reischle/CaptiveIntraweb
Dasselbe in grüne ;)
Am Ehesten geht wohl https://github.com/esp8266/Arduino/blob/master/libraries/DNSServer/examples/CaptivePortalAdvanced/CaptivePortalAdvanced.ino in diese Richtung, aber damit hat es bei mir auch nicht geklappt.
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

Tedious

Zitat von: dadoc am 08 Mai 2019, 15:00:45
Nein, die hat nur eine Inneneinheit

Wie bekommt die denn ihre Daten?
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

dadoc

Per Funk von der Außenstation. Habe aber bislang nichts gefunden, wie man da reingrätschen könnte.
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

dadoc

In https://github.com/esp8266/Arduino/issues/731 geht es wohl um dasselbe Thema. Allerdings ist unklar, ob es so gelöst wurde, und ich selbst wüsste nicht, wo ich das einfügen sollte:
IPAddress ip(192, 168, 4, 1);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress dns(192, 168, 1, 1);

After this in setup void:

WiFi.config(ip, gateway, subnet, dns);

Jemand von Euch?
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

yersinia

#23
Zitat von: dadoc am 08 Mai 2019, 16:30:44
Das war auch meine Hoffnung, geht aber nicht.Die Wetterstation wäre ja direkt mit dem softAP des Wemos verbunden, der für sie dann (in meinem Verständnis) den DNS macht. Dasselbe in grüne ;)
Am Ehesten geht wohl https://github.com/esp8266/Arduino/blob/master/libraries/DNSServer/examples/CaptivePortalAdvanced/CaptivePortalAdvanced.ino in diese Richtung, aber damit hat es bei mir auch nicht geklappt.
Warum funktioniert das mit dem SoftAP nicht? Ich meine, es wäre doch der erste Schritt, dass CaptivePortal überhaupt erstmal zum laufen zu bekommen. Woran scheitert es denn hier?
("funktioniert nicht" oder "geht nicht" ist mir etwas zu unkonkret)

Wenn das CaptivePortal erstmal grundsätzlich funktioniert, kann man immernoch anfangen den DNS Service zu adaptieren.

EDIT:
g00gle führte mich noch hierzu: https://github.com/ojack/ESP8266-captive-portal-webserver
Wie gesagt, erstmal es überhaupt zum laufen bekommen....

Sogar YT hat da was: https://www.youtube.com/watch?v=AHO1zN8c_zU
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

dadoc

Zitat von: yersinia am 09 Mai 2019, 10:19:07
Warum funktioniert das mit dem SoftAP nicht? Ich meine, es wäre doch der erste Schritt, dass CaptivePortal überhaupt erstmal zum laufen zu bekommen. Woran scheitert es denn hier?
("funktioniert nicht" oder "geht nicht" ist mir etwas zu unkonkret)
Du hast recht, das war zu ungenau. Das CaptivePortal läuft schon, aber wenn man sich mit seinem softAP verbindet, leitet es alle Anfragen auf die *eigene* IP bzw. den eigenen Webserver um. Wenn ich hier die eigentlich gewollte Ziel-IP (=fhem) eingäbe, hätte ich zwei Geräte mit derselben IP im Netz.

ZitatEDIT:
g00gle führte mich noch hierzu: https://github.com/ojack/ESP8266-captive-portal-webserver
Wie gesagt, erstmal es überhaupt zum laufen bekommen....
Da war ich mit Google auch schon mehrfach ;) Das ist genau das, was ich (in der w.o. verlinkten, neueren, advanced-Version https://github.com/esp8266/Arduino/tree/master/libraries/DNSServer/examples) ausprobiert hatte. Ergebnis s.o.
Im Arduino-Forum hat mich jemand auf https://arduino.stackexchange.com/questions/57178/bridging-the-wifi-networks-on-nodemcu-how-to-set-the-esp8266-as-wifi-extender/57199#57199 verwiesen. Damit würde nicht die eigentliche Anfrage umgeleitet, sondern die vom ESP empfangenen Daten 1:1 an den externen Rechner weitergereicht. Man weiß allerdings nicht, wie das ausgegangen ist, und ich wüsste (noch) nicht, wie hgenau ich das ausprobieren sollte.
Grüße
Martin
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

yersinia

Danke dadoc für die Details. :)

Ich habe langsam Zweifel ob das überhaupt sinnvoll und out-of-the-box funktioniert, da man im Netz kaum wirklich Infos dazu findet. :(
Sorgen macht mir auch die Doku hier:
ZitatThe DNS server currently supports only one domain (for all other domains it will reply with NXDOMAIN or custom status code).

Es ist aber gut, dass das Captive Portal immerhin läuft.

Wir haben ja mehrere Netzwerkgeräte. Und der FHEM-Pi muss sich in einem für die Wetterstation erreichbaren Netzwerk befinden; zuzüglich Router mit DHCP und DNS (Beispielhaft):
Router 192.168.1.1
FHEM 192.168.1.2 (via DHCP fest; DNS ist 192.168.1.1)
ESP 192.168.1.3 (via DHCP fest; DNS ist 192.168.1.1)
Wetterstation 192.168.1.4  (via DHCP reserviert, aber manuell eingetragen; DNS ist 192.168.1.3)

Ich frage mich, ob sich das überhaupt so einstellen lässt, wahrscheinlich musst du die IP Konfig manuell in der Wetterstation einklimpern.

Allerdings würde ich die ino versuchen zu adaptieren (ie um die FHEM IP erweitern):
/* Soft AP network parameters */
IPAddress apIP(192, 168, 1, 3); // ESP IP
IPAddress fhemIP(192, 168, 1, 2); // FHEM IP
IPAddress netMsk(255, 255, 255, 0);

Und beim DNS Aufruf ggf von diesem Google-Fund abschreiben:
// modify TTL associated with the domain name (in seconds)
// default is 60 seconds
dnsServer.setTTL(300);
// set which return code will be used for all other domains (e.g. sending
// ServerFailure instead of NonExistentDomain will reduce number of queries
// sent by clients)
// default is DNSReplyCode::NonExistentDomain
dnsServer.setErrorReplyCode(DNSReplyCode::ServerFailure);

// start DNS server for a specific domain name
dnsServer.start(DNS_PORT, "rtupdate.wunderground.com", fhemIP); //hier die fhem IP und nicht die des ESPs <-------------------------------------

// simple HTTP server to see that DNS server is working
webServer.onNotFound([]() {
[...]

Wenn ich den Rest richtig verstehe, dann wird bei nichtfinden auf den ESP Webserver umgeleitet....

Keine Ahnung ob das praktisch läuft, in der Theorie klingt es jdfs schlüssig...-.-
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

dadoc

Vielen Dank für Deine Unterstützung. Ja, das ist echt merkwürdig, dass man dazu so wenig findet. Hättest Du mich vor einer Woche gefragt, hätte ich Stein und Bein geschworen, dass das Internet voll sein müsste mit Lösungen dafür...
Ich werde das alles mal ausprobieren.
Gleichzeitig frage ich mich, ob es nicht einfacher ginge, mit einem Redirect in einem Webserver wie https://github.com/me-no-dev/ESPAsyncWebServer
https://github.com/me-no-dev/ESPAsyncWebServer#redirect-to-another-url
Allerdings wüsste ich nicht, wie/wo ich das in einen Sketch packen könnte...

Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

yersinia

#27
Zitat von: dadoc am 10 Mai 2019, 17:01:52Gleichzeitig frage ich mich, ob es nicht einfacher ginge, mit einem Redirect in einem Webserver wie https://github.com/me-no-dev/ESPAsyncWebServer
https://github.com/me-no-dev/ESPAsyncWebServer#redirect-to-another-url
Allerdings wüsste ich nicht, wie/wo ich das in einen Sketch packen könnte...
Vor allem: wie wird die URL rtupdate.wunderground.com auf die WebServer-IP aufgelöst? Ist ja schön und gut, wenn der WebServer läuft - aber wenn es die Wetterstation nicht interessiert.... (gleiches Thema: DNS)

Ansonsten, wenn der WebServer auf dem ESP läuft, könnte man dies noch weiter verfolgen:
https://github.com/me-no-dev/ESPAsyncWebServer#rewrites-and-how-do-they-work
https://github.com/me-no-dev/ESPAsyncWebServer#redirect-to-another-url

EDIT
Vielleicht verabschiedet man sich vom ESP Gedanken hier und nutzt einen anderen Mikrorouter wie zB den MR3020 (gibt es in der v1 gerade für <20€) und flashed den auf OpenWRT um. Aufgrund des geringen Flash-Speichers würde ich allerdings selber bauen, was auch nicht schwierig ist (dann allerdings basierend auf 18.06.2).
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

dadoc

Zitat von: yersinia am 11 Mai 2019, 09:02:25
Vor allem: wie wird die URL rtupdate.wunderground.com auf die WebServer-IP aufgelöst? Ist ja schön und gut, wenn der WebServer läuft - aber wenn es die Wetterstation nicht interessiert.... (gleiches Thema: DNS)
Naja, das ist ja der Zweck des Captive Portals: Was sich da an dessen AP hängt, landet immer beim selben Ziel.

Ansonsten, wenn der WebServer auf dem ESP läuft, könnte man dies noch weiter verfolgen:
[...]
https://github.com/me-no-dev/ESPAsyncWebServer#redirect-to-another-url

Das ist genau mein Link von oben ;)

Ich verfolge mit Unterstützung aus dem Arduino-Forum noch einen zweiten Ansatz: Nicht redirecten, sondern die Datenpakete auf dem ESP empfangen und dann an den fhem Raspi senden. Ist aber bislang auch nicht klar, ob das geht...


ZitatEDIT
Vielleicht verabschiedet man sich vom ESP Gedanken hier und nutzt einen anderen Mikrorouter wie zB den MR3020 (gibt es in der v1 gerade für <20€) und flashed den auf OpenWRT um. Aufgrund des geringen Flash-Speichers würde ich allerdings selber bauen, was auch nicht schwierig ist (dann allerdings basierend auf 18.06.2).
Sicher eine Möglichkeit, aber ich fände es viel eleganter, wenn das mit dem ESP ginge.
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods