Guten Nachmittag
ich nutze seit ein paar Monaten MQTT eigentlich nur zur Verbindung und Kommunikation meiner 3 FHEM Installationen (auf 3 Raspis). Dazu nutze ich folgende Konfiguration:
1. Mosquitto läuft auf einem Raspi
2. MQTT_Broker auf allen 3 Raspi mit Verbindung zum einen Mosquitto
3. Auf allen 3 Raspis läuft auch MQTT_GENERIC_BRIDGE zum übermitteln
Es läuft eigentlich alles auch soweit gut. Ich frage mich nun, nachdem es neue MQTT-Module gibt, ob der Einsatz von MQTT_Broker und MQTT_GENERIC_BRIDGE immer noch die beste und schlankeste Variante ist. Mittlerweile gibt es ja auch MQTT2 .. Was meint ihr?
Dann habe ich noch konkret eine Frage zu MQTT_GENERIC_BRIDGE.
Ich habe meine Lüftung in der FHEM Instanz #1 integriert. Diese kommuniziert mit der FHEM Instanz #2. Irgendwas an der Konfiguration stimmt noch nicht.
Denn wenn ich auf #2 den Befehl "FanSpeed 8" eingebe, kommt das zwar bei #1 an, aber es generiert dann auf #2 wiederum 3 verschiedene Readings. Nämlich:
- "FanSpeed" mit Wert "8"
- "FanSpeed 8" mit keinem Wert
- "set" mit dem Wert "8"
Ich möchte aber eigentlich nur, dass es mir das Reading "FanSpeed" mit dem Wert "8" füllt. Die anderen 2 Werte will ich nicht in meinen Readings. Wie gehe ich das an?
Hier noch die Listings:
Devis Lüftung auf #1
Internals:
BusVersion 2
CFGFN
CHANGED
DEF /dev/ttyUSB0
DeviceName /dev/ttyUSB0@9600
FD 18
FUUID 5c9bcd52-f33f-97bd-eedc-3163d597355c0f19
MR_Flags6 00000000
MR_Select 00001001
NAME Ventilation
NR 4451
PARTIAL
STATE 6
TYPE Vallox
READINGS:
2019-03-27 20:21:59 CO2AdjustState 0
2019-03-27 20:22:00 CO2High 0
2019-03-27 20:22:00 CO2Low 0
2019-03-27 20:21:55 EfficiencyAverage 0
2019-03-27 20:21:55 EfficiencyIn 0
2019-03-27 20:21:55 EfficiencyOut 0
2019-04-07 14:00:36 FanSpeed 6
2019-03-27 20:21:59 FaultIndicator 0
2019-03-27 20:21:59 FilterGuardIndicator 0
2019-03-27 20:21:59 FireplaceBoosterStatus 0
2019-03-27 20:21:59 FireplaceSwitchActivation 0
2019-03-27 20:21:59 HeatingIndicator 0
2019-03-27 20:21:59 HeatingState 1
2019-03-27 20:21:59 PowerState 1
2019-03-27 20:21:59 RHAdjustState 0
2019-03-27 20:21:59 RemoteMonitoringControl 0
2019-03-27 20:21:59 ServiceReminderIndicator 0
2019-03-31 00:09:40 ServiceReminderMonths 12
2019-04-07 14:03:15 TempExhaust 11
2019-04-05 20:19:32 TempIncoming 19
2019-04-04 05:30:19 TempInside 22
2019-04-06 20:54:03 TempOutside 9
2019-03-27 20:21:55 state opened
Attributes:
event-on-change-reading .*
mqttPublish *:topic={"home/Waschkueche/Lueftung/$reading"}
mqttSubscribe FanSpeed|HeatingState|PowerState:stopic=home/Waschkueche/Lueftung/set
room Lueftung
stateFormat FanSpeed
timestamp-on-change-reading .*
Und hier der Lüftungs-dummy auf #2
Internals:
FUUID 5c954c73-f33f-8001-0a95-98ae900618acd360
NAME Lueftung
NR 647
STATE 6
TYPE dummy
Helper:
DBLOG:
FanSpeed:
Logging:
TIME 1554638436.24975
VALUE 6
TempExhaust:
Logging:
TIME 1554638595.67844
VALUE 11
TempOutside:
Logging:
TIME 1554576843.92981
VALUE 9
set:
Logging:
TIME 1554638341.69541
VALUE 8
READINGS:
2019-04-07 14:00:36 FanSpeed 6
2019-04-07 14:00:36 FanSpeed 6
2019-04-07 13:59:01 FanSpeed 8
2019-03-31 00:09:40 ServiceReminderMonths 12
2019-04-07 14:03:15 TempExhaust 11
2019-04-05 20:19:32 TempIncoming 19
2019-03-30 23:51:43 TempInside 23
2019-04-06 20:54:03 TempOutside 9
2019-04-07 13:59:01 set 8
Attributes:
event-on-change-reading .*
mqttPublish FanSpeed|HeatingState|PowerState:topic={"home/Waschkueche/Lueftung/set"}
mqttSubscribe *:topic={"home/Waschkueche/Lueftung/$reading"}
readingList FanSpeed PowerState HeatingState
room 06_Remote
setList FanSpeed PowerState HeatingState
Kann mir hier jemand helfen? Herzlichen Dank.
lg c
Moin,
da das setup grundsätzlich funktioniert, würde ich das hier lassen, wie es ist. Die MQTT2-Sachen sind vor allem dann einfacher zu handhaben, wenn man in das Thema einsteigt und MQTT "nebenbei" macht. Aber über diese Einstiegs-Phase scheinst du raus zu sein, und in einem verteilten FHEM-Setup ist auch der zusätzliche externe Dienst eher "verschmerzbar", wie wenn man nur schnell mal ein paar tasmota-Devices einbinden will.
Was die konkreten Probleme mit GenericBridge angeht, würde ich tippen, dass du das ganze Event versendest, aber in der Payload eigentlich nur sowas wie "$value" stehen sollte. Wenn du in der cref bzw. den Beispielen nichts passendes findest, bitte den MQTT-Verkehr mal mitlesen, wenn du da was schaltest und das hier auch posten.
@choetzu
mir fällt auf dass bei dir ( Device Lüftung auf #1) keine Trennung zwischen Readings und state beim publishen erfolgt.
In den Beispielen von Hexenmeister sieht man schön diese trennung.
https://forum.fhem.de/index.php/topic,91642.msg841371.html#msg841371
defmod <actor-device-name> CUL_HM xxxxxx
attr <actor-device-name> model HM-LC-Dim1TPBU-FM
...
attr <actor-device-name> mqttPublish pct:topic=haus/wohnzimmer/licht/level state:topi=haus/wohnzimmer/licht/state
attr <actor-device-name> mqttSubscribe pct:stopic=haus/wohnzimmer/licht/set
dann brauchst du bei Lüftungs-dummy auf #2 auch den state nicht in der readingList.
Wenn FanSpeed wie es aussieht state ist, dann müsste die readingList nur PowerState HeatingState beinhalten.
In den Beispielen von Hexenmeister sind eigentlich alle Zusammenhänge ersichtlich.
Und zur Info, bei mir läuft Mosquitto auf der Synology, 3 BBB's mit der Generic-Bridge kommunizieren in allen Richtungen miteinender
und ca. 10 Sonoff-Tasmota Devices + Home Status Display.
Billy