FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: Aladin222 am 13 August 2023, 11:10:05

Titel: MQTT2 Device angelegt ,zeigt aber ???
Beitrag von: Aladin222 am 13 August 2023, 11:10:05
Hallo zusammen ,
vor einiger Zeit hatte ich meine entfernten 1wire Temperatur Sensoren über ein fhem2fhem in das produktive Fhem übermittelt.
Dabei handelte es sich um einen Raspberry der im Keller lief ( inkl. 2. installiertes Fhem für das fhem2fhem ) .
Um es einfacher und evtl auch vernünftiger zu gestalten versuche ich mich gerade an MQTT

Der Raspi im Keller liest meine 1wire Temperatursensoren brav aus .

auf dem Raps erstellte bash rufe ich über Cronjob alle 5 min auf
#!/bin/bash
jacuzzitemp=$(cat /sys/bus/w1/devices/28-00000554757c /w1_slave | grep -E -o "t=[0-9]{0,5}" | cut -c 3-)
jacuzzitempc=$(bc -l <<< "$jacuzzitemp/1000" | cut -c -6)

mosquitto_pub -h 192.168.178.26 -t /SmartHome/Keller/Temperatur -m $jacuzzitempc

Im Fhem selbst habe ich das MQTT2-Server device angelegt und es wird auch ein Device ( aus dem Keller ) angelegt :

Internals:
   CID        m2s
   DEF        m2s
   FUUID      64d68fbe-f33f-9812-1489-3ac767f773332b2f
   IODev      m2s
   LASTInputDev m2s
   MSGCNT     2
   NAME       Jacuzzitemperatur
   NR         1014
   STATE      ???
   TYPE       MQTT2_DEVICE
   eventCount 2
   m2s_CONN   m2s_192.168.178.24_35704
   m2s_MSGCNT 2
   m2s_TIME   2023-08-13 11:05:02
   READINGS:
     2023-08-13 10:56:31   IODev           m2s
     2023-08-13 11:05:02   Temperatur      37.187
Attributes:
   readingList m2s:/Jacuzzi/Temperatur:.* Temperatur
   room       MQTT2_DEVICE

Auch die Temperatur wird in ein Reading geschrieben !
Aber als STATE sehe ich nur ??? - wie bekomme ich es nun hin , das mir die Temperatur direkt angezeigt wird ?
Titel: Aw: MQTT2 Device angelegt ,zeigt aber ???
Beitrag von: rudolfkoenig am 13 August 2023, 11:31:01
mosquitto_pub generiert per Voreinstellung zufaellige ClientIDs, was mit autocreate fuer jeden moquitto_pub Aufruf zu jeweils einem neuen MQTT2_DEVICE fuehren wuerde.
Deswegen werden fuer autocreate clientIDs, die mit mosqpub oder mosq_ beginnen, ignoriert.

Loesung: wenn man autocreate haben will, mit der Option -i einen festen/anderen ClientID setzen.
Titel: Aw: MQTT2 Device angelegt ,zeigt aber ???
Beitrag von: Aladin222 am 13 August 2023, 13:04:01
Erstmal vielen Dank für die Antwort !
Auch wenn ich zugeben muss , das ich bis jetzt nicht wirklich viel verstanden habe ....MQTT ist ein absolut neues Thema für mich .

Wenn ich dich richtig verstanden habe ,dürfte das was ich gemacht habe ,eigentlich nicht funktionieren ,oder ?
script auf dem Raps ,welches alle 5min per Cron läuft:
#!/bin/bash
jacuzzitemp=$(cat /sys/bus/w1/devices/28-00000554757c/w1_slave | grep -E -o "t=[0-9]{0,5}" | cut -c 3-)
jacuzzitempc=$(bc -l <<< "$jacuzzitemp/1000" | cut -c -6)

aussentemp=$(cat /sys/bus/w1/devices/28-0000055410a4/w1_slave | grep -E -o "t=[0-9]{0,5}" | cut -c 3-)
aussentempc=$(bc -l <<< "$aussentemp/1000" | cut -c -6)

kellertemp=$(cat /sys/bus/w1/devices/28-00000557f7da/w1_slave | grep -E -o "t=[0-9]{0,5}" | cut -c 3-)
kellertempc=$(bc -l <<< "$kellertemp/1000" | cut -c -6)

mosquitto_pub -h 192.168.178.26 -t /Jacuzzi/Jacuzzitemperatur -m $jacuzzitempc
mosquitto_pub -h 192.168.178.26 -t /aussen/Aussentemperatur -m  $aussentempc
mosquitto_pub -h 192.168.178.26 -t /keller/Kellertemperatur -m  $kellertempc


Ergebnis auf Fhem:

list 1WireKeller

Internals:
   CID        m2s
   DEF        m2s
   FUUID      64d68fbe-f33f-9812-1489-3ac767f773332b2f
   IODev      m2s
   LASTInputDev m2s
   MSGCNT     35
   NAME       1WireKeller
   NR         1014
   STATE      ???
   TYPE       MQTT2_DEVICE
   eventCount 41
   m2s_CONN   m2s_192.168.178.24_47236
   m2s_MSGCNT 35
   m2s_TIME   2023-08-13 12:55:04
   OLDREADINGS:
   READINGS:
     2023-08-13 12:55:04   Aussentemperatur 21.750
     2023-08-13 10:56:31   IODev           m2s
     2023-08-13 12:55:04   Jacuzzitemperatur 37.562
     2023-08-13 12:55:04   Kellertemperatur 21.500
Attributes:
   readingList m2s:/aussen/Aussentemperatur:.* Aussentemperatur
m2s:/Jacuzzi/Jacuzzitemperatur:.* Jacuzzitemperatur
m2s:/keller/Kellertemperatur:.* Kellertemperatur
   room       MQTT2_DEVICE

die Readings werden alle 5min brav importiert .
Wenn ich dich richtig verstanden habe , müsste es alle 5min neue Devices anlegen , oder ? Tut es aber nicht .
Aber ich muss mich nun in MQTT einlesen ...scheint ein spannendes Thema zu sein ...
Allerdings läuft mir gerade ein wenig die Zeit davon , da ich Fhem gerade auf Proxmox VM umziehe und es für die Frau erstmal laufen muss :-)
In diesem Zug habe ich nur Fhem2Fhem erstmal entsorgt
Titel: Aw: MQTT2 Device angelegt ,zeigt aber ???
Beitrag von: rudolfkoenig am 13 August 2023, 21:48:46
ZitatWenn ich dich richtig verstanden habe , müsste es alle 5min neue Devices anlegen , oder ? Tut es aber nicht .
Es wird nur dann was Neues angelegt, wenn kein passendes ClientID oder readingsList-Eintrag gefunden wurde. In deinem Fall deckt readingsList die drei Faelle ab.