Ich habe bei mir ebusd laufen. Nun habe ich seinerzeit das automatisch generierte MQTT-Device umbenannt und nach meinen Bedürfnissen angepasst.
Der MQTT2-Server steht auf autocreate, was bei neuen MQTT-Devices ganz praktisch ist. Jedoch werden auch ständig neue Versionen vom ebusd-MQTT2-Device erzeugt z. Zt. MQTT2_ebusd_3.4_460, die dann zusätzlich zu meinem ursprünglichen MQTT-Device bedient werden - das muss nicht sein.
Kann man das Erzeugen neuer MQTT-Versionen auf der ebusd-Seite abstellen? Autocreate auf der FHEM-Seite wollte ich eigentlich belassen.
Vermutlich sind das keine "neuen" Infos von der ebus-Seite her, sondern es handelt sich eher um irgendwas "kaputtes", das aus der Fehlinterpretation der Topics via bridgeRegexp herrührt (da kommen von der ebus-Seite her uU. auch Sonderzeichen usw.).
Ohne mehr Details ist das aber schwer zu beurteilen...
Ergaenzung: Eine neue MQTT2_DEVICE Instanz wird angelegt, falls keine Existierende das aktuelle Topic kennt, und auch keine Instanz mit der aktuellen ClientID existiert.
bridgeRegexp "erfindet" aus der Topic/Message-Kombination eine neue ClientID, und ordnet so die Topics unterschiedlichen Instanzen zu.
Zitat von: rudolfkoenig am 22 März 2022, 16:42:20
Ergaenzung: Eine neue MQTT2_DEVICE Instanz wird angelegt, falls keine Existierende das aktuelle Topic kennt, und auch keine Instanz mit der aktuellen ClientID existiert.
bridgeRegexp "erfindet" aus der Topic/Message-Kombination eine neue ClientID, und ordnet so die Topics unterschiedlichen Instanzen zu.
Das würde also bedeuten niemals MQTT2_Devices auf der FHEM-Seite selbst umbenennen, sondern auf der Senderseite den Namen anpassen.
Ich frage mich nur: Warum wird das umbenannte Device zusätzlich zum neu angelegten MQTT-Device weiter bedient? Offensichtlich ist es ja dem MQTT-Server noch bekannt.
Zitat von: Damian am 22 März 2022, 16:54:14
Das würde also bedeuten niemals MQTT2_Devices auf der FHEM-Seite selbst umbenennen, sondern auf der Senderseite den Namen anpassen.
Nein, entscheidend ist die (Pseudo-) CID, nicht der Name.
Zitat
Ich frage mich nur: Warum wird das umbenannte Device zusätzlich zum neu angelegten MQTT-Device weiter bedient? Offensichtlich ist es ja dem MQTT-Server noch bekannt.
Alle Instanzen mit passender readingList bekommen die Infos. Es sollte aber mit bereits vorhandenem passende readingList-Eintrag (unabhängig von der Frage, wo der "hängt" (!)) niemals zu einer autocreate-Aktion kommen.
(Insbesondere) falls es um "Irrläufer" geht, kannst du auch einfach bridgeRegexp löschen, damit diese Topics ggf. einfach beim "Stammdevice" verbleiben.
Oder auch: zeig uns mehr Daten, dann koennen wir Dir besser helfen :)
Zitat von: rudolfkoenig am 22 März 2022, 17:54:25
Oder auch: zeig uns mehr Daten, dann koennen wir Dir besser helfen :)
hier das umbenannte und angepasste MQTT-Device:
Internals:
CID ebusd_bai
DEF ebusd_bai
DEVICETOPIC vaillant
FUUID 5e824f68-f33f-30f6-e98d-2bfb72be2975d5a6
IODev MQTT2_FHEM_Server
LASTInputDev MQTT2_FHEM_Server
MQTT2_FHEM_Server_CONN MQTT2_FHEM_Server_192.168.178.130_52494
MQTT2_FHEM_Server_MSGCNT 65
MQTT2_FHEM_Server_TIME 2022-03-22 17:59:17
MSGCNT 65
NAME vaillant
NR 597
STATE WarmwasserSollTemp
TYPE MQTT2_DEVICE
JSONMAP:
FanSpeed_0_name 0
FanSpeed_0_value LuefterDrehzahl
Flame_0_name 0
Flame_0_value Flame
FlowTempDesired_temp_value VorlaufSoll
Hc1HeatCurve_0_name 0
Hc1HeatCurve_0_value HeizKennlinie
HolidayEndPeriod_hto_value FerienEnde
HolidayStartPeriod_hfrom_value FerienBeginn
HwcTempDesired_tempv_value WarmwasserSollTemp
PrimaryCircuitFlowrate_uin100_value Umlaufmenge
PumpPowerDesired_0_name 0
PumpPowerDesired_0_value PumpenLeistungSoll
PumpPower_0_name 0
PumpPower_0_value PumpenLeistung
Status01_0_name 0
Status01_0_value Vorlauf
Status01_1_name 0
Status01_1_value Ruecklauf
Status01_2_name 0
Status01_2_value Aussentemp
Status01_3_name 0
Status01_3_value Warmwasser
Status01_4_name 0
Status01_4_value WWSpeicher
Status01_5_name 0
Status01_5_value Pumpenstatus
Storageloadpump_percent0_value Storageloadpump
WaterPressure_pressv_value Wasserdruck
z1DayTemp_tempv_value TagSolltemp
z1NightTemp_tempv_value NachtSolltemp
z1OpMode_opmode_value Heizmodus
READINGS:
2022-03-22 17:59:17 Aussentemp 17.375
2022-03-22 17:58:38 DateTime_bdate_value -.-.-
2022-03-22 17:58:38 DateTime_btime_value -:-:-
2022-03-22 17:58:38 DateTime_dcfstate_value nosignal
2022-03-22 17:58:38 DateTime_temp2_value 17.375
2022-03-22 17:31:02 FanHours_hoursum2_value 5073
2022-03-21 19:14:40 FanSpeed_0_name
2022-03-21 19:14:40 FanSpeed_0_value 0
2022-03-22 00:01:32 FerienBeginn 01.01.2015
2022-03-22 00:01:32 FerienEnde 01.01.2015
2022-03-22 17:59:02 Flame off
2022-03-22 17:31:02 HcHours_hoursum2_value 4254
2022-03-22 00:01:32 HcStarts_0_name
2022-03-22 00:01:32 HcStarts_0_value 4400
2022-03-06 19:50:26 HeizKennlinie 0.5
2022-03-22 00:01:37 Heizmodus auto
2022-03-22 17:31:02 HwcHours_hoursum2_value 773
2022-03-22 00:01:32 HwcStarts_0_name
2022-03-22 00:01:32 HwcStarts_0_value 15300
2022-01-08 20:10:14 HwcTempDesired_tempv_value 47.0
2022-03-22 17:56:50 IODev MQTT2_FHEM_Server
2022-03-22 17:59:02 LuefterDrehzahl 0
2022-03-22 00:01:32 NachtSolltemp 15
2022-03-22 00:01:37 OpMode_opmode_value auto
2022-03-22 17:31:02 PrEnergySumHc1_0_name
2022-03-22 17:31:02 PrEnergySumHc1_0_value 2161267054
2022-03-22 17:31:02 PrEnergySumHwc1_0_name
2022-03-22 17:31:02 PrEnergySumHwc1_0_value 722716636
2021-12-03 23:12:55 PumpHours_hoursum2_value 14798
2022-03-22 17:59:02 PumpenLeistung 15
2022-01-26 19:44:31 PumpenLeistungSoll auto
2022-03-22 17:59:17 Pumpenstatus off
2022-03-22 17:59:17 Ruecklauf 22.0
2022-01-08 19:43:23 StorageExitTemp_sensor_value ok
2022-01-08 19:43:23 StorageExitTemp_temp_value 39.88
2022-01-08 19:16:08 StorageTempDesired_temp_value 50.00
2021-12-03 23:12:55 Storageloadpump 0
2022-03-22 00:01:32 TagSolltemp 22
2022-03-08 19:17:39 Time_0_name
2022-03-08 19:17:39 Time_0_value 19:17:03
2022-03-22 17:59:02 Umlaufmenge 10.95
2022-03-22 17:59:17 Vorlauf 23.0
2021-12-03 23:12:55 VorlaufSoll 25.00
2022-03-22 17:59:17 WWSpeicher 48.0
2022-03-22 17:59:17 Warmwasser 42.5
2022-03-08 21:55:44 WarmwasserSollTemp 50.0
2022-03-22 00:01:32 Wasserdruck 1
2022-03-22 17:58:38 outsidetemp_temp2_value 17.375
2022-03-22 17:57:07 running true
2022-03-22 17:57:06 signal true
2022-03-08 21:55:38 state WarmwasserSollTemp
2022-03-22 17:59:17 total_h 28839.8369
2022-03-22 17:59:17 total_hc 21612.67054
2022-03-22 17:59:17 total_hwc 7227.16636
2022-03-08 17:50:59 updatecheck "version 22.2 available"
2022-03-22 17:59:17 uptime 1210235
2022-03-22 17:58:37 vdatetime_date_value 22.03.2022
2022-03-22 17:58:37 vdatetime_time_value 17:57:58
2022-03-22 17:57:07 version "ebusd 3.4.v3.3-51-g57eae05"
2022-03-15 21:01:06 z1Timer.Friday_0_name from
2022-03-15 21:01:06 z1Timer.Friday_0_value 04:00
2022-03-15 21:01:06 z1Timer.Friday_1_name to
2022-03-15 21:01:06 z1Timer.Friday_1_value 08:00
2022-03-15 21:01:06 z1Timer.Friday_2_name from
2022-03-15 21:01:06 z1Timer.Friday_2_value 12:00
2022-03-15 21:01:06 z1Timer.Friday_3_name to
2022-03-15 21:01:06 z1Timer.Friday_3_value 21:30
2022-03-15 21:01:06 z1Timer.Friday_4_name from
2022-03-15 21:01:06 z1Timer.Friday_4_value -:-
2022-03-15 21:01:06 z1Timer.Friday_5_name to
2022-03-15 21:01:06 z1Timer.Friday_5_value -:-
2022-03-15 21:01:06 z1Timer.Monday_0_name from
2022-03-15 21:01:06 z1Timer.Monday_0_value 04:00
2022-03-15 21:01:06 z1Timer.Monday_1_name to
2022-03-15 21:01:06 z1Timer.Monday_1_value 08:00
2022-03-15 21:01:06 z1Timer.Monday_2_name from
2022-03-15 21:01:06 z1Timer.Monday_2_value 12:00
2022-03-15 21:01:06 z1Timer.Monday_3_name to
2022-03-15 21:01:06 z1Timer.Monday_3_value 21:00
2022-03-15 21:01:06 z1Timer.Monday_4_name from
2022-03-15 21:01:06 z1Timer.Monday_4_value -:-
2022-03-15 21:01:06 z1Timer.Monday_5_name to
2022-03-15 21:01:06 z1Timer.Monday_5_value -:-
2022-03-15 21:01:06 z1Timer.Saturday_0_name from
2022-03-15 21:01:06 z1Timer.Saturday_0_value 05:00
2022-03-15 21:01:06 z1Timer.Saturday_1_name to
2022-03-15 21:01:06 z1Timer.Saturday_1_value 09:00
2022-03-15 21:01:06 z1Timer.Saturday_2_name from
2022-03-15 21:01:06 z1Timer.Saturday_2_value 12:00
2022-03-15 21:01:06 z1Timer.Saturday_3_name to
2022-03-15 21:01:06 z1Timer.Saturday_3_value 21:30
2022-03-15 21:01:06 z1Timer.Saturday_4_name from
2022-03-15 21:01:06 z1Timer.Saturday_4_value -:-
2022-03-15 21:01:06 z1Timer.Saturday_5_name to
2022-03-15 21:01:06 z1Timer.Saturday_5_value -:-
2022-03-15 21:01:06 z1Timer.Sunday_0_name from
2022-03-15 21:01:06 z1Timer.Sunday_0_value 05:00
2022-03-15 21:01:06 z1Timer.Sunday_1_name to
2022-03-15 21:01:06 z1Timer.Sunday_1_value 09:00
2022-03-15 21:01:06 z1Timer.Sunday_2_name from
2022-03-15 21:01:06 z1Timer.Sunday_2_value 12:00
2022-03-15 21:01:06 z1Timer.Sunday_3_name to
2022-03-15 21:01:06 z1Timer.Sunday_3_value 21:30
2022-03-15 21:01:06 z1Timer.Sunday_4_name from
2022-03-15 21:01:06 z1Timer.Sunday_4_value -:-
2022-03-15 21:01:06 z1Timer.Sunday_5_name to
2022-03-15 21:01:06 z1Timer.Sunday_5_value -:-
2022-03-15 21:01:06 z1Timer.Thursday_0_name from
2022-03-15 21:01:06 z1Timer.Thursday_0_value 04:00
2022-03-15 21:01:06 z1Timer.Thursday_1_name to
2022-03-15 21:01:06 z1Timer.Thursday_1_value 08:00
2022-03-15 21:01:06 z1Timer.Thursday_2_name from
2022-03-15 21:01:06 z1Timer.Thursday_2_value 12:00
2022-03-15 21:01:06 z1Timer.Thursday_3_name to
2022-03-15 21:01:06 z1Timer.Thursday_3_value 21:00
2022-03-15 21:01:06 z1Timer.Thursday_4_name from
2022-03-15 21:01:06 z1Timer.Thursday_4_value -:-
2022-03-15 21:01:06 z1Timer.Thursday_5_name to
2022-03-15 21:01:06 z1Timer.Thursday_5_value -:-
2022-03-15 21:01:06 z1Timer.Tuesday_0_name from
2022-03-15 21:01:06 z1Timer.Tuesday_0_value 04:00
2022-03-15 21:01:06 z1Timer.Tuesday_1_name to
2022-03-15 21:01:06 z1Timer.Tuesday_1_value 08:00
2022-03-15 21:01:06 z1Timer.Tuesday_2_name from
2022-03-15 21:01:06 z1Timer.Tuesday_2_value 12:00
2022-03-15 21:01:06 z1Timer.Tuesday_3_name to
2022-03-15 21:01:06 z1Timer.Tuesday_3_value 21:00
2022-03-15 21:01:06 z1Timer.Tuesday_4_name from
2022-03-15 21:01:06 z1Timer.Tuesday_4_value -:-
2022-03-15 21:01:06 z1Timer.Tuesday_5_name to
2022-03-15 21:01:06 z1Timer.Tuesday_5_value -:-
2022-03-15 21:01:06 z1Timer.Wednesday_0_name from
2022-03-15 21:01:06 z1Timer.Wednesday_0_value 04:00
2022-03-15 21:01:06 z1Timer.Wednesday_1_name to
2022-03-15 21:01:06 z1Timer.Wednesday_1_value 08:00
2022-03-15 21:01:06 z1Timer.Wednesday_2_name from
2022-03-15 21:01:06 z1Timer.Wednesday_2_value 12:00
2022-03-15 21:01:06 z1Timer.Wednesday_3_name to
2022-03-15 21:01:06 z1Timer.Wednesday_3_value 21:00
2022-03-15 21:01:06 z1Timer.Wednesday_4_name from
2022-03-15 21:01:06 z1Timer.Wednesday_4_value -:-
2022-03-15 21:01:06 z1Timer.Wednesday_5_name to
2022-03-15 21:01:06 z1Timer.Wednesday_5_value -:-
Attributes:
IODev MQTT2_FHEM_Server
devStateStyle style="text-align:left"
event-on-change-reading .*
group Therme
icon sani_boiler_temp
jsonMap Status01_0_value:Vorlauf Status01_0_name:0
Status01_1_value:Ruecklauf Status01_1_name:0
Status01_2_value:Aussentemp Status01_2_name:0
Status01_3_value:Warmwasser Status01_3_name:0
Status01_4_value:WWSpeicher Status01_4_name:0
Status01_5_value:Pumpenstatus Status01_5_name:0
Flame_0_value:Flame Flame_0_name:0
Storageloadpump_percent0_value:Storageloadpump
HwcTempDesired_tempv_value:WarmwasserSollTemp
FlowTempDesired_temp_value:VorlaufSoll
Hc1HeatCurve_0_value:HeizKennlinie Hc1HeatCurve_0_name:0
HolidayEndPeriod_hto_value:FerienEnde
HolidayStartPeriod_hfrom_value:FerienBeginn
PumpPowerDesired_0_value:PumpenLeistungSoll PumpPowerDesired_0_name:0
PumpPower_0_value:PumpenLeistung PumpPower_0_name:0
PrimaryCircuitFlowrate_uin100_value:Umlaufmenge
z1DayTemp_tempv_value:TagSolltemp
z1NightTemp_tempv_value:NachtSolltemp
FanSpeed_0_value:LuefterDrehzahl FanSpeed_0_name:0
WaterPressure_pressv_value:Wasserdruck
z1OpMode_opmode_value:Heizmodus
model eBus_bai_jsonmap
readingList ebusd/bai/PumpHours:.* { json2nameValue($EVENT, 'PumpHours_', $JSONMAP) }
ebusd/bai/WPPostrunTime:.* { json2nameValue($EVENT, 'WPPostrunTime_', $JSONMAP) }
ebusd/bai/PowerValue:.* { json2nameValue($EVENT, 'PowerValue_', $JSONMAP) }
ebusd/bai/StorageExitTemp:.* { json2nameValue($EVENT, 'StorageExitTemp_', $JSONMAP) }
ebusd/bai/StorageTempDesired:.* { json2nameValue($EVENT, 'StorageTempDesired_', $JSONMAP) }
ebusd/global/version:.* version
ebusd/global/running:.* running
ebusd/scan\x5c\x2e08/:.* { json2nameValue($EVENT, 'scan.08_', $JSONMAP) }
ebusd/scan\x5c\x2e08/id:.* { json2nameValue($EVENT, 'id_', $JSONMAP) }
ebusd/global/uptime:.* uptime
ebusd/global/signal:.* signal
ebusd/scan\x5c\x2e15/:.* { json2nameValue($EVENT, 'scan.15_', $JSONMAP) }
ebusd/scan\x5c\x2e15/id:.* { json2nameValue($EVENT, 'id_', $JSONMAP) }
ebusd/bai/FanSpeed:.* { json2nameValue($EVENT, 'FanSpeed_', $JSONMAP) }
ebusd/bai/PumpPower:.* { json2nameValue($EVENT, 'PumpPower_', $JSONMAP) }
ebusd/broadcast/vdatetime:.* { json2nameValue($EVENT, 'vdatetime_', $JSONMAP) }
ebusd/broadcast/outsidetemp:.* { json2nameValue($EVENT, 'outsidetemp_', $JSONMAP) }
ebusd/bai/DateTime:.* { json2nameValue($EVENT, 'DateTime_', $JSONMAP) }
ebusd/global/updatecheck:.* updatecheck
ebusd/bai/DCFTimeDate:.* { json2nameValue($EVENT, 'DCFTimeDate_', $JSONMAP) }
ebusd/bai/PumpPowerDesired:.* { json2nameValue($EVENT, 'PumpPowerDesired_', $JSONMAP) }
ebusd/bai/HwcImpellorSwitch:.* { json2nameValue($EVENT, 'HwcImpellorSwitch_', $JSONMAP) }
ebusd/bai/ReturnTemp:.* { json2nameValue($EVENT, 'ReturnTemp_', $JSONMAP) }
ebusd/700/HwcStorageTempBottom:.* { json2nameValue($EVENT, 'HwcStorageTempBottom_', $JSONMAP) }
ebusd/700/HwcTempDesired:.* { json2nameValue($EVENT, 'HwcTempDesired_', $JSONMAP) }
ebusd/bai/FanPWMSum:.* { json2nameValue($EVENT, 'FanPWMSum_', $JSONMAP) }
ebusd/bai/HcHours:.* { json2nameValue($EVENT, 'HcHours_', $JSONMAP) }
ebusd/bai/HoursTillService:.* { json2nameValue($EVENT, 'HoursTillService_', $JSONMAP) }
ebusd/bai/PumpHwcFlowNumber:.* { json2nameValue($EVENT, 'PumpHwcFlowNumber_', $JSONMAP) }
ebusd/bai/WP:.* { json2nameValue($EVENT, 'WP_', $JSONMAP) }
ebusd/700/WaterPressure:.* { json2nameValue($EVENT, 'WaterPressure_', $JSONMAP) }
ebusd/bai/PrimaryCircuitFlowrate:.* { json2nameValue($EVENT, 'PrimaryCircuitFlowrate_', $JSONMAP) }
ebusd/bai/Flame:.* { json2nameValue($EVENT, 'Flame_', $JSONMAP) }
ebusd/bai/Storageloadpump:.* { json2nameValue($EVENT, 'Storageloadpump_', $JSONMAP) }
ebusd/bai/Status01:.* { json2nameValue($EVENT, 'Status01_', $JSONMAP) }
ebusd/bai/FlowTempDesired:.* { json2nameValue($EVENT, 'FlowTempDesired_', $JSONMAP) }
ebusd/700/FrostOverRideTime:.* { json2nameValue($EVENT, 'FrostOverRideTime_', $JSONMAP) }
ebusd/700/Hc1ActualFlowTempDesired:.* { json2nameValue($EVENT, 'Hc1ActualFlowTempDesired_', $JSONMAP) }
ebusd/700/Hc1AutoOffMode:.* { json2nameValue($EVENT, 'Hc1AutoOffMode_', $JSONMAP) }
ebusd/700/Hc1CircuitType:.* { json2nameValue($EVENT, 'Hc1CircuitType_', $JSONMAP) }
ebusd/700/Hc1HeatCurve:.* { json2nameValue($EVENT, 'Hc1HeatCurve_', $JSONMAP) }
ebusd/700/HcStorageTempBottom:.* { json2nameValue($EVENT, 'HcStorageTempBottom_', $JSONMAP) }
ebusd/700/HcStorageTempTop:.* { json2nameValue($EVENT, 'HcStorageTempTop_', $JSONMAP) }
ebusd/700/HolidayTemp:.* { json2nameValue($EVENT, 'HolidayTemp_', $JSONMAP) }
ebusd/700/OpMode:.* { json2nameValue($EVENT, 'OpMode_', $JSONMAP) }
ebusd/700/z1RoomTemp:.* { json2nameValue($EVENT, 'z1RoomTemp_', $JSONMAP) }
ebusd/700/z1SFMode:.* { json2nameValue($EVENT, 'z1SFMode_', $JSONMAP) }
ebusd/700/z1OpMode:.* { json2nameValue($EVENT, 'z1OpMode_', $JSONMAP) }
ebusd/700/Time:.* { json2nameValue($EVENT, 'Time_', $JSONMAP) }
ebusd/bai/EbusVoltage:.* { json2nameValue($EVENT, 'EbusVoltage_', $JSONMAP) }
ebusd/bai/extWP:.* { json2nameValue($EVENT, 'extWP_', $JSONMAP) }
ebusd/bai/FanStarts:.* { json2nameValue($EVENT, 'FanStarts_', $JSONMAP) }
ebusd/700/z1NightTemp:.* { json2nameValue($EVENT, 'z1NightTemp_', $JSONMAP) }
ebusd/700/z1DayTemp:.* { json2nameValue($EVENT, 'z1DayTemp_', $JSONMAP) }
ebusd/700/HolidayStartPeriod:.* { json2nameValue($EVENT, 'HolidayStartPeriod_', $JSONMAP) }
ebusd/700/HolidayEndPeriod:.* { json2nameValue($EVENT, 'HolidayEndPeriod_', $JSONMAP) }
ebusd/700/z1Timer.Monday:.* { json2nameValue($EVENT, 'z1Timer.Monday_', $JSONMAP) }
ebusd/700/z1Timer.Tuesday:.* { json2nameValue($EVENT, 'z1Timer.Tuesday_', $JSONMAP) }
ebusd/700/z1Timer.Wednesday:.* { json2nameValue($EVENT, 'z1Timer.Wednesday_', $JSONMAP) }
ebusd/700/z1Timer.Thursday:.* { json2nameValue($EVENT, 'z1Timer.Thursday_', $JSONMAP) }
ebusd/700/z1Timer.Friday:.* { json2nameValue($EVENT, 'z1Timer.Friday_', $JSONMAP) }
ebusd/700/z1Timer.Sunday:.* { json2nameValue($EVENT, 'z1Timer.Sunday_', $JSONMAP) }
ebusd/700/z1Timer.Saturday:.* { json2nameValue($EVENT, 'z1Timer.Saturday_', $JSONMAP) }
ebusd/bai/PrEnergyCountHc1:.* { json2nameValue($EVENT, 'PrEnergyCountHc1_', $JSONMAP) }
ebusd/bai/PrEnergyCountHwc1:.* { json2nameValue($EVENT, 'PrEnergyCountHwc1_', $JSONMAP) }
ebusd/bai/PrEnergySumHc1:.* { json2nameValue($EVENT, 'PrEnergySumHc1_', $JSONMAP) }
ebusd/bai/PrEnergySumHwc1:.* { json2nameValue($EVENT, 'PrEnergySumHwc1_', $JSONMAP) }
ebusd/bai/FanHours:.* { json2nameValue($EVENT, 'FanHours_', $JSONMAP) }
ebusd/bai/HcHours:.* { json2nameValue($EVENT, 'HcHours_', $JSONMAP) }
ebusd/bai/HwcHours:.* { json2nameValue($EVENT, 'HwcHours_', $JSONMAP) }
ebusd/bai/HcStarts:.* { json2nameValue($EVENT, 'HcStarts_', $JSONMAP) }
ebusd/bai/HwcStarts:.* { json2nameValue($EVENT, 'HwcStarts_', $JSONMAP) }
room Ebus,MQTT2_DEVICE
setList HeizKennlinie:selectnumbers,0,.1,2,1,lin ebusd/700/Hc1HeatCurve/set $EVTPART1
TagSolltemp:selectnumbers,15,1,25,1,lin ebusd/700/z1DayTemp/set $EVTPART1
NachtSolltemp:selectnumbers,15,1,25,1,lin ebusd/700/z1NightTemp/set $EVTPART1
PumpenLeistungSoll:selectnumbers,0,1,8,1,lin ebusd/bai/PumpPowerDesired/set $EVTPART1
WarmwasserSollTemp:selectnumbers,45,1,55,1,lin ebusd/700/HwcTempDesired/set $EVTPART1
userReadings total_hc {ReadingsVal($name,"PrEnergySumHc1_0_value",0)/100000},
total_hwc {ReadingsVal($name,"PrEnergySumHwc1_0_value",0)/100000},
total_h {ReadingsVal($name,"PrEnergySumHc1_0_value",0)/100000+ReadingsVal($name,"PrEnergySumHwc1_0_value",0)/100000}
und hier das automatisch generierte:
Internals:
CID ebusd_3.4_460
DEF ebusd_3.4_460
DEVICETOPIC MQTT2_ebusd_3.4_460
FUUID 6238c1e5-f33f-30f6-7df1-f313a308645402c4
IODev MQTT2_FHEM_Server
LASTInputDev MQTT2_FHEM_Server
MQTT2_FHEM_Server_CONN MQTT2_FHEM_Server_192.168.178.130_52494
MQTT2_FHEM_Server_MSGCNT 32
MQTT2_FHEM_Server_TIME 2022-03-22 18:00:38
MSGCNT 32
NAME MQTT2_ebusd_3.4_460
NR 760
STATE ???
TYPE MQTT2_DEVICE
READINGS:
2022-03-22 18:00:38 0_name hwcmode
2022-03-22 18:00:38 0_value auto
2022-03-22 18:00:38 1_name temp0
2022-03-22 18:00:38 1_value 60
2022-03-22 18:00:38 2_name temp1
2022-03-22 18:00:38 2_value 75.0
2022-03-22 18:00:38 3_name temp0
2022-03-22 18:00:38 3_value 70
2022-03-22 18:00:38 4_name temp1
2022-03-22 18:00:38 4_value 65.0
2022-03-22 17:49:38 HW_value 6903
2022-03-22 17:49:38 ID_value 70000
2022-03-22 17:56:49 IODev MQTT2_FHEM_Server
2022-03-22 17:49:38 MF_value Vaillant
2022-03-22 17:49:38 SW_value 0613
2022-03-22 18:00:38 disablehc_value 0
2022-03-22 18:00:38 disablehwcload_value 0
2022-03-22 18:00:38 disablehwctapping_value 0
2022-03-22 18:00:38 flowtempdesired_value 26.5
2022-03-22 18:00:38 hcmode_value auto
2022-03-22 18:00:38 releaseBackup_value 0
2022-03-22 18:00:38 releaseCooling_value 0
2022-03-22 18:00:38 remoteControlHcPump_value 0
2022-03-22 17:57:47 subscriptions ebusd/#
Attributes:
event-on-change-reading .*
readingList ebusd_3.4_460:ebusd/bai/SetMode:.* { json2nameValue($EVENT) }
ebusd_3.4_460:ebusd/bai/Status02:.* { json2nameValue($EVENT) }
ebusd_3.4_460:ebusd/bai/StatusCirPump:.* { json2nameValue($EVENT) }
ebusd_3.4_460:ebusd/scan\x2e15/:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
Meine Vermutung du hast bewusst kein Splitter-Device angelegt weil du alle Werte in einem Device haben willst.
Wenn die Werte aus dem automatisch generierten Device nicht brauchst nimmst die Topic-Pfade mit in die rL des Vaillant-Device auf, lässt sie aber nicht auspacken:
ebusd/bai/SetMode:.* {}
ebusd/bai/Status02:.* {}
ebusd/bai/StatusCirPump:.* {}
ebusd/scan\x2e15/:.* {}
Dann wird auch kein weiteres Device mehr angelegt.
Zitat von: TomLee am 22 März 2022, 18:25:13
Meine Vermutung du hast bewusst kein Splitter-Device angelegt weil du alle Werte in einem Device haben willst.
Wenn die Werte aus dem automatisch generierten Device nicht brauchst nimmst die Topic-Pfade mit in die rL des Vaillant-Device auf, lässt sie aber nicht auspacken:
ebusd/bai/SetMode:.* {}
ebusd/bai/Status02:.* {}
ebusd/bai/StatusCirPump:.* {}
ebusd/scan\x2e15/:.* {}
Dann wird auch kein weiteres Device mehr angelegt.
OK. Danke. Ich habe die neuen Einträge übernommen und alles ist gut. Ich muss mir bei Gelegenheit die MQTT-Mechanismen genauer anschauen, da ich inzwischen immer mehr über MQTT einbinde, wie z. B. so etwas: https://forum.fhem.de/index.php/topic,97959.msg1214276.html#msg1214276
ZitatIch muss mir bei Gelegenheit die MQTT-Mechanismen genauer anschauen, ...
Deine Frage ist mMn vergleichbar wie die immer gleiche zum Attribut do i.V.m always im DOIF-Kontext. :P
Du hast die letzten 2-3(4) Jahre was verpasst, wenn du jetzt erst anfängst dir MQTT2 genauer anzuschauen. :)
Zitat von: TomLee am 22 März 2022, 20:24:32
Deine Frage ist mMn vergleichbar wie die immer gleiche zum Attribut do i.V.m always im DOIF-Kontext. :P
Du hast die letzten 2-3(4) Jahre was verpasst, wenn du jetzt erst anfängst dir MQTT2 genauer anzuschauen. :)
Ich habe übrigens schon länger espEasy mit MQTT am laufen.
Da ja alles automatisch angelegt wurde, brauchte ich mich bisher nicht intensiv mit den Abläufen des Moduls auseinander zu setzen, genauso wie die Leute, die erst später nach einem do always Attribut fragen - da hast du vollkommen Recht ;)
Vielleicht noch ein paar ergänzende Anmerkungen...
Zum einen war das hier das "klassische" "ständig neue Devices"-Thema, weil der ebusd-Daemont anscheinend immer seine aktuelle Versionsnummer als ClientId zu verwenden scheint. Wenn man ihm das "abgewöhnt", bekommt man autocreate ggf. auch am "richtigen" Device (hier wäre es dann der Wert, der als CID "ebusd_bai" in gewünschten M2D eingestellt ist.
Die "scan"-Topics sind etwas speziell, evtl. bekommt man die besser in den Griff, wenn man die als regex notiert.
Ggf. schaust du dir mal die ebusd-myUtils aus/für attrTemplate an, das erspart einiges an jsonMapping, hält die Temperaturlisten zusammen usw.. Kann vermutlich auch dann hilfreich sein, wenn man nicht "das volle Paket" nutzen will. (Außerdem würde mich das Verbesserungspotential interessieren, ich habe bekanntlich keinen ebus und daher manches "aus der Hüfte" geschossen...).
Habe nach wie vor Zweifel, ob es sinnvoll ist, alles in einem Device zu halten und dann die Readings auch noch "einzudeutschen". Muss aber jeder selbst wissen.
Zitat von: rudolfkoenig am 22 März 2022, 16:42:20
Ergaenzung: Eine neue MQTT2_DEVICE Instanz wird angelegt, falls keine Existierende das aktuelle Topic kennt, und auch keine Instanz mit der aktuellen ClientID existiert.
bridgeRegexp "erfindet" aus der Topic/Message-Kombination eine neue ClientID, und ordnet so die Topics unterschiedlichen Instanzen zu.
ohne Konfiguration via `--mqttclientid=clientid`setzt ebusd die Versionsnummer und die PID ein. Also einfach konfigurieren und schon sollte das kein Problem mehr sein
Zitat von: john30 am 26 März 2022, 06:05:53
ohne Konfiguration via `--mqttclientid=clientid`setzt ebusd die Versionsnummer und die PID ein. Also einfach konfigurieren und schon sollte das kein Problem mehr sein
Das ist die Antwort, die ich hören wollte :)