ESP8266 mit ESPEasy über das Internet anbinden?

Begonnen von Elektrofreak, 16 März 2017, 09:36:59

Vorheriges Thema - Nächstes Thema

Elektrofreak

Hallo zusammen, ich habe eine Frage:

Ich habe überlegt, einen ESPEasy an einem entfernten Ort zu installieren und Messwerte an FHEM zu übertragen. Nun gibt es zwei Möglichkeiten:

  • Ein Raspberry Pi bilded einen Access Point, der via VPN mit dem FHEM-Netzwerk verbunden ist (transparente Bridge)
  • Der ESP8266 stellt eine direkt Verbindung zur ESPEasy Bridge her (feste AllowIP)

Natürlich ist mir klar, dass eine Klartextnachricht ohne VPN manipuliert werden könnte bzw. von Allen mitgelesen werden kann. Es wäre jedoch eine einfache Möglichkeit, ohne extra Hardware-Aufwand eine Verbindung herzustellen. Wenn ich die Internet-IP des Routers, an dem sich der ESP8266 anmeldet, als einzige erlaubte IP-Adresse für die ESPEasy Bridge verwende, könnte zumindest über normale Verbindungen ohne Frame-Hacking keine Daten manipuliert werden.

Die Verwendung eines Raspberry Pi als seperater Access Point hat natürlich auch andere Vorteile. Jedoch ist die Konfiguration relativ Umständlich, da die VPN-Bridge komplett transparent sein muss.

Gibt es da bereits Erfahrungen von eurer Seite?  :)


pink99panther

Hallo Elektrofreak,
hatte bis zum Jahreswechsel eine Verbindung ins Ferienhaus über LAN-LAN-Kopplung VPN.
In Ferienhaus stand eine Fritzbox mit Surfstick.
Nachteil, mit dem man aber leben kann ist, dass die Verbindung vom Handy-Netz her aufgebaut
werden muss ( keine öffentliche IP ).
Seit Januar gibt es dort einen Festnetzanschluss.

LG
p99p

Elektrofreak

D.h. du hast eine 2. Fritzbox dafür verwendet? Ich denke, dass die eingebaute Funktionalität zum Verbinden zweier Fritzboxen ein großer Vorteil sein kann  :). Gibt es günstige Modelle, die man vielleicht bei eBay dafür bekommen könnte? Aktuell habe ich zuhause die FRITZ!Box 7490, welche den VPN-Server spielen würde...

pink99panther

Ich hatte eine 7270 laufen,
aber die hat Probleme dem Surfstick genügend Strom zur Verfügeng
zu stellen. Abhilfe hat ein aktiver USB-Hub gebracht.
Die 7270 hatte ich zufällig noch rumstehen.
Welche "kleineren" Boxen da auch noch gehen kann ich so garnicht sagen.
Zu Hause werkelt wie bei Dir eine 7490.

Elektrofreak

Zitat von: pink99panther am 16 März 2017, 10:27:20
Ich hatte eine 7270 laufen
[...]
Zu Hause werkelt wie bei Dir eine 7490.

Das sind schonmal sehr wertvolle Informationen! Ich habe nämlich gedacht, dass die 7270 aufgrund der etwas älteren Firmware das nicht schafft.

ZitatAuf FRITZ!Box B ist FRITZ!OS 6.20 oder neuer installiert.

Quelle:
https://avm.de/service/fritzbox/fritzbox-7490/wissensdatenbank/publication/show/5_VPN-Verbindung-zwischen-zwei-FRITZ-Box-Netzwerken-einrichten/

Wenn die aber ausreicht, sollte bei eBay sich eine schießen lassen  ;D. Ich muss nur schauen, wie es mit dem Stromverbrauch aussieht. Im Idealfall möchte ich alles gerne per Solar und Akku versorgen. Die Fritzbox könnte da jedoch etwas gefräßig sein...

