Autor Thema: MQTT-Neuling braucht Hilfe (p4d - Fröling S1 Turbo Holzscheitkessel mit S-3200)  (Gelesen 10092 mal)

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3900
  • ... wer sät, der erntet ...
Zitat
Kann ich retain auch irgendwie vollständig zurücksetzen?

Gute Frage würde mich auch interessieren, kann man vlt. regex verwenden, habs noch nicht probiert ?

Offline hoppel118

  • Hero Member
  • *****
  • Beiträge: 1122
Ach, ein Thema habe ich gerade noch entdeckt. Es kam noch das Thema auf, dass auch die Fehler- bzw. Infomeldungen der Heizung per MQTT übertragen werden sollen.

Hier ein Vorschlag vom Openhab User:

zu 7. Hier ein Beispiel was erlauben würde dynamisch viele Fehlermeldungen zu senden:
p4d2mqtt/sensor/Stoermeldungen/state={{"Meldung 01":{"value"="E", "date"="2019-08-29", "time"="21:38:39" ,"key"="(00:00:00.000000)", "text"="Steuerung neu gestartet quittiert"},{"Meldung 02":{"value"="I", "date"="2019-08-29", "time"="21:38:39" ,"key"="(00:00:00.000000)", "text"="Aschebox voll, bitte entleeren
gekommen"},{"Meldung 03":{"value"="I", "date"="2019-08-29", "time"="21:38:39" ,"key"="(00:00:00.000000)", "text"="Aschebox voll, bitte entleeren quittiert"}, ......}

Passt das auch für FHEM?

Gruß Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic: VCCU 2xHMUSB, 1xWLGW | HomeConnect | Philips Hue | Sonos | Unifi: UDM-Pro, USW, U6-Pro | Xiaomi: S50, Smart Fan | vbus: Vitosolic 200SD4 | MQTT: Worx, Fröling

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16884
Hmm, auch hier _glaube_ ich wieder, dass wir damit zwar irgendwie klarkommen, aber dass das nicht optimal ist:

Zum einen ist unklar, wie Fehlermeldungen ggf. wieder gelöscht werden (z.B. es sind nicht mehr 3 vorhanden, weil die Aschebox geleert wurde).

Und dann muß das irgenwie weiterverarbeitet werden, was schwieriger ist, wenn man nicht weiß, wo was zu finden ist.

Imo ist es besser, Fehlermeldungen (oder allgemeiner: Statusmeldungen) dahin abzusetzen, wo es thematisch dazupaßt:
Systemstarts nach "System", Aschebox-Zustände zu einer Baugruppe Aschebox (am besten gleich mit der Option, das Entleeren via MQTT zu quittieren?). Da dann mit "voll" bzw. "ok" (bzw. %-Werten, sofern möglich)... Evtl. macht es Sinn, den gesamten Fehlerspeicher informativ zu übertragen, aber sowas schaut man sich mMn. besser am Web-Interface an.
Server: HP-T620@Debian 11, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline hoppel118

  • Hero Member
  • *****
  • Beiträge: 1122
Am WebInterface unter "Fehler - Fehlerspeicher" sieht das bei mir wie folgt aus, siehe Screenshot.

Ich denke nicht, dass man diese Fehlermeldungen irgendwie Baugruppen-spezifisch eingeordnet bekommt. Ich gebe es weiter...

Danke dir und Gruß Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic: VCCU 2xHMUSB, 1xWLGW | HomeConnect | Philips Hue | Sonos | Unifi: UDM-Pro, USW, U6-Pro | Xiaomi: S50, Smart Fan | vbus: Vitosolic 200SD4 | MQTT: Worx, Fröling

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16884
Hmm, dann denke ich, dass es Sinn macht, nur bei _Hinzukommen_ einer Meldung _einen Wert_ zu senden, nämlich die neue Meldung. Darauf kann man dann reagieren, alles andere ist mMn. "kalter Kaffee von vorgestern"... (und informationstechnisch gut auf dem Web-Interface aufgehoben, wenn man es braucht/wissen will).
Server: HP-T620@Debian 11, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline hoppel118

  • Hero Member
  • *****
  • Beiträge: 1122
Mein "Senf":
Man sollte das Senden von immergleichen Infos konfigurierbar (=abschaltbar) machen. Es macht m.E. keinen Sinn, ständig zu übermitteln, wie der Sensor heißt und was die Einheit ist...
Aber das sind "Feinheiten am Rande"...

Wegen deines Senfes wird horchi es nun so bauen, dass Einheiten und Beschreibungen nur initial gesendet werden. Das passt übrigens so auch für Openhub.

Gruß Hoppel
« Letzte Änderung: 27 April 2020, 09:28:22 von hoppel118 »
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic: VCCU 2xHMUSB, 1xWLGW | HomeConnect | Philips Hue | Sonos | Unifi: UDM-Pro, USW, U6-Pro | Xiaomi: S50, Smart Fan | vbus: Vitosolic 200SD4 | MQTT: Worx, Fröling

Offline hoppel118

  • Hero Member
  • *****
  • Beiträge: 1122
Hallo,

horchi möchte nochmal eine Bestätigung zur Implementation der Fehlermeldungen:

Zitat
verstehe ich das richtig, ihr möchtet die Fehlermeldungen auf einem separaten Topic und nicht auf dem selben wie die Daten/Temperaturen/etc. ?

und dann so:

{
   "message1" : {
      "time" : "2019-08-29T21:38:39",
      "message" : "Aschebox voll, bitte entleeren",
      "state" : "gegangen",
   },
   "message2" : {
      "time" : "2019-08-29T21:38:39",
      "state" : "gekommen",
      "message" : "Raumaustragung kontrollieren",
   },
   "message3" : {
      "time" : "2019-08-29T21:38:39",
      "message" : "Steuerung neu gestartet",
      "state" :  "quittiert",
   }
}

Zitat
oder als Array:

{
   "messages" : [
      {
         "state" : "gegangen",
         "message" : "Aschebox voll, bitte entleeren",
         "time" : "2019-08-29T21:38:39"
      },
      {
         "state" : "gekommen",
         "time" : "2019-08-29T21:38:39",
         "message" : "Raumaustragung kontrollieren"
      },
      {
         "state" : "quittiert"
         "message" : "Steuerung neu gestartet",
         "time" : "2019-08-29T21:38:39",
      }
   ]
}

Zitat
jeweils mit Key zum zuordnen, in Variante 1 wäre der Bezeichner (message1) der Key in Variante zwei würde ich "key":"0123" mitgeben

Ich weiß, FHEM kann alles auswerten. ;) Aber welche Variante ist eurer Ansicht nach besser?

Danke und Gruß Hoppel
« Letzte Änderung: 27 April 2020, 12:12:46 von hoppel118 »
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic: VCCU 2xHMUSB, 1xWLGW | HomeConnect | Philips Hue | Sonos | Unifi: UDM-Pro, USW, U6-Pro | Xiaomi: S50, Smart Fan | vbus: Vitosolic 200SD4 | MQTT: Worx, Fröling

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24911
Es geht darum, dass ein Fehler nicht immer wieder gemeldet wird, sondern nur, wenn es auftaucht, einmal.
Sonst ist es aufwendiger etwas zu basteln, um darauf zu reagieren.

Aus Komplettsicht ist es sinnvoller sowas in FHEM zu filtern, wenn ich mich nicht irre, sollte das mit event-on-change-reading moeglich sein.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16884
Hmm, also json2nameValue() macht m.E. auch aus dem Array nichts wesentlich anderes als in der ersten Variante dargestellt.

Solange es sowieso "alles" über einen Topic kommt und nicht baugruppenweise irgendwie unter verschiedenen Topic-Pfaden vorsortiert, ist es m.E. auch egal, ob diese Messages auch noch über diesen Pfad kommen.

Das "Grundproblem" ist m.E. ein anderes: Nach meinem Verständnis ist MQTT ein Protokoll, das mal dafür gemacht war, Zustände ausfallsicher zu übermitteln. Es gibt daher zu jedem Informationspunkt in meiner Gedankenwelt optimalerweise genau eine Information, die in der Auswahl recht beschränkt ist, und irgendwelche Elemente nach dem Muster "0/1/on/off/missing/offline/failure..." haben sollte. Mit JSON weicht man das Prinzip etwas auf, was auch noch solange ok ist, als die Datenpunkte und Werte irgendwie zuordenbar bleiben.

Dinge wie Grafiken (valetudo) oder Konfigurationen (homeassistant-discovery-Meldungen) zu übertragen, sind für mich "abuse", das ist nicht "schlank und schnell" (=MQTT-like=maschinenlesbar), sondern "fett" (Webpage-like=menschenlesbar).

Von diesem "gefählten MQTT-Prinzip" weicht hier aber insbesondere diese "message"-Geschichte sehr massiv ab, weil es keine wirkliche Koppelung zwischen irgendeiner Message und einem konkreten Datenpunkt (für solche Geräte die diesen Kessel eigentlich: einen konkreten Bezugspunkt in der Hardware) gibt. Es ist irgendwelche Info, die im Prinzip willkürlich zu Informationszwecken übertragen wird... Ich sehe nach wie vor nicht den Mehrwert, warum das in der Form überhaupt gemacht wird.

Vielleicht kurz zum Hintergrund: Mein "gedanklicher Prototyp" für den Einsatz von MQTT ist eine Ölpipeline. Für sowas wurde das afaik mal entwickelt:
Hardwareüberwachung unter Extrembedingungen. Lange Stecken, ständig zu befürchtende Verbindungsabbrüche, widrige externe Umstände wie Hitze/Staub/Kälte/Wasser. Also: Wenig Info, eigentliche Auswertung der Info erfolgt "hinter dem Broker".

Ich hoffe, das ist nachvollziehbar und hilft ggf. auch beim Design (imo) "guter" MQTT-Implementierungen?
Server: HP-T620@Debian 11, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline hoppel118

  • Hero Member
  • *****
  • Beiträge: 1122
Danke euch beiden für diese Turbo-Reaktionen! So macht das wirklich Spaß und horchi kommt zügig voran.

Sinnvoller wäre es wahrscheinlich gewesen ein paar Github Feature Requests dazu zu öffnen, was auch ursprünglich mein Plan war, und die Kommunikation dort zu führen. Aber horchi war auf einmal an so vielen Themen gleichzeitg dran, dass ich nicht mehr hinterherkam. Ich spiele jetzt den Nachrichtenüberbringer bis das Thema erledigt ist. Es klappt ja auch ganz gut. ;)

Gruß Hoppel
« Letzte Änderung: 27 April 2020, 17:59:16 von hoppel118 »
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic: VCCU 2xHMUSB, 1xWLGW | HomeConnect | Philips Hue | Sonos | Unifi: UDM-Pro, USW, U6-Pro | Xiaomi: S50, Smart Fan | vbus: Vitosolic 200SD4 | MQTT: Worx, Fröling

Offline hoppel118

  • Hero Member
  • *****
  • Beiträge: 1122
Moin,

da bin ich wieder und brauche eure Unterstützung. ;)

horchi hat Gas gegeben und einige Änderungen vorgenommen:

  • im Pfad fehlt nun sensor/
  • Baugruppen können definiert und zugeordnet werden
  • Einheiten und Bezeichnungen werden einmalig nach dem Start von p4d übertragen (bei jedem Start)


Ich bin nun wie folgt vorgegangen:

  • Update installiert
  • Baugruppen definiert und den Messwerten zugewiesen, p4d gestoppt
  • In FHEM den MQTT2_SERVER und alle MQTT2_DEVICES entfernt, um eine neue Umgebung zu haben
  • MQTT2_SERVER neu eingerichtet, verbose 5 eingeschaltet
  • p4d gestartet, ein paar Minuten für das Logging gewartet und p4d wieder gestoppt

Hier nun ein list vom MQTT2_SERVER:

Internals:
   CFGFN     
   CONNECTS   1
   DEF        1883 10.11.11.11
   FD         61
   FUUID      5ea87aab-f33f-5dcf-9eb8-bb7ff488a1bad8a5
   NAME       mqtt2server
   NR         1817
   PORT       1883
   STATE      Initialized
   TYPE       MQTT2_SERVER
   READINGS:
     2020-04-28 20:55:29   RETAIN          {"p4d2mqtt":"{\u0022Holzscheitkessel\u0022: {\u0022Kesseltemperatur_0x0\u0022: {\u0022value\u0022: \u002268.00\u0022}, \u0022Abgastemperatur_0x1\u0022: {\u0022value\u0022: \u0022122.00\u0022}, \u0022Saugzugdrehzahl_0x7\u0022: {\u0022value\u0022: \u00222702.00\u0022}, \u0022Saugzug-Ansteuerung_0xf\u0022: {\u0022value\u0022: \u002290.00\u0022}, \u0022Kesselstellgroesse_0x12\u0022: {\u0022value\u0022: \u0022100.00\u0022}, \u0022Abgas-Solltemperatur_0x13\u0022: {\u0022value\u0022: \u0022164.00\u0022}, \u0022BetriebsstundeninderFeuererhaltung_0x73\u0022: {\u0022value\u0022: \u002227.00\u0022}, \u0022PufferpumpenbegrenzungdurchAbgastemperatur_0xde\u0022: {\u0022value\u0022: \u00228.00\u0022}, \u0022EmpfohleneHolzmengebeimNachlegen_0x10a\u0022: {\u0022value\u0022: \u00223.00\u0022}, \u0022Kesselzustand_0x1c9\u0022: {\u0022value\u0022: \u00223.00\u0022}}, \u0022Anlagenstatus\u0022: {\u0022Status\u0022: {\u0022value\u0022: \u0022Heizen\u0022}, \u0022Betriebsmodus\u0022: {\u0022value\u0022: \u0022Dauerlast\u0022}, \u0022Boardtemperatur_0x2\u0022: {\u0022value\u0022: \u002240.00\u0022}, \u0022Uhrzeit\u0022: {\u0022value\u0022: \u0022Tuesday, 28. Apr. 2020 20:44:00\u0022}, \u0022Zykluszeit_0xe\u0022: {\u0022value\u0022: \u002253.70\u0022}, \u0022Lambdasondenspannunggemessen_0xd3\u0022: {\u0022value\u0022: \u002224.07\u0022}, \u0022StundenseitletzterWartung_0xd5\u0022: {\u0022value\u0022: \u00229881.00\u0022}, \u0022Lambdasondenspannungkorrigiert_0xdc\u0022: {\u0022value\u0022: \u002224.07\u0022}, \u0022FuehleramHydraulikmodul03_0xff\u0022: {\u0022value\u0022: \u002261.00\u0022}, \u0022Build_0x16f\u0022: {\u0022value\u0022: \u00222.00\u0022}, \u0022VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7\u0022: {\u0022value\u0022: \u0022249.00\u0022}}, \u0022Aussen_West_Sensor\u0022: {\u0022Aussentemperatur_0x4\u0022: {\u0022value\u0022: \u002211.50\u0022}}, \u0022Heizkreis_01\u0022: {\u0022Vorlauf-Isttemperatur_0x15\u0022: {\u0022value\u0022: \u002239.00\u0022}, \u0022Vorlauf-Solltemperatur_0x16\u0022: {\u0022value\u0022: \u002248.00\u0022}, \u0022BetriebsartHeizkreis_0x17\u0022: {\u0022value\u0022: \u00220.00\u0022}}, \u0022Heizkreis_02\u0022: {\u0022Vorlauf-Isttemperatur_0x19\u0022: {\u0022value\u0022: \u002248.00\u0022}, \u0022Vorlauf-Solltemperatur_0x1a\u0022: {\u0022value\u0022: \u002248.00\u0022}, \u0022BetriebsartHeizkreis_0x1b\u0022: {\u0022value\u0022: \u00220.00\u0022}}, \u0022Boiler\u0022: {\u0022Boilertemperaturoben_0x5d\u0022: {\u0022value\u0022: \u002261.00\u0022}, \u0022Betriebsstunden_0x62\u0022: {\u0022value\u0022: \u00229881.00\u0022}, \u0022BoilerpumpeAnsteuerung_0x90\u0022: {\u0022value\u0022: \u00220.00\u0022}, \u0022BetriebsartBoiler_0x156\u0022: {\u0022value\u0022: \u00221.00\u0022}}, \u0022Puffer\u0022: {\u0022Puffertemperaturoben_0x76\u0022: {\u0022value\u0022: \u002270.00\u0022}, \u0022Puffertemperaturunten_0x78\u0022: {\u0022value\u0022: \u002267.50\u0022}, \u0022PufferpumpenAnsteuerung_0x8c\u0022: {\u0022value\u0022: \u00220.00\u0022}, \u0022Pufferladezustand_0xe1\u0022: {\u0022value\u0022: \u002283.00\u0022}, \u0022PufferladezustandDiskret_0x1c0\u0022: {\u0022value\u0022: \u00224.00\u0022}}, \u0022Gaskessel\u0022: {\u0022TemperaturdesZweitkessel_0xc4\u0022: {\u0022value\u0022: \u002215.00\u0022}, \u0022BetriebsstundenvonKessel2Brennerkontakt_0x109\u0022: {\u0022value\u0022: \u00222476.00\u0022}}, \u0022EG_HZR_Sensor\u0022: {\u0022RaumfuehlerKBGTouch_0x191\u0022: {\u0022value\u0022: \u002219.00\u0022}}}"}
     2020-04-28 20:55:58   nrclients       0
     2020-04-28 20:49:42   state           Initialized
   clients:
   retain:
     p4d2mqtt:
       ts         1588100129.79166
       val        {"Holzscheitkessel": {"Kesseltemperatur_0x0": {"value": "68.00"}, "Abgastemperatur_0x1": {"value": "122.00"}, "Saugzugdrehzahl_0x7": {"value": "2702.00"}, "Saugzug-Ansteuerung_0xf": {"value": "90.00"}, "Kesselstellgroesse_0x12": {"value": "100.00"}, "Abgas-Solltemperatur_0x13": {"value": "164.00"}, "BetriebsstundeninderFeuererhaltung_0x73": {"value": "27.00"}, "PufferpumpenbegrenzungdurchAbgastemperatur_0xde": {"value": "8.00"}, "EmpfohleneHolzmengebeimNachlegen_0x10a": {"value": "3.00"}, "Kesselzustand_0x1c9": {"value": "3.00"}}, "Anlagenstatus": {"Status": {"value": "Heizen"}, "Betriebsmodus": {"value": "Dauerlast"}, "Boardtemperatur_0x2": {"value": "40.00"}, "Uhrzeit": {"value": "Tuesday, 28. Apr. 2020 20:44:00"}, "Zykluszeit_0xe": {"value": "53.70"}, "Lambdasondenspannunggemessen_0xd3": {"value": "24.07"}, "StundenseitletzterWartung_0xd5": {"value": "9881.00"}, "Lambdasondenspannungkorrigiert_0xdc": {"value": "24.07"}, "FuehleramHydraulikmodul03_0xff": {"value": "61.00"}, "Build_0x16f": {"value": "2.00"}, "VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7": {"value": "249.00"}}, "Aussen_West_Sensor": {"Aussentemperatur_0x4": {"value": "11.50"}}, "Heizkreis_01": {"Vorlauf-Isttemperatur_0x15": {"value": "39.00"}, "Vorlauf-Solltemperatur_0x16": {"value": "48.00"}, "BetriebsartHeizkreis_0x17": {"value": "0.00"}}, "Heizkreis_02": {"Vorlauf-Isttemperatur_0x19": {"value": "48.00"}, "Vorlauf-Solltemperatur_0x1a": {"value": "48.00"}, "BetriebsartHeizkreis_0x1b": {"value": "0.00"}}, "Boiler": {"Boilertemperaturoben_0x5d": {"value": "61.00"}, "Betriebsstunden_0x62": {"value": "9881.00"}, "BoilerpumpeAnsteuerung_0x90": {"value": "0.00"}, "BetriebsartBoiler_0x156": {"value": "1.00"}}, "Puffer": {"Puffertemperaturoben_0x76": {"value": "70.00"}, "Puffertemperaturunten_0x78": {"value": "67.50"}, "PufferpumpenAnsteuerung_0x8c": {"value": "0.00"}, "Pufferladezustand_0xe1": {"value": "83.00"}, "PufferladezustandDiskret_0x1c0": {"value": "4.00"}}, "Gaskessel": {"TemperaturdesZweitkessel_0xc4": {"value": "15.00"}, "BetriebsstundenvonKessel2Brennerkontakt_0x109": {"value": "2476.00"}}, "EG_HZR_Sensor": {"RaumfuehlerKBGTouch_0x191": {"value": "19.00"}}}
Attributes:
   icon       mqtt_broker
   room       Erdgeschoss->Heizungsraum,Hersteller->Fröling,Hersteller->MQTT,System->Zentralen
   verbose    5

Hier ein list vom autocreated MQTT2_DEVICE (Bei den Readings sieht man das tatsächlich nur die values aktualisiert werden):

Internals:
   CFGFN     
   CID        p4d_publisher
   DEF        p4d_publisher
   DEVICETOPIC MQTT2_p4d_publisher
   FUUID      5ea87b6e-f33f-5dcf-00d3-004b8736b4d07fd4
   IODev      mqtt2server
   LASTInputDev mqtt2server
   MSGCNT     3
   NAME       MQTT2_p4d_publisher
   NR         1830
   STATE      ???
   TYPE       MQTT2_DEVICE
   mqtt2server_MSGCNT 3
   mqtt2server_TIME 2020-04-28 20:55:29
   READINGS:
     2020-04-28 20:52:30   Anlagenstatus_Betriebsmodus_description Betriebsmodus
     2020-04-28 20:52:30   Anlagenstatus_Betriebsmodus_unit zst
     2020-04-28 20:55:29   Anlagenstatus_Betriebsmodus_value Dauerlast
     2020-04-28 20:52:30   Anlagenstatus_Boardtemperatur_0x2_description Boardtemperatur
     2020-04-28 20:52:30   Anlagenstatus_Boardtemperatur_0x2_unit °C
     2020-04-28 20:55:29   Anlagenstatus_Boardtemperatur_0x2_value 40.00
     2020-04-28 20:52:30   Anlagenstatus_Build_0x16f_description Build
     2020-04-28 20:52:30   Anlagenstatus_Build_0x16f_unit
     2020-04-28 20:55:29   Anlagenstatus_Build_0x16f_value 2.00
     2020-04-28 20:52:30   Anlagenstatus_FuehleramHydraulikmodul03_0xff_description Fühler am Hydraulikmodul      0.3
     2020-04-28 20:52:30   Anlagenstatus_FuehleramHydraulikmodul03_0xff_unit °C
     2020-04-28 20:55:29   Anlagenstatus_FuehleramHydraulikmodul03_0xff_value 61.00
     2020-04-28 20:52:30   Anlagenstatus_Lambdasondenspannunggemessen_0xd3_description Lambdasondenspannung gemessen
     2020-04-28 20:52:30   Anlagenstatus_Lambdasondenspannunggemessen_0xd3_unit m
     2020-04-28 20:55:29   Anlagenstatus_Lambdasondenspannunggemessen_0xd3_value 24.07
     2020-04-28 20:52:30   Anlagenstatus_Lambdasondenspannungkorrigiert_0xdc_description Lambdasondenspannung korrigiert
     2020-04-28 20:52:30   Anlagenstatus_Lambdasondenspannungkorrigiert_0xdc_unit m
     2020-04-28 20:55:29   Anlagenstatus_Lambdasondenspannungkorrigiert_0xdc_value 24.07
     2020-04-28 20:52:30   Anlagenstatus_Status_description zst
     2020-04-28 20:52:30   Anlagenstatus_Status_unit Heizungsstatus
     2020-04-28 20:55:29   Anlagenstatus_Status_value Heizen
     2020-04-28 20:52:30   Anlagenstatus_StundenseitletzterWartung_0xd5_description Stunden seit letzter Wartung
     2020-04-28 20:52:30   Anlagenstatus_StundenseitletzterWartung_0xd5_unit h
     2020-04-28 20:55:29   Anlagenstatus_StundenseitletzterWartung_0xd5_value 9881.00
     2020-04-28 20:52:30   Anlagenstatus_Uhrzeit_description Datum Uhrzeit der Heizung
     2020-04-28 20:52:30   Anlagenstatus_Uhrzeit_unit T
     2020-04-28 20:55:29   Anlagenstatus_Uhrzeit_value Tuesday, 28. Apr. 2020 20:44:00
     2020-04-28 20:52:30   Anlagenstatus_VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_description Vergangene Zeit seit letzter Wärmetauscherreinigung
     2020-04-28 20:52:30   Anlagenstatus_VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_unit m
     2020-04-28 20:55:29   Anlagenstatus_VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_value 249.00
     2020-04-28 20:52:30   Anlagenstatus_Zykluszeit_0xe_description Zykluszeit:
     2020-04-28 20:52:30   Anlagenstatus_Zykluszeit_0xe_unit u
     2020-04-28 20:55:29   Anlagenstatus_Zykluszeit_0xe_value 53.70
     2020-04-28 20:52:30   Aussen_West_Sensor_Aussentemperatur_0x4_description Außentemperatur
     2020-04-28 20:52:30   Aussen_West_Sensor_Aussentemperatur_0x4_unit °C
     2020-04-28 20:55:29   Aussen_West_Sensor_Aussentemperatur_0x4_value 11.50
     2020-04-28 20:52:30   Boiler_BetriebsartBoiler_0x156_description Betriebsart Boiler
     2020-04-28 20:52:30   Boiler_BetriebsartBoiler_0x156_unit
     2020-04-28 20:55:29   Boiler_BetriebsartBoiler_0x156_value 1.00
     2020-04-28 20:52:30   Boiler_Betriebsstunden_0x62_description Betriebsstunden
     2020-04-28 20:52:30   Boiler_Betriebsstunden_0x62_unit h
     2020-04-28 20:55:29   Boiler_Betriebsstunden_0x62_value 9881.00
     2020-04-28 20:52:30   Boiler_BoilerpumpeAnsteuerung_0x90_description Boilerpumpe Ansteuerung
     2020-04-28 20:52:30   Boiler_BoilerpumpeAnsteuerung_0x90_unit %
     2020-04-28 20:55:29   Boiler_BoilerpumpeAnsteuerung_0x90_value 0.00
     2020-04-28 20:52:30   Boiler_Boilertemperaturoben_0x5d_description Boilertemperatur oben
     2020-04-28 20:52:30   Boiler_Boilertemperaturoben_0x5d_unit °C
     2020-04-28 20:55:29   Boiler_Boilertemperaturoben_0x5d_value 61.00
     2020-04-28 20:52:30   EG_HZR_Sensor_RaumfuehlerKBGTouch_0x191_description Raumfühler KBG Touch
     2020-04-28 20:52:30   EG_HZR_Sensor_RaumfuehlerKBGTouch_0x191_unit °C
     2020-04-28 20:55:29   EG_HZR_Sensor_RaumfuehlerKBGTouch_0x191_value 19.00
     2020-04-28 20:52:30   Gaskessel_BetriebsstundenvonKessel2Brennerkontakt_0x109_description Betriebsstunden von Kessel 2 (Brennerkontakt)
     2020-04-28 20:52:30   Gaskessel_BetriebsstundenvonKessel2Brennerkontakt_0x109_unit h
     2020-04-28 20:55:29   Gaskessel_BetriebsstundenvonKessel2Brennerkontakt_0x109_value 2476.00
     2020-04-28 20:52:30   Gaskessel_TemperaturdesZweitkessel_0xc4_description Temperatur des Zweitkessel
     2020-04-28 20:52:30   Gaskessel_TemperaturdesZweitkessel_0xc4_unit °C
     2020-04-28 20:55:29   Gaskessel_TemperaturdesZweitkessel_0xc4_value 15.00
     2020-04-28 20:52:30   Heizkreis_01_BetriebsartHeizkreis_0x17_description Betriebsart Heizkreis
     2020-04-28 20:52:30   Heizkreis_01_BetriebsartHeizkreis_0x17_unit
     2020-04-28 20:55:29   Heizkreis_01_BetriebsartHeizkreis_0x17_value 0.00
     2020-04-28 20:52:30   Heizkreis_01_Vorlauf-Isttemperatur_0x15_description Vorlauf-Isttemperatur
     2020-04-28 20:52:30   Heizkreis_01_Vorlauf-Isttemperatur_0x15_unit °C
     2020-04-28 20:55:29   Heizkreis_01_Vorlauf-Isttemperatur_0x15_value 39.00
     2020-04-28 20:52:30   Heizkreis_01_Vorlauf-Solltemperatur_0x16_description Vorlauf-Solltemperatur
     2020-04-28 20:52:30   Heizkreis_01_Vorlauf-Solltemperatur_0x16_unit °C
     2020-04-28 20:55:29   Heizkreis_01_Vorlauf-Solltemperatur_0x16_value 48.00
     2020-04-28 20:52:30   Heizkreis_02_BetriebsartHeizkreis_0x1b_description Betriebsart Heizkreis
     2020-04-28 20:52:30   Heizkreis_02_BetriebsartHeizkreis_0x1b_unit
     2020-04-28 20:55:29   Heizkreis_02_BetriebsartHeizkreis_0x1b_value 0.00
     2020-04-28 20:52:30   Heizkreis_02_Vorlauf-Isttemperatur_0x19_description Vorlauf-Isttemperatur
     2020-04-28 20:52:30   Heizkreis_02_Vorlauf-Isttemperatur_0x19_unit °C
     2020-04-28 20:55:29   Heizkreis_02_Vorlauf-Isttemperatur_0x19_value 48.00
     2020-04-28 20:52:30   Heizkreis_02_Vorlauf-Solltemperatur_0x1a_description Vorlauf-Solltemperatur
     2020-04-28 20:52:30   Heizkreis_02_Vorlauf-Solltemperatur_0x1a_unit °C
     2020-04-28 20:55:29   Heizkreis_02_Vorlauf-Solltemperatur_0x1a_value 48.00
     2020-04-28 20:52:30   Holzscheitkessel_Abgas-Solltemperatur_0x13_description Abgas-Solltemperatur
     2020-04-28 20:52:30   Holzscheitkessel_Abgas-Solltemperatur_0x13_unit °C
     2020-04-28 20:55:29   Holzscheitkessel_Abgas-Solltemperatur_0x13_value 164.00
     2020-04-28 20:52:30   Holzscheitkessel_Abgastemperatur_0x1_description Abgastemperatur
     2020-04-28 20:52:30   Holzscheitkessel_Abgastemperatur_0x1_unit °C
     2020-04-28 20:55:29   Holzscheitkessel_Abgastemperatur_0x1_value 122.00
     2020-04-28 20:52:30   Holzscheitkessel_BetriebsstundeninderFeuererhaltung_0x73_description Betriebsstunden in der Feuererhaltung
     2020-04-28 20:52:30   Holzscheitkessel_BetriebsstundeninderFeuererhaltung_0x73_unit h
     2020-04-28 20:55:29   Holzscheitkessel_BetriebsstundeninderFeuererhaltung_0x73_value 27.00
     2020-04-28 20:52:30   Holzscheitkessel_EmpfohleneHolzmengebeimNachlegen_0x10a_description Empfohlene Holzmenge beim Nachlegen
     2020-04-28 20:52:30   Holzscheitkessel_EmpfohleneHolzmengebeimNachlegen_0x10a_unit k
     2020-04-28 20:55:29   Holzscheitkessel_EmpfohleneHolzmengebeimNachlegen_0x10a_value 3.00
     2020-04-28 20:52:30   Holzscheitkessel_Kesselstellgroesse_0x12_description Kesselstellgröße
     2020-04-28 20:52:30   Holzscheitkessel_Kesselstellgroesse_0x12_unit %
     2020-04-28 20:55:29   Holzscheitkessel_Kesselstellgroesse_0x12_value 100.00
     2020-04-28 20:52:30   Holzscheitkessel_Kesseltemperatur_0x0_description Kesseltemperatur
     2020-04-28 20:52:30   Holzscheitkessel_Kesseltemperatur_0x0_unit °C
     2020-04-28 20:55:29   Holzscheitkessel_Kesseltemperatur_0x0_value 68.00
     2020-04-28 20:52:30   Holzscheitkessel_Kesselzustand_0x1c9_description Kesselzustand
     2020-04-28 20:52:30   Holzscheitkessel_Kesselzustand_0x1c9_unit
     2020-04-28 20:55:29   Holzscheitkessel_Kesselzustand_0x1c9_value 3.00
     2020-04-28 20:52:30   Holzscheitkessel_PufferpumpenbegrenzungdurchAbgastemperatur_0xde_description Pufferpumpenbegrenzung durch Abgastemperatur
     2020-04-28 20:52:30   Holzscheitkessel_PufferpumpenbegrenzungdurchAbgastemperatur_0xde_unit %
     2020-04-28 20:55:29   Holzscheitkessel_PufferpumpenbegrenzungdurchAbgastemperatur_0xde_value 8.00
     2020-04-28 20:52:30   Holzscheitkessel_Saugzug-Ansteuerung_0xf_description Saugzug - Ansteuerung
     2020-04-28 20:52:30   Holzscheitkessel_Saugzug-Ansteuerung_0xf_unit %
     2020-04-28 20:55:29   Holzscheitkessel_Saugzug-Ansteuerung_0xf_value 90.00
     2020-04-28 20:52:30   Holzscheitkessel_Saugzugdrehzahl_0x7_description Saugzugdrehzahl
     2020-04-28 20:52:30   Holzscheitkessel_Saugzugdrehzahl_0x7_unit U
     2020-04-28 20:55:29   Holzscheitkessel_Saugzugdrehzahl_0x7_value 2702.00
     2020-04-28 20:52:30   Puffer_PufferladezustandDiskret_0x1c0_description Pufferladezustand Diskret
     2020-04-28 20:52:30   Puffer_PufferladezustandDiskret_0x1c0_unit
     2020-04-28 20:55:29   Puffer_PufferladezustandDiskret_0x1c0_value 4.00
     2020-04-28 20:52:30   Puffer_Pufferladezustand_0xe1_description Pufferladezustand
     2020-04-28 20:52:30   Puffer_Pufferladezustand_0xe1_unit %
     2020-04-28 20:55:29   Puffer_Pufferladezustand_0xe1_value 83.00
     2020-04-28 20:52:30   Puffer_PufferpumpenAnsteuerung_0x8c_description Pufferpumpen Ansteuerung
     2020-04-28 20:52:30   Puffer_PufferpumpenAnsteuerung_0x8c_unit %
     2020-04-28 20:55:29   Puffer_PufferpumpenAnsteuerung_0x8c_value 0.00
     2020-04-28 20:52:30   Puffer_Puffertemperaturoben_0x76_description Puffertemperatur oben
     2020-04-28 20:52:30   Puffer_Puffertemperaturoben_0x76_unit °C
     2020-04-28 20:55:29   Puffer_Puffertemperaturoben_0x76_value 70.00
     2020-04-28 20:52:30   Puffer_Puffertemperaturunten_0x78_description Puffertemperatur unten
     2020-04-28 20:52:30   Puffer_Puffertemperaturunten_0x78_unit °C
     2020-04-28 20:55:29   Puffer_Puffertemperaturunten_0x78_value 67.50
Attributes:
   IODev      mqtt2server
   readingList p4d_publisher:p4d2mqtt:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE

Ich dachte eigentlich, dass direkt verschiedene MQTT2_DEVICES per autocreate angelegt werden. Ist es so richtig, dass die Baugruppen hier nun in den Readings aufgeführt werden? Oder ist da etwas schief gegangen?

Hier noch das verbose 5:

https://pastebin.com/Qr8m58Kk

Passt das so?

  • Wenn nein, was genau passt nicht?
  • Wenn ja, brauche ich noch nochmal eure Unterstützung, wie ich jetzt die einzelnen Devices mit den korrekten readingLists erstelle.

Danke euch und Gruß Hoppel
« Letzte Änderung: 28 April 2020, 21:25:16 von hoppel118 »
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic: VCCU 2xHMUSB, 1xWLGW | HomeConnect | Philips Hue | Sonos | Unifi: UDM-Pro, USW, U6-Pro | Xiaomi: S50, Smart Fan | vbus: Vitosolic 200SD4 | MQTT: Worx, Fröling

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16884
Auf die Schnelle: Pro Baugruppe sollte es einen eigenen Topic geben; das in den JSON zu packen ist m.E. suboptimal. Wir können (ohne Verrenkungen) nur auf Basis des Topic-Trees gut vorsortieren.

Generell: Du beschäftigst dich zu sehr mit dem Server. laß den werkeln...
Server: HP-T620@Debian 11, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline hoppel118

  • Hero Member
  • *****
  • Beiträge: 1122
Auf die Schnelle: Pro Baugruppe sollte es einen eigenen Topic geben; das in den JSON zu packen ist m.E. suboptimal. Wir können (ohne Verrenkungen) nur auf Basis des Topic-Trees gut vorsortieren.

Danke für die Rückmeldung. Das dachte ich mir auch schon und habe das bereits so weiter gegeben.

Generell: Du beschäftigst dich zu sehr mit dem Server. laß den werkeln...

Kann ich den MQTT2_Server eigentlich irgendwie stoppen? (Wenn ich mich recht entsinne, hatte ich neulich „attr mqtt2server disable 1“ getestet, aber an dem MQTT2_Device wurden die Readings trotzdem aktualisiert.) Außerdem wollte ich nicht, dass noch Altreste im Retain Feld sind, auch wenn das nicht stört. Wie dem auch sei, da ich keine anderen MQTT Geräte habe, bereitet mir die Vorgehensweise erstmal keine Probleme. ;)

