mit MQTT übers Internet? Oder HTTP(s)

  • Hallo,

    ich möchte gerne aus einem Fremden Wlan zu meinem Raspberry Pi senden (auf dem zB Mosquitto und DOmoticz sind).

    Es sollten die Werte eines Counters (Regenwippe) und maximal noch Temperatur/Lufteuchtigkeitsdaten gesendet werden, die dann auf dem Pi landen und von da nach Domoticz sollen bzw auf Weather Undergrund hochgeladen werden.

    Hardware habe ich mich noch nicht entschieden. Es soll eine Wlan Version geben (bei Nachbarn ans Wlan) und eine Sim Version..Denke an den Wemos D1 mini, wenn es kein Rapsberry Pi (mini) sein muss.

    Wie sende ich die Daten am besten zum PI?

    Mittels MQTT oder eher per Http? Geht auch HTTPs?

    Der Pi hat ne fest IP (sowohl im Heimnetz auch auch vom Provider) Wäre es irgendwie denkbar, dass Tasmota direkt sendet? Das ließe sich ja für Domiticz sehr einfach einstellen..

    Ich bin auf dem Thema sehr neu und versuche durch Recherche und "logisches" Denken mir mein Wissen anzueignen. Es ist aber immer wieder sehr verwirrend, wie was zusammenhängt bzw. was möglich ist.

  • Wenn ich dein Thema richtig verstehe, kannst du entweder einen MQTT-Server im Internet betreiben, auf den sowohl das Gerät im "fremden" WLAN als auch dein Raspi/Domozicz jeweils als Clients zugreifen.

    Die andere Version ist der Betrieb von mosquitto auf deinem Raspberry Pi. Dann muss der Pi von außen erreichbar sein, das heißt zum einen ein Port in deinem Router muss frei geschaltet werden, um auf den MQTT-Port am Raspi zu kommen und zum anderen braucht dann entweder der Router eine feste IP oder du musst zusätzlich einen DynDS-Service benutzen, mit einer Pseudo-Domain im Internet, von der immer auf deinen Router umgeleitet wird, der ja in der Regel eine dynamische IP hat. (Man kann zwar irgendwie IPV6 in Tasmota reinfriemeln, aber einfach ist das nicht.) Wenn du in deinem Router einen Port freischaltest, nimm nicht den 1881. Das wäre für Angreifer zu einfach.

    Zur Variante 1 in meinem Beitrag: Eventuell gibt es Dienstleister im Internet, die MQTT-Server zur Verfügung stellen umsonst oder für kleines Geld. Musst du mal recherchieren.

    In allen Fällen - weil es immer über das Internet geht - ist es dringend geboten, mit verschlüsselten Daten zu arbeiten. Das MQTT-Protokoll erlaubt TLS-Verschlüsselung.

    Zu http/https: Wenn dann ist nur https eine Option und dazu braucht die Hardware m. W. einen ESP32. Der ESP8266 kann das nicht.

  • ok, danke für die Antwort.

    Ich habe eine feste IP und Portfreigabe ist kein Problem. Da denke ich mir dann eine andere Portnummer aus und nutze TLS.

    Das hieße, dass ich dann MQTT an den Pi senden muss mit meiner :fest IP":Port gibt es hier irgendwo vorgefertigte Skripte oder Anleitungen? Wie gesagt tut ich mich schwer sowas zu finden und vom Skripte schreiben habe ich 0 Ahnung -.-

  • Vielleicht zum Einstieg mein Versuch MQTT zu erklären (oder andere Quellen im Internet suchen):

    MQTT in diesem Wiki

    Um mit MQTT-Nachrichten zu arbeiten, gibt es viele Optionen. Du wirts nicht umhin kommen, dich in irgendetwas mehr einzuarbeiten: Sei es eine Heimautomatisierung wie Domoticz, IOBroker, HomeAssistant, FHEM und und und... oder in eine Programmiersprache wie Java(Script), Python, C irgendwas (letzteres wohl kaum ;) ) . Dann findest du die entsprechenden Tools (Bibliotheken) und Beispiele, wie bestimmte Aufgaben gelöst werden können.

    Dabei wirst du dich mit dem Format von MQTT-Nachrichten beschäftigen müssen: JSON Auch dazu habe ich mich in dem Wiki auf dieser Plattform verewigt: hier. Ich hoffe das hilft die schon mal ein bisschen weiter.

  • ok, danke für die Tipps schonmal. Eigentlich müsste es ja via MQTT zu Domoticz sofort gehen. Ging bei mir am Anfang ja auch mit dem Mosquitto-Testserver.

    Das probiere ich im Verlauf der nächsten Woche wohl mal aus.

    Dann muss ich noch herausfinden, wie ich die Daten in weather underground integriert bekomme bzw, wie die die Daten bei Auswahl "Raspberry Pi" haben wollen ..

    Ich frage nochmal konkret, bevor ich dazu komme, es einzutippen: Der MQTT Host, den ich bei Tasmota eingebe wäre dann nicht die IP des Gerätes in meinem Netz (196.169....), sondern meine feste, vom Provider zugeteilte IP:Port (Port der im Router freigegeben ist)? Und der Router leitet automatisch auf den Pi mit der IP im Netz (192.....)?

  • sondern meine feste, vom Provider zugeteilte IP:Port (Port der im Router freigegeben ist)? Und der Router leitet automatisch auf den Pi mit der IP im Netz (192.....)?

    Müsste so funktionieren (habe ich allerdings selbst noch nie angewendet ;) )