MQTT-Neuling braucht Hilfe (p4d - Fröling S1 Turbo Holzscheitkessel mit S-3200)

Begonnen von hoppel118, 19 April 2020, 23:12:06

Vorheriges Thema - Nächstes Thema

Edi77

Hab die Infos wieder hinzugefügt, leider hat es die Anzahlt der Zeichen gesprengt.
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Beta-User

Zitat von: Edi77 am 10 Dezember 2022, 23:18:08
Es ist alles in eine Device rein gelaufen, mit dem ich garnichts anfangen konnte.
Du zeigst da den MQTT2_SERVER und dessen "retain"-Eintrag. Damit kann man in der Tat wenig anfangen. Falls das globale "autocreate" Aktiv ist, müßte eigentlich eine MQTT2_DEVICE-Instanz angelegt worden sein.

Falls möglich, würde ich es abschalten, die Infos mit retain-Flag zu versenden (das wäre auf der "Fröhling"-Seite zu machen).
Server: HP-elitedesk@Debian 12, 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

Edi77

In der Tat, hatte ich auch mal hier in einem Post


Internals:
   CID        Internals
   DEF        Internals
   FUUID      6395177a-f33f-5db6-6b2c-18510094569426a1
   IODev      Internals
   Internals_CONN Internals_192.168.1.155_59766
   Internals_MSGCNT 822153
   Internals_TIME 2022-12-28 18:39:14
   LASTInputDev Internals
   MSGCNT     822153
   NAME       MQTT2_Internals
   NR         3357
   STATE      off
   TYPE       MQTT2_DEVICE
   eventCount 822153
   .DT:
     DEVICETOPIC MQTT2_Internals
   .attraggr:
   .attrminint:
   READINGS:
     2022-12-26 16:04:41   IODev           Internals
     2022-12-28 18:39:14   action          CHANGE
     2022-12-28 18:39:14   id              VA:0x217
     2022-12-28 18:39:14   name            Errechnete aktuelle Kesselleistung
     2022-12-28 18:39:03   ping            true
     2022-12-28 18:39:03   sender          p4d
     2022-12-28 18:39:14   state           off
     2022-12-28 18:39:14   type            VA
     2022-12-28 18:39:14   unit           
     2022-12-28 18:39:14   value           8.1999999999999993