Gruß Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic: VCCU 2xHMUSB, 1xWLGW | HomeConnect | Philips Hue | Sonos | Unifi: UDM-Pro, USW, U6-Pro | Xiaomi: S50, Smart Fan | vbus: Vitosolic 200SD4 | MQTT: Worx, Fröling

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24911
Zitat
Wir können (ohne Verrenkungen) nur auf Basis des Topic-Trees gut vorsortieren.

Und so schauen die Verrenkungen aus, die man alle per Hand anlegen darf:

define Boiler MQTT2_DEVICE
attr Boiler readingList p4d2mqtt.* { my $j=json2nameValue($EVENT);; my %r;; map { $r{$1}=$j->{$_} if($_=~m/Boiler_(.*)/) } keys %{$j};; \%r }

define Holzscheitkessel MQTT2_DEVICE
attr Holzscheitkessel readingList p4d2mqtt.* { my $j=json2nameValue($EVENT);; my %r;; map { $r{$1}=$j->{$_} if($_=~m/Holzscheitkessel_(.*)/) } keys %{$j};; \%r }

Zitat
Kann ich den MQTT2_Server eigentlich irgendwie stoppen?
delete MQTT2_Server
oder
modify MQTT2_Server 1884

Das disable Attribut verhindert nur das Senden.

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24911
Kuerzer aber nicht weniger kryptisch ist diese Schreibweise:
attr Boiler readingList p4d2mqtt.* { hashKeyRename(json2nameValue($EVENT), '^(Boiler_(.*)_value)', '(Boiler.*)') }