Zitat von: pink99panther am 16 März 2017, 10:09:08
Seit Januar gibt es dort einen Festnetzanschluss.

Die Fritzbox 7270 verwendest du wahrscheinlich hierfür, richtig? Mich hätte sonst der Stromverbrauch mit eingestecktem und verbundenem Mobilfunk-Stick interessiert.

Wenn ich wirklich erstmal nur Solar-Energie verwenden möchte, probiere ich es mal mit einem Raspberry Pi aus. Der sollte mit unter 2W plus Mobilfunktstick auskommen und somit sparsamer als die Fritzbox sein.

Folgender Punkt könnte einen Einfluss auf die Entscheidung haben:
Wenn ich die Daten live an FHEM schicken möchte, brauche ich eine dauerhafte Verbindung. Wenn ein kurzes Update alle paar Stunden reicht, könnte ich auf dem Raspberry Pi einen kleinen FHEM-Server aufsetzen, der seine log-Dateien periodisch an den "richtigen" FHEM-Server sendet. Allerdings wäre dann nur eine unidirektionale Datenübertragung (und keine Steuerung möglich...)

pink99panther

Es sollte auch mit eine 30XX laufen.
Die sind ohne Telefonfunktion... brauchst ja nicht.
Zum Stromverbrauch kann ich nicht viel sagen,
war bei mir dort nie ein Thema.
Ausserdem hab ich die 7270 durch eine 7362 SL ersetzt
und die 7270 arbeitet jetzt hier als Repeater.

klausw

Auf die Fritzbox kannst du eigentlich verzichten.

Ich nutze Remote ein Pi2 mit UMTS Stick.
Dieser verbindet sich automatisch mit dem Mobilfunknetz.
Wenn das Remote Pi meine Fritzbox Daheim über die DynDNS Adresse anpingen kann dann baut es eine VPN Verbindung auf.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Elektrofreak

Zitat von: klausw am 16 März 2017, 15:32:02
Auf die Fritzbox kannst du eigentlich verzichten.

Ich nutze Remote ein Pi2 mit UMTS Stick.
Dieser verbindet sich automatisch mit dem Mobilfunknetz.
Wenn das Remote Pi meine Fritzbox Daheim über die DynDNS Adresse anpingen kann dann baut es eine VPN Verbindung auf.

Ist das ganze so transparent, dass die ESPs sich von dem DNS der Fritzbox die IP-Adresse holen können bzw. man komplett auf diese aus dem FHEM/Fritzbox-Netz zugreifen kann? (Ich nehme einfach mal an, dass du nicht nur den Raspberry Pi als Stand-Alone-Device nutzt  ::) )

klausw

Zitat von: Elektrofreak am 16 März 2017, 15:35:03
Ist das ganze so transparent, dass die ESPs sich von dem DNS der Fritzbox die IP-Adresse holen können bzw. man komplett auf diese aus dem FHEM/Fritzbox-Netz zugreifen kann? (Ich nehme einfach mal an, dass du nicht nur den Raspberry Pi als Stand-Alone-Device nutzt  ::) )
Ich sollte Urlaub nehmen ...wieder nur die Hälfte gelesen  :o
Die ESPs kommunizieren tatsächlich nur mit dem Pi.
Aber über die Routing Tabelle sollte das hinzubekommen sein.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

pink99panther

Hab auf meinen ESPs ESPeasy Mega drauf.
Die aus dem Ferienhaus liefern ihre Datem damit
nicht nur an den Broker im Ferienhaus, sondern auch
über die VPN-Verbindung an den Broker hier.

Reinhart

#10
Es gibt auch die Möglichkeit über CloudMQTT entfernte 8266 zu empfangen.


