FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: satprofi am 28 Juli 2026, 14:06:17

Titel: MQTT2_Server von extern ansprechen
Beitrag von: satprofi am 28 Juli 2026, 14:06:17
Hallo.
Meinen Eltern habe ich einen Lesekopf mit Tasmota am Smartmeter angebracht. Ich wollte jetzt diese Daten an meinen MQTT2 Server senden, über noip. Port im Router freigegeben, aber es kommt kein autocreate.  Habe den Kopf vorher aber mit lokalem ip eintrag aber angelegt bekommen. Klappt das nicht mit portweiterleitung über div. dyndns anbieter? oder was mache ich falsch?
LG
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: Beta-User am 28 Juli 2026, 15:08:18
Vermutlich ein Berechtigungsthema. Üblicherweise nimmt der m2s nur Verbindungen aus dem lokalen Netzwerk an.

Stichwort sollte allowed sein.
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: rudolfkoenig am 28 Juli 2026, 15:33:35
Wenn im FHEM-Log etwas von "Connection refused from the non-local address..." steht, dann kann man das Problem per allowfrom Attribut umgehen.
Besser ist mit allowed (wie Beta-User das geschrieben hat) ein Passwort zu setzen, noch besser ist die beiden Standorte mit VPN zu verbinden.
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: satprofi am 28 Juli 2026, 16:16:52
Zitat von: Beta-User am 28 Juli 2026, 15:08:18Vermutlich ein Berechtigungsthema. Üblicherweise nimmt der m2s nur Verbindungen aus dem lokalen Netzwerk an.

Stichwort sollte allowed sein.
attr allowfrom gibts, aber kein help dafür. habe beim port global, lt helper sollte alles dann erlaubt sein.
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: rudolfkoenig am 28 Juli 2026, 17:20:29
Zitatattr allowfrom gibts, aber kein help dafür.
Es ist ein "generisches" Attribut, Hilfe gibts. z.Zt nur bei FHEMWEB: https://fhem.de/commandref_modular.html#FHEMWEB-attr-allowfrom

