Alles klar.
Und vielen Dank für die ganzen Kaffee !!
Ich dachte eher an Pizza und Kaffee!
Viel Spaß noch
Alles klar.
Und vielen Dank für die ganzen Kaffee !!
Ich dachte eher an Pizza und Kaffee!
Viel Spaß noch
kannst mir ja 'ne Tasse Kaffee zum wach bleiben senden
Das habe ich direkt mal gemacht.
Alles anzeigen
BTW, die Version 0.3.22 ist jetzt verfügbar, damit sollte der eine Punkt (ein Topic fertig sein).
Die Details werden nur einmalig nach dem p4d Start versendet (nach jedem Start)
Zu Verwendung/Konfiguration:
es gibt im WEBIF nun die Möglichkeit bei "MQTT Data Topic Name" '<NAME>' als Template zu versenden, das sieht dann zum Beispiel so aus:
p4d2mqtt/sensor/<NAME>/state
Macht man das so ist alles beim alten, <NAME> wird gegen den Namen des Messwertes ersetzt und damit für jeden ein Topic angelegt, das benötigen wir für den homeassistant.
Für Openhab und FHEM dort einfach nur ein Topic angeben (ohne den Paltzhalter <NAME>) dann kommt alles in ein Topic.
Super! Für FHEM/Openhab User ändert sich also nichts. Verstehe ich das richtig? Ich trage unter „MQTT Data Topic Name“ wie gehabt „p4d2mqtt/sensor/“ ein. Das „sensor/“ am Ende ist optional. Das Thema Baugruppen/Subgeräte betrachtest du später.
Wegen der Fehler-Messages, schreibt wie ihr es haben möchtet - wenn es ins Design passt setzte ich es um.
Ich dachte mit der Diskussion sind wir jetzt durch:
Für mich würds passen, wie Jörg es beschrieben hat. Die Array-Variante sehe ich als die bessere Variante.
Viele Grüße Hoppel
Bitte nicht falsch verstehen. War lediglich meine Meinung dazu ohne jemand zu nahe treten zu wollen.
Alles gut!
Ich bin ja froh dass das Thema überhaupt verfolgt wird.
Das geht mir genauso. Ich habe p4d vor knapp 2 Wochen installiert und gleich „1000“ Wünsche/Anforderungen/Anpassungsbedarfe. Auch nicht so die feine Art...
Ich wollte eigentlich damit sage, das ich keine Lösung für mich alleine möchte, sondern das für "alle" passen sollte. Und eine Umsetzung von Anforderungen in Software ist immer auf eine klare Darlegung der Fakten angewiesen. Wobei die Umsetzung oft unterschiedlich angegangen wird. Und würde ein Jörg zum Schluss kommen, er möchte das so nicht umsetzen, wärs schade aber ok. Ist sein Baby.
Sehe ich genauso. Selbst wenn es jetzt nicht ganz perfekt ist, weil es vom Protokoll her so nicht vorgesehen ist, ist es besser, als auf die Statusmeldungen zu verzichten. Vielleicht kommt auch irgendwann mal jemand anderes um die Ecke und hat eine Idee, wie man das besser lösen kann. Oder das MQTT-Protokoll entwickelt sich weiter...
Viele Grüße Hoppel
Beta-User und Rudi haben mehrfach in meinem Thread im FHEM Forum betont, dass FHEM die Daten auf jeden Fall ausgewertet bekommt. Die beiden betrachten es aus der Sicht der optimalen/Idealen Schnittstelle. Rudi hatte das fast wortwörtlich so geschrieben:
Zitatich 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.
Wir äußern hier lediglich Wünsche und bringen verschiedene Meinungen, Sichtweisen und Fakten ein, die @horchi beim Design unterstützen. Wenn du es unbedingt brauchst, wird niemand horchi verbieten, das zu implementieren. Das muss noch nicht mal groß diskutiert werden.
Ich für meinen Teil bin froh, dass Beta-User und Rudi sich in diese Thematik so einbringen. Ich habe bisher keine Ahnung von MQTT. Die S3200 ist mein erstes MQTT-Device. Die beiden haben keinen Fröling Kessel, aber Rudi ist wie schon erwähnt der FHEM Erfinder und Beta-User gehört auch zum FHEM Urgestein. Beide sind, so wie ich das im FHEM Forum sehe, sehr stark im MQTT Thema unterwegs. Rudi hat in FHEM einen eigenen MQTT-Server integriert und Beta-User erstellt unter anderem MQTT-Templates für alle möglichen Devices. So dann hoffentlich auch bald eins für p4d. Worauf ich hinaus will..., die beiden wissen schon wovon sie reden.
@horchi Es wäre schön, wenn du das als Option verfügbar machen könntest. Dann kann am Ende jeder selbst entscheiden, ob man das benötigt oder nicht. Deine Meinung zu der Thematik wäre mal interessant.
@Reachy Passt das so für dich?
Gruß Hoppel
So, die beiden üblichen Verdächtigen haben bereits geantwortet:
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.
Alles anzeigenHmm, 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?
Ich hoffe, dass dir das bei deinen Entscheidungen hilft.
Gruß Hoppel
Ich habe das im FHEM Forum hinterfragt. Melde mich, wenn ich da eine Antwort erhalten habe.
Gruß Hoppel
Bei mir sind es gerade 16 Meldungen, siehe Screenshot.
Ich freue mich auf die nächste Version zum Testen.
Danke horchi, dass du dir die Zeit nimmst, obwohl du doch eigentlich deinen Pool bauen wolltest.
Viele Grüße Hoppel
@Reachy Kann man einzelne oder auch alle Fehler im Fehlerspeicher eigentlich irgendwie über horchi‘s WebUI oder an der Touchoberfläche der Steuerung entfernen?
Wenn ja, wie würde das mit der MQTT-Übertragung funktionieren, wenn eine oder alle Fehlermeldungen weg sind?
Gruß Hoppel
Wenn das so als Option umsetzbar ist, wäre das meiner Ansicht nach in Ordnung.
Gruß Hoppel
Ich hatte dazu auch noch eine kleine Unterhaltung mit Beta-User:
hoppel118:
ZitatAm 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...
Beta-User:
ZitatHmm, 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).
Jo, horchi, Beta-User und rudolfkoenig haben echt Gas gegeben! Vielen Dank nochmal!
Gruß Hoppel
zu Punkt 7 und @Reachy's Vorschlag hat Beta-User folgendes geschrieben:
Alles anzeigenHmm, 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.
Wie seht ihr das?
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"}, ......}
zu 8. meinte die Heizung zu parametrisieren? wäre nicht schlecht, aber aktuell keine prio für mich
zu 7. Ich habe dazu gerade nochmal im FHEM Forum nachgehakt, ob das so auch für FHEM passt.
zu 8. Das hat für mich auch erstmal gar keine Prio.
Gruß Hoppel
Hallo horchi,
hier nochmal Feedback von Beta-User aus dem FHEM Forum:
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 [Blockierte Grafik: https://forum.fhem.de/Smileys/default/wink.gif] .
und hier:
Wenn "gute" Strukturen (&goodReadingNames) kommen, braucht man fast kein attrTemplate mehr [Blockierte Grafik: https://forum.fhem.de/Smileys/default/wink.gif] . 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 [Blockierte Grafik: https://forum.fhem.de/Smileys/default/wink.gif] .
Das sieht schonmal super aus. TOP, ich bin total begeistert! Was fehlt uns denn nun noch?
und mit Gruppen:
CodeAlles anzeigenroot@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" : "" } } }
wäre das so für alle Beteiligten okay, wir sprechen ja von FHEM und Openhab?
Für FHEM sollte das dem Feedback nach so passen. Hast du schon eine Idee, wo die Gruppenbezeichnungen herkommen?
Gruß Hoppel
Danke erstmal horchi. Ich habe die 0.3.21 installiert. Das klappt soweit alles! Ich kann den Pfad über das WebUI anpassen (sensor/ weglassen). die homeassistant Einträge werden nicht mehr übertragen. Ich warte noch auf Rückmeldung im FHEM Forum und melde mich dann wieder.
Gruß Hoppel
Hallo @horchi,
habe gerade die 0.3.20 als Paket installiert. Das hat soweit geklappt. Währenddessen kam eine Meldung, dass die p4d.conf angepasst wurde. Ich verwende nun die neue p4d.conf. Im WebInterface sehe ich unter "Setup - Allg. Konfiguration - HomeMatic Interface" ein paar MQTT-Settings, siehe Screenshot.
Ich habe dort also die MQTT URL zu meinem FHEM MQTT Server ergänzt. Folgendes Ergebnis:
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) }
Brauchst du weitere Infos von mir? Wenn ja, welche?
Danke auf jeden Fall schonmal!
Gruß Hoppel
Rudi hatte ja weiter oben geschrieben, wie man das in JSON verschachteln kann.
Umso länger ich darüber nachdenke, umso schöner fände ich es, wenn Einheit und Titel direkt mitübertragen werden würden. Rudi meinte ja, dass FHEM das parsen kann.
Kannst du das evtl. als Option verfügbar machen? Evtl. brauchen die Openhab User das dann wieder. Keine Ahnung, ob das sinnvoll ist...
Ich schaue nachher mal, dass ich das aktuellste Paket installiert bekomme.
Ich schreibe die ganze Zeit vom Handy...
Gruß Hoppel
Hier Rudi‘s Antwort:
Zitat von horchiwenn 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 melden, aber die Benutzer Celsius gewohnt sind oder andersherum, und den Aufwand fuer die Umrechnerei wuerde ich mir sparen.
Zitat von horchiUnd 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.
/Edit
Ergä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 die Antwort von Rudi:
ZitatAlles anzeigenNirgends. 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.
Code{ "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.
Gruß Hoppel
WOW, echt cool! TOP! Werde wohl erst heute Abend zum Testen kommen.
Wie führe ich das Update am Besten durch? Gibt es ein Paket oder per git? Gibt es irgendwas zu beachten? Kann ich das Update einfach drüber bügeln?
Gruß Hoppel
Hi,
das gleiche Thema habe ich mit FHEM auch. Im Hauptthread habe ich gerade nochmal das Feedback von den FHEM Entwicklern zusammengefasst:
https://www.holzheizer-forum.d…&postID=171747#post171747
Gruß Hoppel