Servus, es gibt einige Themen bezüglich LoRa aber ich habe mein Problem trotzdem nicht lösen können. :-[
Ich habe eine Dragino LPS8 LoRa Gateway an dem ich ein LHT65N Temperatursensor angebunden habe.
In der TTN Netzwerk funktioniert auch alles und ich kriege alle 20 Minuten Temperatur- und Luftfeuchtigkeitswerte in der TTN Console angezeigt.
(Dennoch: warum muss LoRa so mega kompliziert sein? Ging das nicht einfacher... ::) )
Auf dem LPS8 habe ich MQTT aktiviert mit der Server Adresse und port von meinen FHEM MQTT Server.
(Das FHEM MQTT Server verwende ich schon seit lange mit ein paar Schaltbaren Steckdosen.)
Autocreate an der MQTT Server ist an allerdings hatte es die LPS8 client in eine hidden room platziert. Warum?
(Hab es erst gesehen als ich das Device gelistet habe für diese Nachricht.)
Was ich nicht verstehe: wie muss ich das LHT65N "durchreichen"?
Muss ich es irgendwie im LPS8 definieren oder wie kommen die Temperaturdaten in FHEM an?
Bis jetzt taucht es in FHEM nicht auf und mir fehlt eine höhere Schulabschluss um LoRa überhaupt verstehen zu können...
ZitatAutocreate an der MQTT Server ist an allerdings hatte es die LPS8 client in eine hidden room platziert.
Kannst Du bitte uns ein Listing zeigen?
Im hidden room ist ueblicherweise die Verbindungsinstanz vom MQTT2_SERVER, weil man das normalerweise nicht sehen will, genauso wie die Verbundingen zum Browser, usw.
Autocreate legt dann eine MQTT2_DEVICE Instanz an, wenn der MQTT Client was sendet, _und_ die Clientid des Senders nicht nach mosquitto_pub riecht : /^(mosqpub|mosq_)/
Letzteres deswegen, weil mosquitto_pub in der Voreinstellung Zufallsids generiert, und ohne die obige Einschraenkung beim Testen mit mosquitto_pub sinnlose MQTT2_DEVICE Instanzen angelegt werden.
Danke für Dein Antwort... Moskitos mag ich nicht... ;D mehr habe ich nicht verstanden. :-*
Das ist mein MQTT Server:
Internals:
CONNECTS 7
Clients :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
ClientsKeepOrder 1
DEF 1883 global
FD 74
FUUID 61f43bb1-f33f-0963-4ae1-aed17d928bf2c01d
NAME mqttBroker
NR 575
PORT 1883
STATE Initialized
TYPE MQTT2_SERVER
eventCount 10
MatchList:
1:MQTT2_DEVICE ^.
2:MQTT_GENERIC_BRIDGE ^.
READINGS:
2025-11-23 12:57:50 nrclients 4
2025-11-08 17:20:10 state Initialized
clients:
mqttBroker_192.168.10.122_50642 1
mqttBroker_192.168.10.46_52924 1
mqttBroker_192.168.10.77_58166 1
mqttBroker_192.168.10.78_59061 1
hmccu:
retain:
Attributes:
autocreate simple
room MQTT2
192.168.10.46 ist das LPS8
Das ist der hidden Device:
Internals:
BUF
FD 69
NAME mqttBroker_192.168.10.46_52924
NR 10006941
PEER 192.168.10.46
PORT 52924
SNAME mqttBroker
SSL
STATE Connected
TEMPORARY 1
TYPE MQTT2_SERVER
WBCallback
cflags 2
cid dragino-21cd0c
keepalive 60
lastMsgTime 1763931050.55298
protoNum 4
protoTxt MQTT
READINGS:
2025-11-23 12:57:50 state Connected
hmccu:
subscriptions:
v1//things/dragino-21cd0c/# 1763899070.87848
Attributes:
alias DraginoLPS8
autocreate simple
room MQTT2_DEVICE
ZitatDas ist der hidden Device:
Das ist (wie oben geschrieben) eine Verbindungs-Instanz vom MQTT2_SERVER, d.h. representiert die eigentliche Verbindung zwischen Client und FHEM.
Da man damit als Benutzer normalerweise nichts sinnvolles anstellen kann, und die meisten verwirrt, landet es im hidden Raum.
Mit "delete <name>" kann man diese Verbindung zumachen.
Ob das sinnvoll ist, darf jeder fuer sich ueberlegen.
Hi Thinman,
das hatten wir hier https://forum.fhem.de/index.php?topic=140070.msg1327692#msg1327692
schon mal diskutiert, im link fuer Chirpstack aber fuer TTN gehts das aequivalent.
Es gibt die beiden Moeglichkeiten, ueber die 1) MQTT server definition im Gateway selbst, oder ueber die 2) MQTT integration in TTN. Du hast im Moment sowie ich das verstehe 1). Das ist aber alles im oben verlinkten Beitrag beschrieben.
Danke, die verlinkte Thema habe ich schon mehrmals durchgelesen aber es hilft mir nicht weiter:
- ich habe ein LPS8 und keine LPS8V2. Das ältere Modell hat noch keine integrierte MQTT Server. Nur ein Client, wo ich die FHEM MQTT Server eintragen kann.
- ich verwende das TTN Server und habe keine eigene (Chirpstack) Server installiert.
Wenn ich richtig verstanden habe, brauche ich TTN nur um mein Thermometer device an meine Gateway anbinden zu können. Das habe ich gemacht und in der TTN Oberfläche sehe ich auch alle 20 Minuten die Daten. (Das payload decoder habe ich auch im TTN definiert)
Das MQTT Client im Gateway brauche ich um die Daten an mein FHEM MQTT Server weiter zu reichen. Das Hidden device welches das autocreate angelegt hat ist (wenn ich Rudi richtig verstanden habe) ist dieser Verbindung zwischen der LPS8 MQTT Client und mein FHEM MQTT Server.
(Ist aber für die Auswertung der Temperatur Daten nutzlos, daher hidden.)
Ich verstehe aber immer noch nicht:
-warum kein FHEM MQTT device für mein Temperatursensor angelegt wird?
Muss irgend ein "forwarding" auf der LPS8 eingerichtet werden?
-ob ich die payload Entschlüsselung FHEM seitig machen muss weil der TTN Server eigentlich gar nicht benutzt wird (nur fürs pairen).
OK, ich habe beides TTN und Chirpstack eingerichtet. Ich kann Dir nur zeigen wie meine funktionierende Lösung für TTN aussieht:
- Im TTN Webfrontend: Bild 1
https://eu1.cloud.thethings.network/console/applications unter Applications -> "Add application" habe ich eine MQTT integration eingerichtet, hier mit dem Label "FHEM TTN MQTT" Interface. Dort unter "connection credentials" einen eigenen Usernamen u Passwort vergeben. Der TTN server ist immer eu1.cloud.thethings.network:1883 glaube ich.
-In FHEM:
A) Client für den TTN server einrichten
defmod myTTN MQTT2_CLIENT eu1.cloud.thethings.network:1883
attr my TTN username <DeinUsername>
Das Password wird über den set Befehl vergeben.
b) Temperatur Device einrichten (Bei mir ist das ein Dragino LHT65)
defmod TTN_DR_LHT65 MQTT2_DEVICE myTTN
attr TTN_DR_LHT65 IODev myTTN
attr TTN_DR_LHT65 readingList myTTN:v3/<username>/devices/eui-otaa-abcdefg123456789/up:.* { json2nameValue($EVENT) }
Die readingList musst Du dann selber zusammenbauen, ich habe damals glaube ich im MQTT explorer geschaut, oder Du abonnierst erstmal alle Topics.
Bild 2 ist der screenshot vom LoRa Gateway, wo Du den MQTT Client eingerichtet hast, das benutze ich aber gar nicht.
Hoffe das hilft. Beste Grüsse!
Vielen Dank. So langsam kapiere ich es...
Wenn ich richtig verstehe, kann ich den LPS8 (ohne V2) nicht ohne das TTN Network verwenden weil um die Daten von der Sensor zu "broadcasten" ein MQTT Server und nicht nur ein MQTT Client braucht und der LPS8 hat ja nur ein Client.
Ist natürlich doof, dass die Messwerte erst um die halbe Welt tingeln müssen um danach wieder bei mir ausgewertet zu werden.
::) LoRa wird als was ganz tolles, neues angepriesen aber am Ende ist es wieder nur ein überkompliziertes (und sehr teures) System welches nur einigen Hersteller zu gute kommen. Hat man keine Ahnung, fällt man den schönen Werbewelt herein... Business as usual
Ich versuche es dann so wie Du beschrieben hast und dann schauen wir weiter.
Vielen Dank für die detaillierte Beschreibung!
Also das TTN (oder Chirpstack) Netzwerk brauchst Du, ohne das kannst Du deine Devices nicht verwenden. Weil die Devices müssen ja in einem LoRaWan Netzwerk angemeldet sein und dort von einem Gateway empfangen werden. Bei TTN kannst Du deinen Temperatursensor auch mit nach Italien oder Malta nehmen, solange der Sensor eine Verbindung zu einem TTN Gateway hat, bekommst Du zu Hause in FHEM die Daten. Das schöne an LoRaWan ist die Reichweite, bei mir über 5 Etagen mit Betondecken bis in den Keller. Oder ich kann mit dem Temperatursensor auch um den Häuserblock laufen (wer macht sowas?) und empfange die Daten trotz dichter Bebauung. Das geht mit WLAN/BT/Homematic/etc so einfach nicht.
Kommt eben auf den Einsatzzweck an.
Alternativ machst Du Chirpstack, dann bleiben deine Daten bei Dir und sind auch nur mit deinem eigenen (einzelnen) Gateway gekoppelt und werden auch nur in deinem privaten Chirpstack Netzwerk empfangen.
Meiner Meinung nach kannst Du das LPS8 auch mit Chirpstack verwenden. dann muss man nur im Gateway bei der Server Adresss "<dei.ne.IP.Adr>" eintragen (also die IP adresse von dem Rechner wo Du Chirpstack installiert hast), anstelle von "eu1.cloud.thethings.network". Port ist ebenfalls 1700. Die Anmeldung von Devices im CS Netzwerk ist äquivalent zu TTN, kein Unterschied, und die Funktionalität ist die gleiche, CS ist halt offene Software..
Das ist alles, alles andere äquivalent zu oben, auch mit MQTT funktioniert das gleich, nur die MQTT Einrichtung ist ein bischen anders.
Chirpstack Installation und Einrichtung ist gut dokumentiert, aber man muss sich ein bischen durchbeissen. Vielleicht gibts das auch schon im Docker. Man muss ja keine Ports durchreichen, sollte also mit Docker auch einfach sein.
Zitat von: thinman am 24 November 2025, 18:42:53LoRa wird als was ganz tolles, neues angepriesen
"LoRa" ist einfach nur eine Abkürzung für "Long Range", also "große Reichweite".
Es beschreibt tatsächlich weder ein Übertragungsprotokoll noch ein fertiges Produkt irgendeines Herstellers.
Zitat von: betateilchen am 24 November 2025, 20:02:17Zitat von: thinman am 24 November 2025, 18:42:53LoRa wird als was ganz tolles, neues angepriesen
"LoRa" ist einfach nur eine Abkürzung für "Long Range", also "große Reichweite".
Es beschreibt tatsächlich weder ein Übertragungsprotokoll noch ein fertiges Produkt irgendeines Herstellers.
Stimmt, zumindest für LoRa. Ich hätte lieber LoRaWan schreiben sollen. Das ist die korrekte Bezeichnung welches dann die von mir erwähnte, komplizierte System beinhaltet.
Ich muss auf jeden Fall noch weiter damit beschäftigen...
Ich habe jetzt eine LSP8Nv2 gekauft und probeweise eine LHT52 drangehängt. MQTT forwarding habe ich eingerichtet und auf mein FHEM server kommen auch die Nachrichten an:
mosquitto_sub -h localhost -t "#" -v
dragino-291278/a84041f1475b6d34/data {"deduplicationId":"2705ccb3-4c53-4724-829b-86a23777cfd6","time":"2026-07-03T15:57:46.122221+00:00","deviceInfo":{"tenantId":"52f14cd4-c6f1-4fbd-8f87-4025e1d49242","tenantName":"ChirpStack","applicationId":"e38db283-9121-4148-b90d-612401ef6d6f","applicationName":"local-applications","deviceProfileId":"a720060c-f537-47c6-9d44-a0f5caf9ccec","deviceProfileName":"LHT52","deviceName":"LHT51_1","devEui":"a84041f1475b6d34","deviceClassEnabled":"CLASS_A","tags":{}},"devAddr":"0196ee17","adr":true,"dr":5,"fCnt":212,"fPort":2,"confirmed":false,"data":"CmsB93//AWpH2+4=","object":{"Ext":1.0,"Systimestamp":1783094254.0,"TempC_SHT":26.67,"Node_type":"LHT52","Hum_SHT":50.3,"TempC_DS":327.67},"rxInfo":[{"gatewayId":"a84041fdfe291278","uplinkId":63409,"time":"2026-07-03T15:57:46.122221+00:00","rssi":-64,"snr":14.2,"channel":3,"location":{},"context":"R9yO2A==","metadata":{"region_config_id":"eu868","region_common_name":"EU868"},"crcStatus":"CRC_OK"}],"txInfo":{"frequency":867100000,"modulation":{"lora":{"bandwidth":125000,"spreadingFactor":7,"codeRate":"CR_4_5"}}}}
Ich habe eine Device angelegt:
Internals:
CFGFN
CID dragino-291278/a84041f1475b6d34/data
DEF dragino-291278/a84041f1475b6d34/data
FUUID 6a47dca4-f33f-0963-13fc-a14ec914590ea2ac
IODev mqttBroker
NAME LHT52
NR 186153
STATE ???
TYPE MQTT2_DEVICE
eventCount 1
READINGS:
2026-07-03 18:00:50 IODev mqttBroker
hmccu:
Attributes:
IODev mqttBroker
readingList dragino-291278/a84041f1475b6d34/data:.* { json2nameValue($EVENT, 'up_', $JSONMAP) }
room MQTT2_DEVICE
mqttBroker sieht das LSP8Nv2 auf der IP Adresse 44 und autocreate ist auch an (simple) aber es wird nichts erzeugt und ich kriege die Daten nicht in FHEM.
Internals:
CONNECTS 148
Clients :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
ClientsKeepOrder 1
DEF 1883 global
FD 77
FUUID 61f43bb1-f33f-0963-4ae1-aed17d928bf2c01d
NAME mqttBroker
NR 575
PORT 1883
STATE Initialized
TYPE MQTT2_SERVER
eventCount 290
MatchList:
1:MQTT2_DEVICE ^.
2:MQTT_GENERIC_BRIDGE ^.
READINGS:
2026-07-03 17:58:44 nrclients 6
2026-07-04 10:08:23 state Initialized
clients:
mqttBroker_192.168.10.106_56952 1
mqttBroker_192.168.10.122_59766 1
mqttBroker_192.168.10.44_33949 1
mqttBroker_192.168.10.46_38692 1
mqttBroker_192.168.10.77_58710 1
mqttBroker_192.168.10.78_55725 1
retain:
Attributes:
autocreate simple
room MQTT2
Ich habe versucht mir ChatGPT das Problem zu lösen aber nach einige Stunden hin und her hat sich wieder gezeigt, LLMs sind dumm wie Brot.
Wo mache ich ein Fehler?
Hallo,
hast ggf. das globale Autocreate ausgeschaltet? Dann werden keine Devices angelegt.
Grüße Jörg
Hallo Jörg und danke für Dein Antwort. Autocreate ist an:
Internals:
FUUID 5c65b2b9-f33f-0963-e4be-24d5ff5d7c818b80
NAME autocreate
NOTIFYDEV global
NR 44
NTFY_ORDER 50-autocreate
STATE active
TYPE autocreate
received:
SD_UT:
MD_210R D87EDB:
1783091955.36026 1
Attributes:
disable 0
filelog /opt/fhem/log/%NAME-%Y.log
ignoreTypes (CUL_TCM97001_*)
room AUTOCreate
Irgendwo mache ich wahrscheinlich ein dumme Fehler aber ich komme nicht drauf wo.
Ich habe versucht ein Attribut-Template für den LHT52 zu finden aber keine aus der Liste passt.
Schau mal, ob deine readinglist stimmt. Ich sehe da bei mir (fuer einen LHT65) folgendes:
.../a84041f1475b6d34/event/up:.* { json2nameValue($EVENT,'',$JSONMAP,'object_TempC_SHT|object_Hum_SHT|object_BatV|rxInfo_1_rssi') }
oder ganz einfach
.../a84041f1475b6d34/event/up:.* { json2nameValue($EVENT) }Also statt /data:.* eben /event/up:.*
Oder alternativ die Rohdaten mal im eventmonitor anschauen.
Wir haben hier seit einigen Stunden eine totale DSL Ausfall.
Seither ist mein FHEM extrem langsam und ich kann so gut wie gar nichts machen.
Der Perl process ist nur 4-5% CPU und der PC selbst ist völlig funktionsfähig. Daran liegt es also nicht.
Ich habe einige Internet Dienste (Things Network, Google Kalender) und ich nehme an, das fehlende Internet Verbindung lähmt alles.
Sobald wir wieder Internet haben und FHEM wieder bedienbar ist, teste ich die Device Attributen.
attr global dnsServer 192.168.2.1
liest sich wie, dass der dns nicht gesetzt ist
Danke, das ist einleuchtend.
Ich dachte dass funktioniert nicht, aber ich musste erst auf mein Handy die mobile Daten ausschalten, sonst hat der FHEM Seite hat nicht mehr geladen. Ganz schön kompliziert wenn es mal das DSL erwischt hat...
Irgend etwas stimmt nicht. Das LHT52 sendet alle 20 Minuten aber im Event Monitor sehe davon nichts.
Ich habe das Device gelöscht und hab gehofft es würde eine neue anlegen aber es passiert nichts.
Im LSP8Nv2 habe ich MQTT Forwarding aktiviert und auf der FHEM Server kommen die nachrichten auch an:
mosquitto_sub -h localhost -t "#" -v
dragino-291278/a84041f1475b6d34/data {"deduplicationId":"7c273db3-32c1-4617-b469-48bbfd117cc1","time":"2026-07-05T17:37:53.903391+00:00","deviceInfo":{"tenantId":"52f14cd4-c6f1-4fbd-8f87-4025e1d49242","tenantName":"ChirpStack","applicationId":"e38db283-9121-4148-b90d-612401ef6d6f","applicationName":"local-applications","deviceProfileId":"a720060c-f537-47c6-9d44-a0f5caf9ccec","deviceProfileName":"LHT52","deviceName":"LHT52_1","devEui":"a84041f1475b6d34","deviceClassEnabled":"CLASS_A","tags":{}},"devAddr":"0196ee17","adr":true,"dr":5,"fCnt":365,"fPort":2,"confirmed":false,"data":"CmAB9n//AWpKll8=","object":{"Node_type":"LHT52","Hum_SHT":50.2,"Ext":1.0,"TempC_SHT":26.56,"TempC_DS":327.67,"Systimestamp":1783273055.0},"rxInfo":[{"gatewayId":"a84041fdfe291278","uplinkId":10585,"time":"2026-07-05T17:37:53.903391+00:00","rssi":-63,"snr":13.5,"channel":4,"location":{},"context":"6aFpSA==","metadata":{"region_common_name":"EU868","region_config_id":"eu868"},"crcStatus":"CRC_OK"}],"txInfo":{"frequency":867300000,"modulation":{"lora":{"bandwidth":125000,"spreadingFactor":7,"codeRate":"CR_4_5"}}}}
Im Event Monitor sehe ich aber davon nichts und es wird auch nichts angelegt.
mqttbroker listet aber eine Client mit der 44-er IP und das ist der Dragino Gateway.
Clients:
mqttBroker_192.168.10.44_51725 1
Ich verstehe nicht warum das keine device erzeugt. Irgend etwas übersehe ich aber keine Ahnung was...
PS: Das it der Listing für das mqttBroker_192.168.10.44_51725 Device:
Internals:
BUF
FD 52
NAME mqttBroker_192.168.10.44_51725
NR 10000401
PEER 192.168.10.44
PORT 51725
SNAME mqttBroker
SSL
STATE Connected
TEMPORARY 1
TYPE MQTT2_SERVER
WBCallback
cflags 2
cid
keepalive 60
lastMsgTime 1783273546.94636
protoNum 4
protoTxt MQTT
READINGS:
2026-07-05 19:28:44 state Connected
subscriptions:
Attributes:
room hidden
Falls das Geraet sich mit einer nach mosquitto_pub "riechenden" ClientId (mosqpub|mosq_) anmeldet, dann wird die Nachricht fuer autocreate ignoriert.
Eigentlich sieht der Nachricht vom LHT52 ganz normal aus ohne mosq* Einträge.
Autocreate ist an und ich sehe kein Grund warum es kein Device kreiert.
Ich hab eine andere LoRa Temperatur device durch myTTN, da hat es geklappt aber ich würde gern alles lokal haben.
Ist schon erschreckend wie komplex diese LoRaWan System ist. Für eine Normalsterbliche ist das nicht mehr verständlich...
Ich habe mal bei mir nachgesehen. Dunkel erinnere ich mich das es damals nicht auf Anhieb klappte.
Das habe ich noch als Lesezeichen: https://forum.fhem.de/index.php?topic=103421.0;all#bot (https://forum.fhem.de/index.php?topic=103421.0;all#bot)
In meiner LPS8-V2 war der MQTT-Forwarder zwar mit dem lokalen FHEM-MQTT-Broker konfiguriert, aber ohne Wirkung.
Ich hole mir die Info direkt bei TTN https://eu1.cloud.thethings.network/console (https://eu1.cloud.thethings.network/console)
Dafür habe ich das
defmod TTN MQTT2_CLIENT eu1.cloud.thethings.network:1883
attr TTN autocreate simple
attr TTN keepaliveTimeout 300
attr TTN username wetterstation-xxxxx@ttn
Details müßte ich bei Bedarf noch suchen.
Vielen Dank, das lese ich alles durch...
Ich habe extra das LSP8Nv2 gekauft weil der v1 welches ich als erstes gekauft habe nur durch die Cloud geht und ich wollte alles lokal haben.
(Gerade gestern als wir das DSL aus hatten, war der Außentemperatur Sensor nicht erreichbar.)
ZitatEigentlich sieht der Nachricht vom LHT52 ganz normal aus ohne mosq* Einträge.
Es geht um die CleintID, nicht um Topic oder gar Message.
Den ClientID kennt nur der MQTT Server (in diesem Fall MQTT2_SERVER), wenn die Verbindung ueber ein MQTT2_CLIENT (und damit ueber einen externen MQTT Server) laeuft, dann kennt FHEM die ClientID nicht.
Ich habe eine menge herumprobiert um eine funktionierende Definition zu finden und am Ende hat diese funktioniert:
define LHT52 MQTT2_DEVICE dragino-291278
attr LHT52 IODev mqttBroker
attr LHT52 readingList dragino-291278/a84041f1475b6d34/data:.* { json2nameValue($EVENT) }
Am Ende musste bei der Definition nur das erste Teil des publizierte Namen ("dragino-291278/a84041f1475b6d34/data ") verwendet werden.
So ist es auch bei meine Tasmota Geräte und daher bin ich auf die Idee gekommen.
Somit geht endlich eine lokale LoRaWan system. Danke für Eure input!