Zitathabe beim port global, lt helper sollte alles dann erlaubt sein.
Das stimmte auch urspruenglich, aber damit ich nicht an dem Pranger gestellt werde, wenn irgendwer seine FHEM Instanz "einfach so" aus dem Internet erreichbar macht und gehackt wird, gibt es inzwischen Einschraenkungen.
D.h. wenn die IP auf der anderen Seite keine lokale IP ist, dann braucht man:
- entweder eine allowed FHEMWEB Instanz, was dem MQTT2_SERVER zugeordnet wird, und Benutzername und Passwort definiert
- oder ein allowfrom Attribut, was explizit die erlaubten Adressen spezifiziert.
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: Nobbynews am 29 Juli 2026, 10:28:32
Wie wäre es, über einen externen MQTT-Server zu gehen?
Z.B.
www.hivemq.com/pricing/fully-managed/ (http://www.hivemq.com/pricing/fully-managed/)
In der kostenfreien Version (Serverless) mit 100 Geräten und 10 GB/Monat Transfervolumen.
Dann muss man keine Ports aufmachen und ist somit auch abgesichert.
Läuft hier schon etlichen Jahre ohne Probleme. Ab und zu muss man allerdings einen neuen Server definieren. Zusammenhang habe ich noch nicht weiter erforscht.
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: satprofi am 29 Juli 2026, 15:01:30
leider geht da nur TLS, und wie soll ich das dem smartmeter beibringen ? und wie sendet die cloud dann zu fhem ?
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: Nobbynews am 29 Juli 2026, 15:54:09
Ok, wenn der Lesekopf für MQTT kein TLS kann, dann scheidet diese Lösung aus.
Ansonsten habe ich das bei mir so eingerichtet:
define <XYZ....> MQTT2_CLIENT <IDvonHivemq>.s1.eu.hivemq.cloud:8883
attr OurCastle SSL 1
attr OurCastle autocreate no
attr OurCastle clientOrder MQTT_GENERIC_BRIDGE MQTT2_DEVICE
#   BUF       
#   Clients    :MQTT_GENERIC_BRIDGE:MQTT2_DEVICE:
#   ClientsKeepOrder 1
#   DEF        <IDvonHivemq>.s1.eu.hivemq.cloud:8883
#   DeviceName <IDvonHivemq>.s1.eu.hivemq.cloud:8883
#   FD         296
#   FUUID      62e11b35-f33f-8873-29fa-e59ac8243eff3b5b
#   FVERSION   00_MQTT2_CLIENT.pm:0.306640/2025-12-26
#   NAME       XYZ....
#   NR         566
#   PARTIAL   
#   SSL        1
#   STATE      opened
#   TYPE       MQTT2_CLIENT
#   WBCallback
#   clientId   XYZ....
#   eventCount 104
#   lastMsgTime 1785332693.01992
#   nextOpenDelay 10
#   nrConnects 75
#   MatchList:
#     1:MQTT_GENERIC_BRIDGE ^.
#     2:MQTT2_DEVICE ^.
#   READINGS:
#     2026-07-28 23:15:05   state           opened
#

define mqttGB MQTT_GENERIC_BRIDGE
attr mqttGB globalDefaults sub:base=mqttGB/set pub:base=mqttGB
attr mqttGB room 10_I/O-Geräte
attr mqttGB stateFormat dev: device-count in: incoming-count out: outgoing-count
#   FUUID      63e73844-f33f-8873-9466-9bc313f155f901f3
#   FVERSION   10_MQTT_GENERIC_BRIDGE.pm:v1.4.4-s25117/2021-10-25
#   IODev      XYZ....
#   NAME       mqttGB
#   NR         702
#   NTFY_ORDER 70-mqttGB
#   STATE      dev: 16 in: 14 out: 96870
#   TYPE       MQTT_GENERIC_BRIDGE
#   devspec    .*
#   eventCount 96875
#   prefix     mqtt
#   READINGS:
#     2026-06-27 00:15:34   IODev           XYZ....
#     2024-11-01 06:34:37   attrTemplateVersion 20211208_MQTT
#     2026-07-20 18:45:48   device-count    16
#     2026-07-29 15:48:52   incoming-count  14
#     2026-07-29 15:48:53   outgoing-count  96870
#     2026-07-29 15:48:53   transmission-state outgoing publish sent
#     2026-06-27 00:14:36   updated-reading-count 0
#     2026-07-29 15:48:52   updated-set-count 14
#   devices:
#     :global:
#       :alias:
#       :defaults:
#         pub:base   mqttGB
#         sub:base   mqttGB/set
#     Bad:
#       :publish:
#       :subscribe:
#         HASH(0x55a8191168)
#     Curry2:
#       :publish:
#       :subscribe:
#         HASH(0x55a8191ce8)
#     ESPEasy_ESP_02_Gaszaehler:
#       :alias:
#       :publish:
#         energyTotal2:
#           last       1785293996.43785
#           mode       R
#           topic      Gas
#     Fikus:
#       :alias:
#       :publish:
#         state:
#           last       1785332933.19731
#           mode       R
#           topic      Status
#       :subscribe:
#         HASH(0x55a81a16e0)
#     Flur_gross:
#       :publish:
#       :subscribe:
#         HASH(0x55a81b9c60)
#     Garagentor:
#       :publish:
#       :subscribe:
#         HASH(0x55a81ba470)
#     LaufzeitEntfeuchter:
#       :subscribe:
#         HASH(0x55a7ffc048)
#     Markise:
#       :alias:
#       :publish:
#     NinjaEis:
#       :publish:
#       :subscribe:
#         HASH(0x55a818f4d8)
#     RolladenFenster:
#       :publish:
#       :subscribe:
#         HASH(0x55a81c95e0)
#     WS980:
#       :alias:
#       :publish:
#         temperature:
#           last       1785332900.59504
#           mode       R
#           topic      tempWS980
#     Westinghouse:
#       :publish:
#       :subscribe:
#         HASH(0x55a81e2918)
#     Z2_Vorne:
#       :alias:
#       :publish:
#         TagesMittel!2:
#           mode       R
#           topic      TagesMittel
#         temperature!1:
#           mode       R
#           topic      TempVorne
#     keinPush:
#       :publish:
#       :subscribe:
#         HASH(0x55a81f0e50)
#     keineSirene:
#       :publish:
#       :subscribe:
#         HASH(0x55a81f1030)
#     mqttTest:
#       :subscribe:
#         HASH(0x55a81f12a0)
#   globalDeviceExcludes:
#   globalReadingExcludes:
#   globalTypeExcludes:
#     pub:
#       FHEMWEB    *
#       Global     *
#       MQTT       transmission-state
#       MQTT_BRIDGE transmission-state
#       MQTT_DEVICE transmission-state
#       MQTT_GENERIC_BRIDGE *
#       telnet     *
#     sub:
#       FHEMWEB    *
#       Global     *
#       MQTT       transmission-state
#       MQTT_BRIDGE transmission-state
#       MQTT_DEVICE transmission-state
#       MQTT_GENERIC_BRIDGE *
#       telnet     *
#   subscribe:
#

Und bei den devices dann z.B.
attr Fikus mqttPublish state:topic=Status
attr Fikus mqttSubscribe state:stopic=Fikus

Für den MQTT-Profi vermutlich ziemlich stümperhaft und gruselig, aber es läuft.
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: satprofi am 29 Juli 2026, 17:16:17
hallo. habe jetzt Möglichkeit gefunden, ohne mqtt . daten werden über api an clever-pv gesendet.
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: Beta-User am 30 Juli 2026, 10:45:49
Zitat von: satprofi am 29 Juli 2026, 15:01:30leider geht da nur TLS, und wie soll ich das dem smartmeter beibringen ? und wie sendet die cloud dann zu fhem ?
Was ist das für ein ESP? Eventuell gegen einen ESP32 tauschen. Zumindest hat der hier verbaute (WT32_ETH0-Modul) die Option, TLS zu aktivieren. Die laufende Tasmota-firmware (15.4.0) kommt über https://ottelo.jimdofree.com/, eventuell kann das damit auch ein ESP8266...

"Abhorchen" sollte mit MQTT2_CLIENT kein Problem sein.
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: satprofi am 30 Juli 2026, 13:24:28
ESP Chip Id   11219784 (ESP32-C3 v0.4)
Program Version   14.6.0.2 (tasmota32)
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: Beta-User am 30 Juli 2026, 13:55:33
Würde annehmen, dass mein WT32_ETH01 "älter" ist und von daher ggf. eine neuere Tasmota-Version helfen könnte, die TLS-Option zu aktivieren (ggf. von der genannten Seite laden, dann musst du nichts selber bauen).
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: passibe am 30 Juli 2026, 17:18:53
Zitat von: satprofi am 30 Juli 2026, 13:24:28Program Version   14.6.0.2 (tasmota32)
tasmota32 sollte eigentlich TLS unterstützen: https://tasmota.github.io/docs/TLS/

Einfach mal ausprobieren bzw. die Doku lesen
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: satprofi am 30 Juli 2026, 17:27:39
Zitat von: passibe am 30 Juli 2026, 17:18:53
Zitat von: satprofi am 30 Juli 2026, 13:24:28Program Version   14.6.0.2 (tasmota32)
tasmota32 sollte eigentlich TLS unterstützen: https://tasmota.github.io/docs/TLS/

Einfach mal ausprobieren bzw. die Doku lesen
muss man nicht neue fw compilieren ? problem ist, wie ändere ich bestehende FW. die hat einige feinheiten, bzgl. zählerauswahl, etc.
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: pink99panther am 30 Juli 2026, 17:55:04
Wenn Fritzboxn an Qelle und Ziel im einsatz sind ist eine Netzwerkkopplung über Wireguard relativ einfach einzurichten.
Dann hast du noch mehr möglichkeiten wie "nur" einen MQTT-client anzubinden.
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: Beta-User am 30 Juli 2026, 18:35:58
Zitat von: satprofi am 30 Juli 2026, 17:27:39muss man nicht neue fw compilieren ? problem ist, wie ändere ich bestehende FW. die hat einige feinheiten, bzgl. zählerauswahl, etc.
Vermutlich ist das genau die von mir (indirekt) verlinkte...

In der Regel sollten vorhandene Scripts erhalten bleiben.
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: passibe am 31 Juli 2026, 00:02:13
Zitat von: satprofi am 30 Juli 2026, 17:27:39muss man nicht neue fw compilieren ?
Weil bei dir schon tasmota32 steht, denke ich eigentlich, dass du nicht neu kompilieren müsstest, sondern da schon die Version mit TLS-Unterstützung drauf ist.

Ansonsten behalten Firmware-Upgrades/Wechsel bei Tasmota eigentlich ganz gut die Konfiguration bzw. es gibt auch so Tools wie https://github.com/tasmota/decode-config mit denen man sehr gut auch menschenlesbare Backups machen kann. Bietet sich vielleicht ohnehin an, wenn der Zähler einigermaßen "wichtige" Konfiguration enthält.
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: satprofi am 31 Juli 2026, 11:51:14
reines update killt die script funktion ! man muss sich alte FW  holen. aber die aufgespielte unterstützt einige smartmeter per Menü.will das nicht verlieren
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: Beta-User am 31 Juli 2026, 12:25:14
Zitat von: satprofi am 31 Juli 2026, 11:51:14reines update killt die script funktion ! man muss sich alte FW  holen. aber die aufgespielte unterstützt einige smartmeter per Menü.will das nicht verlieren
"Killen" bedeutet weder, dass das vorhandene gelöscht wird, noch, dass man dann nicht schnell wieder was anderes lauffähiges hinbekommen könnte...

Kurz: schaue, wo die Firmware wirklich her ist, die jetzt läuft, und mach ein (OTA-)  Update. Kann sein, dass das nur zweistufig geht, und du nach dem Hauptupdate dann das Script wieder aktivieren musst. Aber das ist ziemlich sicher auch schon alles.
Titel: Aw: MQTT2_Server von extern ansprechen
Beitrag von: passibe am 31 Juli 2026, 14:59:14
Wie gesagt, eigentlich müsste es doch schon klappen. Hast du es denn mal wie in der Doku beschrieben mit TLS probiert? Da sind z.B. auch Fehlercodes dokumentiert https://tasmota.github.io/docs/TLS/#tls-troubleshooting