Ich habe mich dort angemeldet (kostenlos) und eine Bridge eingerichtet. Getestet habe ich mit einem Sonoff Dev Modul mit dem Arends Sketch, welcher auch Cloudmqtt voll unterstützt.
Das Modul braucht natürlich eine Internetverbindung und sendet alle Telemetriedaten in die Cloud, welche die zum definierten Ziel ( lokaler Broker ) weiterleitet. Mit einer NAT Regel am Router schalte ich das Cloud Port 30814 -> 1883 an den Broker durch.



Received PUBLISH (d0, q0, r0, m0, 'remote/sonoff_dev/STATE', ... (103 bytes))
remote/sonoff_dev/STATE {"Time":"2017-03-19T12:32:20", "Uptime":1, "POWER":"OFF", "Wifi":{"AP":1, "SSID":"Liwest", "RSSI":100}}
Received PUBLISH (d0, q0, r0, m0, 'remote/sonoff_dev/STATE', ... (103 bytes))
remote/sonoff_dev/STATE {"Time":"2017-03-19T12:32:50", "Uptime":1, "POWER":"OFF", "Wifi":{"AP":1, "SSID":"Liwest", "RSSI":100}}
Received PUBLISH (d0, q0, r0, m0, 'tele/sonoffpow3/STATE', ... (101 bytes))
tele/sonoffpow3/STATE {"Time":"2017-03-19T12:32:53", "Uptime":2, "LIGHT":"ON", "Wifi":{"AP":1, "SSID":"Liwest", "RSSI":92}}
Received PUBLISH (d0, q0, r0, m0, 'tele/sonoffpow3/ENERGY', ... (134 bytes))
tele/sonoffpow3/ENERGY {"Time":"2017-03-19T12:32:53", "Yesterday":0.082, "Today":0.006, "Period":0, "Power":0, "Factor":0.00, "Voltage":230, "Current":0.000}
Received PUBLISH (d0, q0, r0, m0, 'remote/sonoff_dev/STATE', ... (103 bytes))
remote/sonoff_dev/STATE {"Time":"2017-03-19T12:33:20", "Uptime":1, "POWER":"OFF", "Wifi":{"AP":1, "SSID":"Liwest", "RSSI":100}}

hier ein Log, alle Messages die von remote/sonoff_dev/ kommen stammen aus der Cloud.


Im Bild am Anhang sieht man die Console der Cloud und kann hier den Verkehr verfolgen.
Wie stabil das läuft kann ich nicht sagen, ich habe es jetzt ein paar Stunden fehlerfrei getestet. Local ( tele/ ) und Remote Prefix ( remote/ ) sind unterschiedlich, damit es zu keinem Loop kommt wenn man "both" wählt. Zum Testen habe ich die Cloud nur auf "out" konfiguriert. Die gesamte Konfiguration ist in wenigen Minuten durchgeführt und sehr einfach gehalten.


1489922891: Config loaded from /var/lib/mosquitto/10814/mosquitto.conf.
1489922891: Opening ipv4 listen socket on port 20814.
1489922891: Opening websockets listen socket on port 30814.
1489922891: Opening ipv4 listen socket on port 10814.
1489922891: Connecting bridge xx.xx.xx.xx (xx.xx.xx.xx:30814)

hier der Logauszug von der Cloud, auf Port 30814 wurde die Verbindung erfolgreich zum lokalen Broker hergestellt.


#ifdef USE_MQTT_TLS
  #define MQTT_HOST            "m20.cloudmqtt.com"  // [MqttHost]
  #define MQTT_FINGERPRINT     "A5 02 FF 13 99 9F 8B 39 8E F1 83 4F 11 XX BB AA YY YY XX XX"  // [MqttFingerprint]
  #define MQTT_PORT            20814                // [MqttPort] MQTT TLS port
  #define MQTT_USER            "CloudUser"      // [MqttUser] Mandatory user
  #define MQTT_PASS            "CloudPass"  // [MqttPassword] Mandatory password

so sieht die Definition im Sketch aus, das ist alles was am Modul benötigt wird.


LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa