MQTT2_Server von extern ansprechen

Begonnen von satprofi, 28 Juli 2026, 14:06:17

Vorheriges Thema - Nächstes Thema

satprofi

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
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,Zigbee,Shelly,
Tasmota,LD382A,Telegram

Beta-User

Vermutlich ein Berechtigungsthema. Üblicherweise nimmt der m2s nur Verbindungen aus dem lokalen Netzwerk an.

Stichwort sollte allowed sein.
Server: HP-elitedesk@Debian 13, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

rudolfkoenig

#2
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.

satprofi

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.
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,Zigbee,Shelly,
Tasmota,LD382A,Telegram

rudolfkoenig

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.

Nobbynews

Wie wäre es, über einen externen MQTT-Server zu gehen?
Z.B.
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.

satprofi

leider geht da nur TLS, und wie soll ich das dem smartmeter beibringen ? und wie sendet die cloud dann zu fhem ?
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,Zigbee,Shelly,
Tasmota,LD382A,Telegram

Nobbynews

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.

satprofi

hallo. habe jetzt Möglichkeit gefunden, ohne mqtt . daten werden über api an clever-pv gesendet.
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,Zigbee,Shelly,
Tasmota,LD382A,Telegram