Attributes:
   readingList Internals:p4d2mqtt/sensor/Status/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/changes:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/State_Duration_1/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/State_Duration_2/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/State_Duration_3/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/State_Duration_7/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/State_Duration_8/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/State_Duration_9/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/State_Duration_11/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/State_Duration_13/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/State_Duration_15/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/State_Duration_19/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Betriebsart_Kessel/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Kesseltemperatur_0x0/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Abgastemperatur_0x1/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Boardtemperatur_0x2/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Restsauerstoffgehalt_0x3/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Aussentemperatur_0x4/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Saugzugdrehzahl_0x7/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Fuehler1_0x8/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Fuehler2_0x9/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Zykluszeit_0xe/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Saugzug-Ansteuerung_0xf/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Kesselstellgroesse_0x12/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Abgas-Solltemperatur_0x13/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Vorlauf-Isttemperatur_0x15/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Vorlauf-Solltemperatur_0x16/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Boilertemperaturoben_0x5d/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BoilertemperaturSolarreferenz_0x5e/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BoardtemperaturPelletsmodul_0x5f/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/StromaufnahmederAustragschnecke_0x61/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Betriebsstunden_0x62/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/FuellstandimPelletsbehaelter_0x71/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/AnzahlderBrennerstarts_0x72/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Einschub_0x74/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Sauerstoffregler_0x75/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Puffertemperaturoben_0x76/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/PuffertemperaturMitte_0x77/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Puffertemperaturunten_0x78/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/ErrechneteKesselsolltemperatur_0x8a/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/SolarfuehlerPufferunten_0x8b/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8c/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8d/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8e/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8f/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x90/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x91/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x92/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x93/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x94/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x95/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x96/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x97/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/AnsteuerungKollektorpumpe_0x98/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Feuerraum-Unterdruck_0x9b/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/PositionRostmotor_0xa2/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Stromaufnahme24VDCPelletsmodul_0xa3/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Zustandslaufzeitaktuell_0xa4/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Zustandslaufzeitmaximal_0xa5/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BetriebsstundenStokerschnecke_0xad/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/AufZuBewegungdesRostes_0xb1/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BetriebsstundenAscheschnecke_0xb3/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BetriebsstundenZuendung_0xb4/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BetriebsstundenLambdasonde_0xb5/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Kollektortemperatur_0xc5/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/DrehzahlderPumpe_0xc8/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/DrehzahlderZirkulationsPumpe_0xc9/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/ZustanddesBrennerrelais_0xcb/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/LaufzeitKollektorpumpe_0xcc/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/StroemungsschalteranderBrauchwasserLeitung_0xd2/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Lambdasondenspannunggemessen_0xd3/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/StundenseitletzterWartung_0xd5/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/KesselanforderungueberHeizkreisoderBoilerstehtan_0xd6/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/AbschoepfAusgang_0xdb/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Lambdasondenspannungkorrigiert_0xdc/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/StundenimHeizen_0xdd/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/FolgekesselOK_0xe6/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/FolgekesselOK_0xe7/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/FolgekesselOK_0xe8/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/FolgekesselStellgroesse_0xec/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/FolgekesselStellgroesse_0xed/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/FolgekesselStellgroesse_0xee/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/DrehzahlKesselladepumpe_0xf0/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/DrehzahlKesselladepumpe_0xf1/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/DrehzahlKesselladepumpe_0xf2/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BreitbandsondeHeizstrom_0xf3/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BreitbandsondeHeizungsSpannung_0xf4/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BreitbandsondeNernstSpannung_0xf5/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BreitbandsondePumpStrom_0xf6/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BoilertemperaturSolarreferenz_0xf9/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/AktuelleLeistungdesSolarWMZkW_0x107/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/PelletVerbrauchgexpert_0x110/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Resetierbarerkg-Zaehler_0x111/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Resetierbarert-Zaehler_0x112/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/PelletverbrauchGesamt_0x114/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/VerbleibendeHeizstundenbiszurAscheentleerenWarnung_0x117/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/PumpeZweitkessel_0x12e/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/SolarfuehlerPufferoben_0x12f/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Roststatus_0x130/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Tagesertragvor1Tag_0x14a/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Tagesertragvor2Tagen_0x14b/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Tagesertragvor3Tagen_0x14c/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Tagesertragvor4Tagen_0x14d/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Tagesertragvor5Tagen_0x14e/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Tagesertragvor6Tagen_0x14f/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/KollektorVorlauftemperatur_0x151/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BetriebsartBoiler_0x156/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/ZustandAnheizassistent_0x170/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/AnzahlderSchaltzyklendesUmschaltventils_0x172/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/AufgenommeneEnergie_0x189/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Kesselblockiertdurch_0x1a3/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Pufferladezustand_0x1bf/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/PufferladezustandDiskret_0x1c0/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Kesselzustand_0x1c9/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/AktivesSaugsystem_0x1cc/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Fuehler2_0x20c/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/ping:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/RuecklaufmischerimQBus_0x198/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Restsauerstoffgehaltgedaempft_0x119/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BetriebsstundenSaugturbinen_0xb6/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BetriebsstundenAustragsschnecke_0xb7/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/StokerZyklen_0x113/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BetriebsstundenE-Filter_0x126/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/AnzahlderReinigungen_0x128/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/ZeitbiszurnaechstenReinigung_0x12a/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/BetriebsstundenSaugturbine_0x13f/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/AktivesSaugsystem_0x16d/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/TemperaturunterdemRost_0x17c/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Absperrschieber-AktuellePosition_0x1a8/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Absperrschieber-Offen_0x1a9/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Absperrschieber-Geschlossen_0x1aa/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/GemessenerFahrwegdesAbsperrschiebers_0x1ab/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Absperrschieber-Wiederholung_0x1ac/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Absperrschieber-Zustand_0x1ad/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/MIN-Sensor_0x1cf/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/MAX-Sensor_0x1d0/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/ZustandderSaugaustragung_0x1d2/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Endlagenschalter_0x1d6/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Positionsschalter_0x1d7/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Endlagenschalter_0x1d9/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/Positionsschalter_0x1da/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/ErrechneteaktuelleKesselleistung_0x217/state:.* { json2nameValue($EVENT) }
