Hallo Leute,
ich habe meinen Fröling Holzscheitkessel über einen RPi mit usb2serial Interface an mein FHEM angebunden. Die MQTT-Verbindung zw. Holzscheitkessel und FHEM steht. Ich habe von MQTT bisher keine Ahnung. Also habt bitte Nachsicht mit mir. Das Wiki und Commandref habe ich gelesen, verstehe aber nur die Hälfte bzw. finde zu meiner Problamtik nichts. ;)
Nähere Details zur Installation sind in folgendem Beitrag zu finden: https://forum.fhem.de/index.php/topic,65573.15.html
Da dort momentan niemand reagiert, möchte ich gern einen eigenen Thread hier im MQTT-Bereich starten. Ich habe einen MQTT2_SERVER eingerichtet. Per autocreate wurde ein MQTT2_DEVICE mit einer großen readingList angelegt:
Internals:
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC MQTT2_p4d_publisher
FUUID 5e99776c-f33f-5dcf-2ab6-b971959880093aca
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 230868
NAME MQTT2_p4d_publisher
NR 573
STATE ???
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 230868
mqtt2server_TIME 2020-04-19 22:57:50
READINGS:
2020-04-19 22:57:50 name Kesselzustand
2020-04-19 22:57:50 state_topic p4d2mqtt/sensor/Kesselzustand_0x1c9/state
2020-04-19 22:57:50 unique_id Kesselzustand_0x1c9_p4d2mqtt
2020-04-19 22:57:50 unit_of_measurement
2020-04-19 22:57:50 value 5.00
2020-04-19 22:57:50 value_template {{ value_json.value }}
Attributes:
IODev mqtt2server
readingList p4d_publisher:homeassistant/sensor/Kesseltemperatur_0x0/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Kesseltemperatur_0x0/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Status/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Status/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Abgastemperatur_0x1/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Abgastemperatur_0x1/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Betriebsmodus/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Betriebsmodus/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Boardtemperatur_0x2/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Boardtemperatur_0x2/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Uhrzeit/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Uhrzeit/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Au\xc3\x9fentemperatur_0x4/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Au\xc3\x9fentemperatur_0x4/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Saugzugdrehzahl_0x7/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Saugzugdrehzahl_0x7/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Zykluszeit_0xe/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Zykluszeit_0xe/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Saugzug-Ansteuerung_0xf/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Saugzug-Ansteuerung_0xf/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Kesselstellgr\xc3\xb6\xc3\x9fe_0x12/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Kesselstellgr\xc3\xb6\xc3\x9fe_0x12/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Abgas-Solltemperatur_0x13/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Abgas-Solltemperatur_0x13/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Vorlauf-Isttemperatur_0x15/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Vorlauf-Isttemperatur_0x15/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Vorlauf-Solltemperatur_0x16/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Vorlauf-Solltemperatur_0x16/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/BetriebsartHeizkreis_0x17/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/BetriebsartHeizkreis_0x17/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Vorlauf-Isttemperatur_0x19/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Vorlauf-Isttemperatur_0x19/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Vorlauf-Solltemperatur_0x1a/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Vorlauf-Solltemperatur_0x1a/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/BetriebsartHeizkreis_0x1b/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/BetriebsartHeizkreis_0x1b/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Boilertemperaturoben_0x5d/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Boilertemperaturoben_0x5d/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Betriebsstunden_0x62/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Betriebsstunden_0x62/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/BetriebsstundeninderFeuererhaltung_0x73/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/BetriebsstundeninderFeuererhaltung_0x73/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Puffertemperaturoben_0x76/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Puffertemperaturoben_0x76/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Puffertemperaturunten_0x78/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Puffertemperaturunten_0x78/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/PufferpumpenAnsteuerung_0x8c/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8c/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/BoilerpumpeAnsteuerung_0x90/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x90/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/TemperaturdesZweitkessel_0xc4/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/TemperaturdesZweitkessel_0xc4/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Lambdasondenspannunggemessen_0xd3/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Lambdasondenspannunggemessen_0xd3/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/StundenseitletzterWartung_0xd5/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/StundenseitletzterWartung_0xd5/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Lambdasondenspannungkorrigiert_0xdc/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Lambdasondenspannungkorrigiert_0xdc/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/PufferpumpenbegrenzungdurchAbgastemperatur_0xde/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/PufferpumpenbegrenzungdurchAbgastemperatur_0xde/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Pufferladezustand_0xe1/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Pufferladezustand_0xe1/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/F\xc3\xbchleramHydraulikmodul03_0xff/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/F\xc3\xbchleramHydraulikmodul03_0xff/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/BetriebsstundenvonKessel2Brennerkontakt_0x109/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/BetriebsstundenvonKessel2Brennerkontakt_0x109/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/EmpfohleneHolzmengebeimNachlegen_0x10a/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/EmpfohleneHolzmengebeimNachlegen_0x10a/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/BetriebsartBoiler_0x156/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/BetriebsartBoiler_0x156/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Build_0x16f/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Build_0x16f/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Raumf\xc3\xbchlerKBGTouch_0x191/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Raumf\xc3\xbchlerKBGTouch_0x191/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Pufferladezustand_0x1bf/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Pufferladezustand_0x1bf/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/PufferladezustandDiskret_0x1c0/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/PufferladezustandDiskret_0x1c0/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/VergangeneZeitseitletzterW\xc3\xa4rmetauscherreinigung_0x1c7/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/VergangeneZeitseitletzterW\xc3\xa4rmetauscherreinigung_0x1c7/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Kesselzustand_0x1c9/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Kesselzustand_0x1c9/state:.* { json2nameValue($EVENT) }
room System->MQTT
Warum werden wie Readings auf diese Weise dargestellt?
Was muss ich tun, damit die Readings FHEM-typisch im Device dargestellt werden.
Testweise habe ich nun weitere Devices manuell angelegt, um dem auf die Schliche zu kommen. Das klappt allerdings nicht.
Hier heißt das Reading "value" und der Messwert passt:
Internals:
CFGFN
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC EG_HZR_Heizung
FUUID 5e9cb8ae-f33f-5dcf-6eb9-6c53bbe48bb640fb
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 14
NAME EG_HZR_Heizung
NR 2252
STATE ???
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 14
mqtt2server_TIME 2020-04-19 23:00:44
READINGS:
2020-04-19 23:00:44 value 58.00
Attributes:
IODev mqtt2server
readingList p4d_publisher:p4d2mqtt/sensor/Kesseltemperatur_0x0/state:.* { json2nameValue($EVENT) }
room System->MQTT
Hier ist es andersherum. Der Readingname passt, aber beim Messwert steht "{ "value" : "57.50" }":
Internals:
CFGFN
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC EG_HZR_Heizung
FUUID 5e9cb8ae-f33f-5dcf-6eb9-6c53bbe48bb640fb
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 24
NAME EG_HZR_Heizung
NR 2252
STATE ???
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 24
mqtt2server_TIME 2020-04-19 23:10:44
READINGS:
2020-04-19 23:10:44 Kesseltemperatur { "value" : "57.50" }
Attributes:
IODev mqtt2server
readingList p4d_publisher:p4d2mqtt/sensor/Kesseltemperatur_0x0/state:.* Kesseltemperatur
room System->MQTT
Wenn ich so einen homeassistant-Eintrag nehme, sieht es so aus:
Internals:
CFGFN
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC EG_HZR_Heizung
FUUID 5e9cb8ae-f33f-5dcf-6eb9-6c53bbe48bb640fb
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 29
NAME EG_HZR_Heizung
NR 2252
STATE ???
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 29
mqtt2server_TIME 2020-04-19 23:15:44
OLDREADINGS:
READINGS:
2020-04-19 23:15:44 name Kesseltemperatur
2020-04-19 23:15:44 state_topic p4d2mqtt/sensor/Kesseltemperatur_0x0/state
2020-04-19 23:15:44 unique_id Kesseltemperatur_0x0_p4d2mqtt
2020-04-19 23:15:44 unit_of_measurement °C
2020-04-19 23:15:44 value_template {{ value_json.value }}
Attributes:
IODev mqtt2server
readingList p4d_publisher:homeassistant/sensor/Kesseltemperatur_0x0/config:.* { json2nameValue($EVENT) }
room System->MQTT
Ich hoffe, ihr könnt mir helfen. ;)
Danke euch und Gruß Hoppel
Wenn ich aus den gezeigten Readings richtig rate, dann koennte man mit Folgendem readingList mehr Erfolg haben:
homeassistant.* { undef }\
p4d2mqtt.* { my $r1=json2nameValue($EVENT);; my %r2;; $r2{$r1->{name}} = $r1->{value} if($r1->{name});; \%r2 }
Damit ich diesen Vorschlag selbst testen kann, brauche ich topic/message Paare, je mehr, desto besser.
Wenn du das wie folgt meinst, funktioniert es nicht. Die Readings erscheinen nicht:
Internals:
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC EG_HZR_Heizung
FUUID 5e9cc17b-f33f-5dcf-59f0-01f59be74e89a1ad
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 162
NAME EG_HZR_Heizung
NR 575
STATE ???
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 162
mqtt2server_TIME 2020-04-20 00:53:49
READINGS:
Attributes:
IODev mqtt2server
readingList homeassistant.* { undef }
p4d2mqtt.* { my $r1=json2nameValue($EVENT);; my %r2;; $r2{$r1->{name}} = $r1->{value} if($r1->{name});; \%r2 }
room System->MQTT
Wo finde ich diese topic/message Paare bzw. wie erzeuge ich diese?
Danke dir
ZitatWo finde ich diese topic/message Paare bzw. wie erzeuge ich diese?
"attr mqtt2server verbose 5" setzen, und FHEM-Log pruefen. Alternativ in einem Shell "mosquitto_sub -v -t #" starten.
OK, hier ein verbose 5:
https://pastebin.com/wzTiUv2H
Danke für deine Unterstützung.
Gruß Hoppel
Zitat von: rudolfkoenig am 20 April 2020, 00:02:25
Wenn ich aus den gezeigten Readings richtig rate, dann koennte man mit Folgendem readingList mehr Erfolg haben:
homeassistant.* { undef }\
p4d2mqtt.* { my $r1=json2nameValue($EVENT);; my %r2;; $r2{$r1->{name}} = $r1->{value} if($r1->{name});; \%r2 }
Damit ich diesen Vorschlag selbst testen kann, brauche ich topic/message Paare, je mehr, desto besser.
Hi Rudi,
hast du vor, den autodiscovery-Mechanismus aus Homeassistant nachzubilden?
Wenn nein: afaik handelt es sich bei dem, was unter "homeassistant/#" reinkommt, ganz allgemein um Konfigurationsanweisungen für diesen speziellen Controller. Meine Empfehlung wäre, die auf Ebene des IO's (hier: MQTT2_SERVER?) per "ignoreRegexp" "auszuknipsen.
Dann ist hier noch "doof", dass der eigentliche Sensor- bzw. "Reading"-name irgendwo im Topic-Pfad verborgen ist und dann auch noch Umlaute enthält...
Vielleicht wäre eine ähnliche Konstruktion wie in https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template#L2657 sinnvoll?
Wir können gerne versuchen, da ein attrTemplate draus zu basteln...
@hoppel118:
Derjenige, der MQTT fuer dieses Geraet implementiert hat, muss ein "Kuenstler" gewesen sein, und das mehrfach.
Versuchs mal mit Folgendem readingsList:
p4d2mqtt/sensor/.* { $TOPIC=~s,.*sensor/([^/]*)/.*$,$1,; my $h=json2nameValue($EVENT); my %r; $r{makeReadingName($TOPIC)}=$h->{value}; \%r }
homeassistant.* {undef}
@Beta-User:
- mir ist egal, wo man homeassistant ignoriert, ich habs halt hier gemacht.
- wg. L2657: ich verstehe noch nicht, warum $TOPIC da geaendert wird: es zaehlt doch nur die Rueckgabe von json2nameValue, oder uebersehe ich etwas?
"An sich" - und für das eine Device - ist es egal, wo man die homeassisstant-Infos wegwirft, korrekt. Aber da das nicht nur dieses Gerät sendet, sondern manche anderen auch bereits mit den default-Einstellungen, macht es m.E. Sinn, das zentral zu machen, sobald man das erste mal über dieses Ding gestolpert ist.
Habe ehrlich gesagt nie darüber nachgedacht, ob in Zeile 2657 $TOPIC geändert wird ("m,"?); was man halt im Ergebnis braucht, ist das Topic-Element, um es nachher verwenden zu können.
Aber die direkte Lösung über die readingList wie von dir vorgeschlagen ist sicher die bessere Variante :) .
ZitatHabe ehrlich gesagt nie darüber nachgedacht, ob in Zeile 2657 $TOPIC geändert wird ("m,"?); was man halt im Ergebnis braucht, ist das Topic-Element, um es nachher verwenden zu können.
Sage ich doch: ich habe was uebersehen :)
Eine mAn elegantere Variante ist
p4d2mqtt/sensor/.* { $TOPIC=~m,.*sensor/([^/]*)/,; json2nameValue($EVENT, '', {value=>$1}) }
erzeugt aber Readings mit UTF-8-Umlauten.
Ich habe MQTT2_DEVICE angepasst, damit readingNamen ueber makeReadingName validiert werden, evtl. erzeugt das aber anderswo Nebeneffekte.
Edit: weiter verkuerzt.
Sieht gut aus!
Vielleicht noch zwei Kleinigkeiten in dem Zusammenhang:
1. Ich habe immer mehr den Verdacht, dass grade diese autodiscovery-Geschichten von homeassistant "schuld" sind, dass wir diese "Geisterreadings" haben. Ich neige daher dazu, das bewußt abzubrechen, wenn es keinen match gibt, ähnlich wie in https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template#L2659
2. Da steht noch ein "return undef". Aus der Diskussion an anderer Stelle hatte ich jetzt entnommen, dass es "richtiger" wäre, ein einfaches "return;" zu verwenden.
Käme daher "im Paket" auf folgendes (unless finde ich immer noch nicht "sooo böse"):
p4d2mqtt/sensor/.* { return unless $TOPIC=~m,sensor/([^/]+)/,; my %r=(value=>$1); json2nameValue($EVENT, '', \%r) }\
homeassistant.* {return;}
(letzteres könnte man auch mit einer leeren Klammer schreiben, aber das Schlüsselwort dürfte besser klarmachen, dass eigentlich eine "mach nix"-Reaktion gewünscht ist.
Vermutlich werde ich bei Gelegenheit versuchen, da ein "generalisiertes" ignoreRegexp-Template zu basteln, das man dem IO verpassen kann...)
Ich kann mich mit unless nicht befreunden, fuehrt meiner Ansicht nach zu mehrfach verneinte Logik, aber jeder wie es mag.
Man kann es samt return sparen, wenn man das Regexp anders baut.
Die Diskussion um "return undef" wird meiner Ansicht nach nur gefuehrt, damit man was diskutieren kann. Ja, es gibt Faelle, wo ein Anfaenger das Rueckgabewert falsch interpretieren koennte. Hier ist das nicht der Fall, und mir ist im FHEM Umfeld auch keins bekannt, wo das irgendein Unterschied machen wuerde. Und ob es in diesem Fall return oder undef besser ausdrueckt, dass man nichts will, ist Geschmacksache.
Btw: ich habe den Ausdruck weiter verkuerzt, s.o.
Hallo Jungs,
man hier ist ja richtig Action gewesen. Jetzt habe ich Mittagspause. ;)
Folgendes habe ich nun getestet:
Zitat von: Beta-User am 20 April 2020, 11:14:59
p4d2mqtt/sensor/.* { return unless $TOPIC=~m,sensor/([^/]+)/,; my %r=(value=>$1); json2nameValue($EVENT, '', \%r) }\
homeassistant.* {return;}
Das sieht ziemlich genau so aus, wie ich mir das vorgestellt habe. Hier nochmal ein list:
Internals:
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC EG_HZR_Heizung
FUUID 5e9cc17b-f33f-5dcf-59f0-01f59be74e89a1ad
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 58470
NAME EG_HZR_Heizung
NR 575
STATE ???
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 58470
mqtt2server_TIME 2020-04-20 12:47:39
READINGS:
2020-04-20 12:47:35 Abgas-Solltemperatur_0x13 219.00
2020-04-20 12:47:34 Abgastemperatur_0x1 119.00
2020-04-20 12:47:35 Außentemperatur_0x4 11.50
2020-04-20 12:47:39 BetriebsartBoiler_0x156 1.00
2020-04-20 12:47:36 BetriebsartHeizkreis_0x17 0.00
2020-04-20 12:47:36 BetriebsartHeizkreis_0x1b 0.00
2020-04-20 12:47:34 Betriebsmodus Dauerlast
2020-04-20 12:47:36 Betriebsstunden_0x62 9825.00
2020-04-20 12:47:37 BetriebsstundeninderFeuererhaltung_0x73 27.00
2020-04-20 12:47:38 BetriebsstundenvonKessel2Brennerkontakt_0x109 2425.00
2020-04-20 12:47:34 Boardtemperatur_0x2 38.50
2020-04-20 12:47:37 BoilerpumpeAnsteuerung_0x90 100.00
2020-04-20 12:47:36 Boilertemperaturoben_0x5d 58.00
2020-04-20 12:47:39 Build_0x16f 2.00
2020-04-20 12:47:38 EmpfohleneHolzmengebeimNachlegen_0x10a 0.00
2020-04-20 12:47:38 FühleramHydraulikmodul03_0xff 58.00
2020-04-20 12:47:35 Kesselstellgröße_0x12 100.00
2020-04-20 12:47:34 Kesseltemperatur_0x0 75.50
2020-04-20 12:47:39 Kesselzustand_0x1c9 3.00
2020-04-20 12:47:37 Lambdasondenspannunggemessen_0xd3 24.14
2020-04-20 12:47:38 Lambdasondenspannungkorrigiert_0xdc 24.14
2020-04-20 12:47:39 PufferladezustandDiskret_0x1c0 4.00
2020-04-20 12:47:39 Pufferladezustand_0x1bf 97.00
2020-04-20 12:47:38 Pufferladezustand_0xe1 97.00
2020-04-20 12:47:37 PufferpumpenAnsteuerung_0x8c 64.00
2020-04-20 12:47:38 PufferpumpenbegrenzungdurchAbgastemperatur_0xde 8.00
2020-04-20 12:47:37 Puffertemperaturoben_0x76 75.50
2020-04-20 12:47:37 Puffertemperaturunten_0x78 74.50
2020-04-20 12:47:39 RaumfühlerKBGTouch_0x191 19.00
2020-04-20 12:47:35 Saugzug-Ansteuerung_0xf 90.00
2020-04-20 12:47:35 Saugzugdrehzahl_0x7 2702.00
2020-04-20 12:47:34 Status Heizen
2020-04-20 12:47:38 StundenseitletzterWartung_0xd5 9825.00
2020-04-20 12:47:37 TemperaturdesZweitkessel_0xc4 17.00
2020-04-20 12:47:34 Uhrzeit Monday, 20. Apr. 2020 12:36:10
2020-04-20 12:47:39 VergangeneZeitseitletzterWärmetauscherreinigung_0x1c7 334.00
2020-04-20 12:47:35 Vorlauf-Isttemperatur_0x15 47.50
2020-04-20 12:47:36 Vorlauf-Isttemperatur_0x19 33.00
2020-04-20 12:47:36 Vorlauf-Solltemperatur_0x16 48.50
2020-04-20 12:47:36 Vorlauf-Solltemperatur_0x1a 48.50
2020-04-20 12:47:35 Zykluszeit_0xe 54.00
Attributes:
IODev mqtt2server
readingList p4d2mqtt/sensor/.* { return unless $TOPIC=~m,sensor/([^/]+)/,; my %r=(value=>$1); json2nameValue($EVENT, '', \%r) }
homeassistant.* {return;}
room System->MQTT
Eine Frage habe ich nun dennoch:
Ich habe jetzt das von mir manuell angelegte MQTT2_DEVICE und das per autocreate angelegte Device. Am Liebsten wäre mir natürlich, wenn das per autocreate angelegte Device direkt richtig funktioniert und ich das manuell angelegte Device wieder löschen kann.
Seht ihr da eine Chance oder ist das ab morgen per Update der Fall?
Zitat von: rudolfkoenig am 20 April 2020, 10:07:03
@hoppel118:
Derjenige, der MQTT fuer dieses Geraet implementiert hat, muss ein "Kuenstler" gewesen sein, und das mehrfach.
Das Kompliment gebe ich gern weiter. ;)
DICKES FETTES DANKE SCHÖN! TOP!!!
Viele Grüße Hoppel
Ich habe noch keine Idee, wie man diese vermurkste Schnittstelle automatisch entdecken koennte.
Template zaehlt fuer mich nicht als automatisch, und ist in diesem Fall die beste Loesung.
Achtung: mit dem update werden die "schoenen" Umlaut-Readings kaputtgemacht.
@Rudi: Das shier habe ich (noch?) nicht verstanden:
ZitatMan kann es samt return sparen, wenn man das Regexp anders baut.
@hoppel118:
"Von alleine" wird weder autocreate noch attrTemplate dieses "Ding" nicht in den Griff bekommen ;D . Du wirst also mit dem händisch erstellten "leben müssen" ;D ;D ;D .
Die erste Zeile kannst du entweder nach Rudi's Vorschlag oder auch so schreiben:
p4d2mqtt/sensor/.* { return unless $TOPIC=~m,sensor/([^/]+)/,; json2nameValue($EVENT, '', {value=>$1}) }
Bei dem ganzen würden mich die mitgelieferten Hex-Adressen noch stören. Da die aber von Bedeutung zu sein scheinen (mind. 2 Vorlauftemp sind genannt), müßte man da doch ggf. irgendwas mit jsonMap umbenennen, wenn man das haben wollte.
Kannst ja mal (parallel an einer Kopie) das hier testen:
p4d2mqtt/sensor/.* { return unless $TOPIC=~m,sensor/([^/]+)/,; json2nameValue($EVENT, "${1}_", $JSONMAP) }
und dazu ein jsonMap-Attribut (aus der Hüfte geschossene Beispiele):
Puffertemperaturoben_0x76_value:Puffertemperatur_oben Kesseltemperatur_0x0_value:Kesseltemperatur
Ich meinte ein Regexp der Art: p4d2mqtt/sensor/.*/state
Auf der anderen Seite kann man mit der "unless" Variante und ein .* readingList-Regexp die homeassistant Zeile sparen.
Der Nachteil deines letzten Vorschlags ist, dass man, falls den sinnfreien _value vermeiden will, in jsonMap alle 40+ Readings einbauen muss.
Der Vorteil, dass man die (ab morgen :) ) kaputtgemachten Umlaute umbenennen kann.
Ich wuerde dein Vorschlag nehmen, _0x76 & co per $TOPIC=~m,sensor/([^/]+)_0x../, wegmachen, die 2-3 Umlaut-Faelle mit jsonMap lesbar machen, und mit _value leben.
Hmm, an das weg-regexen hatte ich auch schon gedacht, aber da ist das Problem, dass es mind. zwei gibt, die unterschiedliche HEX-Adressem zu repräsentieren scheinen. Wenn das doch dasselbe ist, macht es Sinn, das so wie vorgeschlagen zu erledigen...
Eines der beiden:
2020-04-20 12:47:36 BetriebsartHeizkreis_0x17 0.00
2020-04-20 12:47:36 BetriebsartHeizkreis_0x1b 0.00
@hoppel: Da du den "Künstler" näher zu kennen scheinst: Evtl. wäre es eine Idee, das irgendwie auf der MQTT-Seite dahingehend zu verbessern, dass man wenigstens nur sprechende Namen hat oder die Möglichkeit, JSON (partiell?) abzuschalten und dann auf den jeweiligen Pfad einfach nur den Wert in Klartext bekommt.
Ist jedenfalls "ungewöhnlich", wie das hier gelöst ist...
Zitat von: rudolfkoenig am 20 April 2020, 13:14:13
Ich habe noch keine Idee, wie man diese vermurkste Schnittstelle automatisch entdecken koennte.
Template zaehlt fuer mich nicht als automatisch, und ist in diesem Fall die beste Loesung.
Gegen ein Template habe ich nichts einzuwenden.
Zitat von: rudolfkoenig am 20 April 2020, 13:14:13
Achtung: mit dem update werden die "schoenen" Umlaut-Readings kaputtgemacht.
Auf die Umlaute in den Readings lege ich keinen Wert. Wichtig ist, dass die Readings überhaupt dargestellt werden. Wenn in FHEM grundsätzlich keine Readings mit Umlauten existieren, warum sollte das denn hier anders sein?
Zitat von: Beta-User am 20 April 2020, 13:23:05
@Rudi: Das shier habe ich (noch?) nicht verstanden:
@hoppel118:
"Von alleine" wird weder autocreate noch attrTemplate dieses "Ding" nicht in den Griff bekommen ;D . Du wirst also mit dem händisch erstellten "leben müssen" ;D ;D ;D .
Die erste Zeile kannst du entweder nach Rudi's Vorschlag oder auch so schreiben:
p4d2mqtt/sensor/.* { return unless $TOPIC=~m,sensor/([^/]+)/,; json2nameValue($EVENT, '', {value=>$1}) }
Bei dem ganzen würden mich die mitgelieferten Hex-Adressen noch stören. Da die aber von Bedeutung zu sein scheinen (mind. 2 Vorlauftemp sind genannt), müßte man da doch ggf. irgendwas mit jsonMap umbenennen, wenn man das haben wollte.
Die Hex-Adressen sind in diesem Fall praktisch, da ich so immer noch einen direkten Bezug zum eigentlichen Messwert aus der p4d-Software herstellen kann. Zum Verständnis: In der p4d Web-Oberfläche kann ich aus ca. 300 Messwerten auswählen, welche mir in der p4d Web-Oberfläche in Form eines Dashboards angezeigt werden sollen. Da p4d auch für andere Heizungsmodelle vom Hersteller Fröling verwendet werden kann und somit auch weitere Puffer, weitere Vor- und Rücklauftemperaturen, weitere Temperaturen generell, weitere Heizkreise, weitere Kessel, weitere Boiler, etc. angeschlossen werden können, hat man zwangsläufig Dopplungen in den Messwert-Bezeichnungen (Readingnamen). Mit dieser Steuerung kann man quasi alles steuern (Holzscheit-/-pelletverbrennung, Gas, Öl, Solar, etc.).
Zitat von: Beta-User am 20 April 2020, 13:23:05
Kannst ja mal (parallel an einer Kopie) das hier testen:
p4d2mqtt/sensor/.* { return unless $TOPIC=~m,sensor/([^/]+)/,; json2nameValue($EVENT, "${1}_", $JSONMAP) }
und dazu ein jsonMap-Attribut (aus der Hüfte geschossene Beispiele):
Puffertemperaturoben_0x76_value:Puffertemperatur_oben Kesseltemperatur_0x0_value:Kesseltemperatur
Sobald ich das jsonMap-Attribut setze, werden alle Readings mit value gedoppelt. Oder habe ich bei folgendem Device irgendwas übersehen?
Internals:
CFGFN
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC EG_HZR_Heizung_Test
FUUID 5e9da7ae-f33f-5dcf-a7dc-9f138bc0c06110ca
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 405
NAME EG_HZR_Heizung_Test
NR 891
STATE ???
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 405
mqtt2server_TIME 2020-04-20 15:57:10
JSONMAP:
Kesseltemperatur_0x0_value Kesseltemperatur
Puffertemperaturoben_0x76_value Puffertemperatur_oben
READINGS:
2020-04-20 15:49:06 Abgas-Solltemperatur_0x13 275.00
2020-04-20 15:57:05 Abgas-Solltemperatur_0x13_value 275.00
2020-04-20 15:49:04 Abgastemperatur_0x1 66.00
2020-04-20 15:57:04 Abgastemperatur_0x1_value 66.00
2020-04-20 15:49:05 Außentemperatur_0x4 13.50
2020-04-20 15:57:05 Außentemperatur_0x4_value 13.50
2020-04-20 15:49:10 BetriebsartBoiler_0x156 1.00
2020-04-20 15:57:09 BetriebsartBoiler_0x156_value 1.00
2020-04-20 15:49:07 BetriebsartHeizkreis_0x17 0.00
2020-04-20 15:57:06 BetriebsartHeizkreis_0x17_value 0.00
2020-04-20 15:49:07 BetriebsartHeizkreis_0x1b 0.00
2020-04-20 15:57:06 BetriebsartHeizkreis_0x1b_value 0.00
2020-04-20 15:49:04 Betriebsmodus Dauerlast
2020-04-20 15:57:04 Betriebsmodus_value Dauerlast
2020-04-20 15:49:08 Betriebsstunden_0x62 9825.00
2020-04-20 15:57:07 Betriebsstunden_0x62_value 9825.00
2020-04-20 15:49:08 BetriebsstundeninderFeuererhaltung_0x73 27.00
2020-04-20 15:57:07 BetriebsstundeninderFeuererhaltung_0x73_value 27.00
2020-04-20 15:49:10 BetriebsstundenvonKessel2Brennerkontakt_0x109 2426.00
2020-04-20 15:57:08 BetriebsstundenvonKessel2Brennerkontakt_0x109_value 2426.00
2020-04-20 15:49:05 Boardtemperatur_0x2 43.50
2020-04-20 15:57:04 Boardtemperatur_0x2_value 43.50
2020-04-20 15:49:08 BoilerpumpeAnsteuerung_0x90 0.00
2020-04-20 15:57:07 BoilerpumpeAnsteuerung_0x90_value 0.00
2020-04-20 15:49:08 Boilertemperaturoben_0x5d 67.50
2020-04-20 15:57:06 Boilertemperaturoben_0x5d_value 68.00
2020-04-20 15:49:10 Build_0x16f 2.00
2020-04-20 15:57:09 Build_0x16f_value 2.00
2020-04-20 15:49:10 EmpfohleneHolzmengebeimNachlegen_0x10a 0.00
2020-04-20 15:57:09 EmpfohleneHolzmengebeimNachlegen_0x10a_value 0.00
2020-04-20 15:49:09 FühleramHydraulikmodul03_0xff 67.50
2020-04-20 15:57:08 FühleramHydraulikmodul03_0xff_value 68.00
2020-04-20 15:49:06 Kesselstellgröße_0x12 100.00
2020-04-20 15:57:05 Kesselstellgröße_0x12_value 100.00
2020-04-20 15:57:04 Kesseltemperatur 74.50
2020-04-20 15:49:04 Kesseltemperatur_0x0 75.00
2020-04-20 15:55:04 Kesseltemperatur_0x0_value 75.00
2020-04-20 15:49:11 Kesselzustand_0x1c9 5.00
2020-04-20 15:57:10 Kesselzustand_0x1c9_value 5.00
2020-04-20 15:49:09 Lambdasondenspannunggemessen_0xd3 24.00
2020-04-20 15:57:08 Lambdasondenspannunggemessen_0xd3_value 24.00
2020-04-20 15:49:09 Lambdasondenspannungkorrigiert_0xdc 24.00
2020-04-20 15:57:08 Lambdasondenspannungkorrigiert_0xdc_value 24.00
2020-04-20 15:49:10 PufferladezustandDiskret_0x1c0 4.00
2020-04-20 15:57:09 PufferladezustandDiskret_0x1c0_value 4.00
2020-04-20 15:49:10 Pufferladezustand_0x1bf 96.00
2020-04-20 15:57:09 Pufferladezustand_0x1bf_value 95.00
2020-04-20 15:49:09 Pufferladezustand_0xe1 96.00
2020-04-20 15:57:08 Pufferladezustand_0xe1_value 95.00
2020-04-20 15:49:08 PufferpumpenAnsteuerung_0x8c 0.00
2020-04-20 15:57:07 PufferpumpenAnsteuerung_0x8c_value 0.00
2020-04-20 15:49:09 PufferpumpenbegrenzungdurchAbgastemperatur_0xde 6.00
2020-04-20 15:57:08 PufferpumpenbegrenzungdurchAbgastemperatur_0xde_value 6.00
2020-04-20 15:57:07 Puffertemperatur_oben 75.00
2020-04-20 15:49:08 Puffertemperaturoben_0x76 75.00
2020-04-20 15:55:07 Puffertemperaturoben_0x76_value 75.00
2020-04-20 15:49:08 Puffertemperaturunten_0x78 74.00
2020-04-20 15:57:07 Puffertemperaturunten_0x78_value 73.50
2020-04-20 15:49:10 RaumfühlerKBGTouch_0x191 19.00
2020-04-20 15:57:09 RaumfühlerKBGTouch_0x191_value 19.00
2020-04-20 15:49:06 Saugzug-Ansteuerung_0xf 0.00
2020-04-20 15:57:05 Saugzug-Ansteuerung_0xf_value 0.00
2020-04-20 15:49:05 Saugzugdrehzahl_0x7 0.00
2020-04-20 15:57:05 Saugzugdrehzahl_0x7_value 0.00
2020-04-20 15:49:04 Status Feuer Aus
2020-04-20 15:57:04 Status_value Feuer Aus
2020-04-20 15:49:09 StundenseitletzterWartung_0xd5 9825.00
2020-04-20 15:57:08 StundenseitletzterWartung_0xd5_value 9825.00
2020-04-20 15:49:09 TemperaturdesZweitkessel_0xc4 16.00
2020-04-20 15:57:07 TemperaturdesZweitkessel_0xc4_value 16.00
2020-04-20 15:49:05 Uhrzeit Monday, 20. Apr. 2020 15:37:40
2020-04-20 15:57:04 Uhrzeit_value Monday, 20. Apr. 2020 15:45:40
2020-04-20 15:49:10 VergangeneZeitseitletzterWärmetauscherreinigung_0x1c7 0.00
2020-04-20 15:57:09 VergangeneZeitseitletzterWärmetauscherreinigung_0x1c7_value 0.00
2020-04-20 15:49:06 Vorlauf-Isttemperatur_0x15 25.50
2020-04-20 15:57:05 Vorlauf-Isttemperatur_0x15_value 25.00
2020-04-20 15:49:07 Vorlauf-Isttemperatur_0x19 25.50
2020-04-20 15:57:06 Vorlauf-Isttemperatur_0x19_value 25.00
2020-04-20 15:49:07 Vorlauf-Solltemperatur_0x16 46.50
2020-04-20 15:57:06 Vorlauf-Solltemperatur_0x16_value 46.50
2020-04-20 15:49:07 Vorlauf-Solltemperatur_0x1a 46.50
2020-04-20 15:57:06 Vorlauf-Solltemperatur_0x1a_value 46.50
2020-04-20 15:49:06 Zykluszeit_0xe 53.60
2020-04-20 15:57:05 Zykluszeit_0xe_value 53.90
Attributes:
IODev mqtt2server
jsonMap Puffertemperaturoben_0x76_value:Puffertemperatur_oben
Kesseltemperatur_0x0_value:Kesseltemperatur
readingList p4d2mqtt/sensor/.* { return unless $TOPIC=~m,sensor/([^/]+)/,; json2nameValue($EVENT, "${1}_", $JSONMAP) }
room System->MQTT
Zitat von: rudolfkoenig am 20 April 2020, 14:01:26
Ich wuerde dein Vorschlag nehmen, _0x76 & co per $TOPIC=~m,sensor/([^/]+)_0x../, wegmachen, die 2-3 Umlaut-Faelle mit jsonMap lesbar machen, und mit _value leben.
wie gesagt, ich brauche nicht unbedingt die Umlaute.
Zitat von: Beta-User am 20 April 2020, 14:16:00
Hmm, an das weg-regexen hatte ich auch schon gedacht, aber da ist das Problem, dass es mind. zwei gibt, die unterschiedliche HEX-Adressem zu repräsentieren scheinen. Wenn das doch dasselbe ist, macht es Sinn, das so wie vorgeschlagen zu erledigen...
Eines der beiden:
2020-04-20 12:47:36 BetriebsartHeizkreis_0x17 0.00
2020-04-20 12:47:36 BetriebsartHeizkreis_0x1b 0.00
@hoppel: Da du den "Künstler" näher zu kennen scheinst: Evtl. wäre es eine Idee, das irgendwie auf der MQTT-Seite dahingehend zu verbessern, dass man wenigstens nur sprechende Namen hat oder die Möglichkeit, JSON (partiell?) abzuschalten und dann auf den jeweiligen Pfad einfach nur den Wert in Klartext bekommt.
Ist jedenfalls "ungewöhnlich", wie das hier gelöst ist...
Ich kenne den Entwickler nicht wirklich näher. Ich war in Kontakt mit dem Entwickler "horchi" von p4d. Der MQTT-Teil wurde aber anscheinend von jemandem aus dem Home Assistant Umfeld entwickelt. Der p4d Entwickler hat den MQTT-Teil dann meinem Verständnis nach in sein p4d Debian-Paket mit aufgenommen, um direkt diese Kompatibilität zu haben. Ganz sicher bin ich mir da aber auch nicht. Ich gebe das Feedback aber trotzdem gern weiter. Wenn das so unüblich ist, besteht wahrscheinlich Interesse das zu erfahren.
Danke euch auf jeden Fall für die Zeit, die Ihr heute investiert habt. Mal sehen, wie das autocreate Device morgen aussieht. Evtl. kann ich damit einfach so leben. Wie gesagt, das einzige, was ich benötige, ist die übliche Readingstruktur. Schönheit der Readingbezeichnungen ist nachrangig. Ich will ein Plot daraus generieren und da kann ich dann wieder eigene Namen pro Reading bzw. Messwert generieren.
Viele Grüße Hoppel
@Beta-User
habe dein Vorhaben nun verstanden. Habe gerade nochmal "homeassistant.* {return;}" im readingList ergänzt und schon wurden wurden die Readingnamen "Puffertemperaturoben_0x76_value" und "Kesseltemperatur_0x0_value" entsprechend jsonMap hübsch gemacht. Ich brauche das persönlich aber nicht so hübsch. Hier der Vollständigkeit halber nochmal das vollständige list dazu:
Internals:
CFGFN
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC EG_HZR_Heizung_Test
FUUID 5e9daf49-f33f-5dcf-c898-48c426bede19ab95
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 365
NAME EG_HZR_Heizung_Test
NR 932
STATE ???
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 365
mqtt2server_TIME 2020-04-20 16:24:10
JSONMAP:
Kesseltemperatur_0x0_value Kesseltemperatur
Puffertemperaturoben_0x76_value Puffertemperatur_oben
READINGS:
2020-04-20 16:24:05 Abgas-Solltemperatur_0x13_value 275.00
2020-04-20 16:24:04 Abgastemperatur_0x1_value 65.00
2020-04-20 16:24:05 Außentemperatur_0x4_value 14.00
2020-04-20 16:24:09 BetriebsartBoiler_0x156_value 1.00
2020-04-20 16:24:06 BetriebsartHeizkreis_0x17_value 0.00
2020-04-20 16:24:06 BetriebsartHeizkreis_0x1b_value 0.00
2020-04-20 16:24:04 Betriebsmodus_value Dauerlast
2020-04-20 16:24:07 Betriebsstunden_0x62_value 9825.00
2020-04-20 16:24:07 BetriebsstundeninderFeuererhaltung_0x73_value 27.00
2020-04-20 16:24:08 BetriebsstundenvonKessel2Brennerkontakt_0x109_value 2426.00
2020-04-20 16:24:04 Boardtemperatur_0x2_value 43.50
2020-04-20 16:24:07 BoilerpumpeAnsteuerung_0x90_value 0.00
2020-04-20 16:24:06 Boilertemperaturoben_0x5d_value 68.00
2020-04-20 16:24:09 Build_0x16f_value 2.00
2020-04-20 16:24:09 EmpfohleneHolzmengebeimNachlegen_0x10a_value 0.00
2020-04-20 16:24:08 FühleramHydraulikmodul03_0xff_value 68.00
2020-04-20 16:24:05 Kesselstellgröße_0x12_value 100.00
2020-04-20 16:24:04 Kesseltemperatur 74.00
2020-04-20 16:22:04 Kesseltemperatur_0x0_value 74.00
2020-04-20 16:24:10 Kesselzustand_0x1c9_value 5.00
2020-04-20 16:24:08 Lambdasondenspannunggemessen_0xd3_value 24.00
2020-04-20 16:24:08 Lambdasondenspannungkorrigiert_0xdc_value 24.00
2020-04-20 16:24:09 PufferladezustandDiskret_0x1c0_value 4.00
2020-04-20 16:24:09 Pufferladezustand_0x1bf_value 95.00
2020-04-20 16:24:08 Pufferladezustand_0xe1_value 95.00
2020-04-20 16:24:07 PufferpumpenAnsteuerung_0x8c_value 0.00
2020-04-20 16:24:08 PufferpumpenbegrenzungdurchAbgastemperatur_0xde_value 6.00
2020-04-20 16:24:07 Puffertemperatur_oben 75.00
2020-04-20 16:22:07 Puffertemperaturoben_0x76_value 75.00
2020-04-20 16:24:07 Puffertemperaturunten_0x78_value 73.50
2020-04-20 16:24:09 RaumfühlerKBGTouch_0x191_value 19.00
2020-04-20 16:24:05 Saugzug-Ansteuerung_0xf_value 0.00
2020-04-20 16:24:05 Saugzugdrehzahl_0x7_value 0.00
2020-04-20 16:24:04 Status_value Feuer Aus
2020-04-20 16:24:08 StundenseitletzterWartung_0xd5_value 9825.00
2020-04-20 16:24:07 TemperaturdesZweitkessel_0xc4_value 16.00
2020-04-20 16:24:05 Uhrzeit_value Monday, 20. Apr. 2020 16:12:39
2020-04-20 16:24:09 VergangeneZeitseitletzterWärmetauscherreinigung_0x1c7_value 0.00
2020-04-20 16:24:06 Vorlauf-Isttemperatur_0x15_value 23.50
2020-04-20 16:24:06 Vorlauf-Isttemperatur_0x19_value 23.00
2020-04-20 16:24:06 Vorlauf-Solltemperatur_0x16_value 46.00
2020-04-20 16:24:06 Vorlauf-Solltemperatur_0x1a_value 46.00
2020-04-20 16:24:05 Zykluszeit_0xe_value 54.20
Attributes:
IODev mqtt2server
jsonMap Puffertemperaturoben_0x76_value:Puffertemperatur_oben
Kesseltemperatur_0x0_value:Kesseltemperatur
readingList p4d2mqtt/sensor/.* { return unless $TOPIC=~m,sensor/([^/]+)/,; json2nameValue($EVENT, "${1}_", $JSONMAP) }
homeassistant.* {return;}
room System->MQTT
Hmm, hat sich in Teilen überschnitten...
vielleicht kurz bzetr. die Rückmeldung an den Entwickler:
Wenn bestimmte hex-Adressen zu bestimmten (sub-) Geräten gehören, wäre es besser, diese Subgeräte dann jeweils unter einem Topic zusammenzufassen, dann kann man die wieder z.b. recht einfach einem MQTT2_DEVICE zuordnen; so kommt eben alles irgendwie völlig ungeordnet rein und es bleibt dem User überlassen, für Ordnung zu sorgen. Geht auch, ist aber unschön, und dadurch, dass hier JSON verwendet wird iVm. eigenen Topic-Zweigen ist es irgendwie doppelt gemoppelt (mMn., ich in aber auch kein "formaler Experte" und habe nur sowas wie einen gut abgehangenen Daumenblick für sowas)...
Was die "doppelten" Readings angeht, vermute ich, dass das alte und neue sind, wobei die alten dann nicht mehr aktualisiert werden. Die neueren sind die mit dem "value"-Suffix wie prognostiziert; die könnte man jetzt eben noch via jsomMap "verschönern".
Jedenfalls von meiner Seite wird morgen nix von alleine gehen. Wenn man da was machen will, muß man genau das tun, was der Entwickler auf der anderen Seite vermieden hat: rausfinden, was eigentlich zusammengehört und dann Baugruppen bilden...
Du solltest also entscheiden, ob du die HEX-Adressen drinhaben willst (=> eher Rudi's Vorschlag mit dem Hash hinten in json2NameValue()) oder nicht (dann $JSONMAP selbst entwickeln).
Beides aber erst, wenn das update morgen durch ist (bzw. du alles aus dem svn geholt hast), weil sonst die Namen nicht passen und wir wieder von vorne anfangen müßten...
EDIT: Du kannst das dann - zumindest in der oberen Zeile der rL (die andere drin lassen!) - morgen dann auf den Vorschlag von Rudi mit dem Hash hinbiegen. Würde nur empfehlen, alle Readings zu löschen, sonst kommst du mit neuen und alten durcheinander.
Zitat von: Beta-User am 20 April 2020, 16:34:25
vielleicht kurz bzetr. die Rückmeldung an den Entwickler:
Wenn bestimmte hex-Adressen zu bestimmten (sub-) Geräten gehören, wäre es besser, diese Subgeräte dann jeweils unter einem Topic zusammenzufassen, dann kann man die wieder z.b. recht einfach einem MQTT2_DEVICE zuordnen; so kommt eben alles irgendwie völlig ungeordnet rein und es bleibt dem User überlassen, für Ordnung zu sorgen. Geht auch, ist aber unschön, und dadurch, dass hier JSON verwendet wird iVm. eigenen Topic-Zweigen ist es irgendwie doppelt gemoppelt (mMn., ich in aber auch kein "formaler Experte" und habe nur sowas wie einen gut abgehangenen Daumenblick für sowas)...
OK, danke dafür. Ich werde dem Entwickler den gesamten Thread mitteilen. Das ist ja noch nicht wirklich viel, was er hier durchlesen müsste. Er hat aber gestern schon gefragt, ob dass mit MQTT nun funktioniert. Es besteht also grundsätzlich Interesse an Feedback.
Zitat von: Beta-User am 20 April 2020, 16:34:25
Was die "doppelten" Readings angeht, vermute ich, dass das alte und neue sind, wobei die alten dann nicht mehr aktualisiert werden. Die neueren sind die mit dem "value"-Suffix wie prognostiziert; die könnte man jetzt eben noch via jsomMap "verschönern".
Vollkommen richtig! Ich bin im großen und ganzen wirklich nur ein User. ;) Ich habe dann auch irgendwann erkannt, dass sich die Readings ohne "_value" nicht mehr aktualisieren und habe, nachdem ich deinen Beitrag nochmal gelesen habe, dann ein neues Device erstellt.
Zitat von: Beta-User am 20 April 2020, 16:34:25
Jedenfalls von meiner Seite wird morgen nix von alleine gehen. Wenn man da was machen will, muß man genau das tun, was der Entwickler auf der anderen Seite vermieden hat: rausfinden, was eigentlich zusammengehört und dann Baugruppen bilden...
In der Tat, kam mir das auf der anderen Seite auch schon etwas schwierig vor, zu ermitteln, was nun wohin- bzw. wie zusammengehört. Aber ich bin wirklich froh, dass p4d das alles leistet und liefern kann. Andernfalls hätte ich einfach gar nichts. Das Ergebnis, was ihr mir hier heute gebaut habt, ermöglicht mir eigentlich alles. Echt klasse! Kann nur immer wieder DANKE sagen! ;)
Zitat von: Beta-User am 20 April 2020, 16:34:25
Du solltest also entscheiden, ob du die HEX-Adressen drinhaben willst (=> eher Rudi's Vorschlag mit dem Hash hinten in json2NameValue()) oder nicht (dann $JSONMAP selbst entwickeln).
Beides aber erst, wenn das update morgen durch ist (bzw. du alles aus dem svn geholt hast), weil sonst die Namen nicht passen und wir wieder von vorne anfangen müßten...
EDIT: Du kannst das dann - zumindest in der oberen Zeile der rL (die andere drin lassen!) - morgen dann auf den Vorschlag von Rudi mit dem Hash hinbiegen. Würde nur empfehlen, alle Readings zu löschen, sonst kommst du mit neuen und alten durcheinander.
SVN kenne ich mich nicht mit aus. Ich schaue mir das morgen in Ruhe an und melde mich erneut. Welchen "Vorschlag mit dem Hash hinten" meinst du genau? Finde ich irgendwie nicht. Bin wohl gerade blind...
Gibt es einen Befehl, um alle Readings mit einem Mal zu löschen? Ich kenne nur deleteReading, um einzelne Radings zu löschen. Dann ist es für mich einfacher das Device einmal zu löschen und neu anzulegen.
Viele Grüße Hoppel
Mit "hash hinten" ist sowas gemeint:
p4d2mqtt/sensor/.* { return unless $TOPIC=~m,sensor/([^/]+)/,; json2nameValue($EVENT, '', {value=>$1}) }
Deletereading kann man auch mit devspec für den Readingnamen nutzen:
Meine "liebste Form":
deletereading -q DEVICE (?!associatedWith).*
=> ohne Rückmeldung alles außer "associatedWith".
Falls der Entwicker Interesse hat, kann er gerne auch mal die ebus-attrTemplate ansehen bzw. den Entwicklungsthread dazu. Ist wohl vom "Grundproblem" her ein ähnlicher Fall - ohne denn hätte ich wohl auch kaum die Aussage gewagt, dass das suboptimal ist.
Dann gibt es nochmal ein ähnliches Ding: ems-esp. Ist wieder ein anderes (Junkers&Co.-) Bus-System, das da via ESP8266 "MQTT sprechen gelernt hat".
Und du darfst es schon glauben: das kann man noch "runder" machen ;) .
Zitat von: rudolfkoenig am 20 April 2020, 14:01:26
Ich wuerde dein Vorschlag nehmen, _0x76 & co per $TOPIC=~m,sensor/([^/]+)_0x../, wegmachen, die 2-3 Umlaut-Faelle mit jsonMap lesbar machen, und mit _value leben.
Moment mal, verstehe ich dich gerade richtig: Du willst die Hex-Angaben weg machen? Hm... Mit folgendem Device habe ich mich echt gerade angefreundet:
Internals:
CFGFN
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC EG_HZR_Heizung
FUUID 5e9db2a9-f33f-5dcf-33b5-5a770d1c7f7b806f
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 2630
NAME EG_HZR_Heizung
NR 954
STATE Feuer Aus
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 2630
mqtt2server_TIME 2020-04-20 17:07:09
READINGS:
2020-04-20 17:07:05 Abgas-Solltemperatur_0x13 275.00
2020-04-20 17:07:04 Abgastemperatur_0x1 64.00
2020-04-20 17:07:05 Außentemperatur_0x4 14.50
2020-04-20 17:07:08 BetriebsartBoiler_0x156 1.00
2020-04-20 17:07:06 BetriebsartHeizkreis_0x17 0.00
2020-04-20 17:07:06 BetriebsartHeizkreis_0x1b 0.00
2020-04-20 17:07:04 Betriebsmodus Dauerlast
2020-04-20 17:07:06 Betriebsstunden_0x62 9825.00
2020-04-20 17:07:07 BetriebsstundeninderFeuererhaltung_0x73 27.00
2020-04-20 17:07:08 BetriebsstundenvonKessel2Brennerkontakt_0x109 2426.00
2020-04-20 17:07:04 Boardtemperatur_0x2 43.00
2020-04-20 17:07:07 BoilerpumpeAnsteuerung_0x90 0.00
2020-04-20 17:07:06 Boilertemperaturoben_0x5d 68.00
2020-04-20 17:07:09 Build_0x16f 2.00
2020-04-20 17:07:08 EmpfohleneHolzmengebeimNachlegen_0x10a 1.00
2020-04-20 17:07:08 FühleramHydraulikmodul03_0xff 68.00
2020-04-20 17:07:05 Kesselstellgröße_0x12 100.00
2020-04-20 17:07:04 Kesseltemperatur_0x0 72.50
2020-04-20 17:07:09 Kesselzustand_0x1c9 5.00
2020-04-20 17:07:08 Lambdasondenspannunggemessen_0xd3 24.07
2020-04-20 17:07:08 Lambdasondenspannungkorrigiert_0xdc 24.07
2020-04-20 17:07:09 PufferladezustandDiskret_0x1c0 4.00
2020-04-20 17:07:09 Pufferladezustand_0x1bf 94.00
2020-04-20 17:07:08 Pufferladezustand_0xe1 94.00
2020-04-20 17:07:07 PufferpumpenAnsteuerung_0x8c 0.00
2020-04-20 17:07:08 PufferpumpenbegrenzungdurchAbgastemperatur_0xde 6.00
2020-04-20 17:07:07 Puffertemperaturoben_0x76 75.00
2020-04-20 17:07:07 Puffertemperaturunten_0x78 72.50
2020-04-20 17:07:09 RaumfühlerKBGTouch_0x191 19.00
2020-04-20 17:07:05 Saugzug-Ansteuerung_0xf 0.00
2020-04-20 17:07:05 Saugzugdrehzahl_0x7 0.00
2020-04-20 17:07:04 Status Feuer Aus
2020-04-20 17:07:08 StundenseitletzterWartung_0xd5 9825.00
2020-04-20 17:07:07 TemperaturdesZweitkessel_0xc4 15.50
2020-04-20 17:07:04 Uhrzeit Monday, 20. Apr. 2020 16:55:39
2020-04-20 17:07:09 VergangeneZeitseitletzterWärmetauscherreinigung_0x1c7 0.00
2020-04-20 17:07:05 Vorlauf-Isttemperatur_0x15 42.50
2020-04-20 17:07:06 Vorlauf-Isttemperatur_0x19 37.50
2020-04-20 17:07:06 Vorlauf-Solltemperatur_0x16 45.50
2020-04-20 17:07:06 Vorlauf-Solltemperatur_0x1a 45.50
2020-04-20 17:07:05 Zykluszeit_0xe 54.20
Attributes:
IODev mqtt2server
alias Holzscheitkessel
event-min-interval .*:120
event-on-change-reading .*
icon sani_boiler_temp
readingList p4d2mqtt/sensor/.* { return unless $TOPIC=~m,sensor/([^/]+)/,; my %r=(value=>$1); json2nameValue($EVENT, '', \%r) }
homeassistant.* {return;}
room System->MQTT
stateFormat Status
Wie funktioniert das denn, wenn man zwei Radings mit identischem Namen hätte?
2020-04-20 17:07:05 Vorlauf-Isttemperatur_0x15 42.50
2020-04-20 17:07:06 Vorlauf-Isttemperatur_0x19 37.50
Ich denke, das ist in meinem Fall noch human. Wenn man mehrere Puffer hat, wird es noch verrückter. Von daher bin ich ja bei Beta-User, dass es Subgeräte geben müsste, die unter einem Topic zusammengefasst werden. Gibt es aber momentan noch nicht. Mal sehen, was der p4d Entwickler dazu sagt. Ist aber wahrscheinlich nichts, was von heute auf morgen passiert. ;)
Zitat von: Beta-User am 20 April 2020, 17:11:48
Und du darfst es schon glauben: das kann man noch "runder" machen ;) .
Ich glaube das (bin auch überzeugt) und werde das auch gerne weitergeben. Aber es ist auch nicht so, dass ich dem Entwickler sehr nahe stehe. Bevor ich p4d installiert habe, hatte ich für die Hardware-Beschaffung ein paar Fragen und kam da mit dem Entwickler horchi in Kontakt. Mehr ist da momentan noch nicht. ;)
Viele Grüße Hoppel
Zitat von: Beta-User am 20 April 2020, 17:11:48
Mit "hash hinten" ist sowas gemeint:
p4d2mqtt/sensor/.* { return unless $TOPIC=~m,sensor/([^/]+)/,; json2nameValue($EVENT, '', {value=>$1}) }
Deletereading kann man auch mit devspec für den Readingnamen nutzen:
Meine "liebste Form":
deletereading -q DEVICE (?!associatedWith).*
=> ohne Rückmeldung alles außer "associatedWith".
OK, deine "liebste Form" funktioniert! ;) Habe das Device mal auf Rudi's Vorschlag umgebaut. Damit kann ich erstmal gut leben.
Internals:
CFGFN
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC EG_HZR_Heizung
FUUID 5e9db2a9-f33f-5dcf-33b5-5a770d1c7f7b806f
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 3832
NAME EG_HZR_Heizung
NR 954
STATE Feuer Aus
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 3832
mqtt2server_TIME 2020-04-20 17:22:16
OLDREADINGS:
READINGS:
2020-04-20 17:22:09 Abgas-Solltemperatur_0x13 275.00
2020-04-20 17:22:06 Abgastemperatur_0x1 64.00
2020-04-20 17:22:06 Außentemperatur_0x4 14.50
2020-04-20 17:22:15 BetriebsartBoiler_0x156 1.00
2020-04-20 17:22:10 BetriebsartHeizkreis_0x17 0.00
2020-04-20 17:22:10 BetriebsartHeizkreis_0x1b 0.00
2020-04-20 17:22:06 Betriebsmodus Dauerlast
2020-04-20 17:22:10 Betriebsstunden_0x62 9825.00
2020-04-20 17:22:10 BetriebsstundeninderFeuererhaltung_0x73 27.00
2020-04-20 17:22:14 BetriebsstundenvonKessel2Brennerkontakt_0x109 2426.00
2020-04-20 17:22:06 Boardtemperatur_0x2 43.00
2020-04-20 17:22:11 BoilerpumpeAnsteuerung_0x90 0.00
2020-04-20 17:22:10 Boilertemperaturoben_0x5d 68.00
2020-04-20 17:22:15 Build_0x16f 2.00
2020-04-20 17:22:15 EmpfohleneHolzmengebeimNachlegen_0x10a 4.00
2020-04-20 17:22:14 FühleramHydraulikmodul03_0xff 68.00
2020-04-20 17:22:09 Kesselstellgröße_0x12 100.00
2020-04-20 17:22:05 Kesseltemperatur_0x0 72.50
2020-04-20 17:22:16 Kesselzustand_0x1c9 5.00
2020-04-20 17:22:11 Lambdasondenspannunggemessen_0xd3 24.07
2020-04-20 17:22:14 Lambdasondenspannungkorrigiert_0xdc 24.07
2020-04-20 17:22:15 PufferladezustandDiskret_0x1c0 3.00
2020-04-20 17:22:15 Pufferladezustand_0x1bf 78.00
2020-04-20 17:22:14 Pufferladezustand_0xe1 78.00
2020-04-20 17:22:11 PufferpumpenAnsteuerung_0x8c 0.00
2020-04-20 17:22:14 PufferpumpenbegrenzungdurchAbgastemperatur_0xde 6.00
2020-04-20 17:22:11 Puffertemperaturoben_0x76 75.00
2020-04-20 17:22:11 Puffertemperaturunten_0x78 57.50
2020-04-20 17:22:15 RaumfühlerKBGTouch_0x191 19.00
2020-04-20 17:22:09 Saugzug-Ansteuerung_0xf 0.00
2020-04-20 17:22:06 Saugzugdrehzahl_0x7 0.00
2020-04-20 17:22:06 Status Feuer Aus
2020-04-20 17:22:12 StundenseitletzterWartung_0xd5 9825.00
2020-04-20 17:22:11 TemperaturdesZweitkessel_0xc4 15.50
2020-04-20 17:22:06 Uhrzeit Monday, 20. Apr. 2020 17:10:39
2020-04-20 17:22:15 VergangeneZeitseitletzterWärmetauscherreinigung_0x1c7 0.00
2020-04-20 17:22:09 Vorlauf-Isttemperatur_0x15 46.50
2020-04-20 17:22:10 Vorlauf-Isttemperatur_0x19 46.50
2020-04-20 17:22:09 Vorlauf-Solltemperatur_0x16 45.50
2020-04-20 17:22:10 Vorlauf-Solltemperatur_0x1a 45.50
2020-04-20 17:22:08 Zykluszeit_0xe 54.10
Attributes:
IODev mqtt2server
alias Holzscheitkessel
event-min-interval .*:120
event-on-change-reading .*
icon sani_boiler_temp
readingList p4d2mqtt/sensor/.* { return unless $TOPIC=~m,sensor/([^/]+)/,; json2nameValue($EVENT, '', {value=>$1}) }
homeassistant.* {return;}
room System->MQTT
stateFormat Status
Schönen Abend noch und Gruß Hoppel
Zitat von: hoppel118 am 20 April 2020, 17:18:13
Moment mal, verstehe ich dich gerade richtig: Du willst die Hex-Angaben weg machen? Hm... Mit folgendem Device habe ich mich echt gerade angefreundet:
Wie funktioniert das denn, wenn man zwei Radings mit identischem Namen hätte?
2020-04-20 17:07:05 Vorlauf-Isttemperatur_0x15 42.50
2020-04-20 17:07:06 Vorlauf-Isttemperatur_0x19 37.50
Gar nicht, beides landet im identischen Reading.
Was man auf der FHEM-Seite machen kann: bestimmte Hex-Adressen in ein anderes Device umleiten. Das nennt sich dann bidgeRegexp, und wenn du in dem Bereich was "spezielles" sehen willst, schau mal in diese und die folgenden Zeilen:
https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template#L2273
bzw. ab hier:
https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template#L2302
Dann bekommst du in etwa eine Ahnung, welchen Aufwand man treiben muß, wenn die Dinge bereits vorsortiert sind. Sind sie hier aber nicht, (jedenfalls nicht per Topic-Struktur) dementsprechend hoch wäre der zusätzliche Aufwand ;D ...
ZitatMoment mal, verstehe ich dich gerade richtig: Du willst die Hex-Angaben weg machen? Hm...
Dann lass das _0x.. im Regexp weg.
ZitatWie funktioniert das denn, wenn man zwei Radings mit identischem Namen hätte?
Der Letzte gewinnt (== ueberschreibt das Vorherige).
Ich denke, das ist in meinem Fall noch human.
Ab morgen gibts auch noch Au__entemperatur_0x4 dazu :)
Wir koennen mit bridgeRegexp auch Subgeraete bauen, ist halt nervig, weil man entweder einen (Regexp-)Regel finden muss, oder alle Readings einzeln aufzaehlen darf.
Andererseits sollte alles in Relation bleiben: wegen einem Benutzer, der jetzt schon halbwegs zufrieden ist, muss man nicht die halbe Welt verrueckt machen.
Zitat von: rudolfkoenig am 20 April 2020, 17:31:00
Andererseits sollte alles in Relation bleiben: wegen einem Benutzer, der jetzt schon halbwegs zufrieden ist, muss man nicht die halbe Welt verrueckt machen.
Ist ja gut... ;D .
Wenn der Entwickler sich meldet und wir das weiter optimiert bekommen, ist gut, wenn nicht: User ist auch so happy. Auch gut! (und das glücklich auch bei mir angekommen, falls das untergegangen sein sollte!). Geht auch nicht um die halbe Welt, aber wenn er noch einen Last will einbaut, wäre es auch nicht verkehrt, oder? Dürften schon noch ein paar mehr von den Kesseln im Umlauf sein ;D .
@hoppel: Kennt das Ding eigentlich auch Werte, die man setzen kann oder ist das ein reines Info-Ding? (ich sehe nirgends subscriptions)
Zitat@hoppel: Kennt das Ding eigentlich auch Werte, die man setzen kann oder ist das ein reines Info-Ding? (ich sehe nirgends subscriptions)
Wenn man ins verbose 5 FHEM-Log schaut, sieht man folgenden Muster:
SUBSCRIBE p4d2mqtt/sensor/Abgastemperatur_0x1/state
PUBLISH homeassistant/sensor/Abgastemperatur_0x1/config
UNSUBSCRIBE p4d2mqtt/sensor/Abgastemperatur_0x1/state
PUBLISH p4d2mqtt/sensor/Abgastemperatur_0x1/state
Das wiederholt sich so fuer alle 40+ Readings.
Wie moderne Kunst: man versteht es nicht auf Anhieb :)
Klingt nach kreativem Umgang mit neuartigen Materialien ;D ...
Hi,
der Beitrag im Holzvergaser Forum ist hier: https://www.holzheizer-forum.de/index.php?thread/50090-announce-p4d-visualisierung-und-einstellung-der-s-3200-via-com1/&postID=171525#post171525
Mal sehen, wie horchi reagiert.
Zitat von: Beta-User am 20 April 2020, 17:28:39
Gar nicht, beides landet im identischen Reading.
Hm... Das ist aber irgendwie schade. Wie gesagt, solange man nur ein p4d MQTT2_DEVICE hat, kann es massig Readings mit gleicher Bezeichnung geben. Ich kann hier wirklich bis zu 300 Readings verschiedener Subgeräte auswählen, die mir in der p4d Weboberfläche angezeigt werden und auch per MQTT übertragen werden können. So wie ich das bisher sehe, wären die Messwerte dann alle ohne weitere Gruppierung. Sehe zumindest keine Funktion mit der man das regeln könnte. Evtl. übersehe ich auch irgendwo etwas.
Zitat von: rudolfkoenig am 20 April 2020, 17:31:00
Dann lass das _0x.. im Regexp weg.
Wo werde ich das "_0x" morgen finden, am MQTT2_DEVICE unter readingList (sorry, falls das eine dumme Frage ist)?
Zitat von: rudolfkoenig am 20 April 2020, 17:31:00
Der Letzte gewinnt (== ueberschreibt das Vorherige).
Ich hätte die Hex-Angaben erstmal gelassen, bis die weitere Vorgehensweise mit horchi geklärt ist. Wenn er nicht will bzw. keine Zeit hat, dann können wir ja immer noch überlegen, wie es weiter geht.
Zitat von: rudolfkoenig am 20 April 2020, 17:31:00
Ich denke, das ist in meinem Fall noch human.
Ab morgen gibts auch noch Au__entemperatur_0x4 dazu :)
Ich sollte wahrscheinlich wirklich erstmal abwarten, wie das morgen aussieht. Grundsätzlich sollte ich also horchi auch mitteilen, dass im Idealfall keine Umlaute per MQTT übertragen werden, sondern diese "konvertiert" werden? (ß=ss, ä=ae, ö=oe, ü=ue, Gibt es noch weitere?)
Zitat von: rudolfkoenig am 20 April 2020, 17:31:00
Wir koennen mit bridgeRegexp auch Subgeraete bauen, ist halt nervig, weil man entweder einen (Regexp-)Regel finden muss, oder alle Readings einzeln aufzaehlen darf.
Andererseits sollte alles in Relation bleiben: wegen einem Benutzer, der jetzt schon halbwegs zufrieden ist, muss man nicht die halbe Welt verrueckt machen.
Klingt kompliziert und mit letzterem hast du Recht. Aber ich bin definitiv nicht der einzige in diesem Forum mit einem Fröling Kessel und der benötigten S-3200 Steuerung. Bisher wurde das aber viel komplizierter an FHEM angebunden. Das lief jetzt für mich quasi durch die Weiterentwicklung von p4d inkl. MQTT und die Integration von MQTT2_SERVER in FHEM wirklich quasi "automatisiert", mal abgesehen davon, dass ihr beide da noch ran musstet. Der nächste hat's dann direkt leichter.
Zitat von: rudolfkoenig am 20 April 2020, 18:17:52
Wie moderne Kunst: man versteht es nicht auf Anhieb :)
:)
In diesem Sinne, wünsche ich noch einen schönen Abend!
Viele Grüße Hoppel
Hallo,
habe gerade mal schnell das Update eingespielt und alle vorhandenen Devices gelöscht. Anschließend einmal FHEM neugestartet, um autocreate auszulösen.
Folgendes Device wurde automatisch angelegt:
Internals:
CFGFN
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC MQTT2_p4d_publisher
FUUID 5e9ebcf7-f33f-5dcf-bb63-70d0d03d50048c29
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 8138
NAME MQTT2_p4d_publisher
NR 616
STATE ???
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 8138
mqtt2server_TIME 2020-04-21 13:10:08
READINGS:
2020-04-21 13:10:08 name Vorlauf-Solltemperatur
2020-04-21 13:10:08 state_topic p4d2mqtt/sensor/Vorlauf-Solltemperatur_0x16/state
2020-04-21 13:10:08 unique_id Vorlauf-Solltemperatur_0x16_p4d2mqtt
2020-04-21 13:10:08 unit_of_measurement °C
2020-04-21 13:10:08 value 48.00
2020-04-21 13:10:08 value_template {{ value_json.value }}
Attributes:
IODev mqtt2server
readingList p4d_publisher:homeassistant/sensor/Kesseltemperatur_0x0/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Kesseltemperatur_0x0/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Status/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Status/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Abgastemperatur_0x1/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Abgastemperatur_0x1/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Betriebsmodus/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Betriebsmodus/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Boardtemperatur_0x2/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Boardtemperatur_0x2/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Uhrzeit/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Uhrzeit/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Au\xc3\x9fentemperatur_0x4/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Au\xc3\x9fentemperatur_0x4/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Saugzugdrehzahl_0x7/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Saugzugdrehzahl_0x7/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Zykluszeit_0xe/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Zykluszeit_0xe/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Saugzug-Ansteuerung_0xf/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Saugzug-Ansteuerung_0xf/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Kesselstellgr\xc3\xb6\xc3\x9fe_0x12/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Kesselstellgr\xc3\xb6\xc3\x9fe_0x12/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Abgas-Solltemperatur_0x13/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Abgas-Solltemperatur_0x13/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Vorlauf-Isttemperatur_0x15/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Vorlauf-Isttemperatur_0x15/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Vorlauf-Solltemperatur_0x16/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Vorlauf-Solltemperatur_0x16/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/BetriebsartHeizkreis_0x17/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/BetriebsartHeizkreis_0x17/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Vorlauf-Isttemperatur_0x19/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Vorlauf-Isttemperatur_0x19/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Vorlauf-Solltemperatur_0x1a/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Vorlauf-Solltemperatur_0x1a/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/BetriebsartHeizkreis_0x1b/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/BetriebsartHeizkreis_0x1b/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Boilertemperaturoben_0x5d/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Boilertemperaturoben_0x5d/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Betriebsstunden_0x62/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Betriebsstunden_0x62/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/BetriebsstundeninderFeuererhaltung_0x73/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/BetriebsstundeninderFeuererhaltung_0x73/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Puffertemperaturoben_0x76/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Puffertemperaturoben_0x76/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Puffertemperaturunten_0x78/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Puffertemperaturunten_0x78/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/PufferpumpenAnsteuerung_0x8c/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8c/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/BoilerpumpeAnsteuerung_0x90/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x90/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/TemperaturdesZweitkessel_0xc4/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/TemperaturdesZweitkessel_0xc4/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Lambdasondenspannunggemessen_0xd3/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Lambdasondenspannunggemessen_0xd3/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/StundenseitletzterWartung_0xd5/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/StundenseitletzterWartung_0xd5/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Lambdasondenspannungkorrigiert_0xdc/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Lambdasondenspannungkorrigiert_0xdc/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/PufferpumpenbegrenzungdurchAbgastemperatur_0xde/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/PufferpumpenbegrenzungdurchAbgastemperatur_0xde/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Pufferladezustand_0xe1/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Pufferladezustand_0xe1/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/F\xc3\xbchleramHydraulikmodul03_0xff/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/F\xc3\xbchleramHydraulikmodul03_0xff/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/BetriebsstundenvonKessel2Brennerkontakt_0x109/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/BetriebsstundenvonKessel2Brennerkontakt_0x109/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/EmpfohleneHolzmengebeimNachlegen_0x10a/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/EmpfohleneHolzmengebeimNachlegen_0x10a/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/BetriebsartBoiler_0x156/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/BetriebsartBoiler_0x156/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Build_0x16f/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Build_0x16f/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Raumf\xc3\xbchlerKBGTouch_0x191/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Raumf\xc3\xbchlerKBGTouch_0x191/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/PufferladezustandDiskret_0x1c0/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/PufferladezustandDiskret_0x1c0/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/VergangeneZeitseitletzterW\xc3\xa4rmetauscherreinigung_0x1c7/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/VergangeneZeitseitletzterW\xc3\xa4rmetauscherreinigung_0x1c7/state:.* { json2nameValue($EVENT) }
p4d_publisher:homeassistant/sensor/Kesselzustand_0x1c9/config:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/sensor/Kesselzustand_0x1c9/state:.* { json2nameValue($EVENT) }
room Hersteller->MQTT
Anschließend habe ich Device manuell wie folgt angelegt:
Internals:
CFGFN
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC EG_HZR_Heizungsanlage
FUUID 5e9ebd47-f33f-5dcf-36e4-9ca05dece05d54db
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 10124
NAME EG_HZR_Heizungsanlage
NR 654
STATE Stat: Heizen
TKes: 81.50
TPuu: 79.50
TPuo: 80.50
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 10124
mqtt2server_TIME 2020-04-21 13:37:11
READINGS:
2020-04-21 13:37:07 Abgas-Solltemperatur_0x13 146.00
2020-04-21 13:37:06 Abgastemperatur_0x1 107.00
2020-04-21 13:37:07 Au__entemperatur_0x4 12.50
2020-04-21 13:37:11 BetriebsartBoiler_0x156 1.00
2020-04-21 13:37:08 BetriebsartHeizkreis_0x17 0.00
2020-04-21 13:37:08 BetriebsartHeizkreis_0x1b 0.00
2020-04-21 13:37:06 Betriebsmodus Dauerlast
2020-04-21 13:37:08 Betriebsstunden_0x62 9832.00
2020-04-21 13:37:09 BetriebsstundeninderFeuererhaltung_0x73 27.00
2020-04-21 13:37:10 BetriebsstundenvonKessel2Brennerkontakt_0x109 2429.00
2020-04-21 13:37:06 Boardtemperatur_0x2 40.50
2020-04-21 13:37:09 BoilerpumpeAnsteuerung_0x90 0.00
2020-04-21 13:37:08 Boilertemperaturoben_0x5d 62.00
2020-04-21 13:37:11 Build_0x16f 2.00
2020-04-21 13:37:10 EmpfohleneHolzmengebeimNachlegen_0x10a 0.00
2020-04-21 13:37:10 F__hleramHydraulikmodul03_0xff 62.00
2020-04-21 13:37:07 Kesselstellgr____e_0x12 98.00
2020-04-21 13:37:06 Kesseltemperatur_0x0 81.50
2020-04-21 13:37:11 Kesselzustand_0x1c9 3.00
2020-04-21 13:37:09 Lambdasondenspannunggemessen_0xd3 24.07
2020-04-21 13:37:10 Lambdasondenspannungkorrigiert_0xdc 24.07
2020-04-21 13:37:11 PufferladezustandDiskret_0x1c0 4.00
2020-04-21 13:37:10 Pufferladezustand_0xe1 100.00
2020-04-21 13:37:09 PufferpumpenAnsteuerung_0x8c 100.00
2020-04-21 13:37:10 PufferpumpenbegrenzungdurchAbgastemperatur_0xde 8.00
2020-04-21 13:37:09 Puffertemperaturoben_0x76 80.50
2020-04-21 13:37:09 Puffertemperaturunten_0x78 79.50
2020-04-21 13:37:11 Raumf__hlerKBGTouch_0x191 19.00
2020-04-21 13:37:07 Saugzug-Ansteuerung_0xf 88.00
2020-04-21 13:37:07 Saugzugdrehzahl_0x7 2682.00
2020-04-21 13:37:06 Status Heizen
2020-04-21 13:37:10 StundenseitletzterWartung_0xd5 9832.00
2020-04-21 13:37:09 TemperaturdesZweitkessel_0xc4 15.50
2020-04-21 13:37:06 Uhrzeit Tuesday, 21. Apr. 2020 13:25:41
2020-04-21 13:37:11 VergangeneZeitseitletzterW__rmetauscherreinigung_0x1c7 377.00
2020-04-21 13:37:07 Vorlauf-Isttemperatur_0x15 32.50
2020-04-21 13:37:08 Vorlauf-Isttemperatur_0x19 35.50
2020-04-21 13:37:08 Vorlauf-Solltemperatur_0x16 47.50
2020-04-21 13:37:08 Vorlauf-Solltemperatur_0x1a 47.50
2020-04-21 13:37:07 Zykluszeit_0xe 53.70
Attributes:
IODev mqtt2server
alias Heizungsanlage
event-min-interval .*:120
event-on-change-reading .*
icon sani_boiler_temp
readingList p4d2mqtt/sensor/.* { return unless $TOPIC=~m,sensor/([^/]+)/,; json2nameValue($EVENT, '', {value=>$1}) }
homeassistant.* {return;}
room Hersteller->Fröling,Aussen,Erdgeschoss->Heizungsraum,Hersteller->MQTT
stateFormat Stat: Status
TKes: Kesseltemperatur_0x0
TPuu: Puffertemperaturunten_0x78
TPuo: Puffertemperaturoben_0x76
Hier ist nun zu erkennen, dass die Umlaute durch "__" ersetzt werden.
Das Feedback seitens horchi auf meinen Post ist nun übrigens mittlerweile auch da: https://www.holzheizer-forum.de/index.php?thread/50090-announce-p4d-visualisierung-und-einstellung-der-s-3200-via-com1/&postID=171555#post171555
Ich kopiere mal den gesamten Post hierhin:
ZitatZitatjo, grundsätzlich hat es nun geklappt. Alles was p4d ausgibt, sehe ich nun in einem eigenen Device in FHEM. Dies war aber nicht direkt so. Ich habe im FHEM-Forum einen eigenen Beitrag erstellt. Zwei Entwickler (u.a. der Erfinder von FHEM) haben sich dem Thema direkt angenommen und es grundsätzlich auch erstmal gelöst.
Trotzdem gibt es Feedback. Hier die drei wichtigsten Posts dazu:
https://forum.fhem.de/index.php/topic,110401.msg1044990.html#msg1044990
https://forum.fhem.de/index.php/topic,110401.msg1045039.html#msg1045039
https://forum.fhem.de/index.php/topic,110401.msg1045055.html#msg1045055
Die MQTT Implementierung wird sogar als moderne Kunst betrachtet:
https://forum.fhem.de/index.php/topic,110401.msg1045092.html#msg1045092
Am besten ist es wahrscheinlich, wenn du den gesamten Thread liest. Das hält sich ja insgesamt noch in Grenzen.
Interesse ja, da ich FHEM nicht verwende kann ich nicht selbst testen. Auch habe ich im Moment wenig Zeit mich durch die FHEM Dokumentation zu wühlen. Habe da vor Jahren schon mal geschmökert als ich auf der Suche nach eine Hausautomatisierung war. FHEM was dann aber nichts für mich.
Ich sehe im Moment diese beiden Möglichkeiten:
- du/ihr sendet mir ein Patch oder einen Git Pull-Request mit der für FHEM nötigen Erweiterung dann sehe ich mir das an und übernehme es wenn es passt
- ihr schickt mir die Spezifikation wie die Nachrichten und MQTT Topics für FHEM aussehen müssen, dann schaue ich wie ich es umsetzen kann.
ZitatIst es deiner Ansicht nach möglich, dass in p4d Subgeräte erstellt werden, die dann wiederum in einem MQTT-Topic zusammengefasst werden?
Hast du überhaupt Interesse/Zeit p4d in dieser Richtung weiterzuentwickeln?
Setzt du eigentlich irgendeine Hausautomatisierungssoftware ein?
Kann man per MQTT eigentlich auch irgendwie Parameter an der Steuerung konfigurieren oder geht ausschließlich auslesen?
- ja bestimmt, siehe meine Vorschläge oben
- ja bestimmt, siehe meine Vorschläge oben ;)
- ja ich verwende den HomeAssistant - passen zu diesem ist auch (wie irgendwo in diesem Thread erwähnt) das MQTT Interface implementiert
- nein das geht noch nicht - habe aktuell auch keine Verwendung dafür
Grüße Jörg
@Beta-User Wie siehst du das?
Grundsätzlich besteht Interesse p4d zu optimieren. Ich kann hier allerdings lediglich testen und die Brücke spielen.
Ein Patch bzw. Pull Request kannst du wahrscheinlich nicht leisten. Gibt es die von horchi angesprochene Spezifikation wie Nachrichten und MQTT Topics für FHEM aussehen müssen/sollten?
Gruß Hoppel
ZitatGibt es die von horchi angesprochene Spezifikation wie Nachrichten und MQTT Topics für FHEM aussehen müssen/sollten?
FHEM kann die die Meldungen, so wie sie jetzt sind, verarbeiten. Es ist zwar ein manueller Eingriff notwendig, das kann man aber in ein Template einbauen. Da man das nur einmal anwendet, ist es meiner Ansicht nach verkraftbar.
Wenn FHEM automatisch die Daten erkennen soll (was ein Template je nach Anspruch nicht ueberfluessig macht), gibt es zwei Wege:
1. Einzeln: im Topic ReadingName als letztes Element spezifizieren, und den dazugehoerigen Wert direkt, ohne JSON im Message mitgeben.
2. Zusammengefasst: Daten als ein JSON-Message, in der Form { "ReadingName1":Wert1, "ReadingName2":Wert2 } uebermitteln.
In beiden Faellen sollten nur Aenderungen uebermittelt werden, und das Topic sollte pro Geraet eindeutig sein.
Die zweite Version ist Ressourcenschonender als die Alternative #1, bzw. das, was jetzt praktiziert wird.
Weiterhin sollte man auf SUBSCRIBE/UNSUBSCRIBE verzichten.
(...wieder mal zu langsam, bitte Rudi's Post nicht übersehen!).
Vorab nochmal die Empfehlung: Stell' den homeassistant-Zweig am IO ab (ignoreRegexp).
Zur Kommunkation an horchi:
Grundlegend: Wir brauchen nicht speziell irgendwas für FHEM, vielmehr ist das - jedenfalls nach meiner Meinung - sehr speziell, was er für homeassistant gebaut hat ;) . Mit den Announcements kann afaik keine andere Controller-Software umgehen, also auch nicht NodeRed usw. Ziel sollte also eher sein, was "allgemeinverträgliches" zu erreichen/strukturieren, dann "kommen" wir damit auch (noch) besser "klar". Anders gesagt: horchi muß keinerlei FHEM-Doku wälzen oder FHEM irgendwie verstehen...
Daher wäre auch der erste Vorschlag an horchi, die homeassistant-spezifischen Announcements nur zu machen, wenn die "irgendwo" eingeschaltet sind (und der default sollte "aus" sein; nicht angesehen habe ich, wie oft das kommt, aber eigentlich ist das eine einmalige Sache (beim Systemstart)).
2. Vorschlag: Er sollte prüfen, wann er die connects und disconnects macht. Ich kenne die MQTT-Specs nicht, aber was Rudi schreibt, würde ich als deutliche Kritik in Richtung "violation" interpretieren ;) .
3. Vorschlag: Umlaute sind in der Kommunikation immer tricky. Daher sollte man die (ggf. optional) vermeiden.
4. Vorschlag:
Im Moment kommen alle "Baugruppen" unter einem Sub-Pfad. Daher muß man händisch sortieren, was wohin (vielleicht...) gehört, dabei kann der Endanwender eigentlich nur raten.
Der Hersteller sollte aber wissen, welche Hex-Adresse zu welcher Baugruppe gehört und welches "Etikett"/welche Bezeichnung die hat. Also sollte es je einen Sub-Pfad geben, der die zusemmangehörenden Adressen bündelt.
Beispiel, damit man die Richtung evtl. erkennen kann:
p4d2mqtt/sensor/Kessel/Temperatur_0x0/state:.* { json2nameValue($EVENT) }
p4d2mqtt/sensor/Kessel/Abgastemperatur_0x1/state:.* { json2nameValue($EVENT) }
p4d2mqtt/sensor/Kessel/Stellgroesse_0x12/state:.* { json2nameValue($EVENT) }
p4d2mqtt/sensor/Kessel/Abgas-Solltemperatur_0x13/state:.* { json2nameValue($EVENT) }
p4d2mqtt/sensor/Kessel/Vorlauf-Isttemperatur_0x15/state:.* { json2nameValue($EVENT) }
p4d2mqtt/sensor/Kessel/Vorlauf-Solltemperatur_0x16/state:.* { json2nameValue($EVENT) }
p4d2mqtt/sensor/Saugzug/Drehzahl_0x7/state:.* { json2nameValue($EVENT) }
p4d2mqtt/sensor/Saugzug/Ansteuerung_0xf/state:.* { json2nameValue($EVENT) }
p4d2mqtt/sensor/BusInterface/Status/state:.* { json2nameValue($EVENT) }
p4d2mqtt/sensor/BusInterface/Zykluszeit_0xe/state:.* { json2nameValue($EVENT) }
p4d2mqtt/sensor/Steuerung/Betriebsmodus/state:.* { json2nameValue($EVENT) }
p4d2mqtt/sensor/Steuerung/Boardtemperatur_0x2/state:.* { json2nameValue($EVENT) }
p4d2mqtt/sensor/Steuerung/Aussentemperatur_0x4/state:.* { json2nameValue($EVENT) }
(Was diese Gruppierungen angeht, hatte ich für ebus im Hinterkopf, dass das da mit csv-Files gemacht wird, wo die HEX-Adressen dann direkt Gruppen zugeordnet werden und je eine deutsche und englische Bezeichnung für Baugruppe und Element drin stand; kann aber auch falsch sein).
5. Ob man "sensor" im Pfad braucht, sei mal dahingestellt...
Vielen Dank erstmal euch beiden für das konstruktive Feedback. Ich kläre die weitere Vorgehensweise mit horchi und melde mich wieder.
Zitat von: Beta-User am 21 April 2020, 15:17:16
Vorab nochmal die Empfehlung: Stell' den homeassistant-Zweig am IO ab (ignoreRegexp).
Wie mache ich das genau?
Wenn ich am mqtt2server schaue, sehe ich unter "RETAIN" eine riesige Wurst an Informationen zum p4d. Hier nur ein kleiner Abschnitt:
RETAIN
{"homeassistant/sensor/Abgas-Solltemperatur_0x13/config":"{\u0022unit_of_measurement\u0022 : \u0022°C\u0022,\u0022value_template\u0022 : \u0022{{ value_json.value }}\u0022,\u0022state_topic\u0022 : \u0022p4d2mqtt/sensor/Abgas-Solltemperatur_0x13/state\u0022,\u0022name\u0022 : \u0022Abgas-Solltemperatur\u0022,\u0022unique_id\u0022 : \u0022Abgas-Solltemperatur_0x13_p4d2mqtt\u0022}","homeassistant/sensor/Abgastemperatur_0x1/config":"{\u0022unit_of_measurement\u0022 : \u0022°C\u0022,\u0022value_template\u0022 : \u0022{{ value_json.value }}\u0022,\u0022state_topic\u0022 : \u0022p4d2mqtt/sensor/Abgastemperatur_0x1/state\u0022,\u0022name\u0022 : \u0022Abgastemperatur\u0022,\u0022unique_id\u0022 : \u0022Abgastemperatur_0x1_p4d2mqtt\u0022}","homeassistant/sensor/Au__entemperatur_0x4/config":"{\u0022unit_of_measurement\u0022 : \u0022°C\u0022,\u0022value_template\u0022 : \u0022{{ value_json.value }}\u0022,\u0022state_topic\u0022 : \u0022p4d2mqtt/sensor/Außentemperatur_0x4/state\u0022,\u0022name\u0022 : \u0022Außentemperatur\u0022,\u0022unique_id\u0022 : \u0022Außentemperatur_0x4_p4d2mqtt\u0022}","homeassistant/sensor/Außentemperatur_0x4/config":"{\u0022unit_of_measurement\u0022 : \u0022°C\u0022,\u0022value_template\u0022 : \u0022{{ value_json.value }}\u0022,\u0022state_topic\u0022 : \u0022p4d2mqtt/sensor/Außentemperatur_0x4/state\u0022,\u0022name\u0022 : \u0022Außentemperatur\u0022,\u0022unique_id\u0022 : \u0022Außentemperatur_0x4_p4d2mqtt\u0022}","homeassistant/sensor/BetriebsartBoiler_0x156/config":"{\u0022unit_of_measurement\u0022 : \u0022\u0022,\u0022value_template\u0022 : \u0022{{ value_json.value }}\u0022,\u0022state_topic\u0022 : \u0022p4d2mqtt/sensor/BetriebsartBoiler_0x156/state\u0022,\u0022name\u0022 : \u0022Betriebsart Boiler\u0022,\u0022unique_id\u0022 : \u0022BetriebsartBoiler_0x156_p4d2mqtt\u0022}","homeassistant/sensor/BetriebsartHeizkreis_0x17/config":"{\u0022unit_of_measurement\u0022 : \u0022\u0022,\u0022value_template\u0022 : \u0022{{ value_json.value }}\u0022,\u0022state_topic\u0022 : \u0022p4d2mqtt/sensor/BetriebsartHeizkreis_0x17/state\u0022,\u0022name\u0022 : \u0022Betriebsart Heizkreis\u0022,\u0022unique_id\u0022 : \u0022BetriebsartHeizkreis_0x17_p4d2mqtt\u0022}","homeassistant/sensor/BetriebsartHeizkreis_0x1b/config":"{\u0022unit_of_measurement\u0022 : \u0022\u0022,\u0022value_template\u0022 : \u0022{{ value_json.value }}\u0022,\u0022state_topic\u0022 : \u0022p4d2mqtt/sensor/BetriebsartHeizkreis_0x1b/state\u0022,\u0022name\u0022 : \u0022Betriebsart Heizkreis\u0022,\u0022unique_id\u0022 : \u0022BetriebsartHeizkreis_0x1b_p4d2mqtt\u0022}","homeassistant/sensor/Betriebsmodus/config":"{\u0022unit_of_measurement\u0022 : \u0022\u0022,\u0022value_template\u0022 : \u0022{{ value_json.value }}\u0022,\u0022state_topic\u0022 : \u0022p4d2mqtt/sensor/Betriebsmodus/state\u0022,\u0022name\u0022 : \u0022Betriebsmodus\u0022,\u0022unique_id\u0022 : \u0022Betriebsmodus_p4d2mqtt\u0022}","homeassistant/sensor/Betriebsstunden_0x62/config":"{\u0022unit_of_measurement\u0022 : \u0022h\u0022,\u0022value_template\u0022 : \u0022{{ value_json.value }}\u0022,\u0022state_topic\u0022 : \u0022p4d2mqtt/sensor/Betriebsstunden_0x62/state\u0022,\u0022name\u0022 : \u0022Betriebsstunden\u0022,\u0022unique_id\u0022 : \u0022Betriebsstunden_0x62_p4d2mqtt\u0022}","homeassistant/sensor/BetriebsstundeninderFeuererhaltung_0x73/config":"{\u0022unit_of_measurement\u0022 : \u0022h\u0022,\u0022value_template\u0022 : \u0022{{ value_json.value }}\u0022,\u0022state_topic\u0022 : \u0022p4d2mqtt/sensor/BetriebsstundeninderFeuererhaltung_0x73/state\u0022,\u0022name\u0022 : \u0022Betriebsstunden in der Feuererhaltung\u0022,\u0022unique_id\u0022 : \u0022BetriebsstundeninderFeuererhaltung_0x73_p4d2mqtt\u0022}","homeassistant/sensor/BetriebsstundenvonKessel2Brennerkontakt_0x109/config":"{\u0022unit_of_measurement\u0022 : \u0022h\u0022,\u0022value_template\u0022 : \u0022{{ value_json.value }}\u0022,\u0022state_topic\u0022 : \u0022p4d2mqtt/sensor/BetriebsstundenvonKessel2Brennerkontakt_0x109/state\u0022,\u0022name\u0022 : \u0022Betriebsstunden von Kessel 2 (Brennerkontakt)\u0022,\
Wie kann ich hier am IO definieren, dass der homeassistant-Zweig nicht beachtet werden soll? Müsste das wie folgt aussehen?
attr mqtt2server ignoreRegexp homeassistant.*
Anschließend würde ich dann mit folgendem Befehl nochmal alle Readings des mqtt2servers löschen:
deletereading -q mqtt2server (?!associatedWith).*
Dann müsste ich nochmal kurz bis die Readings wieder auftauchen warten und der homeassistant-Zweig dürfte weg sein.
Ist diese Vorgehensweise korrekt?
Danke und Gruß Hoppel
Bei mir hatte ich die so definiert (kann aber nicht sagen, ob das wirklich "besser" ist):
attr mqtt2server ignoreRegexp homeassistant/.*/config:.*
Würde also einfach mal den Test empfehlen mit dem, was du hast ;) . (Das "Schöne" an MQTT ist, dass es alles immer wieder auf einen stabilen Ausgangszustand bekommt, wenn man einfach autocreate machen läßt; man braucht nur eben manchmal einen Restart oder reconnect des externen Geräts).
Ansonsten habe ich manches einfach auch noch nicht selbst probiert und würde zu etwas mehr Mut raten (iVm. einer Kopie der RAW-Definition; damit ist es im Zweifel schnell repariert...).
Löschen der Readings bitte auch am m2_DEVICE.
Jo, kaputt machen kann ich eigentlich sowieso nichts, da ich immer bevor ich eine Veränderung vornehme ein Backup erstelle.
Wie dem auch sei. Beide folgenden Attribute am Device "mqtt2server" führen nicht dazu, dass die homeassistant Zweige abgestellt werden:
attr mqtt2server ignoreRegexp homeassistant/.*/config:.*
attr mqtt2server ignoreRegexp homeassistant.*
Wenn ich anschließend das Reading RETAIN lösche, kommen die homeassistant Einträge trotzdem wieder mit rein.
Noch eine Idee?
Gruß Hoppel
ZitatWenn ich anschließend das Reading RETAIN lösche, kommen die homeassistant Einträge trotzdem wieder mit rein.
Ich brauche ein "attr mqtt2server verbose 5" Log, um das naeher anzuschauen.
Hi,
ok, bin wie folgt vorgegangen:
Folgendes habe ich am MQTT2_SERVER gesetzt:
attr mqtt2server ignoreRegexp homeassistant/.*/config:.*
attr mqtt2server verbose 5
deletereading -q mqtt2server (?!associatedWith).*
Dann habe ich gewartet bis RETAIN wieder voll ist:
Hier das Logfile:
https://pastebin.com/Nn5qrFKN
Gruß Hoppel
Verständnisfrage:
Imo sollte sich das "ignoreRegexp" nur intern auswirken, also einfach die Weitergabe nach MQTT2_DEVICE verhindern, nicht aber die externe Borker-Funktion irgendwie beeinträchtigen. Daraus würde ich schließen, dass es im Reading "retain" am SERVER eigentlich richtig ist, wenn dort das homeassistant-Dingens noch auftaucht.
Die Frage ist doch eigentlich, ob es am MQTT2_DEVICE wieder erscheint, wenn man autocreate werkeln läßt. Das (und nur das) sollte m.E. nicht der Fall sein.
Oder verstehe ich den Mechanismus falsch?
ZitatHier das Logfile:
Ich sehe in der Datei keine dispatch Zeilen mit homeassistant drin, d.h. es werden keine Readings/Events mit diesem Topic generiert.
=> Funktioniert so, wie es beabsichtigt war.
ZitatImo sollte sich das "ignoreRegexp" nur intern auswirken, also einfach die Weitergabe nach MQTT2_DEVICE verhindern, nicht aber die externe Borker-Funktion irgendwie beeinträchtigen.
Genau das ist z.Zt. implementiert.
Alles klar! Das war dann ein Verständnisproblem auf meiner Seite. Habe das gerade nochmal getestet. Beim autocreated MQTT2_DEVICE fehlen nun die homeassistant Zweige.
Wie viele Zeichen passen denn eigentlich in das Feld "RETAIN" des MQTT2_SERVERS?
Mit Leerzeichen sind das bereits 21.704 Zeichen für ein einziges Device. Läuft man da irgendwann gegen eine Wand oder kann das Feld unbegrenzt groß sein?
Danke und Gruß Hoppel
ZitatWie viele Zeichen passen denn eigentlich in das Feld "RETAIN" des MQTT2_SERVERS?
Haengt vom Speicher deines Rechners ab, unbegrenzt ist das vmtl auch nicht :)
Das Retain Flag fuer sowas zu missbrauchen finde ich uebrigens schlecht, ein MQTT Server ist keine Datenbank.
Hi,
horchi hat heute schon einiges umgesetzt. Komme aber erst heute Abend zum Testen. Er hat folgende Frage:
ZitatErgänzend, wo/wie werden bei dieser Lösung { "ReadingName1":Wert1, "ReadingName2":Wert2 } Einheit und Titel übertragen?
Der Titel kann ja noch Sonderzeichen, Leerzeichen etc. enthalten? Und wo die gewünschte Baugruppe? Aus dem im Topic verwendeten Namen bzw. der Sensor ID habe ich die Sonderzeichen wie geschrieben entfernt, aber ein Titel ohne diese wäre m.E. hässlich
Hier der Post mit den Antworten auf eure Punkte: https://www.holzheizer-forum.de/index.php?thread/50090-announce-p4d-visualisierung-und-einstellung-der-s-3200-via-com1/&postID=171754#post171754
Hier die Änderungen, die er bereits vorgenommen hat: https://www.holzheizer-forum.de/index.php?thread/50090-announce-p4d-visualisierung-und-einstellung-der-s-3200-via-com1/&postID=171755#post171755
Gruß Hoppel
Zitat von: rudolfkoenig am 25 April 2020, 10:50:34
Haengt vom Speicher deines Rechners ab, unbegrenzt ist das vmtl auch nicht :)
Das Retain Flag fuer sowas zu missbrauchen finde ich uebrigens schlecht, ein MQTT Server ist keine Datenbank.
Ok, ist irgendwo beschrieben, wie man es besser machen kann? Ich habe da grundsätzlich erstmal gar nichts am MQTT2_SERVER konfiguriert. Die Daten wurden automatisch nach RETAIN geschrieben.
Gruß Hoppel
ZitatOk, ist irgendwo beschrieben, wie man es besser machen kann?
Ich kenne keine wissenschaftliche Abhandlung, es fuehlt sich nur falsch an, alle Meldungen per RETAIN zu speichern.
Man kann sich fragen, in welchem Fall es einem weiterhilft, und gibt es wirklich keine Alternative dazu.
Ich persoenlich wuerde hoechstens die Last-Will Message per Retain speichern, wenn ueberhaupt.
Es ist aber jetzt nicht so, das FHEM in die Knie geht, oder abstuerzt, wenn man das nicht optimal macht.
Es kommen nur Benutzer, die Fragen stellen, was wiederum zu langen und sinnlosen Diskussionen fuehrt :)
Da ich nicht sicher bin, ob das klar ist: der Publisher bestimmt, welche Meldungen ein Retain Flag haben. Meldungen mit so einem Flag muss der Server jedem Subscriber, der danach fragt, erzaehlen, auch wenn der Publisher nicht mehr verbunden ist, bzw. auch nach Server-Neustart.
ZitatErgänzend, wo/wie werden bei dieser Lösung { "ReadingName1":Wert1, "ReadingName2":Wert2 } Einheit und Titel übertragen?
Nirgends. Meiner Ansicht nach ist Einheit implizit (steht in der Doku, oder wenn es ungewoehnlich ist, im ReadingNamen), Titel gehoert nicht in so eine Schnittstelle, und mir ist bewusst, dass man darueber monatelang diskutieren kann.
Wenn man trotzdem darauf besteht, kann man sie verschachtelt einbauen, dafuer ist JSON praedestiniert, und FHEM kann das automatisch parsen.
{
"boilerCurrentTemp": { "value":35, "unit":"°C", "title_de":"Aktuelle Kesseltemperatur", "title_en":"Current Boiler Temperature", "title_hu":"A kazán pillanatnyi hőmérséklete", "title_cn":"锅炉温度", ...},
"desiredWaterTemp": { "value":50, "unit":"°C", "title_de":"Eingestellte Wassertemperatur", "title_en":"Desired Water Temperature", "title_hu":"Kívánt vízhőmérséklet", "title_cn":"所需水温", ... },
...
}
Ist halt eine Verschwendung vom Netzwerk, CPU, Speicher und Entwicklerzeit.
Baugruppen kann man entweder als Unterobjekt im gleichen JSON realisieren (s.o. fuer Inspiration), oder je Baugruppe ein Topic.
horchi hat noch mal eine Frage:
Zitatwenn man die Unit weglässt wie und wo wird dann entschieden welcher Wert welche Einheit hat?
Und verstehe ich das richtig, als Bezeichnung gibt es nur den ReadingName und dieser sollte keine Sonderzeichen, keine Leerzeichen und kein öäü enthalten?
Gruß Hoppel
Zitatwenn man die Unit weglässt wie und wo wird dann entschieden welcher Wert welche Einheit hat?
Welcher Wert welche Einheit hat entscheidet immer der Sender.
Der Benutzer, der anhand der Daten Programme baut, wird vorher sich ueberzeugen, in welchen Einheiten die Daten gemeldet werden, entweder aus der Doku, oder bei Pruefen der Werte auf Plausibilitaet. FHEM ist nicht in Bereichen unterwegs, wo die Geraete Fahrenheit (https://xkcd.com/2292/) melden, aber die Benutzer Celsius gewohnt sind oder andersherum, und den Aufwand fuer die Umrechnerei wuerde ich mir sparen.
ZitatUnd verstehe ich das richtig, als Bezeichnung gibt es nur den ReadingName und dieser sollte keine Sonderzeichen, keine Leerzeichen und kein öäü enthalten?
Ja. Ich persoenlich wuerde englische Begriffe verwenden, das erspart diese Diskussion, und ist international einfacher zu vermarkten.
Hallo Rudi,
danke erstmal für deine tatkräftige Unterstützung. Hier nochmal horchi's Rückmeldung dazu:
Zitatokay kann ich so machen, also alles weglassen.
Irgendwie nicht so schön die seitens der Heizung bereitgestellten Titel und Einheiten zu ignorieren und in der Hausautomatisierung wider einzutragen. Hört sich für mich umständlich an - soll mir aber egal sein da ich mit dem homeassistant diese Probleme nicht habe
Irgendwie bin ich bei horchi. Die Informationen sind alle da. Wir sagen: brauchen/wollen wir bei FHEM nicht... Ja, ich weiß, du hast geschrieben, dass man darüber monatelang diskutieren kann. Wir brechen das hier ab. ;)
Gruß Hoppel
Bevor ich in die falsche Ecke gesteckt werde:
- wir haben jetzt schon eine Loesung, _ich_ wuerde es nicht anfassen, da ein Umbau Arbeit auf beiden Seiten bedeutet, ohne nennenswerte Vorteile.
- ich habe auf die Frage geantwortet, wie eine aus _meiner Ansicht_ ideale Schnittstelle ausschauen sollte. "richtig" gibt es nicht, weil die Beurteilung, was wichtig, und was man braucht, subjektiv ist. Ich habe wenig Schnittstellen gesehen, die _meinem_ Ideal entsprechen, und ich kann sehr gut damit leben.
Es gibt viele Wege, aber wie gesagt, in meiner (auf Hörensagen beruhenden!) Wahrnehmung ins homeassistant ein Sonderfall beim Umgang mit MQTT und ich meine, irgendwo hier vor einigen Monaten gelesen zu haben, dass sich jemand gewundert hat, warum da (homeassistant) jedes MQTT-Gerät mit ca. 20MB Speicherverbrauch zu Buche schlägt... Vermute, das hat auch mit dieser "mittels MQTT übermittelten Konfiguration" zu tun...
Jedenfalls habe ich mehr wie 10 MQTT (Sub-)Devices, und von den ca. 500 MB RAM, die auf meinem Server derzeit genutzt werden, braucht FHEM weniger wie die Hälfte...
@Rudi: Ich stecke dich in keine Schublade. Außer es gibt eine Schublade für valide und rational denkende Menschen. ;)
horchi hat nun schon einiges umgesetzt. Ein verbose 5 mit nacktem MQTT2_SERVER und ohne MQTT2_DEVICE ergibt folgendes beim Start von p4d:
https://pastebin.com/zKLyyBn8
Seht ihr hier noch Anpassungsbedarf (abgesehen von den Baugruppen/Subgeräten --> kommt vrsl. später)?
Was ich noch nicht verstehe, am MQTT2_Server sehe ich im RETAIN Reading weiterhin die "homeassistant Einträge", obwohl die ja gar nicht mehr gepublished werden. Ich kann das Reading löschen wie ich will. Die Einträge kommen immer wieder. Im verbose 5 sehe ich keine homeassistant Einträge mehr. Wie kriege ich die weg?
Ein list vom autocreated MQTT2_DEVICE sieht nun wie folgt aus:
Internals:
CFGFN
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC MQTT2_p4d_publisher
FUUID 5ea54670-f33f-5dcf-e235-c55b7d8b985e5653
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 360
NAME MQTT2_p4d_publisher
NR 908
STATE ???
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 360
mqtt2server_TIME 2020-04-26 10:38:24
READINGS:
2020-04-26 10:38:24 value 3.00
Attributes:
IODev mqtt2server
readingList p4d_publisher:p4d2mqtt/Kesseltemperatur_0x0/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Status/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Abgastemperatur_0x1/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Betriebsmodus/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Boardtemperatur_0x2/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Uhrzeit/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Aussentemperatur_0x4/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Saugzugdrehzahl_0x7/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Zykluszeit_0xe/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Saugzug-Ansteuerung_0xf/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Kesselstellgroesse_0x12/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Abgas-Solltemperatur_0x13/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Vorlauf-Isttemperatur_0x15/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Vorlauf-Solltemperatur_0x16/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/BetriebsartHeizkreis_0x17/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Vorlauf-Isttemperatur_0x19/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Vorlauf-Solltemperatur_0x1a/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/BetriebsartHeizkreis_0x1b/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Boilertemperaturoben_0x5d/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Betriebsstunden_0x62/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/BetriebsstundeninderFeuererhaltung_0x73/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Puffertemperaturoben_0x76/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Puffertemperaturunten_0x78/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/PufferpumpenAnsteuerung_0x8c/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/BoilerpumpeAnsteuerung_0x90/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/TemperaturdesZweitkessel_0xc4/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Lambdasondenspannunggemessen_0xd3/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/StundenseitletzterWartung_0xd5/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Lambdasondenspannungkorrigiert_0xdc/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/PufferpumpenbegrenzungdurchAbgastemperatur_0xde/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Pufferladezustand_0xe1/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/FuehleramHydraulikmodul03_0xff/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/BetriebsstundenvonKessel2Brennerkontakt_0x109/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/EmpfohleneHolzmengebeimNachlegen_0x10a/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/BetriebsartBoiler_0x156/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Build_0x16f/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/RaumfuehlerKBGTouch_0x191/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/PufferladezustandDiskret_0x1c0/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Kesselzustand_0x1c9/state:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
Am MQTT2_SERVER gibt es kein ignoreRegexp mehr.
Könnt ihr uns nochmal Feedback zu folgenden Fragen von horchi geben:
Mittlerweile ist noch ein Openhab User am Start. Er schreibt zu Rudi's beiden Vorschlägen:
Rudi:
ZitatWenn FHEM automatisch die Daten erkennen soll, gibt es zwei Wege:
1. Einzeln: im Topic ReadingName als letztes Element spezifizieren, und den dazugehörigen Wert direkt, ohne JSON im Message mitgeben.
2. Zusammengefasst: Daten als ein JSON-Message, in der Form { "ReadingName1":Wert1, "ReadingName2":Wert2 } übermitteln.
In beiden Fällen sollten nur Änderungen übermittelt werden, und das Topic sollte pro Gerät eindeutig sein. Die zweite Version ist Ressourcenschonender als die Alternative #1, bzw. das, was jetzt praktiziert wird.
Reachy:
Zitatja bitte zusammen gefasst z.B.:
p4d2mqtt/sensor/Parameter={ {"Aussentemperatur":{"value"="16", "Einheit"="°C", "Beschreibung"="Aussentemperatur Haus", "was noch sinnmacht"="Wert dazu"}}, {"Betriebsmodus":{"value"="Heizen","Einheit"="", "Beschreibung"="Aussentemperatur Haus", "was noch sinn macht"="Wert dazu"}}}
horchi:
Zitatdas ist m.E. kein Json, jason_pp sieht das auch so:
root@gate> echo '{ {"Aussentemperatur":{"value"="16", "Einheit"="°C", "Beschreibung"="Aussentemperatur Haus", "was noch sinnmacht"="Wert dazu"}}, {"Betriebsmodus":{"value"="Heizen","Einheit"="", "Beschreibung"="Aussentemperatur Haus", "was noch sinn macht"="Wert dazu"}}}' | json_pp
unexpected end of string while parsing JSON string, at character offset 3 (before ""Aussentemperatur":{...") at /usr/bin/json_pp line 45.
horchi:
Zitatvermutlich so?
root@gate>echo '{"Aussentemperatur": { "value":"16", "Einheit":"°C", "Beschreibung":"Aussentemperatur Haus", "was_noch_sinnmacht":"Wert dazu"}, "Betriebsmodus": {"value":"Heizen","Einheit":"", "Beschreibung":"Aussentemperatur Haus", "was noch sinn macht":"Wert dazu"}}' | json_pp
{
"Betriebsmodus" : {
"value" : "Heizen",
"was noch sinn macht" : "Wert dazu",
"Einheit" : "",
"Beschreibung" : "Aussentemperatur Haus"
},
"Aussentemperatur" : {
"Einheit" : "°C",
"Beschreibung" : "Aussentemperatur Haus",
"was_noch_sinnmacht" : "Wert dazu",
"value" : "16"
}
}
horchi:
Zitatund mit Gruppen:
root@gate> echo '{ "Gruppe 1" : { "Betriebsmodus" : { "value" : "Heizen", "was noch sinn macht" : "Wert dazu", "Einheit" : "", "Beschreibung" : "Aussentemperatur Haus" }, "Aussentemperatur" : { "Einheit" : "°C", "Beschreibung" : "Aussentemperatur Haus", "was_noch_sinnmacht" : "Wert dazu", "value" : "16" } }, "Gruppe 2" : { "Bar" : { "value" : "foo", "was noch sinn macht" : "Wert dazu", "Einheit" : "", "Beschreibung" : "Aussentemperatur Haus" }, "test" : { "Einheit" : "°C", "Beschreibung" : "Aussentemperatur Haus", "was_noch_sinnmacht" : "Wert dazu", "value" : "16" } }}' | json_pp
{
"Gruppe 2" : {
"test" : {
"Beschreibung" : "Aussentemperatur Haus",
"Einheit" : "°C",
"was_noch_sinnmacht" : "Wert dazu",
"value" : "16"
},
"Bar" : {
"was noch sinn macht" : "Wert dazu",
"value" : "foo",
"Einheit" : "",
"Beschreibung" : "Aussentemperatur Haus"
}
},
"Gruppe 1" : {
"Aussentemperatur" : {
"value" : "16",
"was_noch_sinnmacht" : "Wert dazu",
"Einheit" : "°C",
"Beschreibung" : "Aussentemperatur Haus"
},
"Betriebsmodus" : {
"value" : "Heizen",
"was noch sinn macht" : "Wert dazu",
"Beschreibung" : "Aussentemperatur Haus",
"Einheit" : ""
}
}
}
horchi:
Zitatwäre das so für alle Beteiligten okay, wir sprechen ja von FHEM und Openhab?
Danke und Gruß Hoppel
Danke euch und Gruß Hoppel
Zitat von: hoppel118 am 26 April 2020, 10:46:18
Was ich noch nicht verstehe, am MQTT2_Server sehe ich im RETAIN Reading weiterhin die "homeassistant Einträge", obwohl die ja gar nicht mehr gepublished werden. Ich kann das Reading löschen wie ich will. Die Einträge kommen immer wieder. Im verbose 5 sehe ich keine homeassistant Einträge mehr. Wie kriege ich die weg?
Ich meine du bist an diesem Punkt:
Zitat von: FHEM-Wiki-MQTT-Einführung-Teil-2Zum absichtlichen Löschen einer retained Message, etwa weil man weiß, dass dieses Topic zukünftig nicht mehr benötigt wird, kann man eine leere Message posten.
Hier ein Beispiel (https://forum.fhem.de/index.php/topic,110570.0.html)
Gruß
Thomas
horchi:
ZitatHier ein Komplettes Beispiel ohne Baugruppen, die Elementbezeichner habe ich jetzt in englisch:
{
"Aussentemperatur_0x4" : {
"unit" : "°",
"value" : "22.50",
"description" : "Außentemperatur"
},
"Kesseltemperatur_0x0" : {
"description" : "Kessel",
"value" : "62.00",
"unit" : "°"
},
"28-000005679341" : {
"value" : "58.19",
"unit" : "°",
"description" : "Puffer Mitte"
},
"Vorlauf-Isttemperatur_0x15" : {
"value" : "31.00",
"unit" : "°",
"description" : "Vorlauf Heizung"
},
"RuecklauftemperaturanderZirkulationsLeitung_0xca" : {
"description" : "Rücklauftemperatur Zirkulation",
"unit" : "°",
"value" : "48.50"
},
"Kesselstellgroesse_0x12" : {
"value" : "99.00",
"unit" : "%",
"description" : "Kesselstellgröße"
},
"FuellstandimPelletsbehaelter_0x71" : {
"description" : "Füllstand im Pelletsbehälter",
"unit" : "%",
"value" : "74.12"
},
"PufferpumpenAnsteuerung_0x8c" : {
"description" : "Pufferpumpen Ansteuerung",
"unit" : "%",
"value" : "0.00"
},
"Status" : {
"value" : "Betriebsbereit",
"unit" : "Status",
"description" : "zst"
},
"DrehzahlderZirkulationsPumpe_0xc9" : {
"description" : "Drehzahl der Zirkulations Pumpe",
"value" : "0.00",
"unit" : "%"
},
"Stokerantrieb_0x5" : {
"description" : "Stokerantrieb",
"value" : "0.00",
"unit" : "%"
},
"Betriebsmodus" : {
"description" : "Betriebsmodus",
"value" : "Übergangsbetrieb",
"unit" : "zst"
},
"Puffertemperaturoben_0x76" : {
"unit" : "°",
"value" : "61.50",
"description" : "Puffer Oben"
},
"FuehlerinderSTBHuelse_0x8" : {
"description" : "Fühler in der STB Hülse",
"value" : "66.50",
"unit" : "°"
},
"KesselanforderungueberHeizkreisoderBoilerstehtan_0xd6" : {
"description" : "Kesselanforderung über Heizkreis oder Boiler steht an",
"value" : "0.00",
"unit" : ""
},
"Vorlauf-Isttemperatur_0x19" : {
"value" : "25.00",
"unit" : "°",
"description" : "Vorlauf Fußboden"
},
"Puffertemperaturunten_0x78" : {
"description" : "Puffer Unten",
"value" : "58.50",
"unit" : "°"
},
"TemperaturdesZuendrohres_0xd" : {
"description" : "Temperatur des Zündrohres",
"value" : "41.00",
"unit" : "°"
},
"Saugzugdrehzahl_0x7" : {
"description" : "Saugzugdrehzahl",
"unit" : "U",
"value" : "0.00"
},
"DrehzahlderPumpe_0xc8" : {
"description" : "Drehzahl der Pumpe",
"unit" : "%",
"value" : "0.00"
},
"Heizkreispumpe_0x1" : {
"value" : "0.00",
"unit" : "",
"description" : "Bodenheizung"
},
"BetriebsstundenStokerschnecke_0xad" : {
"description" : "Betriebsstunden Stokerschnecke",
"value" : "10619.00",
"unit" : "h"
},
"Boardtemperatur_0x2" : {
"description" : "Boardtemperatur",
"value" : "39.00",
"unit" : "°"
},
"Abgastemperatur_0x1" : {
"description" : "Abgas",
"value" : "83.00",
"unit" : "°"
},
"Heizkreispumpe_0x0" : {
"unit" : "",
"value" : "0.00",
"description" : "Heizkreis 1"
},
"Betriebsstunden_0x62" : {
"description" : "Betriebsstunden",
"value" : "14903.00",
"unit" : "h"
},
"Uhrzeit" : {
"value" : "Sunday, 26. Apr. 2020 09:46:39",
"unit" : "T",
"description" : "Datum Uhrzeit der Heizung"
}
}
horchi:
Zitatin description habe ich die Umlaute beibehalten - so wie ich es verstehe sind diese in JSON erlaubt. bin mir noch nicht 100% sicher ob ein Encoding ähnlich dem bei XML nötig sein könnte. da der Json Parser 'json_pp' an der Kommandozeile dies aber klaglos verarbeitet denke ich das passt so.
Passt das so?
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"...
Ansonsten bin ich froh, dass sich meine Aussage zu bestätigen scheint, dass homeassistant da "speziell" ist.
In FHEM bekommen wir das auf jeden Fall irgendwie hin, auch wenn "goodReadingName" wohl auch keine Umlaute mögen wird, wenn das via JSON kommt... Das ist dann aber wirklich ein spezielles FHEM-Thema, auf das horchi definitiv keine Rücksicht zu nehmen braucht ;) .
@Beta-User
Verstehe ich deine Nachricht richtig, dass das bis auf den Einwand und Vorschlag zum "Senden immer gleicher Informationen" so grundsätzlich erstmal passt?
Ich gebe dein Feedback dann gern weiter.
Gruß Hoppel
Nochmal zum Verständnis: Ich habe einige Erfahrung und ein meist valides Bauchgefühl u.a. zu den Dingen, die mit MQTT zusammenhängen. Was ich und Rudi bisher angemerkt hatten, lief eigentlich immer darauf hinaus klarzumachen, dass wir von der FHEM-Seite her mit fast allem klarkommen ;D .
Wie die Dinge am Ende codiert/verschachtelt/verpackt werden, ist eigentlich zweitrangig. Kommen die Daten in einem "Multi-JSON", ist das dahingehend hilfreich, als nur ein "Multi-" Event ausgelöst wird (readingsBulkUpdate); das beschleunigt uU. die weitere Verarbeitung... Aber auch das ist nur eine "Feinheit am Rande".
Klar kommt FHEM mit fast allem klar. Aber im Laufe des Threads gab es ja schon einiges an Feedback von euch, was man besser machen könnte, sogar mit ganz konkreten Vorschlägen, insbesondere diese beiden Posts von euch:
https://forum.fhem.de/index.php/topic,110401.msg1045437.html#msg1045437
https://forum.fhem.de/index.php/topic,110401.msg1045439.html#msg1045439
Diese Vorschläge habe ich so weiter gegeben und diese wurden jetzt auch größtenteils von horchi umgesetzt. Das einzige was noch fehlt, ist das Thema mit den Baugruppen/Subgeräten. Am Ende soll das Ganze performant sein und nur wenig Wünsche für andere FHEM User offen lassen. horchi war schneller als erwartet und ihr habt mitgemacht. ;)
@Beta-User Würde denn dann noch irgendwas fehlen, um daraus ein Template für alle p4d User bauen zu können? (Damit sollten wir aber noch warten, bis das mit den Baugruppen geklärt ist.
Gruß Hoppel
Zitat von: TomLee am 26 April 2020, 11:19:15
Ich meine du bist an diesem Punkt:
Hier ein Beispiel (https://forum.fhem.de/index.php/topic,110570.0.html)
Moin Thomas,
danke für den Hinweis. Einzelne Retain-Nachrichten kann ich über diesen Weg löschen. Durch die ganzen Spielereien und den homeassistant Kram habe ich jetzt aber hunderte solcher retain Nachrichten. Kann ich retain auch irgendwie vollständig zurücksetzen? Wenn nicht, lösche ich kurz das Device "MQTT2_SERVER".
EDIT: Ich habe nun den kurz den MQTT2_SERVER gelöscht und neu definiert. Danach werden sofort die relevanten Nachrichten eingelesen und der ganze Müll ist weg. Wäre trotzdem noch interessant zu verstehen, ob es dafür eine elegantere Möglichkeit gibt.
Gruß Hoppel
Wenn "gute" Strukturen (&goodReadingNames) kommen, braucht man fast kein attrTemplate mehr ;) . Damit kann man es dann nur ggf. aber noch "verschönern" (im FHEM-Sinn).
Ansonsten würde ich dann für attrTemplate-Herstellung mal wieder ein RAW-list brauchen, dann können wir noch diskutieren, was wir wie benennen (jsonMap) und was in state soll, that's all... (oder du versuchst dich dran, ist nicht so schwer!).
Ach so: Danke auch für die Kommunikation in Richtung horchi und an horchi selbst! Auch wenn sich manches evtl. von meiner Seite "hart" oder kritisch angehört haben sollte: das war nicht böse gemeint und ich finde es sehr cool, was bis hierhin schon rausgekommen ist - auch für Nutzer anderer HA-Lösungen ;) .
OK, das hört sich schon besser an! Deine letzte Nachricht hat mich gerade etwas verwirrt... ;)
Das positive Feedback gebe ich natürlich auch gern weiter! :D
Das attrTemplate machen wir (ich kann ja mal alleine starten), wenn das mit den Baugruppen/Subgeräten läuft.
Gruß Hoppel
ZitatKann ich retain auch irgendwie vollständig zurücksetzen?
Gute Frage würde mich auch interessieren, kann man vlt. regex verwenden, habs noch nicht probiert ?
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
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.
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
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).
Zitat von: Beta-User am 26 April 2020, 12:46:51
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
Hallo,
horchi möchte nochmal eine Bestätigung zur Implementation der Fehlermeldungen:
Zitatverstehe 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",
}
}
Zitatoder 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",
}
]
}
Zitatjeweils 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
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.
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?
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
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
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...
Zitat von: Beta-User am 28 April 2020, 21:25:53
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.
Zitat von: Beta-User am 28 April 2020, 21:25:53
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
ZitatWir 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 }
ZitatKann ich den MQTT2_Server eigentlich irgendwie stoppen?
delete MQTT2_Server
oder
modify MQTT2_Server 1884
Das disable Attribut verhindert nur das Senden.
Kuerzer aber nicht weniger kryptisch ist diese Schreibweise:
attr Boiler readingList p4d2mqtt.* { hashKeyRename(json2nameValue($EVENT), '^(Boiler_(.*)_value)', '(Boiler.*)') }
Zitat von: rudolfkoenig am 29 April 2020, 00:23:37
Kuerzer aber nicht weniger kryptisch ist diese Schreibweise:
attr Boiler readingList p4d2mqtt.* { hashKeyRename(json2nameValue($EVENT), '^(Boiler_(.*)_value)', '(Boiler.*)') }
...ich hoffe, das wiederzufinden, wenn wir es wirklich brauchen ::) .
(Und hoffe immer noch, dass horchi und "Teilstücke der Pipeline" jeweils auf einem eigenen Teil des Topic-Pfades liefern mag...)
Vielleicht nochmal ein paar Anmerkungen/Fragen):
- (das Connect/Disconnect-Ding ist gelöst?)
- Einen "last will" habe ich nicht gesehen? Absicht? Später? Nicht verstanden, um was es da geht bzw. wie das gedacht ist?
- Es sollte ein "Subgerät" "Busmaster" geben:
-- (da gehört der last will zu online/offline hin = eigener Topic)
-- da sollte man einstellen können, ob
--- das Bezugssystem metrisch oder imperial ist (=km+°C vs. miles+°F). Optimalerweise umschaltbar von metrisch auf imperial via einem MQTT-Kommando;
--- Einheiten überhaupt gesendet werden sollen => Senden von Einheiten ebenfalls im default abgeschaltet, nur bei Bedarf einschaltbar (via MQTT)
--- man die "discovery-Meldung" für homeassistant haben will; auch die fände ich by default im abgeschalteten Zustand besser...
Zitat-- da sollte man einstellen können, ob
--- das Bezugssystem metrisch oder imperial ist (=km+°C vs. miles+°F). Optimalerweise umschaltbar von metrisch auf imperial via einem MQTT-Kommando;
Warum nur Imperial und nicht US? Oder Magdeburg, von 1430 bis 1630 ? Will damit sagen: sind die Benutzer von diesem Holzscheitkessel-Steuerung in US oder GB (oder Magdeburg, vor 1630 :) ) relevant? Und selbst wenn ja, eine Umstellung direkt am Geraet sollte reichen, sowas stellt man doch nicht staendig um, und schon gar nicht aus der Ferne.
Eine Umstellmoeglichkeit macht Software/Doku/Support/Benutzung komplizierter.
Zitat von: rudolfkoenig am 29 April 2020, 09:47:01
Warum nur Imperial und nicht US? Oder Magdeburg, von 1430 bis 1630 ? Will damit sagen: sind die Benutzer von diesem Holzscheitkessel-Steuerung in US oder GB (oder Magdeburg, vor 1630 :) ) relevant? Und selbst wenn ja, eine Umstellung direkt am Geraet sollte reichen, sowas stellt man doch nicht staendig um, und schon gar nicht aus der Ferne.
Eine Umstellmoeglichkeit macht Software/Doku/Support/Benutzung komplizierter.
Soweit korrekt, von mir aus auch gem. US-System oder was auch immer.
Geht nur drum zu sagen: Selbst wenn man es auf "einmalig beim Systemstart" beschränkt, macht das Senden von Einheiten mMn. wenig Sinn. Es erzeugt einfach nur (@FHEM: in 99,999% der Fälle unnötige) Daten - schon gleich, wenn es gar nicht änderbar ist (auf der Sender-Seite).
Danke euch beiden für die stetige Beteiligung an diesem Thema. Ich bin dazu weiterhin mit horchi in Kontakt.
Der Openhab User ist anscheinend mit der Lösung fein.
Zitat von: Beta-User am 29 April 2020, 09:24:23
- (das Connect/Disconnect-Ding ist gelöst?)
Ich weiß nicht, kann man das in einem verbose 5 vom Server sehen?
Hier hatte ich das gestern Abend mitgeloggt:
https://pastebin.com/Qr8m58Kk
Ich sehe ein CONNECT zu Beginn (systemctl start p4d) und ein DISCONNECT zum Ende (systemctl stop p4d). Passt das nun so?
Gruß Hoppel
Ein Connect beim Starten und einer beim Stoppen ist m.E. sehr gut.
Du könntest ggf. mal testen, was passiert, wenn du die Netzwerkverbindung zum FHEM-Server trennst (falls möglich); da sollte dann auch ein "unclean" disconnect kommen und ein reconnect.
Sonst muß ich zugeben, dass ich das log nicht intensiv angeschaut habe.
Das schaue ich mir heute Abend nochmal an...
horchi fragt gerade nochmal folgendes. Da ich mir nicht sicher bin, auch wenn die Antwort klar scheint, möchte ich nochmal deine Bestätigung @Beta-User . Nicht dass horchi irgendwas baut, weil wir aneinander vorbeireden. ;)
horchi:
Zitatzusammenfassend soll für FHEM die Baugruppe komplett aus dem Json raus und in den Topic Namen, Rest bleibt wie es gerade ist?
Passt die Aussage für unseren FHEM-Anwendungsfall?
Danke und Gruß Hoppel
Zitat von: hoppel118 am 29 April 2020, 12:34:22
zusammenfassend soll für FHEM die Baugruppe komplett aus dem Json raus und in den Topic Namen, Rest bleibt wie es gerade ist?
Die Begrifflichkeit irritiert mich etwas.
Minimalziel sollte sein:
p4d2mqtt/Holzscheitkessel <payload>
Mir persönlich würden auch weniger verschachtelte JSON besser gefallen. Das ergäbe:
p4d2mqtt/Holzscheitkessel/Saugzugdrehzahl_0x7 <payload>
(Das ist aber wirklich eine Geschmacksfrage, kannst du so weitergeben, wie es dir besser erscheint; Vorteil auf FHEM-Sicht: Das gibt "kürzere" Reading-Namen bzw. weniger JSON-Mapping-Bedarf).
So, kurz vor Mitternacht bin ich wieder da... ;)
horchi hat eine neue Version bereitgestellt, anhand der man nun selbst entscheiden kann, was man will:
- wer separate Topics je Sensor möchte, verwendet im "Data Topic Name" das <NAME> Template
- wer ein Topic je Baugruppe möchte, verwendet das <GROUP> Template
- wer ordentlich strukturiertes JSON und alles auf einem Topic möchte, verwendet keines der beiden Templates
Baugruppen sind eingerichtet und zugewiesen und unter "MQTT Data Topic Name" habe ich folgendes eingetragen: "p4d2mqtt/<GROUP>/state". Ich verwende also das <GROUP> Template.
Anschließend habe ich auf dem MQTT2_Server verbose 5 aktiviert und p4d auf dem Heizungs-RPi gestartet.
Hier das Logfile: https://pastebin.com/Hg3Mcefk
Das autocreated MQTT2_Device sieht wie folgt aus:
Internals:
CFGFN
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC MQTT2_p4d_publisher
FUUID 5ea9e259-f33f-5dcf-8815-cb9a2073c3ef1373
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 234
NAME MQTT2_p4d_publisher
NR 659
STATE ???
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 234
mqtt2server_TIME 2020-04-29 22:48:44
READINGS:
2020-04-29 22:48:44 Abgas-Solltemperatur_0x13_description Abgas-Solltemperatur
2020-04-29 22:48:44 Abgas-Solltemperatur_0x13_unit °C
2020-04-29 22:48:44 Abgas-Solltemperatur_0x13_value 183.00
2020-04-29 22:48:44 Abgastemperatur_0x1_description Abgastemperatur
2020-04-29 22:48:44 Abgastemperatur_0x1_unit °C
2020-04-29 22:48:44 Abgastemperatur_0x1_value 139.00
2020-04-29 22:48:44 Aussentemperatur_0x4_description Außentemperatur
2020-04-29 22:48:44 Aussentemperatur_0x4_unit °C
2020-04-29 22:48:44 Aussentemperatur_0x4_value 10.00
2020-04-29 22:48:44 BetriebsartBoiler_0x156_description Betriebsart Boiler
2020-04-29 22:48:44 BetriebsartBoiler_0x156_unit
2020-04-29 22:48:44 BetriebsartBoiler_0x156_value 1.00
2020-04-29 22:48:44 BetriebsartHeizkreis_0x17_description Betriebsart Heizkreis
2020-04-29 22:48:44 BetriebsartHeizkreis_0x17_unit
2020-04-29 22:48:44 BetriebsartHeizkreis_0x17_value 0.00
2020-04-29 22:48:44 BetriebsartHeizkreis_0x1b_description Betriebsart Heizkreis
2020-04-29 22:48:44 BetriebsartHeizkreis_0x1b_unit
2020-04-29 22:48:44 BetriebsartHeizkreis_0x1b_value 0.00
2020-04-29 22:48:44 Betriebsmodus_description Betriebsmodus
2020-04-29 22:48:44 Betriebsmodus_unit zst
2020-04-29 22:48:44 Betriebsmodus_value Dauerlast
2020-04-29 22:48:44 Betriebsstunden_0x62_description Betriebsstunden
2020-04-29 22:48:44 Betriebsstunden_0x62_unit h
2020-04-29 22:48:44 Betriebsstunden_0x62_value 9900.00
2020-04-29 22:48:44 BetriebsstundeninderFeuererhaltung_0x73_description Betriebsstunden in der Feuererhaltung
2020-04-29 22:48:44 BetriebsstundeninderFeuererhaltung_0x73_unit h
2020-04-29 22:48:44 BetriebsstundeninderFeuererhaltung_0x73_value 27.00
2020-04-29 22:48:44 BetriebsstundenvonKessel2Brennerkontakt_0x109_description Betriebsstunden von Kessel 2 (Brennerkontakt)
2020-04-29 22:48:44 BetriebsstundenvonKessel2Brennerkontakt_0x109_unit h
2020-04-29 22:48:44 BetriebsstundenvonKessel2Brennerkontakt_0x109_value 2476.00
2020-04-29 22:48:44 Boardtemperatur_0x2_description Boardtemperatur
2020-04-29 22:48:44 Boardtemperatur_0x2_unit °C
2020-04-29 22:48:44 Boardtemperatur_0x2_value 40.50
2020-04-29 22:48:44 BoilerpumpeAnsteuerung_0x90_description Boilerpumpe Ansteuerung
2020-04-29 22:48:44 BoilerpumpeAnsteuerung_0x90_unit %
2020-04-29 22:48:44 BoilerpumpeAnsteuerung_0x90_value 0.00
2020-04-29 22:48:44 Boilertemperaturoben_0x5d_description Boilertemperatur oben
2020-04-29 22:48:44 Boilertemperaturoben_0x5d_unit °C
2020-04-29 22:48:44 Boilertemperaturoben_0x5d_value 62.00
2020-04-29 22:48:44 Build_0x16f_description Build
2020-04-29 22:48:44 Build_0x16f_unit
2020-04-29 22:48:44 Build_0x16f_value 2.00
2020-04-29 22:48:44 EmpfohleneHolzmengebeimNachlegen_0x10a_description Empfohlene Holzmenge beim Nachlegen
2020-04-29 22:48:44 EmpfohleneHolzmengebeimNachlegen_0x10a_unit k
2020-04-29 22:48:44 EmpfohleneHolzmengebeimNachlegen_0x10a_value 1.00
2020-04-29 22:48:44 FuehleramHydraulikmodul03_0xff_description Fühler am Hydraulikmodul 0.3
2020-04-29 22:48:44 FuehleramHydraulikmodul03_0xff_unit °C
2020-04-29 22:48:44 FuehleramHydraulikmodul03_0xff_value 62.00
2020-04-29 22:48:44 Kesselstellgroesse_0x12_description Kesselstellgröße
2020-04-29 22:48:44 Kesselstellgroesse_0x12_unit %
2020-04-29 22:48:44 Kesselstellgroesse_0x12_value 100.00
2020-04-29 22:48:44 Kesseltemperatur_0x0_description Kesseltemperatur
2020-04-29 22:48:44 Kesseltemperatur_0x0_unit °C
2020-04-29 22:48:44 Kesseltemperatur_0x0_value 74.50
2020-04-29 22:48:44 Kesselzustand_0x1c9_description Kesselzustand
2020-04-29 22:48:44 Kesselzustand_0x1c9_unit
2020-04-29 22:48:44 Kesselzustand_0x1c9_value 3.00
2020-04-29 22:48:44 Lambdasondenspannunggemessen_0xd3_description Lambdasondenspannung gemessen
2020-04-29 22:48:44 Lambdasondenspannunggemessen_0xd3_unit m
2020-04-29 22:48:44 Lambdasondenspannunggemessen_0xd3_value 24.07
2020-04-29 22:48:44 Lambdasondenspannungkorrigiert_0xdc_description Lambdasondenspannung korrigiert
2020-04-29 22:48:44 Lambdasondenspannungkorrigiert_0xdc_unit m
2020-04-29 22:48:44 Lambdasondenspannungkorrigiert_0xdc_value 24.07
2020-04-29 22:48:44 PufferladezustandDiskret_0x1c0_description Pufferladezustand Diskret
2020-04-29 22:48:44 PufferladezustandDiskret_0x1c0_unit
2020-04-29 22:48:44 PufferladezustandDiskret_0x1c0_value 4.00
2020-04-29 22:48:44 Pufferladezustand_0xe1_description Pufferladezustand
2020-04-29 22:48:44 Pufferladezustand_0xe1_unit %
2020-04-29 22:48:44 Pufferladezustand_0xe1_value 91.00
2020-04-29 22:48:44 PufferpumpenAnsteuerung_0x8c_description Pufferpumpen Ansteuerung
2020-04-29 22:48:44 PufferpumpenAnsteuerung_0x8c_unit %
2020-04-29 22:48:44 PufferpumpenAnsteuerung_0x8c_value 55.00
2020-04-29 22:48:44 PufferpumpenbegrenzungdurchAbgastemperatur_0xde_description Pufferpumpenbegrenzung durch Abgastemperatur
2020-04-29 22:48:44 PufferpumpenbegrenzungdurchAbgastemperatur_0xde_unit %
2020-04-29 22:48:44 PufferpumpenbegrenzungdurchAbgastemperatur_0xde_value 8.00
2020-04-29 22:48:44 Puffertemperaturoben_0x76_description Puffertemperatur oben
2020-04-29 22:48:44 Puffertemperaturoben_0x76_unit °C
2020-04-29 22:48:44 Puffertemperaturoben_0x76_value 73.50
2020-04-29 22:48:44 Puffertemperaturunten_0x78_description Puffertemperatur unten
2020-04-29 22:48:44 Puffertemperaturunten_0x78_unit °C
2020-04-29 22:48:44 Puffertemperaturunten_0x78_value 71.00
2020-04-29 22:48:44 RaumfuehlerKBGTouch_0x191_description Raumfühler KBG Touch
2020-04-29 22:48:44 RaumfuehlerKBGTouch_0x191_unit °C
2020-04-29 22:48:44 RaumfuehlerKBGTouch_0x191_value 19.00
2020-04-29 22:48:44 Saugzug-Ansteuerung_0xf_description Saugzug - Ansteuerung
2020-04-29 22:48:44 Saugzug-Ansteuerung_0xf_unit %
2020-04-29 22:48:44 Saugzug-Ansteuerung_0xf_value 90.00
2020-04-29 22:48:44 Saugzugdrehzahl_0x7_description Saugzugdrehzahl
2020-04-29 22:48:44 Saugzugdrehzahl_0x7_unit U
2020-04-29 22:48:44 Saugzugdrehzahl_0x7_value 2698.00
2020-04-29 22:48:44 Status_description zst
2020-04-29 22:48:44 Status_unit Heizungsstatus
2020-04-29 22:48:44 Status_value Heizen
2020-04-29 22:48:44 StundenseitletzterWartung_0xd5_description Stunden seit letzter Wartung
2020-04-29 22:48:44 StundenseitletzterWartung_0xd5_unit h
2020-04-29 22:48:44 StundenseitletzterWartung_0xd5_value 9900.00
2020-04-29 22:48:44 TemperaturdesZweitkessel_0xc4_description Temperatur des Zweitkessel
2020-04-29 22:48:44 TemperaturdesZweitkessel_0xc4_unit °C
2020-04-29 22:48:44 TemperaturdesZweitkessel_0xc4_value 15.50
2020-04-29 22:48:44 Uhrzeit_description Datum Uhrzeit der Heizung
2020-04-29 22:48:44 Uhrzeit_unit T
2020-04-29 22:48:44 Uhrzeit_value Wednesday, 29. Apr. 2020 22:37:13
2020-04-29 22:48:44 VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_description Vergangene Zeit seit letzter Wärmetauscherreinigung
2020-04-29 22:48:44 VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_unit m
2020-04-29 22:48:44 VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_value 438.00
2020-04-29 22:48:44 Vorlauf-Isttemperatur_0x15_description Vorlauf-Isttemperatur
2020-04-29 22:48:44 Vorlauf-Isttemperatur_0x15_unit °C
2020-04-29 22:48:44 Vorlauf-Isttemperatur_0x15_value 40.50
2020-04-29 22:48:44 Vorlauf-Isttemperatur_0x19_description Vorlauf-Isttemperatur
2020-04-29 22:48:44 Vorlauf-Isttemperatur_0x19_unit °C
2020-04-29 22:48:44 Vorlauf-Isttemperatur_0x19_value 43.00
2020-04-29 22:48:44 Vorlauf-Solltemperatur_0x16_description Vorlauf-Solltemperatur
2020-04-29 22:48:44 Vorlauf-Solltemperatur_0x16_unit °C
2020-04-29 22:48:44 Vorlauf-Solltemperatur_0x16_value 49.50
2020-04-29 22:48:44 Vorlauf-Solltemperatur_0x1a_description Vorlauf-Solltemperatur
2020-04-29 22:48:44 Vorlauf-Solltemperatur_0x1a_unit °C
2020-04-29 22:48:44 Vorlauf-Solltemperatur_0x1a_value 49.50
2020-04-29 22:48:44 Zykluszeit_0xe_description Zykluszeit:
2020-04-29 22:48:44 Zykluszeit_0xe_unit u
2020-04-29 22:48:44 Zykluszeit_0xe_value 54.10
Attributes:
IODev mqtt2server
readingList p4d_publisher:p4d2mqtt/Anlagenstatus/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Holzscheitkessel/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Gaskessel/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Puffer/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Boiler/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Heizkreis01/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Heizkreis02/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Aussensensor/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Raumsensor/state:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
Momentan werden alle Readings geloggt, auch Beschreibungen und Einheiten. Die sollten ja eigentlich nur beim Start von p4d einmalig übertragen werden. Habe horchi nochmal darauf aufmerksam gemacht und bei der Gelegenheit darum gebeten, eine Option anzubieten, mit der man das grundsätzlich deaktivieren kann. Mal sehen...
Das Server Device sieht wie folgt aus:
Internals:
CFGFN
CONNECTS 28
DEF 1883 10.11.11.11
FD 64
FUUID 5ea9e211-f33f-5dcf-25fa-e65cfb4057c58044
NAME mqtt2server
NR 654
PORT 1883
STATE Initialized
TYPE MQTT2_SERVER
READINGS:
2020-04-29 22:49:44 RETAIN {"p4d2mqtt/Anlagenstatus/state":"{\u0022Status\u0022: {\u0022value\u0022: \u0022Heizen\u0022, \u0022unit\u0022: \u0022Heizungsstatus\u0022, \u0022description\u0022: \u0022zst\u0022}, \u0022Betriebsmodus\u0022: {\u0022value\u0022: \u0022Dauerlast\u0022, \u0022unit\u0022: \u0022zst\u0022, \u0022description\u0022: \u0022Betriebsmodus\u0022}, \u0022Boardtemperatur_0x2\u0022: {\u0022value\u0022: \u002240.50\u0022, \u0022unit\u0022: \u0022°C\u0022, \u0022description\u0022: \u0022Boardtemperatur\u0022}, \u0022Uhrzeit\u0022: {\u0022value\u0022: \u0022Wednesday, 29. Apr. 2020 22:38:13\u0022, \u0022unit\u0022: \u0022T\u0022, \u0022description\u0022: \u0022Datum Uhrzeit der Heizung\u0022}, \u0022Betriebsstunden_0x62\u0022: {\u0022value\u0022: \u00229900.00\u0022, \u0022unit\u0022: \u0022h\u0022, \u0022description\u0022: \u0022Betriebsstunden\u0022}, \u0022BetriebsstundeninderFeuererhaltung_0x73\u0022: {\u0022value\u0022: \u002227.00\u0022, \u0022unit\u0022: \u0022h\u0022, \u0022description\u0022: \u0022Betriebsstunden in der Feuererhaltung\u0022}, \u0022StundenseitletzterWartung_0xd5\u0022: {\u0022value\u0022: \u00229900.00\u0022, \u0022unit\u0022: \u0022h\u0022, \u0022description\u0022: \u0022Stunden seit letzter Wartung\u0022}, \u0022BetriebsstundenvonKessel2Brennerkontakt_0x109\u0022: {\u0022value\u0022: \u00222476.00\u0022, \u0022unit\u0022: \u0022h\u0022, \u0022description\u0022: \u0022Betriebsstunden von Kessel 2 (Brennerkontakt)\u0022}, \u0022Build_0x16f\u0022: {\u0022value\u0022: \u00222.00\u0022, \u0022unit\u0022: \u0022\u0022, \u0022description\u0022: \u0022Build\u0022}, \u0022VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7\u0022: {\u0022value\u0022: \u0022439.00\u0022, \u0022unit\u0022: \u0022m\u0022, \u0022description\u0022: \u0022Vergangene Zeit seit letzter Wärmetauscherreinigung\u0022}}","p4d2mqtt/Aussensensor/state":"{\u0022Aussentemperatur_0x4\u0022: {\u0022value\u0022: \u002210.00\u0022, \u0022unit\u0022: \u0022°C\u0022, \u0022description\u0022: \u0022Außentemperatur\u0022}}","p4d2mqtt/Boiler/state":"{\u0022Boilertemperaturoben_0x5d\u0022: {\u0022value\u0022: \u002262.00\u0022, \u0022unit\u0022: \u0022°C\u0022, \u0022description\u0022: \u0022Boilertemperatur oben\u0022}, \u0022BoilerpumpeAnsteuerung_0x90\u0022: {\u0022value\u0022: \u00220.00\u0022, \u0022unit\u0022: \u0022%\u0022, \u0022description\u0022: \u0022Boilerpumpe Ansteuerung\u0022}, \u0022BetriebsartBoiler_0x156\u0022: {\u0022value\u0022: \u00221.00\u0022, \u0022unit\u0022: \u0022\u0022, \u0022description\u0022: \u0022Betriebsart Boiler\u0022}}","p4d2mqtt/Gaskessel/state":"{\u0022TemperaturdesZweitkessel_0xc4\u0022: {\u0022value\u0022: \u002215.50\u0022, \u0022unit\u0022: \u0022°C\u0022, \u0022description\u0022: \u0022Temperatur des Zweitkessel\u0022}}","p4d2mqtt/Heizkreis01/state":"{\u0022Vorlauf-Isttemperatur_0x15\u0022: {\u0022value\u0022: \u002240.50\u0022, \u0022unit\u0022: \u0022°C\u0022, \u0022description\u0022: \u0022Vorlauf-Isttemperatur\u0022}, \u0022Vorlauf-Solltemperatur_0x16\u0022: {\u0022value\u0022: \u002249.50\u0022, \u0022unit\u0022: \u0022°C\u0022, \u0022description\u0022: \u0022Vorlauf-Solltemperatur\u0022}, \u0022BetriebsartHeizkreis_0x17\u0022: {\u0022value\u0022: \u00220.00\u0022, \u0022unit\u0022: \u0022\u0022, \u0022description\u0022: \u0022Betriebsart Heizkreis\u0022}}","p4d2mqtt/Heizkreis02/state":"{\u0022Vorlauf-Isttemperatur_0x19\u0022: {\u0022value\u0022: \u002258.00\u0022, \u0022unit\u0022: \u0022°C\u0022, \u0022description\u0022: \u0022Vorlauf-Isttemperatur\u0022}, \u0022Vorlauf-Solltemperatur_0x1a\u0022: {\u0022value\u0022: \u002249.50\u0022, \u0022unit\u0022: \u0022°C\u0022, \u0022description\u0022: \u0022Vorlauf-Solltemperatur\u0022}, \u0022BetriebsartHeizkreis_0x1b\u0022: {\u0022value\u0022: \u00220.00\u0022, \u0022unit\u0022: \u0022\u0022, \u0022description\u0022: \u0022Betriebsart Heizkreis\u0022}}","p4d2mqtt/Holzscheitkessel/state":"{\u0022Kesseltemperatur_0x0\u0022: {\u0022value\u0022: \u002274.50\u0022, \u0022unit\u0022: \u0022°C\u0022, \u0022description\u0022: \u0022Kesseltemperatur\u0022}, \u0022Abgastemperatur_0x1\u0022: {\u0022value\u0022: \u0022138.00\u0022, \u0022unit\u0022: \u0022°C\u0022, \u0022description\u0022: \u0022Abgastemperatur\u0022}, \u0022Saugzugdrehzahl_0x7\u0022: {\u0022value\u0022: \u00222697.00\u0022, \u0022unit\u0022: \u0022U\u0022, \u0022description\u0022: \u0022Saugzugdrehzahl\u0022}, \u0022Zykluszeit_0xe\u0022: {\u0022value\u0022: \u002254.10\u0022, \u0022unit\u0022: \u0022u\u0022, \u0022description\u0022: \u0022Zykluszeit:\u0022}, \u0022Saugzug-Ansteuerung_0xf\u0022: {\u0022value\u0022: \u002290.00\u0022, \u0022unit\u0022: \u0022%\u0022, \u0022description\u0022: \u0022Saugzug - Ansteuerung\u0022}, \u0022Kesselstellgroesse_0x12\u0022: {\u0022value\u0022: \u0022100.00\u0022, \u0022unit\u0022: \u0022%\u0022, \u0022description\u0022: \u0022Kesselstellgröße\u0022}, \u0022Abgas-Solltemperatur_0x13\u0022: {\u0022value\u0022: \u0022179.00\u0022, \u0022unit\u0022: \u0022°C\u0022, \u0022description\u0022: \u0022Abgas-Solltemperatur\u0022}, \u0022Lambdasondenspannunggemessen_0xd3\u0022: {\u0022value\u0022: \u002224.07\u0022, \u0022unit\u0022: \u0022m\u0022, \u0022description\u0022: \u0022Lambdasondenspannung gemessen\u0022}, \u0022Lambdasondenspannungkorrigiert_0xdc\u0022: {\u0022value\u0022: \u002224.07\u0022, \u0022unit\u0022: \u0022m\u0022, \u0022description\u0022: \u0022Lambdasondenspannung korrigiert\u0022}, \u0022FuehleramHydraulikmodul03_0xff\u0022: {\u0022value\u0022: \u002262.00\u0022, \u0022unit\u0022: \u0022°C\u0022, \u0022description\u0022: \u0022Fühler am Hydraulikmodul 0.3\u0022}, \u0022EmpfohleneHolzmengebeimNachlegen_0x10a\u0022: {\u0022value\u0022: \u00221.00\u0022, \u0022unit\u0022: \u0022k\u0022, \u0022description\u0022: \u0022Empfohlene Holzmenge beim Nachlegen\u0022}, \u0022Kesselzustand_0x1c9\u0022: {\u0022value\u0022: \u00223.00\u0022, \u0022unit\u0022: \u0022\u0022, \u0022description\u0022: \u0022Kesselzustand\u0022}}","p4d2mqtt/Puffer/state":"{\u0022Puffertemperaturoben_0x76\u0022: {\u0022value\u0022: \u002273.50\u0022, \u0022unit\u0022: \u0022°C\u0022, \u0022description\u0022: \u0022Puffertemperatur oben\u0022}, \u0022Puffertemperaturunten_0x78\u0022: {\u0022value\u0022: \u002271.00\u0022, \u0022unit\u0022: \u0022°C\u0022, \u0022description\u0022: \u0022Puffertemperatur unten\u0022}, \u0022PufferpumpenAnsteuerung_0x8c\u0022: {\u0022value\u0022: \u002255.00\u0022, \u0022unit\u0022: \u0022%\u0022, \u0022description\u0022: \u0022Pufferpumpen Ansteuerung\u0022}, \u0022PufferpumpenbegrenzungdurchAbgastemperatur_0xde\u0022: {\u0022value\u0022: \u00228.00\u0022, \u0022unit\u0022: \u0022%\u0022, \u0022description\u0022: \u0022Pufferpumpenbegrenzung durch Abgastemperatur\u0022}, \u0022Pufferladezustand_0xe1\u0022: {\u0022value\u0022: \u002291.00\u0022, \u0022unit\u0022: \u0022%\u0022, \u0022description\u0022: \u0022Pufferladezustand\u0022}, \u0022PufferladezustandDiskret_0x1c0\u0022: {\u0022value\u0022: \u00224.00\u0022, \u0022unit\u0022: \u0022\u0022, \u0022description\u0022: \u0022Pufferladezustand Diskret\u0022}}","p4d2mqtt/Raumsensor/state":"{\u0022RaumfuehlerKBGTouch_0x191\u0022: {\u0022value\u0022: \u002219.00\u0022, \u0022unit\u0022: \u0022°C\u0022, \u0022description\u0022: \u0022Raumfühler KBG Touch\u0022}}"}
2020-04-29 22:50:43 nrclients 0
2020-04-29 22:22:55 state Initialized
clients:
retain:
p4d2mqtt/Anlagenstatus/state:
ts 1588193384.62519
val {"Status": {"value": "Heizen", "unit": "Heizungsstatus", "description": "zst"}, "Betriebsmodus": {"value": "Dauerlast", "unit": "zst", "description": "Betriebsmodus"}, "Boardtemperatur_0x2": {"value": "40.50", "unit": "°C", "description": "Boardtemperatur"}, "Uhrzeit": {"value": "Wednesday, 29. Apr. 2020 22:38:13", "unit": "T", "description": "Datum Uhrzeit der Heizung"}, "Betriebsstunden_0x62": {"value": "9900.00", "unit": "h", "description": "Betriebsstunden"}, "BetriebsstundeninderFeuererhaltung_0x73": {"value": "27.00", "unit": "h", "description": "Betriebsstunden in der Feuererhaltung"}, "StundenseitletzterWartung_0xd5": {"value": "9900.00", "unit": "h", "description": "Stunden seit letzter Wartung"}, "BetriebsstundenvonKessel2Brennerkontakt_0x109": {"value": "2476.00", "unit": "h", "description": "Betriebsstunden von Kessel 2 (Brennerkontakt)"}, "Build_0x16f": {"value": "2.00", "unit": "", "description": "Build"}, "VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7": {"value": "439.00", "unit": "m", "description": "Vergangene Zeit seit letzter Wärmetauscherreinigung"}}
p4d2mqtt/Aussensensor/state:
ts 1588193384.65146
val {"Aussentemperatur_0x4": {"value": "10.00", "unit": "°C", "description": "Außentemperatur"}}
p4d2mqtt/Boiler/state:
ts 1588193384.64474
val {"Boilertemperaturoben_0x5d": {"value": "62.00", "unit": "°C", "description": "Boilertemperatur oben"}, "BoilerpumpeAnsteuerung_0x90": {"value": "0.00", "unit": "%", "description": "Boilerpumpe Ansteuerung"}, "BetriebsartBoiler_0x156": {"value": "1.00", "unit": "", "description": "Betriebsart Boiler"}}
p4d2mqtt/Gaskessel/state:
ts 1588193384.63979
val {"TemperaturdesZweitkessel_0xc4": {"value": "15.50", "unit": "°C", "description": "Temperatur des Zweitkessel"}}
p4d2mqtt/Heizkreis01/state:
ts 1588193384.64694
val {"Vorlauf-Isttemperatur_0x15": {"value": "40.50", "unit": "°C", "description": "Vorlauf-Isttemperatur"}, "Vorlauf-Solltemperatur_0x16": {"value": "49.50", "unit": "°C", "description": "Vorlauf-Solltemperatur"}, "BetriebsartHeizkreis_0x17": {"value": "0.00", "unit": "", "description": "Betriebsart Heizkreis"}}
p4d2mqtt/Heizkreis02/state:
ts 1588193384.64926
val {"Vorlauf-Isttemperatur_0x19": {"value": "58.00", "unit": "°C", "description": "Vorlauf-Isttemperatur"}, "Vorlauf-Solltemperatur_0x1a": {"value": "49.50", "unit": "°C", "description": "Vorlauf-Solltemperatur"}, "BetriebsartHeizkreis_0x1b": {"value": "0.00", "unit": "", "description": "Betriebsart Heizkreis"}}
p4d2mqtt/Holzscheitkessel/state:
ts 1588193384.6339
val {"Kesseltemperatur_0x0": {"value": "74.50", "unit": "°C", "description": "Kesseltemperatur"}, "Abgastemperatur_0x1": {"value": "138.00", "unit": "°C", "description": "Abgastemperatur"}, "Saugzugdrehzahl_0x7": {"value": "2697.00", "unit": "U", "description": "Saugzugdrehzahl"}, "Zykluszeit_0xe": {"value": "54.10", "unit": "u", "description": "Zykluszeit:"}, "Saugzug-Ansteuerung_0xf": {"value": "90.00", "unit": "%", "description": "Saugzug - Ansteuerung"}, "Kesselstellgroesse_0x12": {"value": "100.00", "unit": "%", "description": "Kesselstellgröße"}, "Abgas-Solltemperatur_0x13": {"value": "179.00", "unit": "°C", "description": "Abgas-Solltemperatur"}, "Lambdasondenspannunggemessen_0xd3": {"value": "24.07", "unit": "m", "description": "Lambdasondenspannung gemessen"}, "Lambdasondenspannungkorrigiert_0xdc": {"value": "24.07", "unit": "m", "description": "Lambdasondenspannung korrigiert"}, "FuehleramHydraulikmodul03_0xff": {"value": "62.00", "unit": "°C", "description": "Fühler am Hydraulikmodul 0.3"}, "EmpfohleneHolzmengebeimNachlegen_0x10a": {"value": "1.00", "unit": "k", "description": "Empfohlene Holzmenge beim Nachlegen"}, "Kesselzustand_0x1c9": {"value": "3.00", "unit": "", "description": "Kesselzustand"}}
p4d2mqtt/Puffer/state:
ts 1588193384.64135
val {"Puffertemperaturoben_0x76": {"value": "73.50", "unit": "°C", "description": "Puffertemperatur oben"}, "Puffertemperaturunten_0x78": {"value": "71.00", "unit": "°C", "description": "Puffertemperatur unten"}, "PufferpumpenAnsteuerung_0x8c": {"value": "55.00", "unit": "%", "description": "Pufferpumpen Ansteuerung"}, "PufferpumpenbegrenzungdurchAbgastemperatur_0xde": {"value": "8.00", "unit": "%", "description": "Pufferpumpenbegrenzung durch Abgastemperatur"}, "Pufferladezustand_0xe1": {"value": "91.00", "unit": "%", "description": "Pufferladezustand"}, "PufferladezustandDiskret_0x1c0": {"value": "4.00", "unit": "", "description": "Pufferladezustand Diskret"}}
p4d2mqtt/Raumsensor/state:
ts 1588193384.65288
val {"RaumfuehlerKBGTouch_0x191": {"value": "19.00", "unit": "°C", "description": "Raumfühler KBG Touch"}}
Attributes:
icon mqtt_broker
room Erdgeschoss->Heizungsraum,Hersteller->Fröling,Hersteller->MQTT,System->Zentralen
So wie ich das sehe, sieht das doch schonmal gut aus. Wie seht ihr das bzw. wo seht ihr Verbesserungspotential?
EDIT: Achja, fast hätte ich es vergessen, wie muss das readingList aussehen?
Ich habe das Gefühl wir nähern uns dem Ziel und haben es alle bald geschafft. ;)
Danke euch und viele Grüße Hoppel
Zitat von: Beta-User am 29 April 2020, 11:33:24
Du könntest ggf. mal testen, was passiert, wenn du die Netzwerkverbindung zum FHEM-Server trennst (falls möglich); da sollte dann auch ein "unclean" disconnect kommen und ein reconnect.
So, habe die WLAN IP vom Heizungs-RPi mal ein paar Minuten geblockt. Das Ergebnis sieht wie folgt aus:
2020.04.29 23:22:56 5: in: PINGREQ: (192)(0)
2020.04.29 23:22:56 4: mqtt2server_10.11.11.8_37338 p4d_publisher PINGREQ
2020.04.29 23:22:56 5: out: PINGRESP: (208)(0)
2020.04.29 23:23:26 3: mqtt2server: mqtt2server_10.11.11.8_37338/p4d_publisher left us (keepalive check)
2020.04.29 23:28:14 4: Connection accepted from mqtt2server_10.11.11.8_37340
2020.04.29 23:28:14 5: in: CONNECT: (16)(25)(0)(4)MQTT(4)(2)(0)(20)(0)(13)p4d_publisher
2020.04.29 23:28:14 4: mqtt2server_10.11.11.8_37340 cid:p4d_publisher CONNECT V:4 keepAlive:20
2020.04.29 23:28:14 5: out: CONNACK: (2)(0)(0)
Ich schätze, das sieht so aus, wie es aussehen soll. Oder? ;)
Danke euch und Gruß Hoppel
Guten morgen,
OK, horchi hat den Bug behoben. Die Einheiten und Beschreibungen werden nun nur noch einmalig beim Start von p4d versendet. systemd ist immer wieder abgestürzt und neugestartet, weshalb es so aussah als ob Einheiten/Beschreibungen immer übertragen werden. Die entsprechenden "connection closed/accepted" messages sind nun weg:
2020.04.29 22:24:36 4: mqtt2server_10.11.11.8_37244 p4d_publisher PINGREQ
2020.04.29 22:24:36 5: out: PINGRESP: (208)(0)
2020.04.29 22:24:52 4: Connection closed for mqtt2server_10.11.11.8_37244: EOF
2020.04.29 22:24:53 4: Connection accepted from mqtt2server_10.11.11.8_37246
2020.04.29 22:24:53 5: in: CONNECT: (16)(25)(0)(4)MQTT(4)(2)(0)(20)(0)(13)p4d_publisher
2020.04.29 22:24:53 4: mqtt2server_10.11.11.8_37246 cid:p4d_publisher CONNECT V:4 keepAlive:20
2020.04.29 22:24:53 5: out: CONNACK: (2)(0)(0)
Hier das neue Logfile: https://pastebin.com/sMDs3wEz
Hier das list vom Device:
Internals:
CFGFN
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC MQTT2_p4d_publisher
FUUID 5eaa7af9-f33f-5dcf-0d5f-83609ef8aea472e1
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 18
NAME MQTT2_p4d_publisher
NR 1479
STATE ???
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 18
mqtt2server_TIME 2020-04-30 09:17:04
READINGS:
2020-04-30 09:15:05 Abgas-Solltemperatur_0x13_description Abgas-Solltemperatur
2020-04-30 09:15:05 Abgas-Solltemperatur_0x13_unit °C
2020-04-30 09:17:04 Abgas-Solltemperatur_0x13_value 110.00
2020-04-30 09:15:05 Abgastemperatur_0x1_description Abgastemperatur
2020-04-30 09:15:05 Abgastemperatur_0x1_unit °C
2020-04-30 09:17:04 Abgastemperatur_0x1_value 100.00
2020-04-30 09:15:05 Aussentemperatur_0x4_description Außentemperatur
2020-04-30 09:15:05 Aussentemperatur_0x4_unit °C
2020-04-30 09:17:04 Aussentemperatur_0x4_value 10.00
2020-04-30 09:15:05 BetriebsartBoiler_0x156_description Betriebsart Boiler
2020-04-30 09:15:05 BetriebsartBoiler_0x156_unit
2020-04-30 09:17:04 BetriebsartBoiler_0x156_value 1.00
2020-04-30 09:15:05 BetriebsartHeizkreis_0x17_description Betriebsart Heizkreis
2020-04-30 09:15:05 BetriebsartHeizkreis_0x17_unit
2020-04-30 09:17:04 BetriebsartHeizkreis_0x17_value 0.00
2020-04-30 09:15:05 BetriebsartHeizkreis_0x1b_description Betriebsart Heizkreis
2020-04-30 09:15:05 BetriebsartHeizkreis_0x1b_unit
2020-04-30 09:17:04 BetriebsartHeizkreis_0x1b_value 0.00
2020-04-30 09:15:05 Betriebsmodus_description Betriebsmodus
2020-04-30 09:15:05 Betriebsmodus_unit zst
2020-04-30 09:17:04 Betriebsmodus_value Dauerlast
2020-04-30 09:15:05 Betriebsstunden_0x62_description Betriebsstunden
2020-04-30 09:15:05 Betriebsstunden_0x62_unit h
2020-04-30 09:17:04 Betriebsstunden_0x62_value 9903.00
2020-04-30 09:15:05 BetriebsstundeninderFeuererhaltung_0x73_description Betriebsstunden in der Feuererhaltung
2020-04-30 09:15:05 BetriebsstundeninderFeuererhaltung_0x73_unit h
2020-04-30 09:17:04 BetriebsstundeninderFeuererhaltung_0x73_value 27.00
2020-04-30 09:15:05 BetriebsstundenvonKessel2Brennerkontakt_0x109_description Betriebsstunden von Kessel 2 (Brennerkontakt)
2020-04-30 09:15:05 BetriebsstundenvonKessel2Brennerkontakt_0x109_unit h
2020-04-30 09:17:04 BetriebsstundenvonKessel2Brennerkontakt_0x109_value 2476.00
2020-04-30 09:15:05 Boardtemperatur_0x2_description Boardtemperatur
2020-04-30 09:15:05 Boardtemperatur_0x2_unit °C
2020-04-30 09:17:04 Boardtemperatur_0x2_value 36.50
2020-04-30 09:15:05 BoilerpumpeAnsteuerung_0x90_description Boilerpumpe Ansteuerung
2020-04-30 09:15:05 BoilerpumpeAnsteuerung_0x90_unit %
2020-04-30 09:17:04 BoilerpumpeAnsteuerung_0x90_value 100.00
2020-04-30 09:15:05 Boilertemperaturoben_0x5d_description Boilertemperatur oben
2020-04-30 09:15:05 Boilertemperaturoben_0x5d_unit °C
2020-04-30 09:17:04 Boilertemperaturoben_0x5d_value 47.50
2020-04-30 09:15:05 Build_0x16f_description Build
2020-04-30 09:15:05 Build_0x16f_unit
2020-04-30 09:17:04 Build_0x16f_value 2.00
2020-04-30 09:15:05 EmpfohleneHolzmengebeimNachlegen_0x10a_description Empfohlene Holzmenge beim Nachlegen
2020-04-30 09:15:05 EmpfohleneHolzmengebeimNachlegen_0x10a_unit k
2020-04-30 09:17:04 EmpfohleneHolzmengebeimNachlegen_0x10a_value 10.00
2020-04-30 09:15:05 FuehleramHydraulikmodul03_0xff_description Fühler am Hydraulikmodul 0.3
2020-04-30 09:15:05 FuehleramHydraulikmodul03_0xff_unit °C
2020-04-30 09:17:04 FuehleramHydraulikmodul03_0xff_value 47.50
2020-04-30 09:15:05 Kesselstellgroesse_0x12_description Kesselstellgröße
2020-04-30 09:15:05 Kesselstellgroesse_0x12_unit %
2020-04-30 09:17:04 Kesselstellgroesse_0x12_value 100.00
2020-04-30 09:15:05 Kesseltemperatur_0x0_description Kesseltemperatur
2020-04-30 09:15:05 Kesseltemperatur_0x0_unit °C
2020-04-30 09:17:04 Kesseltemperatur_0x0_value 65.00
2020-04-30 09:15:05 Kesselzustand_0x1c9_description Kesselzustand
2020-04-30 09:15:05 Kesselzustand_0x1c9_unit
2020-04-30 09:17:04 Kesselzustand_0x1c9_value 3.00
2020-04-30 09:15:05 Lambdasondenspannunggemessen_0xd3_description Lambdasondenspannung gemessen
2020-04-30 09:15:05 Lambdasondenspannunggemessen_0xd3_unit m
2020-04-30 09:17:04 Lambdasondenspannunggemessen_0xd3_value 24.14
2020-04-30 09:15:05 Lambdasondenspannungkorrigiert_0xdc_description Lambdasondenspannung korrigiert
2020-04-30 09:15:05 Lambdasondenspannungkorrigiert_0xdc_unit m
2020-04-30 09:17:04 Lambdasondenspannungkorrigiert_0xdc_value 24.14
2020-04-30 09:15:05 PufferladezustandDiskret_0x1c0_description Pufferladezustand Diskret
2020-04-30 09:15:05 PufferladezustandDiskret_0x1c0_unit
2020-04-30 09:17:04 PufferladezustandDiskret_0x1c0_value 2.00
2020-04-30 09:15:05 Pufferladezustand_0xe1_description Pufferladezustand
2020-04-30 09:15:05 Pufferladezustand_0xe1_unit %
2020-04-30 09:17:04 Pufferladezustand_0xe1_value 47.00
2020-04-30 09:15:05 PufferpumpenAnsteuerung_0x8c_description Pufferpumpen Ansteuerung
2020-04-30 09:15:05 PufferpumpenAnsteuerung_0x8c_unit %
2020-04-30 09:17:04 PufferpumpenAnsteuerung_0x8c_value 46.00
2020-04-30 09:15:05 PufferpumpenbegrenzungdurchAbgastemperatur_0xde_description Pufferpumpenbegrenzung durch Abgastemperatur
2020-04-30 09:15:05 PufferpumpenbegrenzungdurchAbgastemperatur_0xde_unit %
2020-04-30 09:17:04 PufferpumpenbegrenzungdurchAbgastemperatur_0xde_value 8.00
2020-04-30 09:15:05 Puffertemperaturoben_0x76_description Puffertemperatur oben
2020-04-30 09:15:05 Puffertemperaturoben_0x76_unit °C
2020-04-30 09:17:04 Puffertemperaturoben_0x76_value 71.50
2020-04-30 09:15:05 Puffertemperaturunten_0x78_description Puffertemperatur unten
2020-04-30 09:15:05 Puffertemperaturunten_0x78_unit °C
2020-04-30 09:17:04 Puffertemperaturunten_0x78_value 33.00
2020-04-30 09:15:05 RaumfuehlerKBGTouch_0x191_description Raumfühler KBG Touch
2020-04-30 09:15:05 RaumfuehlerKBGTouch_0x191_unit °C
2020-04-30 09:17:04 RaumfuehlerKBGTouch_0x191_value 19.00
2020-04-30 09:15:05 Saugzug-Ansteuerung_0xf_description Saugzug - Ansteuerung
2020-04-30 09:15:05 Saugzug-Ansteuerung_0xf_unit %
2020-04-30 09:17:04 Saugzug-Ansteuerung_0xf_value 90.00
2020-04-30 09:15:05 Saugzugdrehzahl_0x7_description Saugzugdrehzahl
2020-04-30 09:15:05 Saugzugdrehzahl_0x7_unit U
2020-04-30 09:17:04 Saugzugdrehzahl_0x7_value 2706.00
2020-04-30 09:15:05 Status_description zst
2020-04-30 09:15:05 Status_unit Heizungsstatus
2020-04-30 09:17:04 Status_value Heizen
2020-04-30 09:15:05 StundenseitletzterWartung_0xd5_description Stunden seit letzter Wartung
2020-04-30 09:15:05 StundenseitletzterWartung_0xd5_unit h
2020-04-30 09:17:04 StundenseitletzterWartung_0xd5_value 9903.00
2020-04-30 09:15:05 TemperaturdesZweitkessel_0xc4_description Temperatur des Zweitkessel
2020-04-30 09:15:05 TemperaturdesZweitkessel_0xc4_unit °C
2020-04-30 09:17:04 TemperaturdesZweitkessel_0xc4_value 14.00
2020-04-30 09:15:05 Uhrzeit_description Datum Uhrzeit der Heizung
2020-04-30 09:15:05 Uhrzeit_unit T
2020-04-30 09:17:04 Uhrzeit_value Thursday, 30. Apr. 2020 09:05:33
2020-04-30 09:15:05 VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_description Vergangene Zeit seit letzter Wärmetauscherreinigung
2020-04-30 09:15:05 VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_unit m
2020-04-30 09:17:04 VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_value 79.00
2020-04-30 09:15:05 Vorlauf-Isttemperatur_0x15_description Vorlauf-Isttemperatur
2020-04-30 09:15:05 Vorlauf-Isttemperatur_0x15_unit °C
2020-04-30 09:17:04 Vorlauf-Isttemperatur_0x15_value 43.00
2020-04-30 09:15:05 Vorlauf-Isttemperatur_0x19_description Vorlauf-Isttemperatur
2020-04-30 09:15:05 Vorlauf-Isttemperatur_0x19_unit °C
2020-04-30 09:17:04 Vorlauf-Isttemperatur_0x19_value 48.00
2020-04-30 09:15:05 Vorlauf-Solltemperatur_0x16_description Vorlauf-Solltemperatur
2020-04-30 09:15:05 Vorlauf-Solltemperatur_0x16_unit °C
2020-04-30 09:17:04 Vorlauf-Solltemperatur_0x16_value 50.00
2020-04-30 09:15:05 Vorlauf-Solltemperatur_0x1a_description Vorlauf-Solltemperatur
2020-04-30 09:15:05 Vorlauf-Solltemperatur_0x1a_unit °C
2020-04-30 09:17:04 Vorlauf-Solltemperatur_0x1a_value 50.00
2020-04-30 09:15:05 Zykluszeit_0xe_description Zykluszeit:
2020-04-30 09:15:05 Zykluszeit_0xe_unit u
2020-04-30 09:17:04 Zykluszeit_0xe_value 54.00
Attributes:
IODev mqtt2server
readingList p4d_publisher:p4d2mqtt/Anlagenstatus/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Holzscheitkessel/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Gaskessel/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Puffer/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Boiler/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Heizkreis01/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Heizkreis02/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Aussensensor/state:.* { json2nameValue($EVENT) }
p4d_publisher:p4d2mqtt/Raumsensor/state:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
und hier vom Server:
Internals:
CFGFN
CONNECTS 1
DEF 1883 10.11.11.11
FD 60
FUUID 5eaa7a54-f33f-5dcf-8a84-6aeae75d462b8870
NAME mqtt2server
NR 1466
PORT 1883
STATE Initialized
TYPE MQTT2_SERVER
READINGS:
2020-04-30 09:17:04 RETAIN {"p4d2mqtt/Anlagenstatus/state":"{\u0022Status\u0022: {\u0022value\u0022: \u0022Heizen\u0022}, \u0022Betriebsmodus\u0022: {\u0022value\u0022: \u0022Dauerlast\u0022}, \u0022Boardtemperatur_0x2\u0022: {\u0022value\u0022: \u002236.50\u0022}, \u0022Uhrzeit\u0022: {\u0022value\u0022: \u0022Thursday, 30. Apr. 2020 09:05:33\u0022}, \u0022Betriebsstunden_0x62\u0022: {\u0022value\u0022: \u00229903.00\u0022}, \u0022BetriebsstundeninderFeuererhaltung_0x73\u0022: {\u0022value\u0022: \u002227.00\u0022}, \u0022StundenseitletzterWartung_0xd5\u0022: {\u0022value\u0022: \u00229903.00\u0022}, \u0022BetriebsstundenvonKessel2Brennerkontakt_0x109\u0022: {\u0022value\u0022: \u00222476.00\u0022}, \u0022Build_0x16f\u0022: {\u0022value\u0022: \u00222.00\u0022}, \u0022VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7\u0022: {\u0022value\u0022: \u002279.00\u0022}}","p4d2mqtt/Aussensensor/state":"{\u0022Aussentemperatur_0x4\u0022: {\u0022value\u0022: \u002210.00\u0022}}","p4d2mqtt/Boiler/state":"{\u0022Boilertemperaturoben_0x5d\u0022: {\u0022value\u0022: \u002247.50\u0022}, \u0022BoilerpumpeAnsteuerung_0x90\u0022: {\u0022value\u0022: \u0022100.00\u0022}, \u0022BetriebsartBoiler_0x156\u0022: {\u0022value\u0022: \u00221.00\u0022}}","p4d2mqtt/Gaskessel/state":"{\u0022TemperaturdesZweitkessel_0xc4\u0022: {\u0022value\u0022: \u002214.00\u0022}}","p4d2mqtt/Heizkreis01/state":"{\u0022Vorlauf-Isttemperatur_0x15\u0022: {\u0022value\u0022: \u002243.00\u0022}, \u0022Vorlauf-Solltemperatur_0x16\u0022: {\u0022value\u0022: \u002250.00\u0022}, \u0022BetriebsartHeizkreis_0x17\u0022: {\u0022value\u0022: \u00220.00\u0022}}","p4d2mqtt/Heizkreis02/state":"{\u0022Vorlauf-Isttemperatur_0x19\u0022: {\u0022value\u0022: \u002248.00\u0022}, \u0022Vorlauf-Solltemperatur_0x1a\u0022: {\u0022value\u0022: \u002250.00\u0022}, \u0022BetriebsartHeizkreis_0x1b\u0022: {\u0022value\u0022: \u00220.00\u0022}}","p4d2mqtt/Holzscheitkessel/state":"{\u0022Kesseltemperatur_0x0\u0022: {\u0022value\u0022: \u002265.00\u0022}, \u0022Abgastemperatur_0x1\u0022: {\u0022value\u0022: \u0022100.00\u0022}, \u0022Saugzugdrehzahl_0x7\u0022: {\u0022value\u0022: \u00222706.00\u0022}, \u0022Zykluszeit_0xe\u0022: {\u0022value\u0022: \u002254.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: \u0022110.00\u0022}, \u0022Lambdasondenspannunggemessen_0xd3\u0022: {\u0022value\u0022: \u002224.14\u0022}, \u0022Lambdasondenspannungkorrigiert_0xdc\u0022: {\u0022value\u0022: \u002224.14\u0022}, \u0022FuehleramHydraulikmodul03_0xff\u0022: {\u0022value\u0022: \u002247.50\u0022}, \u0022EmpfohleneHolzmengebeimNachlegen_0x10a\u0022: {\u0022value\u0022: \u002210.00\u0022}, \u0022Kesselzustand_0x1c9\u0022: {\u0022value\u0022: \u00223.00\u0022}}","p4d2mqtt/Puffer/state":"{\u0022Puffertemperaturoben_0x76\u0022: {\u0022value\u0022: \u002271.50\u0022}, \u0022Puffertemperaturunten_0x78\u0022: {\u0022value\u0022: \u002233.00\u0022}, \u0022PufferpumpenAnsteuerung_0x8c\u0022: {\u0022value\u0022: \u002246.00\u0022}, \u0022PufferpumpenbegrenzungdurchAbgastemperatur_0xde\u0022: {\u0022value\u0022: \u00228.00\u0022}, \u0022Pufferladezustand_0xe1\u0022: {\u0022value\u0022: \u002247.00\u0022}, \u0022PufferladezustandDiskret_0x1c0\u0022: {\u0022value\u0022: \u00222.00\u0022}}","p4d2mqtt/Raumsensor/state":"{\u0022RaumfuehlerKBGTouch_0x191\u0022: {\u0022value\u0022: \u002219.00\u0022}}"}
2020-04-30 09:17:09 nrclients 0
2020-04-30 09:12:20 state Initialized
clients:
retain:
p4d2mqtt/Anlagenstatus/state:
ts 1588231024.73708
val {"Status": {"value": "Heizen"}, "Betriebsmodus": {"value": "Dauerlast"}, "Boardtemperatur_0x2": {"value": "36.50"}, "Uhrzeit": {"value": "Thursday, 30. Apr. 2020 09:05:33"}, "Betriebsstunden_0x62": {"value": "9903.00"}, "BetriebsstundeninderFeuererhaltung_0x73": {"value": "27.00"}, "StundenseitletzterWartung_0xd5": {"value": "9903.00"}, "BetriebsstundenvonKessel2Brennerkontakt_0x109": {"value": "2476.00"}, "Build_0x16f": {"value": "2.00"}, "VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7": {"value": "79.00"}}
p4d2mqtt/Aussensensor/state:
ts 1588231024.76
val {"Aussentemperatur_0x4": {"value": "10.00"}}
p4d2mqtt/Boiler/state:
ts 1588231024.75497
val {"Boilertemperaturoben_0x5d": {"value": "47.50"}, "BoilerpumpeAnsteuerung_0x90": {"value": "100.00"}, "BetriebsartBoiler_0x156": {"value": "1.00"}}
p4d2mqtt/Gaskessel/state:
ts 1588231024.75015
val {"TemperaturdesZweitkessel_0xc4": {"value": "14.00"}}
p4d2mqtt/Heizkreis01/state:
ts 1588231024.75672
val {"Vorlauf-Isttemperatur_0x15": {"value": "43.00"}, "Vorlauf-Solltemperatur_0x16": {"value": "50.00"}, "BetriebsartHeizkreis_0x17": {"value": "0.00"}}
p4d2mqtt/Heizkreis02/state:
ts 1588231024.75847
val {"Vorlauf-Isttemperatur_0x19": {"value": "48.00"}, "Vorlauf-Solltemperatur_0x1a": {"value": "50.00"}, "BetriebsartHeizkreis_0x1b": {"value": "0.00"}}
p4d2mqtt/Holzscheitkessel/state:
ts 1588231024.74561
val {"Kesseltemperatur_0x0": {"value": "65.00"}, "Abgastemperatur_0x1": {"value": "100.00"}, "Saugzugdrehzahl_0x7": {"value": "2706.00"}, "Zykluszeit_0xe": {"value": "54.00"}, "Saugzug-Ansteuerung_0xf": {"value": "90.00"}, "Kesselstellgroesse_0x12": {"value": "100.00"}, "Abgas-Solltemperatur_0x13": {"value": "110.00"}, "Lambdasondenspannunggemessen_0xd3": {"value": "24.14"}, "Lambdasondenspannungkorrigiert_0xdc": {"value": "24.14"}, "FuehleramHydraulikmodul03_0xff": {"value": "47.50"}, "EmpfohleneHolzmengebeimNachlegen_0x10a": {"value": "10.00"}, "Kesselzustand_0x1c9": {"value": "3.00"}}
p4d2mqtt/Puffer/state:
ts 1588231024.75258
val {"Puffertemperaturoben_0x76": {"value": "71.50"}, "Puffertemperaturunten_0x78": {"value": "33.00"}, "PufferpumpenAnsteuerung_0x8c": {"value": "46.00"}, "PufferpumpenbegrenzungdurchAbgastemperatur_0xde": {"value": "8.00"}, "Pufferladezustand_0xe1": {"value": "47.00"}, "PufferladezustandDiskret_0x1c0": {"value": "2.00"}}
p4d2mqtt/Raumsensor/state:
ts 1588231024.7612
val {"RaumfuehlerKBGTouch_0x191": {"value": "19.00"}}
Attributes:
icon mqtt_broker
room Erdgeschoss->Heizungsraum,Hersteller->Fröling,Hersteller->MQTT,System->Zentralen
Seht ihr noch Fehler?
Danke und viele Grüße Hoppel
Zum "Verteilen der Devices" schreibe ich ggf. später was. Wenn du magst, kannst du ja mal versuchen, das von den templates zu ems-esp her nachzubasteln (erst mal nur bezogen auf deine konkreten Devices) ;) .
In Richtung Horchi evtl. noch zwei Punkte:
- laufende Infos braucht man mMn. nicht mit "retain"-flags senden (Achtung: Bauchgefühl). Nach Zustellung an alle Subscriber kann das wieder vom Server verschwinden, oder?
- einen "last will" kann ich immer noch nicht sehen (das wäre ggf. die einzige Meldung, bei der retain ggf. Sinn macht (bin aber unsicher)).
(Generell wäre auch hier die Frage, ob man "einen ganzen Pi" dafür "verbraten" muß, oder ob das nicht auch auf einer MCU (Arduino/ESP8266/ESP32/STM32) laufen könnte... Scheint aber Java zu sein, ist evtl. etwas schwierig zu portieren; bei C aä. wäre das vermutlich recht einfach.)
Zitat von: Beta-User am 30 April 2020, 10:23:39
Zum "Verteilen der Devices" schreibe ich ggf. später was. Wenn du magst, kannst du ja mal versuchen, das von den templates zu ems-esp her nachzubasteln (erst mal nur bezogen auf deine konkreten Devices) ;) .
Wäre klasse, wenn du mich da unterstützen könntest. Aber ich schau mir das nachher auch nochmal an. Ich müsste das gesamte "Template-System" wohl erstmal verstehen. Wie das mit diesen dynamischen Topics/Messwerten überhaupt umsetzbar sein soll, ist für mich gerade fraglich...
Zitat von: Beta-User am 30 April 2020, 10:23:39
In Richtung Horchi evtl. noch zwei Punkte:
- laufende Infos braucht man mMn. nicht mit "retain"-flags senden (Achtung: Bauchgefühl). Nach Zustellung an alle Subscriber kann das wieder vom Server verschwinden, oder?
- einen "last will" kann ich immer noch nicht sehen (das wäre ggf. die einzige Meldung, bei der retain ggf. Sinn macht (bin aber unsicher)).
Immer mit der Ruhe. ;) horchi baut wie verrückt jeden Tag etwas neues. Ich hatte ihm deine letzten Punkte (Busmaster, etc.) schon weiter gegeben. Aber ich komme immer schon mit neuen Themen um die Ecke, bevor das gerade in Bearbeitung befindliche Thema überhaupt gelöst ist. ;)
Ich bringe, die beiden Punkte nochmal bei ihm an, wenn wir uns sicher sind, dass das Topic Thema jetzt gelöst ist.
Zitat von: Beta-User am 30 April 2020, 10:23:39
(Generell wäre auch hier die Frage, ob man "einen ganzen Pi" dafür "verbraten" muß, oder ob das nicht auch auf einer MCU (Arduino/ESP8266/ESP32/STM32) laufen könnte... Scheint aber Java zu sein, ist evtl. etwas schwierig zu portieren; bei C aä. wäre das vermutlich recht einfach.)
Ja, klar, alles ist möglich. Für mich war die RasPi Lösung erstmal die einfachste Lösung. Von dem ganzen anderen "Kram", den du da aufgelistet hast, habe ich zwar schonmal was gehört, aber keine Ahnung. Grundsätzlich geht das aber so in der Art, wie du es schreibst.
p4d könnte ich auch auf meinem FHEM Server laufen lassen und die serielle Schnittstelle per Eth/Wifi (ser2net, ESP8266, whatever) ansprechen. Das Thema werde ich in einem späteren Projekt beleuchten. Erstmal wollte ich das schnell zum Laufen kriegen. Das geht halt mit so einem RasPi wirklich schnell und einfach. ;)
Viele Grüße Hoppel
Hmm, da wir den "Anlagenstatus" vermutlich als "Hauptdevice" ansehen können, würde ich mal alles andere in je ein Device umleiten und nur das in der readingList lassen.
Das könnte so klappen:
attr MQTT2_p4d_publisher bridgeRegexp \
p4d2mqtt[/](?!Anlagenstatus)([^/]+)[/]state:.* "p4d2_$1"
attr MQTT2_p4d_publisher readingList p4d2mqtt/Anlagenstatus/state:.* { json2nameValue($EVENT,,$JSONMAP) }
Jo, richtig, Anlagenstatus ist das Hauptdevice. (Wobei ich dazu sagen muss, dass man alle Bezeichnungen der Baugruppen selbst vergibt und anschließend auch die Messwerte diesen Baugruppen selbst zuordnet. Vielleicht kann man das in der Zukunft nochmal automatisieren. Erstmal bin ich froh, dass es so läuft.)
Evtl. macht es aber aus diesem Grund Sinn alle Topics in ein eigenes Device umzuleiten (weil man nicht weiß, wie andere p4d User ihre Baugruppen nennen). Wie siehst du das?
Wie dem auch sei... Alle Devices und die FileLogs dazu wurden angelegt.
Hat es einen Grund, dass nun alle Devices "p4d2" im Namen haben und der publisher nur "p4d" (Hauptdevice/Subdevices). Siehst du darin einen Vorteil bzw. ist das ein Versehen oder deinerseits so gewollt?
MQTT2_p4d2_Aussensensor
MQTT2_p4d2_Boiler
MQTT2_p4d2_Gaskessel
MQTT2_p4d2_Heizkreis01
MQTT2_p4d2_Heizkreis02
MQTT2_p4d2_Holzscheitkessel
MQTT2_p4d2_Puffer
MQTT2_p4d2_Raumsensor
MQTT2_p4d_publisher
Hier ein list vom publisher device (Ich denke, dass das noch nicht so funktioniert, wie es soll. Es beinhaltet alle Readings, die umgeleiteten werden nicht mehr aktualisiert. Wunder dich nicht über die Aktualisierungsdaten dieser Readings. Ich hatte heute Nachmittag p4d abgeschaltet. Die Readings des Anlagenstatus haben noch einen eigenartigen Namen, werden aber dafür aktualisiert.):
Internals:
CFGFN
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC MQTT2_p4d_publisher
FUUID 5eaa7af9-f33f-5dcf-0d5f-83609ef8aea472e1
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 3405
NAME MQTT2_p4d_publisher
NR 1479
STATE ???
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 3405
mqtt2server_TIME 2020-04-30 20:23:57
OLDREADINGS:
READINGS:
2020-04-30 09:37:02 Abgas-Solltemperatur_0x13_description Abgas-Solltemperatur
2020-04-30 09:37:02 Abgas-Solltemperatur_0x13_unit °C
2020-04-30 15:36:31 Abgas-Solltemperatur_0x13_value 152.00
2020-04-30 09:37:02 Abgastemperatur_0x1_description Abgastemperatur
2020-04-30 09:37:02 Abgastemperatur_0x1_unit °C
2020-04-30 15:36:31 Abgastemperatur_0x1_value 106.00
2020-04-30 09:37:02 Aussentemperatur_0x4_description Außentemperatur
2020-04-30 09:37:02 Aussentemperatur_0x4_unit °C
2020-04-30 15:36:31 Aussentemperatur_0x4_value 11.50
2020-04-30 09:37:02 BetriebsartBoiler_0x156_description Betriebsart Boiler
2020-04-30 09:37:02 BetriebsartBoiler_0x156_unit
2020-04-30 15:36:31 BetriebsartBoiler_0x156_value 1.00
2020-04-30 09:37:02 BetriebsartHeizkreis_0x17_description Betriebsart Heizkreis
2020-04-30 09:37:02 BetriebsartHeizkreis_0x17_unit
2020-04-30 15:36:31 BetriebsartHeizkreis_0x17_value 0.00
2020-04-30 09:37:02 BetriebsartHeizkreis_0x1b_description Betriebsart Heizkreis
2020-04-30 09:37:02 BetriebsartHeizkreis_0x1b_unit
2020-04-30 15:36:31 BetriebsartHeizkreis_0x1b_value 0.00
2020-04-30 09:37:02 Betriebsmodus_description Betriebsmodus
2020-04-30 09:37:02 Betriebsmodus_unit zst
2020-04-30 15:36:31 Betriebsmodus_value Dauerlast
2020-04-30 09:37:02 Betriebsstunden_0x62_description Betriebsstunden
2020-04-30 09:37:02 Betriebsstunden_0x62_unit h
2020-04-30 15:36:31 Betriebsstunden_0x62_value 9910.00
2020-04-30 09:37:02 BetriebsstundeninderFeuererhaltung_0x73_description Betriebsstunden in der Feuererhaltung
2020-04-30 09:37:02 BetriebsstundeninderFeuererhaltung_0x73_unit h
2020-04-30 15:36:31 BetriebsstundeninderFeuererhaltung_0x73_value 27.00
2020-04-30 09:37:02 BetriebsstundenvonKessel2Brennerkontakt_0x109_description Betriebsstunden von Kessel 2 (Brennerkontakt)
2020-04-30 09:37:02 BetriebsstundenvonKessel2Brennerkontakt_0x109_unit h
2020-04-30 15:36:31 BetriebsstundenvonKessel2Brennerkontakt_0x109_value 2476.00
2020-04-30 09:37:02 Boardtemperatur_0x2_description Boardtemperatur
2020-04-30 09:37:02 Boardtemperatur_0x2_unit °C
2020-04-30 15:36:31 Boardtemperatur_0x2_value 39.00
2020-04-30 09:37:02 BoilerpumpeAnsteuerung_0x90_description Boilerpumpe Ansteuerung
2020-04-30 09:37:02 BoilerpumpeAnsteuerung_0x90_unit %
2020-04-30 15:36:31 BoilerpumpeAnsteuerung_0x90_value 0.00
2020-04-30 09:37:02 Boilertemperaturoben_0x5d_description Boilertemperatur oben
2020-04-30 09:37:02 Boilertemperaturoben_0x5d_unit °C
2020-04-30 15:36:31 Boilertemperaturoben_0x5d_value 65.00
2020-04-30 09:37:02 Build_0x16f_description Build
2020-04-30 09:37:02 Build_0x16f_unit
2020-04-30 15:36:31 Build_0x16f_value 2.00
2020-04-30 09:37:02 EmpfohleneHolzmengebeimNachlegen_0x10a_description Empfohlene Holzmenge beim Nachlegen
2020-04-30 09:37:02 EmpfohleneHolzmengebeimNachlegen_0x10a_unit k
2020-04-30 15:36:31 EmpfohleneHolzmengebeimNachlegen_0x10a_value 2.00
2020-04-30 09:37:02 FuehleramHydraulikmodul03_0xff_description Fühler am Hydraulikmodul 0.3
2020-04-30 09:37:02 FuehleramHydraulikmodul03_0xff_unit °C
2020-04-30 15:36:31 FuehleramHydraulikmodul03_0xff_value 65.00
2020-04-30 09:37:02 Kesselstellgroesse_0x12_description Kesselstellgröße
2020-04-30 09:37:02 Kesselstellgroesse_0x12_unit %
2020-04-30 15:36:31 Kesselstellgroesse_0x12_value 100.00
2020-04-30 09:37:02 Kesseltemperatur_0x0_description Kesseltemperatur
2020-04-30 09:37:02 Kesseltemperatur_0x0_unit °C
2020-04-30 15:36:31 Kesseltemperatur_0x0_value 71.00
2020-04-30 09:37:02 Kesselzustand_0x1c9_description Kesselzustand
2020-04-30 09:37:02 Kesselzustand_0x1c9_unit
2020-04-30 15:36:31 Kesselzustand_0x1c9_value 3.00
2020-04-30 09:37:02 Lambdasondenspannunggemessen_0xd3_description Lambdasondenspannung gemessen
2020-04-30 09:37:02 Lambdasondenspannunggemessen_0xd3_unit m
2020-04-30 15:36:31 Lambdasondenspannunggemessen_0xd3_value 24.07
2020-04-30 09:37:02 Lambdasondenspannungkorrigiert_0xdc_description Lambdasondenspannung korrigiert
2020-04-30 09:37:02 Lambdasondenspannungkorrigiert_0xdc_unit m
2020-04-30 15:36:31 Lambdasondenspannungkorrigiert_0xdc_value 24.07
2020-04-30 09:37:02 PufferladezustandDiskret_0x1c0_description Pufferladezustand Diskret
2020-04-30 09:37:02 PufferladezustandDiskret_0x1c0_unit
2020-04-30 15:36:31 PufferladezustandDiskret_0x1c0_value 4.00
2020-04-30 09:37:02 Pufferladezustand_0xe1_description Pufferladezustand
2020-04-30 09:37:02 Pufferladezustand_0xe1_unit %
2020-04-30 15:36:31 Pufferladezustand_0xe1_value 84.00
2020-04-30 09:37:02 PufferpumpenAnsteuerung_0x8c_description Pufferpumpen Ansteuerung
2020-04-30 09:37:02 PufferpumpenAnsteuerung_0x8c_unit %
2020-04-30 15:36:31 PufferpumpenAnsteuerung_0x8c_value 45.00
2020-04-30 09:37:02 PufferpumpenbegrenzungdurchAbgastemperatur_0xde_description Pufferpumpenbegrenzung durch Abgastemperatur
2020-04-30 09:37:02 PufferpumpenbegrenzungdurchAbgastemperatur_0xde_unit %
2020-04-30 15:36:31 PufferpumpenbegrenzungdurchAbgastemperatur_0xde_value 8.00
2020-04-30 09:37:02 Puffertemperaturoben_0x76_description Puffertemperatur oben
2020-04-30 09:37:02 Puffertemperaturoben_0x76_unit °C
2020-04-30 15:36:31 Puffertemperaturoben_0x76_value 69.50
2020-04-30 09:37:02 Puffertemperaturunten_0x78_description Puffertemperatur unten
2020-04-30 09:37:02 Puffertemperaturunten_0x78_unit °C
2020-04-30 15:36:31 Puffertemperaturunten_0x78_value 69.00
2020-04-30 09:37:02 RaumfuehlerKBGTouch_0x191_description Raumfühler KBG Touch
2020-04-30 09:37:02 RaumfuehlerKBGTouch_0x191_unit °C
2020-04-30 15:36:31 RaumfuehlerKBGTouch_0x191_value 19.00
2020-04-30 09:37:02 Saugzug-Ansteuerung_0xf_description Saugzug - Ansteuerung
2020-04-30 09:37:02 Saugzug-Ansteuerung_0xf_unit %
2020-04-30 15:36:31 Saugzug-Ansteuerung_0xf_value 90.00
2020-04-30 09:37:02 Saugzugdrehzahl_0x7_description Saugzugdrehzahl
2020-04-30 09:37:02 Saugzugdrehzahl_0x7_unit U
2020-04-30 15:36:31 Saugzugdrehzahl_0x7_value 2699.00
2020-04-30 09:37:02 Status_description zst
2020-04-30 09:37:02 Status_unit Heizungsstatus
2020-04-30 15:36:31 Status_value Heizen
2020-04-30 09:37:02 StundenseitletzterWartung_0xd5_description Stunden seit letzter Wartung
2020-04-30 09:37:02 StundenseitletzterWartung_0xd5_unit h
2020-04-30 15:36:31 StundenseitletzterWartung_0xd5_value 9910.00
2020-04-30 09:37:02 TemperaturdesZweitkessel_0xc4_description Temperatur des Zweitkessel
2020-04-30 09:37:02 TemperaturdesZweitkessel_0xc4_unit °C
2020-04-30 15:36:31 TemperaturdesZweitkessel_0xc4_value 17.50
2020-04-30 09:37:02 Uhrzeit_description Datum Uhrzeit der Heizung
2020-04-30 09:37:02 Uhrzeit_unit T
2020-04-30 15:36:31 Uhrzeit_value Thursday, 30. Apr. 2020 15:25:00
2020-04-30 09:37:02 VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_description Vergangene Zeit seit letzter Wärmetauscherreinigung
2020-04-30 09:37:02 VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_unit m
2020-04-30 15:36:31 VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_value 453.00
2020-04-30 09:37:02 Vorlauf-Isttemperatur_0x15_description Vorlauf-Isttemperatur
2020-04-30 09:37:02 Vorlauf-Isttemperatur_0x15_unit °C
2020-04-30 15:36:31 Vorlauf-Isttemperatur_0x15_value 38.50
2020-04-30 09:37:02 Vorlauf-Isttemperatur_0x19_description Vorlauf-Isttemperatur
2020-04-30 09:37:02 Vorlauf-Isttemperatur_0x19_unit °C
2020-04-30 15:36:31 Vorlauf-Isttemperatur_0x19_value 57.00
2020-04-30 09:37:02 Vorlauf-Solltemperatur_0x16_description Vorlauf-Solltemperatur
2020-04-30 09:37:02 Vorlauf-Solltemperatur_0x16_unit °C
2020-04-30 15:36:31 Vorlauf-Solltemperatur_0x16_value 48.00
2020-04-30 09:37:02 Vorlauf-Solltemperatur_0x1a_description Vorlauf-Solltemperatur
2020-04-30 09:37:02 Vorlauf-Solltemperatur_0x1a_unit °C
2020-04-30 15:36:31 Vorlauf-Solltemperatur_0x1a_value 48.00
2020-04-30 09:37:02 Zykluszeit_0xe_description Zykluszeit:
2020-04-30 09:37:02 Zykluszeit_0xe_unit u
2020-04-30 15:36:31 Zykluszeit_0xe_value 53.90
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Betriebsmodus_description Betriebsmodus
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Betriebsmodus_unit zst
2020-04-30 20:23:57 _defs__MQTT2_p4d_publisher___JSONMAP_Betriebsmodus_value Dauerlast
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Betriebsstunden_0x62_description Betriebsstunden
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Betriebsstunden_0x62_unit h
2020-04-30 20:23:57 _defs__MQTT2_p4d_publisher___JSONMAP_Betriebsstunden_0x62_value 9914.00
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_BetriebsstundeninderFeuererhaltung_0x73_description Betriebsstunden in der Feuererhaltung
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_BetriebsstundeninderFeuererhaltung_0x73_unit h
2020-04-30 20:23:57 _defs__MQTT2_p4d_publisher___JSONMAP_BetriebsstundeninderFeuererhaltung_0x73_value 27.00
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_BetriebsstundenvonKessel2Brennerkontakt_0x109_description Betriebsstunden von Kessel 2 (Brennerkontakt)
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_BetriebsstundenvonKessel2Brennerkontakt_0x109_unit h
2020-04-30 20:23:57 _defs__MQTT2_p4d_publisher___JSONMAP_BetriebsstundenvonKessel2Brennerkontakt_0x109_value 2476.00
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Boardtemperatur_0x2_description Boardtemperatur
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Boardtemperatur_0x2_unit °C
2020-04-30 20:23:57 _defs__MQTT2_p4d_publisher___JSONMAP_Boardtemperatur_0x2_value 40.00
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Build_0x16f_description Build
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Build_0x16f_unit
2020-04-30 20:23:57 _defs__MQTT2_p4d_publisher___JSONMAP_Build_0x16f_value 2.00
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Status_description zst
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Status_unit Heizungsstatus
2020-04-30 20:23:57 _defs__MQTT2_p4d_publisher___JSONMAP_Status_value Heizen
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_StundenseitletzterWartung_0xd5_description Stunden seit letzter Wartung
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_StundenseitletzterWartung_0xd5_unit h
2020-04-30 20:23:57 _defs__MQTT2_p4d_publisher___JSONMAP_StundenseitletzterWartung_0xd5_value 9914.00
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Uhrzeit_description Datum Uhrzeit der Heizung
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Uhrzeit_unit T
2020-04-30 20:23:57 _defs__MQTT2_p4d_publisher___JSONMAP_Uhrzeit_value Thursday, 30. Apr. 2020 20:12:25
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_description Vergangene Zeit seit letzter Wärmetauscherreinigung
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_unit m
2020-04-30 20:23:57 _defs__MQTT2_p4d_publisher___JSONMAP_VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_value 198.00
Attributes:
IODev mqtt2server
bridgeRegexp p4d2mqtt[/](?!Anlagenstatus)([^/]+)[/]state:.* "p4d2_$1"
readingList p4d2mqtt/Anlagenstatus/state:.* { json2nameValue($EVENT,,$JSONMAP) }
room MQTT2_DEVICE
Hier exemplarisch ein list vom Holzscheitkessel:
Internals:
CFGFN
CID p4d2_Holzscheitkessel
DEF p4d2_Holzscheitkessel
DEVICETOPIC MQTT2_p4d2_Holzscheitkessel
FUUID 5eab152a-f33f-5dcf-c366-1f6dcfef25a5b5c6
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 15
NAME MQTT2_p4d2_Holzscheitkessel
NR 1547
STATE ???
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 15
mqtt2server_TIME 2020-04-30 20:27:57
READINGS:
2020-04-30 20:12:58 Abgas-Solltemperatur_0x13_description Abgas-Solltemperatur
2020-04-30 20:12:58 Abgas-Solltemperatur_0x13_unit °C
2020-04-30 20:27:57 Abgas-Solltemperatur_0x13_value 155.00
2020-04-30 20:12:58 Abgastemperatur_0x1_description Abgastemperatur
2020-04-30 20:12:58 Abgastemperatur_0x1_unit °C
2020-04-30 20:27:57 Abgastemperatur_0x1_value 90.00
2020-04-30 20:12:58 EmpfohleneHolzmengebeimNachlegen_0x10a_description Empfohlene Holzmenge beim Nachlegen
2020-04-30 20:12:58 EmpfohleneHolzmengebeimNachlegen_0x10a_unit k
2020-04-30 20:27:57 EmpfohleneHolzmengebeimNachlegen_0x10a_value 2.00
2020-04-30 20:12:58 FuehleramHydraulikmodul03_0xff_description Fühler am Hydraulikmodul 0.3
2020-04-30 20:12:58 FuehleramHydraulikmodul03_0xff_unit °C
2020-04-30 20:27:57 FuehleramHydraulikmodul03_0xff_value 58.50
2020-04-30 20:12:58 Kesselstellgroesse_0x12_description Kesselstellgröße
2020-04-30 20:12:58 Kesselstellgroesse_0x12_unit %
2020-04-30 20:27:57 Kesselstellgroesse_0x12_value 100.00
2020-04-30 20:12:58 Kesseltemperatur_0x0_description Kesseltemperatur
2020-04-30 20:12:58 Kesseltemperatur_0x0_unit °C
2020-04-30 20:27:57 Kesseltemperatur_0x0_value 69.00
2020-04-30 20:12:58 Kesselzustand_0x1c9_description Kesselzustand
2020-04-30 20:12:58 Kesselzustand_0x1c9_unit
2020-04-30 20:27:57 Kesselzustand_0x1c9_value 3.00
2020-04-30 20:12:58 Lambdasondenspannunggemessen_0xd3_description Lambdasondenspannung gemessen
2020-04-30 20:12:58 Lambdasondenspannunggemessen_0xd3_unit m
2020-04-30 20:27:57 Lambdasondenspannunggemessen_0xd3_value 24.07
2020-04-30 20:12:58 Lambdasondenspannungkorrigiert_0xdc_description Lambdasondenspannung korrigiert
2020-04-30 20:12:58 Lambdasondenspannungkorrigiert_0xdc_unit m
2020-04-30 20:27:57 Lambdasondenspannungkorrigiert_0xdc_value 24.07
2020-04-30 20:12:58 Saugzug-Ansteuerung_0xf_description Saugzug - Ansteuerung
2020-04-30 20:12:58 Saugzug-Ansteuerung_0xf_unit %
2020-04-30 20:27:57 Saugzug-Ansteuerung_0xf_value 90.00
2020-04-30 20:12:58 Saugzugdrehzahl_0x7_description Saugzugdrehzahl
2020-04-30 20:12:58 Saugzugdrehzahl_0x7_unit U
2020-04-30 20:27:57 Saugzugdrehzahl_0x7_value 2696.00
2020-04-30 20:12:58 Zykluszeit_0xe_description Zykluszeit:
2020-04-30 20:12:58 Zykluszeit_0xe_unit u
2020-04-30 20:27:57 Zykluszeit_0xe_value 53.90
2020-04-30 20:12:58 associatedWith MQTT2_p4d_publisher
Attributes:
IODev mqtt2server
readingList p4d2mqtt/Holzscheitkessel/state:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
Die Readings wurden korrekt umgeleitet, nur das Format passt noch nicht.
Das sieht so aus, als ob wir dem Ziel schon sehr nahe sind. ;)
TOP, vielen Dank. Ich habe heute eigentlich keine Zeit, meine Holde hat heute Geb. Ich kriege gerade schon Ärger. ;)
Schönen Abend noch! Ich freu mich auf deinen nächsten Vorschlag.
Danke dir und Gruß Hoppel
Zitat von: hoppel118 am 30 April 2020, 20:31:15
(Wobei ich dazu sagen muss, dass man alle Bezeichnungen der Baugruppen selbst vergibt und anschließend auch die Messwerte diesen Baugruppen selbst zuordnet. Vielleicht kann man das in der Zukunft nochmal automatisieren. Erstmal bin ich froh, dass es so läuft.)
Na ja, wenn man es auf der p4d-Seite nicht automatisiert bekommt (oder sowas wie csv-templates erstellen kann), wäre es am Ende einfacher, schlicht die HEX-Adressen der einzelnen Datenpunkte in den Topic-Tree aufzunehmen und dann nur unter FHEM zu sortieren. Das wird dann etwas aufwändiger, das auf der FHEM-Seite zu realisieren, aber dafür wäre es ohne weiteres in einem attrTemplate allgemeingültig vercodebar: Man kann via bridgeRegexp auch mehrere Topic-branches in ein Device umleiten und darüber die Gruppen bilden. ems-esp macht das z.B. teilweise so...
Zitat
Evtl. macht es aber aus diesem Grund Sinn alle Topics in ein eigenes Device umzuleiten (weil man nicht weiß, wie andere p4d User ihre Baugruppen nennen). Wie siehst du das?
Mir im Prinzip egal; letztlich _glaube_ ich, dass es für "den typischen FEHM-user" leichter nachzuvollziehen ist, wenn das bridge-Device - wie bei allen anderen "IO-Bridges" auch (angefangen z.B. bei zigbee2mqtt) - eine eigene Funktion hat. Zwingend ist das aber nicht.
Andererseits kann man die bridgeRegexp ja jederzeit ändern und entsprechende Hinweise in comment und farewell aufnehmen.
Es wäre eben wünschenswert, dass die Konfiguration auf der p4d-Seite irgendwie standardisiert ist, sonst ist es mMn. einfacher, das @FHEM zu erledigen.
ZitatHat es einen Grund, dass nun alle Devices "p4d2" im Namen haben
Hat keinen tieferen Grund, ich wollte nur schnell das "Bausteinchen" mit dem "negative lookahead" (nur das "Anlagenstatus" wird nicht weitergeleitet) hier posten, weil das vermutlich eine sehr harte Nuß war... Die "2" kann gerne raus bzw. du kannst das gerne auch ganz anders benennen, z.B. Froeling_$1".
Ansonsten noch: du darfst frei entscheiden, was du mit den Bauteilchen anfangen magst, ich kann nicht wissen, was wie zusammengehört/angezeigt werden soll (oder nicht)/...
Vielleicht schaust du jetzt nochmal den attrTemplate-Quelltext zu ems-esp an; der ist zwar m.E. auch noch nicht "fertig", aber die Funktionsweise ist recht nah an dem, was hier stattfindet und die attrTemplate-Struktur ist noch nicht so komplex wie beim ebus (sonst ist das aber auch eine gute Quelle! Dort gibt es nämlich z.B. myUtils-Code für temperaturabhängige Farbgebung usw. ;) ). Und laß dir Zeit, Rom wurde auch nicht an einem Tag erbaut...
Zitat von: Beta-User am 01 Mai 2020, 07:14:03
Na ja, wenn man es auf der p4d-Seite nicht automatisiert bekommt (oder sowas wie csv-templates erstellen kann), wäre es am Ende einfacher, schlicht die HEX-Adressen der einzelnen Datenpunkte in den Topic-Tree aufzunehmen und dann nur unter FHEM zu sortieren. Das wird dann etwas aufwändiger, das auf der FHEM-Seite zu realisieren, aber dafür wäre es ohne weiteres in einem attrTemplate allgemeingültig vercodebar: Man kann via bridgeRegexp auch mehrere Topic-branches in ein Device umleiten und darüber die Gruppen bilden. ems-esp macht das z.B. teilweise so...
Ich glaube nicht, dass weiterer Aufwand noch gerechtfertigt wäre. Zumal es ja anscheinend für Openhab schon vorher, als noch alle Readings in einem Topic waren, perfekt war. So entgegenkommend horchi auch ist... Als nächstes kommt wohl das Thema "Fehlermeldungen". ;)
Zitat von: Beta-User am 01 Mai 2020, 07:14:03
Mir im Prinzip egal; letztlich _glaube_ ich, dass es für "den typischen FEHM-user" leichter nachzuvollziehen ist, wenn das bridge-Device - wie bei allen anderen "IO-Bridges" auch (angefangen z.B. bei zigbee2mqtt) - eine eigene Funktion hat. Zwingend ist das aber nicht.
Andererseits kann man die bridgeRegexp ja jederzeit ändern und entsprechende Hinweise in comment und farewell aufnehmen.
Sorry: Was ist "comment und farewell"? :-[
Zitat von: Beta-User am 01 Mai 2020, 07:14:03
Es wäre eben wünschenswert, dass die Konfiguration auf der p4d-Seite irgendwie standardisiert ist, sonst ist es mMn. einfacher, das @FHEM zu erledigen.
Hat keinen tieferen Grund, ich wollte nur schnell das "Bausteinchen" mit dem "negative lookahead" (nur das "Anlagenstatus" wird nicht weitergeleitet) hier posten, weil das vermutlich eine sehr harte Nuß war... Die "2" kann gerne raus bzw. du kannst das gerne auch ganz anders benennen, z.B. Froeling_$1".
Momentan muss alles absolut generisch sein, da sich jeder die Baugruppen nach eigenem Gusto erstellen und benennen kann. Ich muss mir da auch nochmal was überlegen, evtl. kann man zumindest ein paar Baugruppen Bezeichnungen vorgeben.
OK, das mit der 2 habe ich mir schon gedacht. Ich denke, dass ich diese Nuss (Umleiten von Readings in Subdevice) nicht geknackt hätte. Vielen Dank dafür!
Zitat von: Beta-User am 01 Mai 2020, 07:14:03
Ansonsten noch: du darfst frei entscheiden, was du mit den Bauteilchen anfangen magst, ich kann nicht wissen, was wie zusammengehört/angezeigt werden soll (oder nicht)/...
Vielleicht schaust du jetzt nochmal den attrTemplate-Quelltext zu ems-esp an; der ist zwar m.E. auch noch nicht "fertig", aber die Funktionsweise ist recht nah an dem, was hier stattfindet und die attrTemplate-Struktur ist noch nicht so komplex wie beim ebus (sonst ist das aber auch eine gute Quelle! Dort gibt es nämlich z.B. myUtils-Code für temperaturabhängige Farbgebung usw. ;) ). Und laß dir Zeit, Rom wurde auch nicht an einem Tag erbaut...
OK, ich habe mir die attrTemplates mal angeschaut. Ich hoffe, dass wir vom selben reden, wenn du schreibst "attrTemplate-Quelltext zu ems-esp". Ich habe die entsprechenden Templates angeklickt und mir den erscheinenden Text durchgelesen, siehe Screenshot. Meinst du das mit Quelltext?
Wenn nein, wo finde ich den Quelltext? (Ich denke allerdings nicht, dass ich da viel verstehe. Bin kein Programmierer. ;) )
Wenn ja, ich sehe nicht wirklich etwas, was ich davon gebrauchen könnte, außer Icon und stateFormat.
Kannst du mir evtl. ein paar Tips geben, wonach ich suchen sollte? (Mir fehlt da der Ideenreichtum.)
Mit so einer Komplexität musste ich mich bisher in FHEM noch nicht beschäftigen. Ich frage mich ob bspw. folgendes möglich ist:
* Readingnamen so anpassen, dass die JSON-Beschreibung, als Readingname verwendet wird. Dabei werden dann öäüß übersetzt und Leerzeichen durch Unterstriche ersetzt.
* Zu diesen schön lesbaren Readingnamen werden dann value und unit als Messergebnis ausgegeben
Beispiel:VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_description Vergangene Zeit seit letzter Wärmetauscherreinigung
VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_unit m
VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_value 83.00
Ergebnis:Vergangene_Zeit_seit_letzter_Waermetauscherreinigung 83.00 m
Letztendlich soll das dann so in den Subdevices sichtbar sein. Ist so etwas möglich? Wo finde ich dazu Informationen?
Das ist eigentlich das einzige, was mir da neben den Icons und stateFormat noch fehlt, damit es ,,hübsch" ist. Ich schätze aber, dass das außerhalb meiner momentanen Fähigkeiten liegt. Es sei denn es gibt dazu irgendwo ein Beispiel... ;)
Für das ganze Engagement, was ihr beide bereits geleistet habt, möchte ich mich nochmal ganz herzlich bei euch bedanken! ;)
Danke und viele Grüße Hoppel
Hi hoppel118,
eigentlich war ich die ganze Zeit davon ausgegangen, dass dir klar ist, wo der Quelltext für attrTemplate zu finden ist - hatte ich mal ins Wiki geschrieben, afaik ;D . Da steht auch was zu anderen Dingen, die spezielle mit AttrTemplate zu tun haben.
Quelltext findest du lokal oder z.B. hier: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template
Zitat von: hoppel118 am 02 Mai 2020, 00:03:51
Sorry: Was ist "comment und farewell"? :-[
"comment" ist ein "ganz normales" Attribut, "farewell" ist ein (optionaler) Hinweistext, der in einem Dialogfeld nach erfolgreichem Durchlauf angezeigt wird.
Zitat
[...]
wenn du schreibst "attrTemplate-Quelltext zu ems-esp". Ich habe die entsprechenden Templates angeklickt und mir den erscheinenden Text durchgelesen, siehe Screenshot. Meinst du das mit Quelltext?
Das ist zwar das, das ich gemeint hatte, aber nur ein Auszug aus dem Gesamtpaket ;) . Bin nicht sicher, denke aber, dass du so nicht unbedingt alle siehst.
ZitatWenn nein, wo finde ich den Quelltext? (Ich denke allerdings nicht, dass ich da viel verstehe. Bin kein Programmierer. ;) )
Wenn ja, ich sehe nicht wirklich etwas, was ich davon gebrauchen könnte, außer Icon und stateFormat.
Nun ja, das allermeiste sind schlicht und ergreifend Attribute, nur eben teils mit der "Spezialität", dass manche Angaben (insbesondere die Topic-Trees) eben "generisch" dargestellt sind und durch die Echtangaben ersetzt werden. Programmierer muß man m.E. nicht sein, um das halbwegs zu verstehen (ich bin auch keiner, btw. ;) ).
Und diese Attribute sind durchaus für diesen Anwendungfall nicht ganz uninteressant. Da gibt es:
- eine BridgeRegexp, die verschiedene Treffer _in ein einziges Device_ umleitet (das wäre nur relevant gewesen, wenn man die Baugruppen in FHEM aus den Adressen hätte zusammensortieren wollen).
- eine "formated uptime" - das ist in etwa das, das du mit der "Wärmetauscher"-Darstellung gesucht hast, oder?
Zitat* Readingnamen so anpassen, dass die JSON-Beschreibung, als Readingname verwendet wird. Dabei werden dann öäüß übersetzt und Leerzeichen durch Unterstriche ersetzt.
Das kann man mit jsonMap lösen, allerdings in der Erstellung nicht so einfach automatisiert (bis es als attrTemplate kommt ;D ). Auch dazu findest du Beispiele in dem ems-esp-Paket ;) .
Zitat
Letztendlich soll das dann so in den Subdevices sichtbar sein. Ist so etwas möglich? Wo finde ich dazu Informationen?
Das ist eigentlich das einzige, was mir da neben den Icons und stateFormat noch fehlt, damit es ,,hübsch" ist. Ich schätze aber, dass das außerhalb meiner momentanen Fähigkeiten liegt. Es sei denn es gibt dazu irgendwo ein Beispiel... ;)
Das allermeiste, das du suchst IST stateFormat (oder devStateIcon). Und Beispiele gibt es vor allem rund um ems-esp und ebus einige, das Problem dürfte eher sein, da rauszufinden, was wie am besten paßt bzw. was alles möglich ist. Nur Code ist zugegebenermaßen einigermaßen abstrakt - im Wiki (zum ebus) gibt es aber eine ganze Ladung screenshots, die kannst du dir ja mal in Ruhe anschauen und ggf. nachfragen, wenn unklar ist, wo/wie eine bestimmte optische Gestaltung zustande kommt und wie man ein bestimmtes Detail am besten löst.
Generell: Das Ding ist eine gute Gelegenheit, etwas tiefer zu lernen, wie FHEM intern mit Daten umgeht. Bei der Gelegenheit noch eine Anmerkung: Die "Idee", die Formatierung mit in den Readinginhalt reinzunehmen, ist aus meiner Sicht nicht "FHEM-like". Die Darstellung (z.B. im user-Friontend FHEMWEB oder als Plot) generiert man dann, wenn man sie braucht, und bis dahin reicht der "nackige Zahlenwert"...
Zitat
Für das ganze Engagement, was ihr beide bereits geleistet habt, möchte ich mich nochmal ganz herzlich bei euch bedanken! ;)
Von meiner Seite gerne geschehen!
Du mußt halt damit rechnen, dass ich für ähnlich gelagerte Fälle dann auf diesen Thread verweise ;) . Ist zwar nicht unbedingt an allen Stellen "straight forward" aber dafür eventuell umso instruktiver für "Einsteiger" in das Design von eigenen MQTT-Geräten ;) .
Viel Spaß beim weiteren Tüfteln 8) .
Der Openhab User hat folgenden Vorschlag für die Fehlermeldungen im Holzheizer-Forum unterbreitet:
Zitathorchi,
und falls du irgendwann mal Zeit und Lust hast neben dem Pool buddeln, vielleicht bringen wir die Fehlermeldungen noch mit rein.
Deinen Vorschlag war:
{
"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",
}
]
}
Das einfach Array an die anderen Baugruppen/Werte hinten dran hängen.
Vorschlag fürs Setup:
Aktiv-Flag: on/off
Anzahl Tage (0.. alle, 1 - xxxx ... xxxx Tage) --> wieviele Meldungen überschickt werden in Tagen
Ob noch eine aktuelle Störung vorliegt müsste ja über Stoermeldung_0x14
ersichtlich sein. Wäre für mich ein pragmatischer Ansatz um die
Meldungen zu sehen und ob eine Störung vorliegt.
@Hoppel,
auch in Ordnung für FHEM? Ist ja im Endeffekt eine ähnliche Struktur wie du das für die Messdaten brauchst für FHEM.
VG
Reachy
Passt das auch für FHEM?
Viele Grüße Hoppel
ZitatPasst das auch für FHEM?
Ich sage auch deswegen ja, weil es effizienter ist FHEM notfalls anzupassen, als eine "optimale" Loesung mit allen auszudiskutieren.
Es ging auch nicht um ein großes Ausdiskutieren. Es ging lediglich darum, dass wir uns jetzt einmal einbringen, damit diese Fehlermeldungen zukünftig so bei uns ankommen, dass wir sie gut verwerten können.
Ich erinnere mich an die Aussage von @Beta-User , dass MQTT für so etwas eigentlich nicht gedacht ist, weshalb ich das hier noch ein letztes Mal hinterfragen wollte. ;)
Zitat von: hoppel118 am 08 Mai 2020, 07:54:39
Ich erinnere mich an die Aussage von @Beta-User , dass MQTT für so etwas eigentlich nicht gedacht ist, weshalb ich das hier noch ein letztes Mal hinterfragen wollte. ;)
Na ja, ich hoffe, halbwegs klar vorab gesagt zu haben, dass ich zwar ein bestimmtes "Bild" vor Augen habe, wie MQTT "optimal" ist, aber letztlich ist es ein Kommunikationsweg, und den kann eben jeder nach seinem Gusto nutzen. Deinen Beitrag davor hatte ich jetzt so verstanden, dass es ein "Feld" (einen konkreten Topic) gibt, in dem steht, ob aktuell ein Problem besteht. Damit wäre für mich "der Fisch geputzt", denn auf Events auf einen konkreten Datenpunkt kann man (einfach) automatisiert reagieren, was in irgendeiner history steht, ist mir (@MQTT) egal...
Aber damit wiederhole ich eigentlich nur in etwas anderen Worten, was ich schon hier von mir gegeben habe.
Ansonsten bin ich bei Rudi: Wir bekommen unter FHEM notfalls (fast) alles ans laufen, ist nur eine Frage des Aufwands...
Dass der eben tendenziell umso höher ist, je mehr die Dinge irgendwie "menschenlesbar verpackt" sind, hatte ich auch schon gesagt.
Hallo ihr beiden,
vielen Dank nochmal für eure Antworten. Ich habe das und eure vorherigen Antworten zu dieser Thematik zusammengefasst und weitergegeben.
Zitat von: Beta-User am 02 Mai 2020, 06:34:17
eigentlich war ich die ganze Zeit davon ausgegangen, dass dir klar ist, wo der Quelltext für attrTemplate zu finden ist - hatte ich mal ins Wiki geschrieben, afaik ;D . Da steht auch was zu anderen Dingen, die spezielle mit AttrTemplate zu tun haben.
Quelltext findest du lokal oder z.B. hier: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template
Mir war das nicht klar. Habe mich mit attrTemplate vor dieser p4d-Thematik noch nie befasst. Danke für den Link.
Das bringt mich aber leider in meinem ersten Anliegen nicht weiter. Mein erstes Anliegen ist erstmal die Readings an den Baugruppen aufzubereiten. Ganz ehrlich das übersteigt definitiv meinen derzeitigen Horizont. Ich habe mich jetzt mehrere Male an der Thematik versucht, aber es kommt nichts sinnvolles bei raus. ;)
Vielleicht könnt ihr mich nochmal dabei unterstützen.
Das Ziel ist (wie es bereits ist) pro Topic ein Device zu erhalten und die Reading-Bezeichnungen "hübsch" zu machen. Außerdem soll der überflüssige Kram (description/unit) ausgeblendet werden. Die ganzen Readings, die in andere Devices umgeleitet werden, müssen dann am Hauptdevice eigentlich auch nicht mehr sichtbar sein.
Readings "MQTT2_p4d_publisher" IST-Zustand:
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Betriebsstunden_0x62_description Betriebsstunden
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Betriebsstunden_0x62_unit h
2020-05-08 23:13:49 _defs__MQTT2_p4d_publisher___JSONMAP_Betriebsstunden_0x62_value 9985.00
Readings "MQTT2_p4d_publisher" SOLL-Zustand:
2020-04-30 20:12:58 Betriebsstunden 9985.00
Was muss ich dafür tun?
Hier nochmal ein vollständiges list:
Internals:
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC MQTT2_p4d_publisher
FUUID 5eaa7af9-f33f-5dcf-0d5f-83609ef8aea472e1
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 87
NAME MQTT2_p4d_publisher
NR 576
STATE Feuer Aus
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 87
mqtt2server_TIME 2020-05-08 23:13:49
READINGS:
2020-04-30 09:37:02 Abgas-Solltemperatur_0x13_description Abgas-Solltemperatur
2020-04-30 09:37:02 Abgas-Solltemperatur_0x13_unit °C
2020-04-30 15:36:31 Abgas-Solltemperatur_0x13_value 152.00
2020-04-30 09:37:02 Abgastemperatur_0x1_description Abgastemperatur
2020-04-30 09:37:02 Abgastemperatur_0x1_unit °C
2020-04-30 15:36:31 Abgastemperatur_0x1_value 106.00
2020-04-30 09:37:02 Aussentemperatur_0x4_description Außentemperatur
2020-04-30 09:37:02 Aussentemperatur_0x4_unit °C
2020-04-30 15:36:31 Aussentemperatur_0x4_value 11.50
2020-04-30 09:37:02 BetriebsartBoiler_0x156_description Betriebsart Boiler
2020-04-30 09:37:02 BetriebsartBoiler_0x156_unit
2020-04-30 15:36:31 BetriebsartBoiler_0x156_value 1.00
2020-04-30 09:37:02 BetriebsartHeizkreis_0x17_description Betriebsart Heizkreis
2020-04-30 09:37:02 BetriebsartHeizkreis_0x17_unit
2020-04-30 15:36:31 BetriebsartHeizkreis_0x17_value 0.00
2020-04-30 09:37:02 BetriebsartHeizkreis_0x1b_description Betriebsart Heizkreis
2020-04-30 09:37:02 BetriebsartHeizkreis_0x1b_unit
2020-04-30 15:36:31 BetriebsartHeizkreis_0x1b_value 0.00
2020-04-30 09:37:02 Betriebsmodus_description Betriebsmodus
2020-04-30 09:37:02 Betriebsmodus_unit zst
2020-05-01 22:42:17 Betriebsmodus_value Dauerlast
2020-04-30 09:37:02 Betriebsstunden_0x62_description Betriebsstunden
2020-04-30 09:37:02 Betriebsstunden_0x62_unit h
2020-05-01 22:42:17 Betriebsstunden_0x62_value 9932.00
2020-04-30 09:37:02 BetriebsstundeninderFeuererhaltung_0x73_description Betriebsstunden in der Feuererhaltung
2020-04-30 09:37:02 BetriebsstundeninderFeuererhaltung_0x73_unit h
2020-05-01 22:42:17 BetriebsstundeninderFeuererhaltung_0x73_value 27.00
2020-04-30 09:37:02 BetriebsstundenvonKessel2Brennerkontakt_0x109_description Betriebsstunden von Kessel 2 (Brennerkontakt)
2020-04-30 09:37:02 BetriebsstundenvonKessel2Brennerkontakt_0x109_unit h
2020-05-01 22:42:17 BetriebsstundenvonKessel2Brennerkontakt_0x109_value 2476.00
2020-04-30 09:37:02 Boardtemperatur_0x2_description Boardtemperatur
2020-04-30 09:37:02 Boardtemperatur_0x2_unit °C
2020-05-01 22:42:17 Boardtemperatur_0x2_value 41.50
2020-04-30 09:37:02 BoilerpumpeAnsteuerung_0x90_description Boilerpumpe Ansteuerung
2020-04-30 09:37:02 BoilerpumpeAnsteuerung_0x90_unit %
2020-04-30 15:36:31 BoilerpumpeAnsteuerung_0x90_value 0.00
2020-04-30 09:37:02 Boilertemperaturoben_0x5d_description Boilertemperatur oben
2020-04-30 09:37:02 Boilertemperaturoben_0x5d_unit °C
2020-04-30 15:36:31 Boilertemperaturoben_0x5d_value 65.00
2020-04-30 09:37:02 Build_0x16f_description Build
2020-04-30 09:37:02 Build_0x16f_unit
2020-05-01 22:42:17 Build_0x16f_value 2.00
2020-04-30 09:37:02 EmpfohleneHolzmengebeimNachlegen_0x10a_description Empfohlene Holzmenge beim Nachlegen
2020-04-30 09:37:02 EmpfohleneHolzmengebeimNachlegen_0x10a_unit k
2020-04-30 15:36:31 EmpfohleneHolzmengebeimNachlegen_0x10a_value 2.00
2020-04-30 09:37:02 FuehleramHydraulikmodul03_0xff_description Fühler am Hydraulikmodul 0.3
2020-04-30 09:37:02 FuehleramHydraulikmodul03_0xff_unit °C
2020-04-30 15:36:31 FuehleramHydraulikmodul03_0xff_value 65.00
2020-04-30 09:37:02 Kesselstellgroesse_0x12_description Kesselstellgröße
2020-04-30 09:37:02 Kesselstellgroesse_0x12_unit %
2020-04-30 15:36:31 Kesselstellgroesse_0x12_value 100.00
2020-04-30 09:37:02 Kesseltemperatur_0x0_description Kesseltemperatur
2020-04-30 09:37:02 Kesseltemperatur_0x0_unit °C
2020-04-30 15:36:31 Kesseltemperatur_0x0_value 71.00
2020-04-30 09:37:02 Kesselzustand_0x1c9_description Kesselzustand
2020-04-30 09:37:02 Kesselzustand_0x1c9_unit
2020-04-30 15:36:31 Kesselzustand_0x1c9_value 3.00
2020-04-30 09:37:02 Lambdasondenspannunggemessen_0xd3_description Lambdasondenspannung gemessen
2020-04-30 09:37:02 Lambdasondenspannunggemessen_0xd3_unit m
2020-04-30 15:36:31 Lambdasondenspannunggemessen_0xd3_value 24.07
2020-04-30 09:37:02 Lambdasondenspannungkorrigiert_0xdc_description Lambdasondenspannung korrigiert
2020-04-30 09:37:02 Lambdasondenspannungkorrigiert_0xdc_unit m
2020-04-30 15:36:31 Lambdasondenspannungkorrigiert_0xdc_value 24.07
2020-04-30 09:37:02 PufferladezustandDiskret_0x1c0_description Pufferladezustand Diskret
2020-04-30 09:37:02 PufferladezustandDiskret_0x1c0_unit
2020-04-30 15:36:31 PufferladezustandDiskret_0x1c0_value 4.00
2020-04-30 09:37:02 Pufferladezustand_0xe1_description Pufferladezustand
2020-04-30 09:37:02 Pufferladezustand_0xe1_unit %
2020-04-30 15:36:31 Pufferladezustand_0xe1_value 84.00
2020-04-30 09:37:02 PufferpumpenAnsteuerung_0x8c_description Pufferpumpen Ansteuerung
2020-04-30 09:37:02 PufferpumpenAnsteuerung_0x8c_unit %
2020-04-30 15:36:31 PufferpumpenAnsteuerung_0x8c_value 45.00
2020-04-30 09:37:02 PufferpumpenbegrenzungdurchAbgastemperatur_0xde_description Pufferpumpenbegrenzung durch Abgastemperatur
2020-04-30 09:37:02 PufferpumpenbegrenzungdurchAbgastemperatur_0xde_unit %
2020-04-30 15:36:31 PufferpumpenbegrenzungdurchAbgastemperatur_0xde_value 8.00
2020-04-30 09:37:02 Puffertemperaturoben_0x76_description Puffertemperatur oben
2020-04-30 09:37:02 Puffertemperaturoben_0x76_unit °C
2020-04-30 15:36:31 Puffertemperaturoben_0x76_value 69.50
2020-04-30 09:37:02 Puffertemperaturunten_0x78_description Puffertemperatur unten
2020-04-30 09:37:02 Puffertemperaturunten_0x78_unit °C
2020-04-30 15:36:31 Puffertemperaturunten_0x78_value 69.00
2020-04-30 09:37:02 RaumfuehlerKBGTouch_0x191_description Raumfühler KBG Touch
2020-04-30 09:37:02 RaumfuehlerKBGTouch_0x191_unit °C
2020-04-30 15:36:31 RaumfuehlerKBGTouch_0x191_value 19.00
2020-04-30 09:37:02 Saugzug-Ansteuerung_0xf_description Saugzug - Ansteuerung
2020-04-30 09:37:02 Saugzug-Ansteuerung_0xf_unit %
2020-04-30 15:36:31 Saugzug-Ansteuerung_0xf_value 90.00
2020-04-30 09:37:02 Saugzugdrehzahl_0x7_description Saugzugdrehzahl
2020-04-30 09:37:02 Saugzugdrehzahl_0x7_unit U
2020-04-30 15:36:31 Saugzugdrehzahl_0x7_value 2699.00
2020-04-30 09:37:02 Status_description zst
2020-04-30 09:37:02 Status_unit Heizungsstatus
2020-05-01 22:42:17 Status_value Heizen
2020-04-30 09:37:02 StundenseitletzterWartung_0xd5_description Stunden seit letzter Wartung
2020-04-30 09:37:02 StundenseitletzterWartung_0xd5_unit h
2020-05-01 22:42:17 StundenseitletzterWartung_0xd5_value 9932.00
2020-04-30 09:37:02 TemperaturdesZweitkessel_0xc4_description Temperatur des Zweitkessel
2020-04-30 09:37:02 TemperaturdesZweitkessel_0xc4_unit °C
2020-04-30 15:36:31 TemperaturdesZweitkessel_0xc4_value 17.50
2020-04-30 09:37:02 Uhrzeit_description Datum Uhrzeit der Heizung
2020-04-30 09:37:02 Uhrzeit_unit T
2020-05-01 22:42:17 Uhrzeit_value Friday, 01. May. 2020 22:30:44
2020-04-30 09:37:02 VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_description Vergangene Zeit seit letzter Wärmetauscherreinigung
2020-04-30 09:37:02 VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_unit m
2020-05-01 22:42:17 VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_value 83.00
2020-04-30 09:37:02 Vorlauf-Isttemperatur_0x15_description Vorlauf-Isttemperatur
2020-04-30 09:37:02 Vorlauf-Isttemperatur_0x15_unit °C
2020-04-30 15:36:31 Vorlauf-Isttemperatur_0x15_value 38.50
2020-04-30 09:37:02 Vorlauf-Isttemperatur_0x19_description Vorlauf-Isttemperatur
2020-04-30 09:37:02 Vorlauf-Isttemperatur_0x19_unit °C
2020-04-30 15:36:31 Vorlauf-Isttemperatur_0x19_value 57.00
2020-04-30 09:37:02 Vorlauf-Solltemperatur_0x16_description Vorlauf-Solltemperatur
2020-04-30 09:37:02 Vorlauf-Solltemperatur_0x16_unit °C
2020-04-30 15:36:31 Vorlauf-Solltemperatur_0x16_value 48.00
2020-04-30 09:37:02 Vorlauf-Solltemperatur_0x1a_description Vorlauf-Solltemperatur
2020-04-30 09:37:02 Vorlauf-Solltemperatur_0x1a_unit °C
2020-04-30 15:36:31 Vorlauf-Solltemperatur_0x1a_value 48.00
2020-04-30 09:37:02 Zykluszeit_0xe_description Zykluszeit:
2020-04-30 09:37:02 Zykluszeit_0xe_unit u
2020-04-30 15:36:31 Zykluszeit_0xe_value 53.90
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Betriebsmodus_description Betriebsmodus
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Betriebsmodus_unit zst
2020-05-08 23:13:49 _defs__MQTT2_p4d_publisher___JSONMAP_Betriebsmodus_value Dauerlast
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Betriebsstunden_0x62_description Betriebsstunden
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Betriebsstunden_0x62_unit h
2020-05-08 23:13:49 _defs__MQTT2_p4d_publisher___JSONMAP_Betriebsstunden_0x62_value 9985.00
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_BetriebsstundeninderFeuererhaltung_0x73_description Betriebsstunden in der Feuererhaltung
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_BetriebsstundeninderFeuererhaltung_0x73_unit h
2020-05-08 23:13:49 _defs__MQTT2_p4d_publisher___JSONMAP_BetriebsstundeninderFeuererhaltung_0x73_value 27.00
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_BetriebsstundenvonKessel2Brennerkontakt_0x109_description Betriebsstunden von Kessel 2 (Brennerkontakt)
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_BetriebsstundenvonKessel2Brennerkontakt_0x109_unit h
2020-05-08 23:13:49 _defs__MQTT2_p4d_publisher___JSONMAP_BetriebsstundenvonKessel2Brennerkontakt_0x109_value 2487.00
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Boardtemperatur_0x2_description Boardtemperatur
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Boardtemperatur_0x2_unit °C
2020-05-08 23:13:49 _defs__MQTT2_p4d_publisher___JSONMAP_Boardtemperatur_0x2_value 25.00
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Build_0x16f_description Build
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Build_0x16f_unit
2020-05-08 23:13:49 _defs__MQTT2_p4d_publisher___JSONMAP_Build_0x16f_value 2.00
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Status_description zst
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Status_unit Heizungsstatus
2020-05-08 23:13:49 _defs__MQTT2_p4d_publisher___JSONMAP_Status_value Feuer Aus
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_StundenseitletzterWartung_0xd5_description Stunden seit letzter Wartung
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_StundenseitletzterWartung_0xd5_unit h
2020-05-08 23:13:49 _defs__MQTT2_p4d_publisher___JSONMAP_StundenseitletzterWartung_0xd5_value 9985.00
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Uhrzeit_description Datum Uhrzeit der Heizung
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_Uhrzeit_unit T
2020-05-08 23:13:49 _defs__MQTT2_p4d_publisher___JSONMAP_Uhrzeit_value Friday, 08. May. 2020 23:02:12
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_description Vergangene Zeit seit letzter Wärmetauscherreinigung
2020-04-30 20:12:58 _defs__MQTT2_p4d_publisher___JSONMAP_VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_unit m
2020-05-08 23:13:49 _defs__MQTT2_p4d_publisher___JSONMAP_VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_value 0.00
Attributes:
IODev mqtt2server
bridgeRegexp p4d2mqtt[/](?!Anlagenstatus)([^/]+)[/]state:.* "p4d2_$1"
icon sani_earth_source_heat_pump
readingList p4d2mqtt/Anlagenstatus/state:.* { json2nameValue($EVENT,,$JSONMAP) }
room MQTT2_DEVICE
stateFormat _defs__MQTT2_p4d_publisher___JSONMAP_Status_value
An den Subdevices soll das dann natürlich auch hübsch sein und alles was nicht benötigt wird, wird erst gar nicht angezeigt:
Readings "p4d2_Raumsensor" IST-Zustand:
2020-04-30 20:12:58 RaumfuehlerKBGTouch_0x191_description Raumfühler KBG Touch
2020-04-30 20:12:58 RaumfuehlerKBGTouch_0x191_unit °C
2020-05-08 23:19:49 RaumfuehlerKBGTouch_0x191_value 19.00
Readings "p4d2_Raumsensor" SOLL-Zustand:
2020-04-30 20:12:58 RaumfuehlerKBGTouch 19.00
Hier ein vollständiges list vom Device:
Internals:
CID p4d2_Raumsensor
DEF p4d2_Raumsensor
DEVICETOPIC MQTT2_p4d2_Raumsensor
FUUID 5eab152a-f33f-5dcf-9da4-a87aa7a42def2c6a
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 93
NAME MQTT2_p4d2_Raumsensor
NR 592
STATE 19.00 °C
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 93
mqtt2server_TIME 2020-05-08 23:19:49
READINGS:
2020-04-30 20:12:58 RaumfuehlerKBGTouch_0x191_description Raumfühler KBG Touch
2020-04-30 20:12:58 RaumfuehlerKBGTouch_0x191_unit °C
2020-05-08 23:19:49 RaumfuehlerKBGTouch_0x191_value 19.00
2020-04-30 20:12:58 associatedWith MQTT2_p4d_publisher
Attributes:
IODev mqtt2server
icon temp_temperature
readingList p4d2mqtt/Raumsensor/state:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
stateFormat RaumfuehlerKBGTouch_0x191_value RaumfuehlerKBGTouch_0x191_unit
Wie kriege ich das hin? ;)
Zitat von: Beta-User am 02 Mai 2020, 06:34:17
- eine "formated uptime" - das ist in etwa das, das du mit der "Wärmetauscher"-Darstellung gesucht hast, oder?
Habe ich das gesucht? Daran kann ich mich gerade nicht erinnern. Vielleicht werde ich es bald suchen... Ich werde es mir auf jeden Fall nochmal genauer anschauen. ;)
Zitat von: Beta-User am 02 Mai 2020, 06:34:17
Das allermeiste, das du suchst IST stateFormat (oder devStateIcon). Und Beispiele gibt es vor allem rund um ems-esp und ebus einige, das Problem dürfte eher sein, da rauszufinden, was wie am besten paßt bzw. was alles möglich ist. Nur Code ist zugegebenermaßen einigermaßen abstrakt - im Wiki (zum ebus) gibt es aber eine ganze Ladung screenshots, die kannst du dir ja mal in Ruhe anschauen und ggf. nachfragen, wenn unklar ist, wo/wie eine bestimmte optische Gestaltung zustande kommt und wie man ein bestimmtes Detail am besten löst.
Mit stateFormat und devStateIcon kam ich in der Vergangenheit bereits gut klar. Danke für den Tip mit dem ebus Wiki. Das ist super, mit so etwas komme ich klar: https://wiki.fhem.de/wiki/EBUS-MQTT2#.22ebus-Bridge.22 Da sind sicherlich auch einige Sachen, die ich wiederverwenden kann.
Zitat von: Beta-User am 02 Mai 2020, 06:34:17
Generell: Das Ding ist eine gute Gelegenheit, etwas tiefer zu lernen, wie FHEM intern mit Daten umgeht. Bei der Gelegenheit noch eine Anmerkung: Die "Idee", die Formatierung mit in den Readinginhalt reinzunehmen, ist aus meiner Sicht nicht "FHEM-like". Die Darstellung (z.B. im user-Friontend FHEMWEB oder als Plot) generiert man dann, wenn man sie braucht, und bis dahin reicht der "nackige Zahlenwert"...
Ja, ich habe jetzt schon dank eurer Unterstützung eine ganze Menge gelernt. Aber ich habe mich da gerade echt festgefahren...
Zitat von: Beta-User am 02 Mai 2020, 06:34:17
Du mußt halt damit rechnen, dass ich für ähnlich gelagerte Fälle dann auf diesen Thread verweise ;) . Ist zwar nicht unbedingt an allen Stellen "straight forward" aber dafür eventuell umso instruktiver für "Einsteiger" in das Design von eigenen MQTT-Geräten ;) .
Viel Spaß beim weiteren Tüfteln 8) .
Damit habe ich grundsätzlich kein Problem. Ich bin hier auch in einigen Threads sehr aktiv und Helfe anderen bei Problemen. MQTT ist eine spannende Sache. Mal sehen, wann ich mir irgendwelche Tasmota-Devices zulege. Erstmal muss jetzt das gelöst werden, bevor ich schon an die nächste Baustelle denke. ;)
Viele Grüße Hoppel
Hmm, irgendwie scheint json2NameValue() das undefinierte 2. Argument nicht zu mögen. Mach da mal bitte noch zwei einfache Quotes rein:
attr MQTT2_p4d_publisher readingList p4d2mqtt/Anlagenstatus/state:.* { json2nameValue($EVENT,'',$JSONMAP) }
deletereading -q MQTT2_p4d_publisher (?!associatedWith).*
Dann sollte es einfacher sein, das mit dem jsonMap zu verstehen. Für den Anlagenstatus machen wir das im 2. Durchlauf, vielleicht hilft dir das hier weiter:
attr MQTT2_p4d2_Raumsensor readingList p4d2mqtt/Raumsensor/state:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr MQTT2_p4d2_Raumsensor jsonMap RaumfuehlerKBGTouch_0x191_value:temperature RaumfuehlerKBGTouch_0x191_unit:0 RaumfuehlerKBGTouch_0x191_description:0
deletereading -q MQTT2_p4d2_Raumsensor (?!associatedWith).*
Danach kannst du ja nochmal einen Blick in mqtt.template werfen, da gibt es noch einige Beispiele mehr.
[OT] Für ESP8266 (=z.B. Tasmota) will ich eigentlich keine Werbung machen, WiFi ist imo nur eine Notlösung in einer Hausautomatisierung (nicht falsch verstehen: wenn es ESP8266-basierte Geräte sein _müssen_, ist Tasmota eine gute Wahl. Shelly, da muß man nicht erst groß rumflashen).[/OT]
Zitat von: Beta-User am 09 Mai 2020, 06:19:08
Hmm, irgendwie scheint json2NameValue() das undefinierte 2. Argument nicht zu mögen. Mach da mal bitte noch zwei einfache Quotes rein:
attr MQTT2_p4d_publisher readingList p4d2mqtt/Anlagenstatus/state:.* { json2nameValue($EVENT,'',$JSONMAP) }
deletereading -q MQTT2_p4d_publisher (?!associatedWith).*
HM..., eigenartig. Ich bin mir ziemlich sicher, dass ich das bereits ausprobiert hatte. Mir ist der Unterschied neulich bei ems-esp aufgefallen. Dort sind diese beide Striche nämlich vorhanden. Na wie dem auch sei..., nun funktioniert es:
Internals:
CID p4d_publisher
DEF p4d_publisher
DEVICETOPIC MQTT2_p4d_publisher
FUUID 5eaa7af9-f33f-5dcf-0d5f-83609ef8aea472e1
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 1544
NAME MQTT2_p4d_publisher
NR 576
STATE _defs__MQTT2_p4d_publisher___JSONMAP_Status_value
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 1544
mqtt2server_TIME 2020-05-09 23:30:49
OLDREADINGS:
READINGS:
2020-05-09 23:30:49 Betriebsmodus_value Dauerlast
2020-05-09 23:30:49 Betriebsstunden_0x62_value 9985.00
2020-05-09 23:30:49 BetriebsstundeninderFeuererhaltung_0x73_value 27.00
2020-05-09 23:30:49 BetriebsstundenvonKessel2Brennerkontakt_0x109_value 2508.00
2020-05-09 23:30:49 Boardtemperatur_0x2_value 27.00
2020-05-09 23:30:49 Build_0x16f_value 2.00
2020-05-09 23:30:49 Status_value Feuer Aus
2020-05-09 23:30:49 StundenseitletzterWartung_0xd5_value 9985.00
2020-05-09 23:30:49 Uhrzeit_value Saturday, 09. May. 2020 23:19:12
2020-05-09 23:30:49 VergangeneZeitseitletzterWaermetauscherreinigung_0x1c7_value 0.00
Attributes:
IODev mqtt2server
bridgeRegexp p4d2mqtt[/](?!Anlagenstatus)([^/]+)[/]state:.* "p4d2_$1"
icon sani_earth_source_heat_pump
readingList p4d2mqtt/Anlagenstatus/state:.* { json2nameValue($EVENT,'',$JSONMAP) }
room MQTT2_DEVICE
Wenn ich jetzt p4d neustarte, sehe ich natürlich auch wieder die description/unit Readings, weil die ja immer beim Start einmalig mitgesendet werden. Wenn ich jetzt hier mit jsonMap arbeite, wie du es nachfolgend auch beschrieben hast, funktioniert das zwar, um die Readings hübsch zu machen. Aber kann ich das auch irgendwie verallgemeinern, so dass ich etwa sinngemäß dort folgendes definieren könnte?:
attr MQTT2_p4d_publisher jsonMap *_unit:0 *_description:0
Idealerweise wird das dann auch direkt an die Subdevices übergeben. Geht so etwas?
Zitat von: Beta-User am 09 Mai 2020, 06:19:08
Dann sollte es einfacher sein, das mit dem jsonMap zu verstehen. Für den Anlagenstatus machen wir das im 2. Durchlauf, vielleicht hilft dir das hier weiter:
attr MQTT2_p4d2_Raumsensor readingList p4d2mqtt/Raumsensor/state:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr MQTT2_p4d2_Raumsensor jsonMap RaumfuehlerKBGTouch_0x191_value:temperature RaumfuehlerKBGTouch_0x191_unit:0 RaumfuehlerKBGTouch_0x191_description:0
deletereading -q MQTT2_p4d2_Raumsensor (?!associatedWith).*
Danach kannst du ja nochmal einen Blick in mqtt.template werfen, da gibt es noch einige Beispiele mehr.
Internals:
CID p4d2_Raumsensor
DEF p4d2_Raumsensor
DEVICETOPIC MQTT2_p4d2_Raumsensor
FUUID 5eab152a-f33f-5dcf-9da4-a87aa7a42def2c6a
IODev mqtt2server
LASTInputDev mqtt2server
MSGCNT 1557
NAME MQTT2_p4d2_Raumsensor
NR 592
STATE 19.00
TYPE MQTT2_DEVICE
mqtt2server_MSGCNT 1557
mqtt2server_TIME 2020-05-09 23:43:49
JSONMAP:
RaumfuehlerKBGTouch_0x191_description 0
RaumfuehlerKBGTouch_0x191_unit 0
RaumfuehlerKBGTouch_0x191_value temperature
OLDREADINGS:
READINGS:
2020-04-30 20:12:58 associatedWith MQTT2_p4d_publisher
2020-05-09 23:43:49 temperature 19.00
Attributes:
IODev mqtt2server
icon temp_temperature
jsonMap RaumfuehlerKBGTouch_0x191_value:temperature RaumfuehlerKBGTouch_0x191_unit:0 RaumfuehlerKBGTouch_0x191_description:0
readingList p4d2mqtt/Raumsensor/state:.* { json2nameValue($EVENT,'',$JSONMAP) }
room MQTT2_DEVICE
stateFormat temperature
jsonMap funktioniert. Aber eigentlich ist das nicht das was ich suche. Ich möchte folgendes erreichen:
- alle Readings die auf "_unit" oder "_description" enden sollen ausgeblendet werden
- alle Readings die auf "_value" enden, sollen nur die Wörter/Zeichen bis zum ersten "_" als Readingbezeichnung erhalten, bspw. aus "Betriebsmodus_value" wird "Betriebsmodus" und aus "Betriebsstunden_0x62_value" wird "Betriebsstunden"
Kann man sowas auch mit jsonMap definieren?
Danke schonmal bis hierhin!
Viele Grüße Hoppel
Also:
Mit jsonMap definierst du indirekt einen Hash, da gehen afaik keine Wildcards, sondern man muß alles "hart" zuordnen (das war einer der Gründe, warum ich immer geschrieben habe, man sollte auf Senderseite bestimmte Dinge unterbinden können/einfacher verpacken...).
Mit der "0" in jsonMap werden die Infos ganz verworfen und mMn. braucht man die auch schlicht nicht, da bekannt und unveränderlich (ich müßte mal nachzählen, wie oft ich das hier schon geschrieben habe...).
Wenn du die "ausblenden" willst, kannst du versuchen, den Readingnamen mit einem Punkt beginnen zu lassen, ich weiß aber weder, ob das klappt, noch, ob die dann in einem list "einfach so" zu sehen sind oder ob man da zusätzlich in global was einstellen muß. Das ist mMn. auch nicht zielführend. Sowas schaut man sich einmal an, konfiguriert den Rest drumrum passend und gut ist...
Die weitere Automatik, um Readingnamen automatisiert schöner zu generieren dürfte zwar - wie immer - grundsätzlich möglich sein, ist aber sehr viel mehr Aufwand, als einmalig die jsonMap zu generieren.
Zitat von: Beta-User am 10 Mai 2020, 08:06:37
Mit jsonMap definierst du indirekt einen Hash, da gehen afaik keine Wildcards, sondern man muß alles "hart" zuordnen (das war einer der Gründe, warum ich immer geschrieben habe, man sollte auf Senderseite bestimmte Dinge unterbinden können/einfacher verpacken...).
Das ist wirklich schade! Das macht es wahrscheinlich schwierig überhaupt etwas mit attrTemplates zu automatisieren, da man ja auf p4d Seite seine Baugruppen/Topics komplett selbst definieren muss und auch selbst vorgibt, welcher Messwert zu welcher Baugruppe gehört. Potentiell sieht das also bei jedem anders aus. Ich muss nochmal mit horchi sprechen, ob wir nicht wenigstens die Baugruppen-Bezeichnungen auf der p4d-Seite komplett vorgeben können.
Ich plane zukünftig das gesamte Vorgehen im FHEM Wiki zu beschreiben. Dann muss ich wohl auch die Konfiguration über das p4d WebUI in unserem Wiki beschreiben, damit andere p4d-fhem-User das gleiche oder ein ähnliches Ergebnis erhalten.
Zitat von: Beta-User am 10 Mai 2020, 08:06:37
Mit der "0" in jsonMap werden die Infos ganz verworfen und mMn. braucht man die auch schlicht nicht, da bekannt und unveränderlich (ich müßte mal nachzählen, wie oft ich das hier schon geschrieben habe...).
Die ,,0" ist ein super Hinweis. Wie oft du das erzählt hast, brauchst du nicht nachzuzählen, denn darum geht es hier nicht. Du kannst dir sicher vorstellen, dass ein Home Assistant, ein Openhab und ein FHEM Nutzer nicht unbedingt dieselben Vorstellungen haben. Der eine sagt, dass er die Informationen nicht braucht, der nächste sagt, dass es schade wäre, auf diese Informationen zu verzichten, wenn man sie schon vorliegen hat, der dritte sagt, einigt euch... Wie dem auch sei, dass was wir da jetzt an Readings per JSON übermittelt bekommen, ist der Kompromiss von verschiedenen Vorstellungen. Ich müsste mal nachzählen, wie oft hier betont wurde, dass FHEM mit allem umgehen kann und am Ende ist es dann doch immer nicht ganz FHEM-like bzw. perfekt! ;)
Da ich leider wenig Ahnung von der MQTT und JSON Materie habe, war das Vermitteln für mich übrigens auch nicht immer leicht. Aber gut, ich bin zufrieden mit dem, was wir bereits gemeinsam erreicht haben und was ich bereits gelernt habe. ;)
Zitat von: Beta-User am 10 Mai 2020, 08:06:37
Wenn du die "ausblenden" willst, kannst du versuchen, den Readingnamen mit einem Punkt beginnen zu lassen, ich weiß aber weder, ob das klappt, noch, ob die dann in einem list "einfach so" zu sehen sind oder ob man da zusätzlich in global was einstellen muß. Das ist mMn. auch nicht zielführend. Sowas schaut man sich einmal an, konfiguriert den Rest drumrum passend und gut ist...
Das hört sich definitiv nicht zielführend an. Das werde ich auch nicht machen. Aber danke trotzdem für den Tip. ;)
Zitat von: Beta-User am 10 Mai 2020, 08:06:37
Die weitere Automatik, um Readingnamen automatisiert schöner zu generieren dürfte zwar - wie immer - grundsätzlich möglich sein, ist aber sehr viel mehr Aufwand, als einmalig die jsonMap zu generieren.
Mir geht's nicht um meinen persönlichen einmaligen Aufwand, der hält sich mit jsonMap noch einigermaßen in Grenzen, sondern darum jetzt eine allgemein gültige automatisierte Lösung zu finden. Aber gut, das ist anscheinend nur mit Großem Aufwand zu bewältigen. Wirklich schade, dass man unter jsonMap Regex/Wildcard nicht anwenden kann.
Ich habe eigentlich die Hoffnung, dass sich irgendwann auch mal ein paar andere Fröling User hier einbringen und nicht alle warten bis alles fertig ist. ;)
Es gibt hier definitiv ein paar Fröling User. Aber anscheinend sind die alle mit der Lösung zufrieden, die sie momentan nutzen. Never touch a running system... Oder sie haben hiervon noch gar nichts mitbekommen. Muss in den anderen Threads wohl nochmal ein Bisschen Werbung machen. Außerdem ist die Heizzeit bald erstmal vorbei. Spätestens mit dem Upgrade zu Buster, werden die anderen Nutzer sich dann aber alle mit der neusten Version von p4d inkl. mqtt beschäftigen, da horchi für Buster einige Änderungen vorgenommen hat.
Lange Rede, kurzer Sinn, ich mach das dann mit jsonMap. ;)
Ich melde mich wieder.
Viele Grüße Hoppel
MMn. besteht grade das Risiko, dass du das Pferd betreffend der Baugruppen wieder von hinten aufzäumst...
Wenn (!) es so ist, dass es die auf der "anderen" Seite nicht "allgemeingültig" konfiguriert vorgegeben gibt (was ich schade finde), können wir das auch anders lösen: Es ist kein allzugroßes Problem, notfalls auf der FHEM-Seite (über das attrTemplate), anhand der Hex-Adressen festzulegen, was durch bridgeRegexp wohin sortiert werden soll. Sonst machen wir das auf beiden Seiten, was nach dem wie du das schilderst Doppelarbeit ist... (Es sollte so langsam klarer sein, wie in etwa die Mechanismen wirken).
Das setzt nur voraus, dass die HEX-Adressen bei jedem Gerät für dieselben Infos stehen. Das kann ich aber von hier aus nicht beurteilen.
Hallo Habe jetzt auch eine Fröling Heizung,
Der RPi läuft und die Daten kommen per MQTT und das sieht dann so aus:
Würde gerne die Heizen Laufzeit auslesen aber leider weiß ich nicht wie
2022.12.11 14:32:06 4: Internals_192.168.1.155_45826 PUBLISH p4d2mqtt/sensor/State_Duration_2/state:{"value": 8.0}
2022.12.11 14:32:06 5: Internals: dispatch autocreate=simple\000\000p4d2mqtt/sensor/State_Duration_2/state\000{"value": 8.0}
2022.12.11 14:32:06 5: in@192.168.1.155:45826 PUBLISH: 18(0)&p4d2mqtt/sensor/State_Duration_3/state{"value": 270.0}
2022.12.11 14:32:06 4: Internals_192.168.1.155_45826 PUBLISH p4d2mqtt/sensor/State_Duration_3/state:{"value": 270.0}
2022.12.11 14:32:06 5: Internals: dispatch autocreate=simple\000\000p4d2mqtt/sensor/State_Duration_3/state\000{"value": 270.0}
2022.12.11 14:32:06 5: in@192.168.1.155:45826 PUBLISH: 0(149)(1)(0)(16)p4d2mqtt/changes{"id": "SD:0x03", "type": "SD", "name": "Heizen (Laufzeit/Tag)", "unit": "min", "state": "off", "value": 270.0, "action": "CHANGE"}
2022.12.11 14:32:06 4: Internals_192.168.1.155_45826 PUBLISH p4d2mqtt/changes:{"id": "SD:0x03", "type": "SD", "name": "Heizen (Laufzeit/Tag)", "unit": "min", "state": "off", "value": 270.0, "action": "CHANGE"}
2022.12.11 14:32:06 5: Internals: dispatch autocreate=simple\000\000p4d2mqtt/changes\000{"id": "SD:0x03", "type": "SD", "name": "Heizen (Laufzeit/Tag)", "unit": "min", "state": "off", "value": 270.0, "action": "CHANGE"}
2022.12.11 14:32:06 5: in@192.168.1.155:45826 PUBLISH: 17(0)&p4d2mqtt/sensor/State_Duration_7/state{"value": 10.0}
2022.12.11 14:32:06 4: Internals_192.168.1.155_45826 PUBLISH p4d2mqtt/sensor/State_Duration_7/state:{"value": 10.0}
2022.12.11 14:32:06 5: Internals: dispatch autocreate=simple\000\000p4d2mqtt/sensor/State_Duration_7/state\000{"value": 10.0}
Eigener MQTT Server
Es ist alles in eine Device rein gelaufen, mit dem ich garnichts anfangen konnte.
Internals:
CONNECTS 202
Clients :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
ClientsKeepOrder 1
DEF 1883 global
FD 40
FUUID 5c5abd22-f33f-5db6-c6be-325f2eea0e1425e3
NAME Internals
NR 316
PORT 1883
STATE Initialized
TYPE MQTT2_SERVER
eventCount 382
.attraggr:
.attrminint:
.clientArray:
MQTT2_DEVICE
MatchList:
1:MQTT2_DEVICE ^.
2:MQTT_GENERIC_BRIDGE ^.
READINGS:
2022-12-26 16:03:32 .RETAIN {"/sp111a/KS/status":"0","/status":"0","TTGO-LoRa-Gateway/MESSAGE":"Hallo Heltec Radio Packet Nr 961","p4d2mqtt/sensor/Abgas-Solltemperatur_0x13/state":"{\u0022value\u0022: 69.0}","p4d2mqtt/sensor/Abgastemperatur_0x1/state":"{\u0022value\u0022: 59.0}","p4d2mqtt/sensor/AbschoepfAusgang_0xdb/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Absperrschieber-AktuellePosition_0x1a8/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Absperrschieber-Geschlossen_0x1aa/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Absperrschieber-Offen_0x1a9/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Absperrschieber-Wiederholung_0x1ac/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Absperrschieber-Zustand_0x1ad/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/AktivesSaugsystem_0x16d/state":"{\u0022value\u0022: 65535.0}","p4d2mqtt/sensor/AktivesSaugsystem_0x1cc/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/AktuelleLeistungdesSolarWMZkW_0x107/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/AnsteuerungKollektorpumpe_0x98/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/AnzahlderBrennerstarts_0x72/state":"{\u0022value\u0022: 346.0}","p4d2mqtt/sensor/AnzahlderReinigungen_0x128/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/AnzahlderSchaltzyklendesUmschaltventils_0x172/state":"{\u0022value\u0022: 1893.0}","p4d2mqtt/sensor/AufZuBewegungdesRostes_0xb1/state":"{\u0022value\u0022: 1797.0}","p4d2mqtt/sensor/AufgenommeneEnergie_0x189/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Aussentemperatur_0x4/state":"{\u0022value\u0022: 10.0}","p4d2mqtt/sensor/BetriebsartBoiler_0x156/state":"{\u0022value\u0022: 1.0}","p4d2mqtt/sensor/Betriebsart_Kessel/state":"{\u0022value\u0022: \u0022Automatik\u0022}","p4d2mqtt/sensor/BetriebsstundenAscheschnecke_0xb3/state":"{\u0022value\u0022: 4.0}","p4d2mqtt/sensor/BetriebsstundenAustragsschnecke_0xb7/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BetriebsstundenE-Filter_0x126/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BetriebsstundenLambdasonde_0xb5/state":"{\u0022value\u0022: 575.0}","p4d2mqtt/sensor/BetriebsstundenSaugturbine_0x13f/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BetriebsstundenSaugturbinen_0xb6/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BetriebsstundenStokerschnecke_0xad/state":"{\u0022value\u0022: 117.0}","p4d2mqtt/sensor/BetriebsstundenZuendung_0xb4/state":"{\u0022value\u0022: 88.0}","p4d2mqtt/sensor/Betriebsstunden_0x62/state":"{\u0022value\u0022: 555.0}","p4d2mqtt/sensor/BoardtemperaturPelletsmodul_0x5f/state":"{\u0022value\u0022: 26.5}","p4d2mqtt/sensor/Boardtemperatur_0x2/state":"{\u0022value\u0022: 28.0}","p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x90/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x91/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x92/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x93/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x94/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x95/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x96/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x97/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BoilertemperaturSolarreferenz_0x5e/state":"{\u0022value\u0022: 70.5}","p4d2mqtt/sensor/BoilertemperaturSolarreferenz_0xf9/state":"{\u0022value\u0022: 70.5}","p4d2mqtt/sensor/Boilertemperaturoben_0x5d/state":"{\u0022value\u0022: 68.0}","p4d2mqtt/sensor/BreitbandsondeHeizstrom_0xf3/state":"{\u0022value\u0022: 0.59099999999999997}","p4d2mqtt/sensor/BreitbandsondeHeizungsSpannung_0xf4/state":"{\u0022value\u0022: 13.01}","p4d2mqtt/sensor/BreitbandsondeNernstSpannung_0xf5/state":"{\u0022value\u0022: 2.4950000000000001}","p4d2mqtt/sensor/BreitbandsondePumpStrom_0xf6/state":"{\u0022value\u0022: 0.0050000000000000001}","p4d2mqtt/sensor/DrehzahlKesselladepumpe_0xf0/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/DrehzahlKesselladepumpe_0xf1/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/DrehzahlKesselladepumpe_0xf2/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/DrehzahlderPumpe_0xc8/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/DrehzahlderZirkulationsPumpe_0xc9/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Einschub_0x74/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Endlagenschalter_0x1d6/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Endlagenschalter_0x1d9/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/ErrechneteKesselsolltemperatur_0x8a/state":"{\u0022value\u0022: 70.0}","p4d2mqtt/sensor/ErrechneteaktuelleKesselleistung_0x217/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/ErrechnetemitKesselerzeugteWaermemenge_0x218/state":"{\u0022value\u0022: 8.0}","p4d2mqtt/sensor/Feuerraum-Unterdruck_0x9b/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/FolgekesselOK_0xe6/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/FolgekesselOK_0xe7/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/FolgekesselOK_0xe8/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/FolgekesselStellgroesse_0xec/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/FolgekesselStellgroesse_0xed/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/FolgekesselStellgroesse_0xee/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Fuehler1_0x8/state":"{\u0022value\u0022: 61.0}","p4d2mqtt/sensor/Fuehler2_0x20c/state":"{\u0022value\u0022: 65.5}","p4d2mqtt/sensor/Fuehler2_0x9/state":"{\u0022value\u0022: 127.0}","p4d2mqtt/sensor/FuellstandimPelletsbehaelter_0x71/state":"{\u0022value\u0022: 89.207729468599027}","p4d2mqtt/sensor/GemessenerFahrwegdesAbsperrschiebers_0x1ab/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/KesselanforderungueberHeizkreisoderBoilerstehtan_0xd6/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Kesselblockiertdurch_0x1a3/state":"{\u0022value\u0022: 3.0}","p4d2mqtt/sensor/Kesselstellgroesse_0x12/state":"{\u0022value\u0022: 55.0}","p4d2mqtt/sensor/Kesseltemperatur_0x0/state":"{\u0022value\u0022: 61.0}","p4d2mqtt/sensor/Kesselzustand_0x1c9/state":"{\u0022value\u0022: 19.0}","p4d2mqtt/sensor/KollektorVorlauftemperatur_0x151/state":"{\u0022value\u0022: 9.5}","p4d2mqtt/sensor/Kollektortemperatur_0xc5/state":"{\u0022value\u0022: 9.5}","p4d2mqtt/sensor/Lambdasondenspannunggemessen_0xd3/state":"{\u0022value\u0022: -7.0199999999999996}","p4d2mqtt/sensor/Lambdasondenspannungkorrigiert_0xdc/state":"{\u0022value\u0022: -6.5199999999999996}","p4d2mqtt/sensor/LaufzeitKollektorpumpe_0xcc/state":"{\u0022value\u0022: 154.0}","p4d2mqtt/sensor/MAX-Sensor_0x1d0/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/MIN-Sensor_0x1cf/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/PelletVerbrauchgexpert_0x110/state":"{\u0022value\u0022: 271.0}","p4d2mqtt/sensor/PelletverbrauchGesamt_0x114/state":"{\u0022value\u0022: 1.5}","p4d2mqtt/sensor/PositionRostmotor_0xa2/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Positionsschalter_0x1d7/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Positionsschalter_0x1da/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/PufferladezustandDiskret_0x1c0/state":"{\u0022value\u0022: 3.0}","p4d2mqtt/sensor/Pufferladezustand_0x1bf/state":"{\u0022value\u0022: 66.0}","p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8c/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8d/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8e/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8f/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/PuffertemperaturMitte_0x77/state":"{\u0022value\u0022: 127.5}","p4d2mqtt/sensor/Puffertemperaturoben_0x76/state":"{\u0022value\u0022: 66.0}","p4d2mqtt/sensor/Puffertemperaturunten_0x78/state":"{\u0022value\u0022: 37.0}","p4d2mqtt/sensor/PumpeZweitkessel_0x12e/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Resetierbarerkg-Zaehler_0x111/state":"{\u0022value\u0022: 562.0}","p4d2mqtt/sensor/Resetierbarert-Zaehler_0x112/state":"{\u0022value\u0022: 1.0}","p4d2mqtt/sensor/Restsauerstoffgehalt_0x3/state":"{\u0022value\u0022: 20.5}","p4d2mqtt/sensor/Restsauerstoffgehaltgedaempft_0x119/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Roststatus_0x130/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/RuecklaufmischerimQBus_0x198/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Sauerstoffregler_0x75/state":"{\u0022value\u0022: 36.0}","p4d2mqtt/sensor/Saugzug-Ansteuerung_0xf/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Saugzugdrehzahl_0x7/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/SolarfuehlerPufferoben_0x12f/state":"{\u0022value\u0022: 66.0}","p4d2mqtt/sensor/SolarfuehlerPufferunten_0x8b/state":"{\u0022value\u0022: 37.0}","p4d2mqtt/sensor/State_Duration_1/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/State_Duration_11/state":"{\u0022value\u0022: 30.0}","p4d2mqtt/sensor/State_Duration_13/state":"{\u0022value\u0022: 6.0}","p4d2mqtt/sensor/State_Duration_15/state":"{\u0022value\u0022: 7.0}","p4d2mqtt/sensor/State_Duration_19/state":"{\u0022value\u0022: 669.0}","p4d2mqtt/sensor/State_Duration_2/state":"{\u0022value\u0022: 3.0}","p4d2mqtt/sensor/State_Duration_3/state":"{\u0022value\u0022: 155.0}","p4d2mqtt/sensor/State_Duration_7/state":"{\u0022value\u0022: 7.0}","p4d2mqtt/sensor/State_Duration_8/state":"{\u0022value\u0022: 25.0}","p4d2mqtt/sensor/State_Duration_9/state":"{\u0022value\u0022: 3.0}","p4d2mqtt/sensor/Status/state":"{\u0022value\u0022: \u0022Betriebsbereit\u0022}","p4d2mqtt/sensor/StokerZyklen_0x113/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/StroemungsschalteranderBrauchwasserLeitung_0xd2/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Stromaufnahme24VDCPelletsmodul_0xa3/state":"{\u0022value\u0022: 0.14599999999999999}","p4d2mqtt/sensor/StromaufnahmederAustragschnecke_0x61/state":"{\u0022value\u0022: 0.67000000000000004}","p4d2mqtt/sensor/StundenimHeizen_0xdd/state":"{\u0022value\u0022: 350.0}","p4d2mqtt/sensor/StundenseitletzterWartung_0xd5/state":"{\u0022value\u0022: 560.0}","p4d2mqtt/sensor/Tagesertragvor1Tag_0x14a/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Tagesertragvor2Tagen_0x14b/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Tagesertragvor3Tagen_0x14c/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Tagesertragvor4Tagen_0x14d/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Tagesertragvor5Tagen_0x14e/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Tagesertragvor6Tagen_0x14f/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/TemperaturunterdemRost_0x17c/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/VerbleibendeHeizstundenbiszurAscheentleerenWarnung_0x117/state":"{\u0022value\u0022: 645.0}","p4d2mqtt/sensor/Vorlauf-Isttemperatur_0x15/state":"{\u0022value\u0022: 38.0}","p4d2mqtt/sensor/Vorlauf-Solltemperatur_0x16/state":"{\u0022value\u0022: 39.5}","p4d2mqtt/sensor/ZeitbiszurnaechstenReinigung_0x12a/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/ZustandAnheizassistent_0x170/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/ZustandderSaugaustragung_0x1d2/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/ZustanddesBrennerrelais_0xcb/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Zustandslaufzeitaktuell_0xa4/state":"{\u0022value\u0022: 3306.0}","p4d2mqtt/sensor/Zustandslaufzeitmaximal_0xa5/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Zykluszeit_0xe/state":"{\u0022value\u0022: 55.700000000000003}","presence_nodes/ESP32AB":"DISCONNECTED","presence_nodes/ESP32BB":"DISCONNECTED","presence_nodes/Mobil":"DISCONNECTED","presence_nodes/OUTDOOR1":"CONNECTED","presence_nodes/OUTDOOR2":"CONNECTED","presence_nodes/Outdoor1":"DISCONNECTED","tasmota/discovery/24A160153330/config":"{\u0022ip\u0022:\u0022192.168.6.74\u0022,\u0022dn\u0022:\u0022Tasmota\u0022,\u0022fn\u0022:[\u0022Tasmota\u0022,\u0022Tasmota2\u0022,null,null,null,null,null,null],\u0022hn\u0022:\u0022SP112E-4912\u0022,\u0022mac\u0022:\u002224A160153330\u0022,\u0022md\u0022:\u0022SP112\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u00229.3.1\u0022,\u0022t\u0022:\u0022SP112E\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,1,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0,0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0,\u0022117\u0022:0},\u0022lk\u0022:1,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022ver\u0022:1}","tasmota/discovery/24A160153330/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00222022-09-02T09:29:03\u0022,\u0022ENERGY\u0022:{\u0022TotalStartTime\u0022:\u00222021-03-09T23:10:55\u0022,\u0022Total\u0022:0.000,\u0022Yesterday\u0022:0.000,\u0022Today\u0022:0.000,\u0022Power\u0022:1,\u0022ApparentPower\u0022:3,\u0022ReactivePower\u0022:3,\u0022Factor\u0022:0.36,\u0022Voltage\u0022:237,\u0022Current\u0022:0.013}},\u0022ver\u0022:1}","tasmota/discovery/483FDA8DDDC2/config":"{\u0022ip\u0022:\u0022192.168.6.45\u0022,\u0022dn\u0022:\u0022Tasmota\u0022,\u0022fn\u0022:[\u0022Tasmota\u0022,\u0022Tasmota2\u0022,null,null,null,null,null,null],\u0022hn\u0022:\u0022shelly25_Wohnzu-7618\u0022,\u0022mac\u0022:\u0022483FDA8DDDC2\u0022,\u0022md\u0022:\u0022Shelly 2.5\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u00229.2.0\u0022,\u0022t\u0022:\u0022shelly25_Wohnzu\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,1,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0},\u0022lk\u0022:1,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022ver\u0022:1}","tasmota/discovery/483FDA8DDDC2/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00221970-01-01T00:00:23\u0022,\u0022Switch1\u0022:\u0022OFF\u0022,\u0022Switch2\u0022:\u0022OFF\u0022,\u0022ANALOG\u0022:{\u0022Temperature\u0022:49.7},\u0022ENERGY\u0022:{\u0022TotalStartTime\u0022:\u00221970-01-01T00:00:00\u0022,\u0022Total\u0022:0.000,\u0022Yesterday\u0022:0.000,\u0022Today\u0022:0.000,\u0022Power\u0022:[0,0],\u0022ApparentPower\u0022:[0,0],\u0022ReactivePower\u0022:[0,0],\u0022Factor\u0022:[0.00,0.00],\u0022Frequency\u0022:50,\u0022Voltage\u0022:231,\u0022Current\u0022:[0.000,0.000]},\u0022TempUnit\u0022:\u0022C\u0022},\u0022ver\u0022:1}","tasmota/discovery/600194C47774/config":"{\u0022ip\u0022:\u0022192.168.6.31\u0022,\u0022dn\u0022:\u0022Sonoff\u0022,\u0022fn\u0022:[\u0022Sonoff\u0022,null,null,null,null,null,null,null],\u0022hn\u0022:\u0022sonoff-6004\u0022,\u0022mac\u0022:\u0022600194C47774\u0022,\u0022md\u0022:\u0022Gosund SP1 v23\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u002212.2.0\u0022,\u0022t\u0022:\u0022sonoff\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,0,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0,0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0,\u0022117\u0022:0},\u0022lk\u0022:0,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022sht\u0022:[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],\u0022ver\u0022:1}","tasmota/discovery/600194C47774/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00222022-11-16T14:42:41\u0022},\u0022ver\u0022:1}","tasmota/discovery/600194C48EC2/config":"{\u0022ip\u0022:\u0022192.168.6.29\u0022,\u0022dn\u0022:\u0022Sonoff\u0022,\u0022fn\u0022:[\u0022Sonoff\u0022,null,null,null,null,null,null,null],\u0022hn\u0022:\u0022SP1E-3778\u0022,\u0022mac\u0022:\u0022600194C48EC2\u0022,\u0022md\u0022:\u0022Gosund SP1 v23\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u002212.2.0\u0022,\u0022t\u0022:\u0022SP1E\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,0,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0,0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0,\u0022117\u0022:0},\u0022lk\u0022:0,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022sht\u0022:[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],\u0022ver\u0022:1}","tasmota/discovery/600194C48EC2/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00222022-11-16T14:43:57\u0022},\u0022ver\u0022:1}","tasmota/discovery/600194C4A141/config":"{\u0022ip\u0022:\u0022192.168.6.28\u0022,\u0022dn\u0022:\u0022Sonoff\u0022,\u0022fn\u0022:[\u0022Sonoff\u0022,null,null,null,null,null,null,null],\u0022hn\u0022:\u0022SP1F-0321\u0022,\u0022mac\u0022:\u0022600194C4A141\u0022,\u0022md\u0022:\u0022Gosund SP1 v23\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u002212.2.0\u0022,\u0022t\u0022:\u0022SP1F\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,0,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0,0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0,\u0022117\u0022:0},\u0022lk\u0022:0,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022sht\u0022:[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],\u0022ver\u0022:1}","tasmota/discovery/600194C4A141/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00222022-11-16T14:34:41\u0022},\u0022ver\u0022:1}","tasmota/discovery/840D8E6F987C/config":"{\u0022ip\u0022:\u0022192.168.6.70\u0022,\u0022dn\u0022:\u0022Tasmota\u0022,\u0022fn\u0022:[\u0022Tasmota\u0022,null,null,null,null,null,null,null],\u0022hn\u0022:\u0022tasmota_6F987C-6268\u0022,\u0022mac\u0022:\u0022840D8E6F987C\u0022,\u0022md\u0022:\u0022Gosund SP1 v23\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u00229.3.1\u0022,\u0022t\u0022:\u0022tasmota_6F987C\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,0,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0,0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0,\u0022117\u0022:0},\u0022lk\u0022:1,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022ver\u0022:1}","tasmota/discovery/840D8E6F987C/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00222022-08-20T19:05:02\u0022,\u0022ENERGY\u0022:{\u0022TotalStartTime\u0022:\u00222021-03-12T17:17:32\u0022,\u0022Total\u0022:21.775,\u0022Yesterday\u0022:0.000,\u0022Today\u0022:0.000,\u0022Power\u0022:0,\u0022ApparentPower\u0022:0,\u0022ReactivePower\u0022:0,\u0022Factor\u0022:0.00,\u0022Voltage\u0022:232,\u0022Current\u0022:0.000}},\u0022ver\u0022:1}","tasmota/discovery/84CCA89D5DEF/config":"{\u0022ip\u0022:\u0022192.168.6.47\u0022,\u0022dn\u0022:\u0022Tasmota\u0022,\u0022fn\u0022:[\u0022Tasmota\u0022,null,null,null,null,null,null,null],\u0022hn\u0022:\u0022tasmota_Heizung-7663\u0022,\u0022mac\u0022:\u002284CCA89D5DEF\u0022,\u0022md\u0022:\u0022Sonoff Pow R2\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u00229.2.0\u0022,\u0022t\u0022:\u0022tasmota_Heizung\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,0,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0},\u0022lk\u0022:1,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022ver\u0022:1}","tasmota/discovery/84CCA89D5DEF/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00222022-05-19T21:20:06\u0022,\u0022ENERGY\u0022:{\u0022TotalStartTime\u0022:\u00222021-04-10T20:51:06\u0022,\u0022Total\u0022:0.000,\u0022Yesterday\u0022:0.049,\u0022Today\u0022:0.000,\u0022Power\u0022:3,\u0022ApparentPower\u0022:8,\u0022ReactivePower\u0022:8,\u0022Factor\u0022:0.31,\u0022Voltage\u0022:229,\u0022Current\u0022:0.035}},\u0022ver\u0022:1}","tasmota/discovery/84F3EBB1D0E6/config":"{\u0022ip\u0022:\u0022192.168.6.48\u0022,\u0022dn\u0022:\u0022Tasmota\u0022,\u0022fn\u0022:[\u0022Tasmota\u0022,null,null,null,null,null,null,null],\u0022hn\u0022:\u0022tasmota_isolar-4326\u0022,\u0022mac\u0022:\u002284F3EBB1D0E6\u0022,\u0022md\u0022:\u0022Sonoff Pow R2\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u00229.3.1\u0022,\u0022t\u0022:\u0022tasmota_isolar\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,0,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0,0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0,\u0022117\u0022:0},\u0022lk\u0022:1,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022ver\u0022:1}","tasmota/discovery/84F3EBB1D0E6/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00221970-01-01T00:00:47\u0022,\u0022ENERGY\u0022:{\u0022TotalStartTime\u0022:\u00221970-01-01T00:00:00\u0022,\u0022Total\u0022:0.000,\u0022Yesterday\u0022:0.000,\u0022Today\u0022:0.000,\u0022Power\u0022:1,\u0022ApparentPower\u0022:9,\u0022ReactivePower\u0022:9,\u0022Factor\u0022:0.15,\u0022Voltage\u0022:228,\u0022Current\u0022:0.040}},\u0022ver\u0022:1}","tasmota/discovery/CC50E336F3DB/config":"{\u0022ip\u0022:\u0022192.168.6.21\u0022,\u0022dn\u0022:\u0022Sonoff\u0022,\u0022fn\u0022:[\u0022Sonoff\u0022,null,null,null,null,null,null,null],\u0022hn\u0022:\u0022SP111G-5083\u0022,\u0022mac\u0022:\u0022CC50E336F3DB\u0022,\u0022md\u0022:\u0022BlitzWolf SHP\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u002212.2.0.4\u0022,\u0022t\u0022:\u0022SP111G\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,0,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0,0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0,\u0022117\u0022:0},\u0022lk\u0022:0,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022sht\u0022:[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],\u0022ver\u0022:1}","tasmota/discovery/CC50E336F3DB/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00222022-11-16T14:52:01\u0022},\u0022ver\u0022:1}","tele/S20_52/LWT":"Offline","tele/S20_53/LWT":"Online","tele/S20_54/LWT":"Online","tele/SP111A/LWT":"Online","tele/SP111B/LWT":"Online","tele/SP111D/LWT":"Online","tele/SP111F/LWT":"Offline","tele/SP111G/LWT":"Online","tele/SP111H/LWT":"Online","tele/SP112E/LWT":"Offline","tele/SP112I/LWT":"Offline","tele/SP1A/LWT":"Online","tele/SP1B/LWT":"Online","tele/SP1C/LWT":"Online","tele/SP1E/LWT":"Online","tele/SP1F/LWT":"Online","tele/SP1H/LWT":"Offline","tele/Sonoff4CH-24/LWT":"Offline","tele/shelly25_Wohnzu/LWT":"Online","tele/sonoff/LWT":"Online","tele/sp111c/LWT":"Online","tele/tasmota/LWT":"Offline","tele/tasmota_153330/LWT":"Offline","tele/tasmota_6F987C/LWT":"Online","tele/tasmota_8DDDC2/LWT":"Offline","tele/tasmota_9D5DEF/LWT":"Offline","tele/tasmota_B1D0E6/LWT":"Offline","tele/tasmota_Heizung/LWT":"Online","tele/tasmota_isolar/LWT":"Online"}
2022-12-26 18:56:58 RETAIN {"/sp111a/KS/status":"0","/status":"0","TTGO-LoRa-Gateway/MESSAGE":"Hallo Heltec Radio Packet Nr 961","p4d2mqtt/sensor/Abgas-Solltemperatur_0x13/state":"{\u0022value\u0022: 54.0}","p4d2mqtt/sensor/Abgastemperatur_0x1/state":"{\u0022value\u0022: 44.0}","p4d2mqtt/sensor/AbschoepfAusgang_0xdb/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Absperrschieber-AktuellePosition_0x1a8/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Absperrschieber-Geschlossen_0x1aa/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Absperrschieber-Offen_0x1a9/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Absperrschieber-Wiederholung_0x1ac/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Absperrschieber-Zustand_0x1ad/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/AktivesSaugsystem_0x16d/state":"{\u0022value\u0022: 65535.0}","p4d2mqtt/sensor/AktivesSaugsystem_0x1cc/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/AktuelleLeistungdesSolarWMZkW_0x107/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/AnsteuerungKollektorpumpe_0x98/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/AnzahlderBrennerstarts_0x72/state":"{\u0022value\u0022: 346.0}","p4d2mqtt/sensor/AnzahlderReinigungen_0x128/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/AnzahlderSchaltzyklendesUmschaltventils_0x172/state":"{\u0022value\u0022: 1893.0}","p4d2mqtt/sensor/AufZuBewegungdesRostes_0xb1/state":"{\u0022value\u0022: 1797.0}","p4d2mqtt/sensor/AufgenommeneEnergie_0x189/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Aussentemperatur_0x4/state":"{\u0022value\u0022: 8.0}","p4d2mqtt/sensor/BetriebsartBoiler_0x156/state":"{\u0022value\u0022: 1.0}","p4d2mqtt/sensor/Betriebsart_Kessel/state":"{\u0022value\u0022: \u0022Automatik\u0022}","p4d2mqtt/sensor/BetriebsstundenAscheschnecke_0xb3/state":"{\u0022value\u0022: 4.0}","p4d2mqtt/sensor/BetriebsstundenAustragsschnecke_0xb7/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BetriebsstundenE-Filter_0x126/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BetriebsstundenLambdasonde_0xb5/state":"{\u0022value\u0022: 575.0}","p4d2mqtt/sensor/BetriebsstundenSaugturbine_0x13f/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BetriebsstundenSaugturbinen_0xb6/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BetriebsstundenStokerschnecke_0xad/state":"{\u0022value\u0022: 117.0}","p4d2mqtt/sensor/BetriebsstundenZuendung_0xb4/state":"{\u0022value\u0022: 88.0}","p4d2mqtt/sensor/Betriebsstunden_0x62/state":"{\u0022value\u0022: 555.0}","p4d2mqtt/sensor/BoardtemperaturPelletsmodul_0x5f/state":"{\u0022value\u0022: 25.0}","p4d2mqtt/sensor/Boardtemperatur_0x2/state":"{\u0022value\u0022: 26.0}","p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x90/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x91/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x92/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x93/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x94/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x95/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x96/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x97/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/BoilertemperaturSolarreferenz_0x5e/state":"{\u0022value\u0022: 69.5}","p4d2mqtt/sensor/BoilertemperaturSolarreferenz_0xf9/state":"{\u0022value\u0022: 69.5}","p4d2mqtt/sensor/Boilertemperaturoben_0x5d/state":"{\u0022value\u0022: 65.5}","p4d2mqtt/sensor/BreitbandsondeHeizstrom_0xf3/state":"{\u0022value\u0022: 0.62}","p4d2mqtt/sensor/BreitbandsondeHeizungsSpannung_0xf4/state":"{\u0022value\u0022: 12.993}","p4d2mqtt/sensor/BreitbandsondeNernstSpannung_0xf5/state":"{\u0022value\u0022: 2.5}","p4d2mqtt/sensor/BreitbandsondePumpStrom_0xf6/state":"{\u0022value\u0022: 0.0050000000000000001}","p4d2mqtt/sensor/DrehzahlKesselladepumpe_0xf0/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/DrehzahlKesselladepumpe_0xf1/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/DrehzahlKesselladepumpe_0xf2/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/DrehzahlderPumpe_0xc8/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/DrehzahlderZirkulationsPumpe_0xc9/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Einschub_0x74/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Endlagenschalter_0x1d6/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Endlagenschalter_0x1d9/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/ErrechneteKesselsolltemperatur_0x8a/state":"{\u0022value\u0022: 70.0}","p4d2mqtt/sensor/ErrechneteaktuelleKesselleistung_0x217/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/ErrechnetemitKesselerzeugteWaermemenge_0x218/state":"{\u0022value\u0022: 8.0}","p4d2mqtt/sensor/Feuerraum-Unterdruck_0x9b/state":"{\u0022value\u0022: 8.0}","p4d2mqtt/sensor/FolgekesselOK_0xe6/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/FolgekesselOK_0xe7/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/FolgekesselOK_0xe8/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/FolgekesselStellgroesse_0xec/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/FolgekesselStellgroesse_0xed/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/FolgekesselStellgroesse_0xee/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Fuehler1_0x8/state":"{\u0022value\u0022: 40.5}","p4d2mqtt/sensor/Fuehler2_0x20c/state":"{\u0022value\u0022: 47.0}","p4d2mqtt/sensor/Fuehler2_0x9/state":"{\u0022value\u0022: 127.0}","p4d2mqtt/sensor/FuellstandimPelletsbehaelter_0x71/state":"{\u0022value\u0022: 88.386473429951693}","p4d2mqtt/sensor/GemessenerFahrwegdesAbsperrschiebers_0x1ab/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/KesselanforderungueberHeizkreisoderBoilerstehtan_0xd6/state":"{\u0022value\u0022: 1.0}","p4d2mqtt/sensor/Kesselblockiertdurch_0x1a3/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Kesselstellgroesse_0x12/state":"{\u0022value\u0022: 55.0}","p4d2mqtt/sensor/Kesseltemperatur_0x0/state":"{\u0022value\u0022: 44.0}","p4d2mqtt/sensor/Kesselzustand_0x1c9/state":"{\u0022value\u0022: 8.0}","p4d2mqtt/sensor/KollektorVorlauftemperatur_0x151/state":"{\u0022value\u0022: 7.0}","p4d2mqtt/sensor/Kollektortemperatur_0xc5/state":"{\u0022value\u0022: 7.0}","p4d2mqtt/sensor/Lambdasondenspannunggemessen_0xd3/state":"{\u0022value\u0022: -7.5199999999999996}","p4d2mqtt/sensor/Lambdasondenspannungkorrigiert_0xdc/state":"{\u0022value\u0022: -7.0199999999999996}","p4d2mqtt/sensor/LaufzeitKollektorpumpe_0xcc/state":"{\u0022value\u0022: 154.0}","p4d2mqtt/sensor/MAX-Sensor_0x1d0/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/MIN-Sensor_0x1cf/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/PelletVerbrauchgexpert_0x110/state":"{\u0022value\u0022: 593.0}","p4d2mqtt/sensor/PelletverbrauchGesamt_0x114/state":"{\u0022value\u0022: 1.5}","p4d2mqtt/sensor/PositionRostmotor_0xa2/state":"{\u0022value\u0022: 12.6}","p4d2mqtt/sensor/Positionsschalter_0x1d7/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Positionsschalter_0x1da/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/PufferladezustandDiskret_0x1c0/state":"{\u0022value\u0022: 2.0}","p4d2mqtt/sensor/Pufferladezustand_0x1bf/state":"{\u0022value\u0022: 41.0}","p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8c/state":"{\u0022value\u0022: 100.0}","p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8d/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8e/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8f/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/PuffertemperaturMitte_0x77/state":"{\u0022value\u0022: 127.5}","p4d2mqtt/sensor/Puffertemperaturoben_0x76/state":"{\u0022value\u0022: 53.5}","p4d2mqtt/sensor/Puffertemperaturunten_0x78/state":"{\u0022value\u0022: 36.5}","p4d2mqtt/sensor/PumpeZweitkessel_0x12e/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Resetierbarerkg-Zaehler_0x111/state":"{\u0022value\u0022: 562.0}","p4d2mqtt/sensor/Resetierbarert-Zaehler_0x112/state":"{\u0022value\u0022: 1.0}","p4d2mqtt/sensor/Restsauerstoffgehalt_0x3/state":"{\u0022value\u0022: 20.899999999999999}","p4d2mqtt/sensor/Restsauerstoffgehaltgedaempft_0x119/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Roststatus_0x130/state":"{\u0022value\u0022: 1.0}","p4d2mqtt/sensor/RuecklaufmischerimQBus_0x198/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Sauerstoffregler_0x75/state":"{\u0022value\u0022: 15.0}","p4d2mqtt/sensor/Saugzug-Ansteuerung_0xf/state":"{\u0022value\u0022: 15.0}","p4d2mqtt/sensor/Saugzugdrehzahl_0x7/state":"{\u0022value\u0022: 450.0}","p4d2mqtt/sensor/SolarfuehlerPufferoben_0x12f/state":"{\u0022value\u0022: 53.5}","p4d2mqtt/sensor/SolarfuehlerPufferunten_0x8b/state":"{\u0022value\u0022: 36.5}","p4d2mqtt/sensor/State_Duration_1/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/State_Duration_11/state":"{\u0022value\u0022: 30.0}","p4d2mqtt/sensor/State_Duration_13/state":"{\u0022value\u0022: 6.0}","p4d2mqtt/sensor/State_Duration_15/state":"{\u0022value\u0022: 7.0}","p4d2mqtt/sensor/State_Duration_19/state":"{\u0022value\u0022: 837.0}","p4d2mqtt/sensor/State_Duration_2/state":"{\u0022value\u0022: 5.0}","p4d2mqtt/sensor/State_Duration_3/state":"{\u0022value\u0022: 155.0}","p4d2mqtt/sensor/State_Duration_7/state":"{\u0022value\u0022: 9.0}","p4d2mqtt/sensor/State_Duration_8/state":"{\u0022value\u0022: 26.0}","p4d2mqtt/sensor/State_Duration_9/state":"{\u0022value\u0022: 3.0}","p4d2mqtt/sensor/Status/state":"{\u0022value\u0022: \u0022Vorwärmen\u0022}","p4d2mqtt/sensor/StokerZyklen_0x113/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/StroemungsschalteranderBrauchwasserLeitung_0xd2/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Stromaufnahme24VDCPelletsmodul_0xa3/state":"{\u0022value\u0022: 0.25}","p4d2mqtt/sensor/StromaufnahmederAustragschnecke_0x61/state":"{\u0022value\u0022: 0.69099999999999995}","p4d2mqtt/sensor/StundenimHeizen_0xdd/state":"{\u0022value\u0022: 350.0}","p4d2mqtt/sensor/StundenseitletzterWartung_0xd5/state":"{\u0022value\u0022: 560.0}","p4d2mqtt/sensor/Tagesertragvor1Tag_0x14a/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Tagesertragvor2Tagen_0x14b/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Tagesertragvor3Tagen_0x14c/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Tagesertragvor4Tagen_0x14d/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Tagesertragvor5Tagen_0x14e/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Tagesertragvor6Tagen_0x14f/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/TemperaturunterdemRost_0x17c/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/VerbleibendeHeizstundenbiszurAscheentleerenWarnung_0x117/state":"{\u0022value\u0022: 645.0}","p4d2mqtt/sensor/Vorlauf-Isttemperatur_0x15/state":"{\u0022value\u0022: 41.0}","p4d2mqtt/sensor/Vorlauf-Solltemperatur_0x16/state":"{\u0022value\u0022: 41.5}","p4d2mqtt/sensor/ZeitbiszurnaechstenReinigung_0x12a/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/ZustandAnheizassistent_0x170/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/ZustandderSaugaustragung_0x1d2/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/ZustanddesBrennerrelais_0xcb/state":"{\u0022value\u0022: 0.0}","p4d2mqtt/sensor/Zustandslaufzeitaktuell_0xa4/state":"{\u0022value\u0022: 69.0}","p4d2mqtt/sensor/Zustandslaufzeitmaximal_0xa5/state":"{\u0022value\u0022: 1800.0}","p4d2mqtt/sensor/Zykluszeit_0xe/state":"{\u0022value\u0022: 56.200000000000003}","presence_nodes/ESP32AB":"DISCONNECTED","presence_nodes/ESP32BB":"DISCONNECTED","presence_nodes/Mobil":"DISCONNECTED","presence_nodes/OUTDOOR1":"CONNECTED","presence_nodes/OUTDOOR2":"CONNECTED","presence_nodes/Outdoor1":"DISCONNECTED","tasmota/discovery/24A160153330/config":"{\u0022ip\u0022:\u0022192.168.6.74\u0022,\u0022dn\u0022:\u0022Tasmota\u0022,\u0022fn\u0022:[\u0022Tasmota\u0022,\u0022Tasmota2\u0022,null,null,null,null,null,null],\u0022hn\u0022:\u0022SP112E-4912\u0022,\u0022mac\u0022:\u002224A160153330\u0022,\u0022md\u0022:\u0022SP112\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u00229.3.1\u0022,\u0022t\u0022:\u0022SP112E\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,1,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0,0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0,\u0022117\u0022:0},\u0022lk\u0022:1,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022ver\u0022:1}","tasmota/discovery/24A160153330/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00222022-09-02T09:29:03\u0022,\u0022ENERGY\u0022:{\u0022TotalStartTime\u0022:\u00222021-03-09T23:10:55\u0022,\u0022Total\u0022:0.000,\u0022Yesterday\u0022:0.000,\u0022Today\u0022:0.000,\u0022Power\u0022:1,\u0022ApparentPower\u0022:3,\u0022ReactivePower\u0022:3,\u0022Factor\u0022:0.36,\u0022Voltage\u0022:237,\u0022Current\u0022:0.013}},\u0022ver\u0022:1}","tasmota/discovery/483FDA8DDDC2/config":"{\u0022ip\u0022:\u0022192.168.6.45\u0022,\u0022dn\u0022:\u0022Tasmota\u0022,\u0022fn\u0022:[\u0022Tasmota\u0022,\u0022Tasmota2\u0022,null,null,null,null,null,null],\u0022hn\u0022:\u0022shelly25_Wohnzu-7618\u0022,\u0022mac\u0022:\u0022483FDA8DDDC2\u0022,\u0022md\u0022:\u0022Shelly 2.5\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u00229.2.0\u0022,\u0022t\u0022:\u0022shelly25_Wohnzu\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,1,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0},\u0022lk\u0022:1,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022ver\u0022:1}","tasmota/discovery/483FDA8DDDC2/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00221970-01-01T00:00:23\u0022,\u0022Switch1\u0022:\u0022OFF\u0022,\u0022Switch2\u0022:\u0022OFF\u0022,\u0022ANALOG\u0022:{\u0022Temperature\u0022:49.7},\u0022ENERGY\u0022:{\u0022TotalStartTime\u0022:\u00221970-01-01T00:00:00\u0022,\u0022Total\u0022:0.000,\u0022Yesterday\u0022:0.000,\u0022Today\u0022:0.000,\u0022Power\u0022:[0,0],\u0022ApparentPower\u0022:[0,0],\u0022ReactivePower\u0022:[0,0],\u0022Factor\u0022:[0.00,0.00],\u0022Frequency\u0022:50,\u0022Voltage\u0022:231,\u0022Current\u0022:[0.000,0.000]},\u0022TempUnit\u0022:\u0022C\u0022},\u0022ver\u0022:1}","tasmota/discovery/600194C47774/config":"{\u0022ip\u0022:\u0022192.168.6.31\u0022,\u0022dn\u0022:\u0022Sonoff\u0022,\u0022fn\u0022:[\u0022Sonoff\u0022,null,null,null,null,null,null,null],\u0022hn\u0022:\u0022sonoff-6004\u0022,\u0022mac\u0022:\u0022600194C47774\u0022,\u0022md\u0022:\u0022Gosund SP1 v23\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u002212.2.0\u0022,\u0022t\u0022:\u0022sonoff\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,0,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0,0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0,\u0022117\u0022:0},\u0022lk\u0022:0,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022sht\u0022:[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],\u0022ver\u0022:1}","tasmota/discovery/600194C47774/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00222022-11-16T14:42:41\u0022},\u0022ver\u0022:1}","tasmota/discovery/600194C48EC2/config":"{\u0022ip\u0022:\u0022192.168.6.29\u0022,\u0022dn\u0022:\u0022Sonoff\u0022,\u0022fn\u0022:[\u0022Sonoff\u0022,null,null,null,null,null,null,null],\u0022hn\u0022:\u0022SP1E-3778\u0022,\u0022mac\u0022:\u0022600194C48EC2\u0022,\u0022md\u0022:\u0022Gosund SP1 v23\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u002212.2.0\u0022,\u0022t\u0022:\u0022SP1E\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,0,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0,0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0,\u0022117\u0022:0},\u0022lk\u0022:0,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022sht\u0022:[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],\u0022ver\u0022:1}","tasmota/discovery/600194C48EC2/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00222022-11-16T14:43:57\u0022},\u0022ver\u0022:1}","tasmota/discovery/600194C4A141/config":"{\u0022ip\u0022:\u0022192.168.6.28\u0022,\u0022dn\u0022:\u0022Sonoff\u0022,\u0022fn\u0022:[\u0022Sonoff\u0022,null,null,null,null,null,null,null],\u0022hn\u0022:\u0022SP1F-0321\u0022,\u0022mac\u0022:\u0022600194C4A141\u0022,\u0022md\u0022:\u0022Gosund SP1 v23\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u002212.2.0\u0022,\u0022t\u0022:\u0022SP1F\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,0,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0,0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0,\u0022117\u0022:0},\u0022lk\u0022:0,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022sht\u0022:[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],\u0022ver\u0022:1}","tasmota/discovery/600194C4A141/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00222022-11-16T14:34:41\u0022},\u0022ver\u0022:1}","tasmota/discovery/840D8E6F987C/config":"{\u0022ip\u0022:\u0022192.168.6.70\u0022,\u0022dn\u0022:\u0022Tasmota\u0022,\u0022fn\u0022:[\u0022Tasmota\u0022,null,null,null,null,null,null,null],\u0022hn\u0022:\u0022tasmota_6F987C-6268\u0022,\u0022mac\u0022:\u0022840D8E6F987C\u0022,\u0022md\u0022:\u0022Gosund SP1 v23\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u00229.3.1\u0022,\u0022t\u0022:\u0022tasmota_6F987C\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,0,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0,0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0,\u0022117\u0022:0},\u0022lk\u0022:1,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022ver\u0022:1}","tasmota/discovery/840D8E6F987C/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00222022-08-20T19:05:02\u0022,\u0022ENERGY\u0022:{\u0022TotalStartTime\u0022:\u00222021-03-12T17:17:32\u0022,\u0022Total\u0022:21.775,\u0022Yesterday\u0022:0.000,\u0022Today\u0022:0.000,\u0022Power\u0022:0,\u0022ApparentPower\u0022:0,\u0022ReactivePower\u0022:0,\u0022Factor\u0022:0.00,\u0022Voltage\u0022:232,\u0022Current\u0022:0.000}},\u0022ver\u0022:1}","tasmota/discovery/84CCA89D5DEF/config":"{\u0022ip\u0022:\u0022192.168.6.47\u0022,\u0022dn\u0022:\u0022Tasmota\u0022,\u0022fn\u0022:[\u0022Tasmota\u0022,null,null,null,null,null,null,null],\u0022hn\u0022:\u0022tasmota_Heizung-7663\u0022,\u0022mac\u0022:\u002284CCA89D5DEF\u0022,\u0022md\u0022:\u0022Sonoff Pow R2\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u00229.2.0\u0022,\u0022t\u0022:\u0022tasmota_Heizung\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,0,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0},\u0022lk\u0022:1,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022ver\u0022:1}","tasmota/discovery/84CCA89D5DEF/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00222022-05-19T21:20:06\u0022,\u0022ENERGY\u0022:{\u0022TotalStartTime\u0022:\u00222021-04-10T20:51:06\u0022,\u0022Total\u0022:0.000,\u0022Yesterday\u0022:0.049,\u0022Today\u0022:0.000,\u0022Power\u0022:3,\u0022ApparentPower\u0022:8,\u0022ReactivePower\u0022:8,\u0022Factor\u0022:0.31,\u0022Voltage\u0022:229,\u0022Current\u0022:0.035}},\u0022ver\u0022:1}","tasmota/discovery/84F3EBB1D0E6/config":"{\u0022ip\u0022:\u0022192.168.6.48\u0022,\u0022dn\u0022:\u0022Tasmota\u0022,\u0022fn\u0022:[\u0022Tasmota\u0022,null,null,null,null,null,null,null],\u0022hn\u0022:\u0022tasmota_isolar-4326\u0022,\u0022mac\u0022:\u002284F3EBB1D0E6\u0022,\u0022md\u0022:\u0022Sonoff Pow R2\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u00229.3.1\u0022,\u0022t\u0022:\u0022tasmota_isolar\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,0,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0,0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0,\u0022117\u0022:0},\u0022lk\u0022:1,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022ver\u0022:1}","tasmota/discovery/84F3EBB1D0E6/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00221970-01-01T00:00:47\u0022,\u0022ENERGY\u0022:{\u0022TotalStartTime\u0022:\u00221970-01-01T00:00:00\u0022,\u0022Total\u0022:0.000,\u0022Yesterday\u0022:0.000,\u0022Today\u0022:0.000,\u0022Power\u0022:1,\u0022ApparentPower\u0022:9,\u0022ReactivePower\u0022:9,\u0022Factor\u0022:0.15,\u0022Voltage\u0022:228,\u0022Current\u0022:0.040}},\u0022ver\u0022:1}","tasmota/discovery/CC50E336F3DB/config":"{\u0022ip\u0022:\u0022192.168.6.21\u0022,\u0022dn\u0022:\u0022Sonoff\u0022,\u0022fn\u0022:[\u0022Sonoff\u0022,null,null,null,null,null,null,null],\u0022hn\u0022:\u0022SP111G-5083\u0022,\u0022mac\u0022:\u0022CC50E336F3DB\u0022,\u0022md\u0022:\u0022BlitzWolf SHP\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022OFF\u0022,\u0022ON\u0022,\u0022TOGGLE\u0022,\u0022HOLD\u0022],\u0022sw\u0022:\u002212.2.0.4\u0022,\u0022t\u0022:\u0022SP111G\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,0,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0,0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0,\u0022117\u0022:0},\u0022lk\u0022:0,\u0022lt_st\u0022:0,\u0022sho\u0022:[0,0,0,0],\u0022sht\u0022:[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],\u0022ver\u0022:1}","tasmota/discovery/CC50E336F3DB/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00222022-11-16T14:52:01\u0022},\u0022ver\u0022:1}","tele/S20_52/LWT":"Offline","tele/S20_53/LWT":"Online","tele/S20_54/LWT":"Online","tele/SP111A/LWT":"Online","tele/SP111B/LWT":"Online","tele/SP111D/LWT":"Online","tele/SP111F/LWT":"Offline","tele/SP111G/LWT":"Online","tele/SP111H/LWT":"Online","tele/SP112E/LWT":"Offline","tele/SP112I/LWT":"Offline","tele/SP1A/LWT":"Online","tele/SP1B/LWT":"Online","tele/SP1C/LWT":"Online","tele/SP1E/LWT":"Online","tele/SP1F/LWT":"Online","tele/SP1H/LWT":"Offline","tele/Sonoff4CH-24/LWT":"Offline","tele/shelly25_Wohnzu/LWT":"Online","tele/sonoff/LWT":"Online","tele/sp111c/LWT":"Online","tele/tasmota/LWT":"Offline","tele/tasmota_153330/LWT":"Offline","tele/tasmota_6F987C/LWT":"Online","tele/tasmota_8DDDC2/LWT":"Offline","tele/tasmota_9D5DEF/LWT":"Offline","tele/tasmota_B1D0E6/LWT":"Offline","tele/tasmota_Heizung/LWT":"Online","tele/tasmota_isolar/LWT":"Online"}
2022-12-26 18:56:56 nrclients 22
2022-12-26 16:04:03 state Initialized
clients:
.....................
Kann mir niemand dabei helfen?
p4d2mqtt/sensor/Abgas-Solltemperatur_0x13/state:
ts 1672077417.71834
val {"value": 54.0}
p4d2mqtt/sensor/Abgastemperatur_0x1/state:
ts 1672077417.42267
val {"value": 44.0}
p4d2mqtt/sensor/AbschoepfAusgang_0xdb/state:
ts 1672077388.41955
val {"value": 0.0}
p4d2mqtt/sensor/Absperrschieber-AktuellePosition_0x1a8/state:
ts 1672077389.3602
val {"value": 0.0}
p4d2mqtt/sensor/Absperrschieber-Geschlossen_0x1aa/state:
ts 1672077389.41356
val {"value": 0.0}
p4d2mqtt/sensor/Absperrschieber-Offen_0x1a9/state:
ts 1672077389.38313
val {"value": 0.0}
p4d2mqtt/sensor/Absperrschieber-Wiederholung_0x1ac/state:
ts 1672077389.47437
val {"value": 0.0}
p4d2mqtt/sensor/Absperrschieber-Zustand_0x1ad/state:
ts 1672077389.51487
val {"value": 0.0}
p4d2mqtt/sensor/AktivesSaugsystem_0x16d/state:
ts 1672077389.12966
val {"value": 65535.0}
p4d2mqtt/sensor/AktivesSaugsystem_0x1cc/state:
ts 1672077389.63673
val {"value": 0.0}
p4d2mqtt/sensor/AktuelleLeistungdesSolarWMZkW_0x107/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/AnsteuerungKollektorpumpe_0x98/state:
ts 1672077387.88172
val {"value": 0.0}
p4d2mqtt/sensor/AnzahlderBrennerstarts_0x72/state:
ts 1672077417.98593
val {"value": 346.0}
p4d2mqtt/sensor/AnzahlderReinigungen_0x128/state:
ts 1672077388.88606
val {"value": 0.0}
p4d2mqtt/sensor/AnzahlderSchaltzyklendesUmschaltventils_0x172/state:
ts 1672077389.19047
val {"value": 1893.0}
p4d2mqtt/sensor/AufZuBewegungdesRostes_0xb1/state:
ts 1672077388.08477
val {"value": 1797.0}
p4d2mqtt/sensor/AufgenommeneEnergie_0x189/state:
ts 1672077389.27148
val {"value": 0.0}
p4d2mqtt/sensor/Aussentemperatur_0x4/state:
ts 1672077417.43487
val {"value": 8.0}
p4d2mqtt/sensor/BetriebsartBoiler_0x156/state:
ts 1672077389.09916
val {"value": 1.0}
p4d2mqtt/sensor/Betriebsart_Kessel/state:
ts 1672077417.39506
val {"value": "Automatik"}
p4d2mqtt/sensor/BetriebsstundenAscheschnecke_0xb3/state:
ts 1672077388.11521
val {"value": 4.0}
p4d2mqtt/sensor/BetriebsstundenAustragsschnecke_0xb7/state:
ts 1672077388.25858
val {"value": 0.0}
p4d2mqtt/sensor/BetriebsstundenE-Filter_0x126/state:
ts 1672077388.87468
val {"value": 0.0}
p4d2mqtt/sensor/BetriebsstundenLambdasonde_0xb5/state:
ts 1672077388.16596
val {"value": 575.0}
p4d2mqtt/sensor/BetriebsstundenSaugturbine_0x13f/state:
ts 1672077389.02813
val {"value": 0.0}
p4d2mqtt/sensor/BetriebsstundenSaugturbinen_0xb6/state:
ts 1672077388.22709
val {"value": 0.0}
p4d2mqtt/sensor/BetriebsstundenStokerschnecke_0xad/state:
ts 1672077388.05436
val {"value": 117.0}
p4d2mqtt/sensor/BetriebsstundenZuendung_0xb4/state:
ts 1672077388.14566
val {"value": 88.0}
p4d2mqtt/sensor/Betriebsstunden_0x62/state:
ts 1672077417.97584
val {"value": 555.0}
p4d2mqtt/sensor/BoardtemperaturPelletsmodul_0x5f/state:
ts 1672077417.73903
val {"value": 25.0}
p4d2mqtt/sensor/Boardtemperatur_0x2/state:
ts 1672077417.42682
val {"value": 26.0}
p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x90/state:
ts 1672077387.83097
val {"value": 0.0}
p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x91/state:
ts 1672077387.85131
val {"value": 0.0}
p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x92/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x93/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x94/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x95/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x96/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/BoilerpumpeAnsteuerung_0x97/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/BoilertemperaturSolarreferenz_0x5e/state:
ts 1672077417.7349
val {"value": 69.5}
p4d2mqtt/sensor/BoilertemperaturSolarreferenz_0xf9/state:
ts 1672077388.6428
val {"value": 69.5}
p4d2mqtt/sensor/Boilertemperaturoben_0x5d/state:
ts 1672077417.73076
val {"value": 65.5}
p4d2mqtt/sensor/BreitbandsondeHeizstrom_0xf3/state:
ts 1672077388.52106
val {"value": 0.62}
p4d2mqtt/sensor/BreitbandsondeHeizungsSpannung_0xf4/state:
ts 1672077388.55136
val {"value": 12.993}
p4d2mqtt/sensor/BreitbandsondeNernstSpannung_0xf5/state:
ts 1672077388.58178
val {"value": 2.5}
p4d2mqtt/sensor/BreitbandsondePumpStrom_0xf6/state:
ts 1672077388.61218
val {"value": 0.0050000000000000001}
p4d2mqtt/sensor/DrehzahlKesselladepumpe_0xf0/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/DrehzahlKesselladepumpe_0xf1/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/DrehzahlKesselladepumpe_0xf2/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/DrehzahlderPumpe_0xc8/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/DrehzahlderZirkulationsPumpe_0xc9/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/Einschub_0x74/state:
ts 1672077417.99049
val {"value": 0.0}
p4d2mqtt/sensor/Endlagenschalter_0x1d6/state:
ts 1672077389.7842
val {"value": 0.0}
p4d2mqtt/sensor/Endlagenschalter_0x1d9/state:
ts 1672077389.82958
val {"value": 0.0}
p4d2mqtt/sensor/ErrechneteKesselsolltemperatur_0x8a/state:
ts 1672077418.02334
val {"value": 70.0}
p4d2mqtt/sensor/ErrechneteaktuelleKesselleistung_0x217/state:
ts 1672077389.92091
val {"value": 0.0}
p4d2mqtt/sensor/ErrechnetemitKesselerzeugteWaermemenge_0x218/state:
ts 1672077389.95153
val {"value": 8.0}
p4d2mqtt/sensor/Feuerraum-Unterdruck_0x9b/state:
ts 1672077387.89208
val {"value": 8.0}
p4d2mqtt/sensor/FolgekesselOK_0xe6/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/FolgekesselOK_0xe7/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/FolgekesselOK_0xe8/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/FolgekesselStellgroesse_0xec/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/FolgekesselStellgroesse_0xed/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/FolgekesselStellgroesse_0xee/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/Fuehler1_0x8/state:
ts 1672077417.45399
val {"value": 40.5}
p4d2mqtt/sensor/Fuehler2_0x20c/state:
ts 1672077389.90189
val {"value": 47.0}
p4d2mqtt/sensor/Fuehler2_0x9/state:
ts 1672077417.69402
val {"value": 127.0}
p4d2mqtt/sensor/FuellstandimPelletsbehaelter_0x71/state:
ts 1672077417.98083
val {"value": 88.386473429951693}
p4d2mqtt/sensor/GemessenerFahrwegdesAbsperrschiebers_0x1ab/state:
ts 1672077389.44395
val {"value": 0.0}
p4d2mqtt/sensor/KesselanforderungueberHeizkreisoderBoilerstehtan_0xd6/state:
ts 1672077388.38914
val {"value": 1.0}
p4d2mqtt/sensor/Kesselblockiertdurch_0x1a3/state:
ts 1672077389.32842
val {"value": 0.0}
p4d2mqtt/sensor/Kesselstellgroesse_0x12/state:
ts 1672077417.71431
val {"value": 55.0}
p4d2mqtt/sensor/Kesseltemperatur_0x0/state:
ts 1672077417.40774
val {"value": 44.0}
p4d2mqtt/sensor/Kesselzustand_0x1c9/state:
ts 1672077389.60633
val {"value": 8.0}
p4d2mqtt/sensor/KollektorVorlauftemperatur_0x151/state:
ts 1672077389.0586
val {"value": 7.0}
p4d2mqtt/sensor/Kollektortemperatur_0xc5/state:
ts 1672077388.28311
val {"value": 7.0}
p4d2mqtt/sensor/Lambdasondenspannunggemessen_0xd3/state:
ts 1672077388.33831
val {"value": -7.5199999999999996}
p4d2mqtt/sensor/Lambdasondenspannungkorrigiert_0xdc/state:
ts 1672077388.45005
val {"value": -7.0199999999999996}
p4d2mqtt/sensor/LaufzeitKollektorpumpe_0xcc/state:
ts 1672077388.30228
val {"value": 154.0}
p4d2mqtt/sensor/MAX-Sensor_0x1d0/state:
ts 1672077389.69761
val {"value": 0.0}
p4d2mqtt/sensor/MIN-Sensor_0x1cf/state:
ts 1672077389.66716
val {"value": 0.0}
p4d2mqtt/sensor/PelletVerbrauchgexpert_0x110/state:
ts 1672077388.67314
val {"value": 593.0}
p4d2mqtt/sensor/PelletverbrauchGesamt_0x114/state:
ts 1672077388.80499
val {"value": 1.5}
p4d2mqtt/sensor/PositionRostmotor_0xa2/state:
ts 1672077387.92255
val {"value": 12.6}
p4d2mqtt/sensor/Positionsschalter_0x1d7/state:
ts 1672077389.79903
val {"value": 0.0}
p4d2mqtt/sensor/Positionsschalter_0x1da/state:
ts 1672077389.88199
val {"value": 0.0}
p4d2mqtt/sensor/PufferladezustandDiskret_0x1c0/state:
ts 1672077389.57591
val {"value": 2.0}
p4d2mqtt/sensor/Pufferladezustand_0x1bf/state:
ts 1672077389.53536
val {"value": 41.0}
p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8c/state:
ts 1672077387.72845
val {"value": 100.0}
p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8d/state:
ts 1672077387.74989
val {"value": 0.0}
p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8e/state:
ts 1672077387.80964
val {"value": 0.0}
p4d2mqtt/sensor/PufferpumpenAnsteuerung_0x8f/state:
ts 1672077387.82688
val {"value": 0.0}
p4d2mqtt/sensor/PuffertemperaturMitte_0x77/state:
ts 1672077418.00386
val {"value": 127.5}
p4d2mqtt/sensor/Puffertemperaturoben_0x76/state:
ts 1672077417.99957
val {"value": 53.5}
p4d2mqtt/sensor/Puffertemperaturunten_0x78/state:
ts 1672077418.00795
val {"value": 36.5}
p4d2mqtt/sensor/PumpeZweitkessel_0x12e/state:
ts 1672077388.94697
val {"value": 0.0}
p4d2mqtt/sensor/Resetierbarerkg-Zaehler_0x111/state:
ts 1672077388.7231
val {"value": 562.0}
p4d2mqtt/sensor/Resetierbarert-Zaehler_0x112/state:
ts 1672077388.74629
val {"value": 1.0}
p4d2mqtt/sensor/Restsauerstoffgehalt_0x3/state:
ts 1672077417.43086
val {"value": 20.899999999999999}
p4d2mqtt/sensor/Restsauerstoffgehaltgedaempft_0x119/state:
ts 1672077388.86737
val {"value": 0.0}
p4d2mqtt/sensor/Roststatus_0x130/state:
ts 1672077388.99773
val {"value": 1.0}
p4d2mqtt/sensor/RuecklaufmischerimQBus_0x198/state:
ts 1672077389.30192
val {"value": 0.0}
p4d2mqtt/sensor/Sauerstoffregler_0x75/state:
ts 1672077417.99531
val {"value": 15.0}
p4d2mqtt/sensor/Saugzug-Ansteuerung_0xf/state:
ts 1672077417.71025
val {"value": 15.0}
p4d2mqtt/sensor/Saugzugdrehzahl_0x7/state:
ts 1672077417.43903
val {"value": 450.0}
p4d2mqtt/sensor/SolarfuehlerPufferoben_0x12f/state:
ts 1672077388.97738
val {"value": 53.5}
p4d2mqtt/sensor/SolarfuehlerPufferunten_0x8b/state:
ts 1672077418.0284
val {"value": 36.5}
p4d2mqtt/sensor/State_Duration_1/state:
ts 1672077417.10533
val {"value": 0.0}
p4d2mqtt/sensor/State_Duration_11/state:
ts 1672077417.13879
val {"value": 30.0}
p4d2mqtt/sensor/State_Duration_13/state:
ts 1672077417.14297
val {"value": 6.0}
p4d2mqtt/sensor/State_Duration_15/state:
ts 1672077417.1471
val {"value": 7.0}
p4d2mqtt/sensor/State_Duration_19/state:
ts 1672077417.15117
val {"value": 837.0}
p4d2mqtt/sensor/State_Duration_2/state:
ts 1672077417.10979
val {"value": 5.0}
p4d2mqtt/sensor/State_Duration_3/state:
ts 1672077417.11401
val {"value": 155.0}
p4d2mqtt/sensor/State_Duration_7/state:
ts 1672077417.1183
val {"value": 9.0}
p4d2mqtt/sensor/State_Duration_8/state:
ts 1672077417.12232
val {"value": 26.0}
p4d2mqtt/sensor/State_Duration_9/state:
ts 1672077417.13453
val {"value": 3.0}
p4d2mqtt/sensor/Status/state:
ts 1672077417.15527
val {"value": "Vorwärmen"}
p4d2mqtt/sensor/StokerZyklen_0x113/state:
ts 1672077388.77452
val {"value": 0.0}
p4d2mqtt/sensor/StroemungsschalteranderBrauchwasserLeitung_0xd2/state:
ts 1672077388.30782
val {"value": 0.0}
p4d2mqtt/sensor/Stromaufnahme24VDCPelletsmodul_0xa3/state:
ts 1672077387.96327
val {"value": 0.25}
p4d2mqtt/sensor/StromaufnahmederAustragschnecke_0x61/state:
ts 1672077417.81129
val {"value": 0.69099999999999995}
p4d2mqtt/sensor/StundenimHeizen_0xdd/state:
ts 1672077388.49051
val {"value": 350.0}
p4d2mqtt/sensor/StundenseitletzterWartung_0xd5/state:
ts 1672077388.36867
val {"value": 560.0}
p4d2mqtt/sensor/Tagesertragvor1Tag_0x14a/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/Tagesertragvor2Tagen_0x14b/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/Tagesertragvor3Tagen_0x14c/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/Tagesertragvor4Tagen_0x14d/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/Tagesertragvor5Tagen_0x14e/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/Tagesertragvor6Tagen_0x14f/state:
ts 1672067081.68797
val {"value": 0.0}
p4d2mqtt/sensor/TemperaturunterdemRost_0x17c/state:
ts 1672077389.22083
val {"value": 0.0}
p4d2mqtt/sensor/VerbleibendeHeizstundenbiszurAscheentleerenWarnung_0x117/state:
ts 1672077388.84734
val {"value": 645.0}
p4d2mqtt/sensor/Vorlauf-Isttemperatur_0x15/state:
ts 1672077417.72234
val {"value": 41.0}
p4d2mqtt/sensor/Vorlauf-Solltemperatur_0x16/state:
ts 1672077417.7265
val {"value": 41.5}
p4d2mqtt/sensor/ZeitbiszurnaechstenReinigung_0x12a/state:
ts 1672077388.91658
val {"value": 0.0}
p4d2mqtt/sensor/ZustandAnheizassistent_0x170/state:
ts 1672077389.16003
val {"value": 0.0}
p4d2mqtt/sensor/ZustandderSaugaustragung_0x1d2/state:
ts 1672077389.75938
val {"value": 0.0}
p4d2mqtt/sensor/ZustanddesBrennerrelais_0xcb/state:
ts 1672077388.2983
val {"value": 0.0}
p4d2mqtt/sensor/Zustandslaufzeitaktuell_0xa4/state:
ts 1672077387.99357
val {"value": 69.0}
p4d2mqtt/sensor/Zustandslaufzeitmaximal_0xa5/state:
ts 1672077388.02397
val {"value": 1800.0}
p4d2mqtt/sensor/Zykluszeit_0xe/state:
ts 1672077417.69825
val {"value": 56.200000000000003}
https://forum.fhem.de/index.php/topic,112327.0.html
Insbesondere: was ist mit dem "doppelten autocreate"?
Eigentlich sollte irgendwas angelegt werden, obwohl Klammern und Leerzeichen für Readings nicht optimal sind...
Hab die Infos wieder hinzugefügt, leider hat es die Anzahlt der Zeichen gesprengt.
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).
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
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...
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:
- FHEM als MQTT Server konfigurieren: https://wiki.fhem.de/wiki/MQTT#FHEM_als_MQTT-Server
- MQTT2_Device "MQTT2_p4d_publisher" wird automatisch angelegt
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