Internals:p4d2mqtt/sensor/ErrechnetemitKesselerzeugteWaermemenge_0x218/state:.* { json2nameValue($EVENT) }
   room       Heizung,MQTT2_DEVICE

Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Beta-User

Aua, das ist ja mal ein "eigenwilliges" Format...

Da musst du entweder sehr viel Handarbeit walten lassen (Präfixe für json2NameValue() setzen und ggf. jsonMap anpassen), oder eine Methode entwickeln, um den Topic mit auszuwerten.

Auf die Schnelle - in OpenMQTTGateway ist für Bluetooth sowas zu finden:
$\DEVICETOPIC/BTtoMQTT/([0-9A-Z]+):.* { $TOPIC =~ m,BTtoMQTT/([0-9A-Z]+),; json2nameValue($EVENT,"${1}_") }\

Würde ich mal für hier in die Richtung übersetzen:
p4d2mqtt/sensor/([^/]+)/state:.* { $TOPIC =~ m,p4d2mqtt/sensor/([^/]+)/state,; json2nameValue($EVENT,"${1}_",$JSONMAP) }Dann sollten zumindest mal Einzelwerte kommen, die man dann wieder per jsonMap-Attribut sinnhafter benennen kann.
Irgendwo jüngst hatte Rudi auch gezeigt, wie man das "value" ggf. direkt auch aus dem Namen rausbekommen kann, ich habe nur grade keine Zeit, danach zu suchen und das auch noch anzupassen...
Server: HP-elitedesk@Debian 12, 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

hoppel118

Moinsen,

sorry, habe momentan nicht viel Zeit.

Aber ja, das ist auf jeden Fall eine Menge Handarbeit auf beiden Seiten.

Folgende Vorgehensweise im p4d Web Interface (siehe Screenshots):


  • unter "Setup - Baugruppen" die Baugruppen erstellen
  • unter "Setup - IO Setup" die Baugruppen zuordnen
  • unter "Setup - Allg. Konfiguration - MQTT" die MQTT Verbindung und Data Topic Name konfigurieren

Ja, man muss sich leider die relevanten und funktionsfähigen Baugruppen selbst heraussuchen. Wenn ich mich recht entsinne, hatte ich damals im ersten Schritt nach und nach alle Sensoren in P4D nacheinander aktiviert, um zu schauen, wo etwas ankommt. Wahrscheinlich werden nur die Sensoren übermittelt, die auch tatsächlich was liefern. Aber die musste du dann im p4d WebInterface den entsprechenden Baugruppen zuordnen. Das war auf jeden Fall Handarbeit, aber halb so wild, wenn man das System verstanden hat. ;)

"horchi" (der p4d Entwickler) hatte die Herausforderung es allen Hausautomatisierungssoftwaren recht zu machen. Auch wenn MQTT ein Standard ist, macht es anscheinend jeder (FHEM, IOBroker, Openhab, Home Assistant waren damals im Gespräch) ein Bisschen anders.

Anschließend dann in FHEM folgendes tun:


Anschließend dann das Device wie folgt konfigurieren. Meins sieht bspw. so aus:

defmod MQTT2_p4d_publisher MQTT2_DEVICE p4d_publisher
attr MQTT2_p4d_publisher IODev mqtt2server
attr MQTT2_p4d_publisher bridgeRegexp p4d2mqtt[/](?!Anlagenstatus)([^/]+)[/]state:.* "p4d2_$1"
attr MQTT2_p4d_publisher group Sensoren Heizung
attr MQTT2_p4d_publisher icon sani_earth_source_heat_pump
attr MQTT2_p4d_publisher jsonMap Betriebsmodus_description:0\
Betriebsmodus_unit:0\
Betriebsmodus_value:Betriebsmodus\
Betriebsstunden_0x62_description:0\
Betriebsstunden_0x62_unit:0\
Betriebsstunden_0x62_value:Betriebsstunden\
BetriebsstundeninderFeuererhaltung_0x73_description:0\
BetriebsstundeninderFeuererhaltung_0x73_unit:0\
BetriebsstundeninderFeuererhaltung_0x73_value:BetriebsstundeninderFeuererhaltung\
BetriebsstundenvonKessel2Brennerkontakt_0x109_description:0\
BetriebsstundenvonKessel2Brennerkontakt_0x109_unit:0\
BetriebsstundenvonKessel2Brennerkontakt_0x109_value:BetriebsstundenvonKessel2Brennerkontakt\
Boardtemperatur_0x2_description:0\
Boardtemperatur_0x2_unit:0\
Boardtemperatur_0x2_value:Boardtemperatur\
Build_0x16f_description:0\
Build_0x16f_unit:0\
Build_0x16f_value:Build\
Status_description:0\
Status_unit:0\
Status_value:Status\
StundenseitletzterWartung_0xd5_description:0\
StundenseitletzterWartung_0xd5_unit:0\
StundenseitletzterWartung_0xd5_value:StundenseitletzterWartung\
Uhrzeit_description:0\
Uhrzeit_unit:0\
Uhrzeit_value:Uhrzeit\
VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_description:0\
VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_unit:0\
VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_value:VergangeneZeitseitletzterWaermetauscherreinigung
attr MQTT2_p4d_publisher readingList p4d2mqtt/Anlagenstatus/state:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr MQTT2_p4d_publisher room Aussen,Erdgeschoss->Heizungsraum,Hersteller->MQTT,System->Sensoren
attr MQTT2_p4d_publisher stateFormat Status


Nun sollten für alle Baugruppen als einzelne Geräte angelegt werden. Du musst dann manuell mit JasonMap alle Readings hübsch machen. Hier bspw. nochmal mein Boiler:

defmod MQTT2_p4d2_Boiler MQTT2_DEVICE p4d2_Boiler
attr MQTT2_p4d2_Boiler IODev mqtt2server
attr MQTT2_p4d2_Boiler group Sensoren Heizung
attr MQTT2_p4d2_Boiler icon sani_buffer_temp_up
attr MQTT2_p4d2_Boiler jsonMap BetriebsartBoiler_0x156_description:0\
BetriebsartBoiler_0x156_unit:0\
BetriebsartBoiler_0x156_value:BetriebsartBoiler\
BoilerpumpeAnsteuerung_0x90_description:0\
BoilerpumpeAnsteuerung_0x90_unit:0\
BoilerpumpeAnsteuerung_0x90_value:BoilerpumpeAnsteuerung\
Boilertemperaturoben_0x5d_description:0\
Boilertemperaturoben_0x5d_unit:0\
Boilertemperaturoben_0x5d_value:Boilertemperaturoben
attr MQTT2_p4d2_Boiler readingList p4d2mqtt/Boiler/state:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr MQTT2_p4d2_Boiler room Aussen,Erdgeschoss->Heizungsraum,Hersteller->MQTT,System->Sensoren
attr MQTT2_p4d2_Boiler stateFormat oben: [$name:Boilertemperaturoben:r1] °C\
Pumpe: [$name:BoilerpumpeAnsteuerung:r1] %


Ich denke, wenn ich mich recht entsinne, ist es das.

Falls du konkrete Fragen hast, melde dich einfach nochmal.

Mit horchi kommst du übrigens in folgendem Thread in Kontakt: https://www.holzheizer-forum.de/forum/thread/50090-fr%C3%B6ling-announce-p4d-visualisierung-und-einstellung-der-s-3200-via-com1

Gruß Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic | HomeConnect | MQTT | Philips Hue | Sonos | Unifi Network & Protect | vbus | Xiaomi