Fröling: [ANNOUNCE] p4d - Visualisierung und Einstellung der S-3200 via COM1

Es gibt 4.973 Antworten in diesem Thema, welches 1.643.658 mal aufgerufen wurde. Der letzte Beitrag () ist von Car1Pe.

  • also in Openhab is grundsätzlich egal wie die Daten kommen. So wie jetzt der JSON kommt, scicken vielen MQTT-Geräte ihre Daten. Die bei mir eigentlich überwiegen.. ich flashe alles was geht mit Tasmota. Das zusammenfassen in Gruppen machts vielleicht schöner lesbar für den Menschen. Mir reicht im Prinzip die Gruppe Heizung. Mit JSONPATH$ wird der JSON geparst.. wenn mehrere Gruppen da sind, ist die Konfiguration dann deutlich aufwendiger. Ist aber nur meine persönliche Meinung.
    so wie es jetzt is, hab ich es eigentlich erwartet.
    Also für Openhab gehts so oder so. Aber 2 Wege sollten wir nicht machen.
    Wenn pro Baugruppe ein Topic gemacht wird sind wir doch fast beim Ausgangsformat, oder seh ich das falsch?


    OK, dann ist es bei FHEM andersherum. Wenn man die Messwerte von einander trennen möchte und nur die verschachtelten Messwertenbezeichnungen hat, wie bspw. Holzscheitkessel_Kesseltemperatur, Puffer_Puffertemperaturoben, Puffer_Puffertemperaturunten, Boiler_Boilertemperaturoben oder Boiler_Boilertemperaturunten, etc., ist das schon sehr aufwändig bzw. für Leute, die p4d eigentlich nur in FHEM einbinden wollen und kein tieferes Knowhow haben, eher schwierig bis gar nicht umsetzbar. Ich glaube, zu dieser Gruppe Leute gehöre ich häufig auch.


    Der Ausgangszustand war ein Topic für alle Messwerte der Heizung. Nun haben wir weiterhin ein Topic mit einer Kombinationsbezeichnung "Baugruppe_Messwert". Vom Topic her betrachtet, ist das der Ausgangszustand.


    Ich würde es schön finden, wenn man die Option zur Auswahl hätte. So könnte jeder es den Vorlieben seiner Hausautomatisierungssoftware entsprechend konfigurieren. Warum sollten wir auf diesen zweiten Weg verzichten? (Verstehe nicht, was deiner Ansicht nach dagegen spricht.)


    also wäre dein Ziel die Verschachtlung mit den Baugruppen so beizubehalten aber für jede ein separates Topic?
    Für Fehlermeldungen ein eigenes Topic zu verwenden sehe ich kein Problem.


    Das Ziel für FHEM hatte ich Eingangs (Punkt 5 von 8) beispielhaft aufgeführt:



    5. Im Moment kommen alle "Baugruppen" unter einem Sub-Pfad. Daher muss 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 zusammengehörenden Adressen bündelt.
    Beispiel, damit man die Richtung evtl. erkennen kann:

    (Was diese Gruppierungen angeht, hatte Beta-User (einer der beiden FHEM Entwickler) 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).


    "sensor/" kann man ja mittlerweile schon aus dem Pfad entfernt werden...


    Das Ziel für FHEM wäre also eher das Unterbringen der Baugruppen im Topic-Pfad, anstelle einer Kombination der Baugruppen und Messwerte miteinander.


    Grundsätzlich ist das auch in FHEM abbildbar, aber für den Ottonormalverbraucher extrem kryptisch.


    Hier die Diskussion dazu aus dem FHEM Forum:


    Zitat

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


    Code
    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 }


    Kuerzer aber nicht weniger kryptisch ist diese Schreibweise:

    Code
    attr Boiler readingList p4d2mqtt.* { hashKeyRename(json2nameValue($EVENT), '^(Boiler_(.*)_value)', '(Boiler.*)') }


    Ganz ehrlich, sowas kriegt man nicht hin, wenn man kein Entwickler ist und gerne einzelne Baugruppen habe möchte.



    Zitat

    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

    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).


    Was für ein Post... Ich hoffe, dass es nun klarer ist. ;)


    Viele Grüße Hoppel

  • Um den Aufwand nicht noch weiter (ggf. unnötig) zu erhöhen, weil wir evtl. aneinander vorbei reden, habe ich deine Frage sicherheitshalber nochmal an Beta-User weitergegeben. Hier die Antwort:



    Aus meiner User-Sicht heraus, kann ich eigentlich nur sagen, umso weniger JSON-Mapping-Bedarf umso besser.


    Also ja: Baugruppe komplett aus dem Json raus und in den Topic Namen


    Gruß Hoppel

  • dann versucht es mal mit der 0.3.23 - da gibt es nun so ziemlich alle Optionen, wer es separate Topics je Sensor möchte verwendet im "Data Topic Name" das <NAME> Template, wer ein Topic je Baugruppe möchte das <GROUP> Template und wer ordentlich strukturiertes JSON und alles auf einem Topic möchte verwendet keines der beiden Templates.


    Was NICHT geht ist beide Templates gemeinsam verwenden, das implementiere ich entweder noch oder verriegle es.


    Grüße Jörg

    Seit Oktober 2009:
    Fröling P4 mit 1000l Pufferspeicher

  • Danke. extrem flott bist du... Hab mal upgedatet. und folgendes im Setup eingestellt:


    • p4d2mqtt/sensor/<NAME>/state
      --> wie erwartet. lauter Einzelwerte unter einem Topic
    • p4d2mqtt/sensor/state
      --> wie erwartet: vernünftiger JSON
    • p4d2mqtt/sensor/<GROUP>/state
      --> Ergebnis unerwartet:

    MQTT-Explorer zeigt:
    p4d2mqtt
    -->sensor
    --><GROUP>
    -->state={"Heizung": {"Tuerkontaktschalter_0x0": {"value": "0.00"},"Status": {"value": "Fe.......}




    Es wird kein separates Topic erstellt sondern der Templatename <GROUP> einfach verwendet. Ist an dem Setup was falsch?


    Denke mal mein Problem sitzt wieder vor dem Bildschirm. Was mach ich falsch?


    Gruß


    Reachy

  • hier steht das im log:

    Code
    Apr 29 13:31:58 raspberrypi p4d: -> (p4d2mqtt/sensor/Heizung/state)[{"Heizkreispumpe_0x0": {"value": "1.00", "unit": "", "description": "Heizkreis 1"}, "Heizkreispumpe_0x1": {"value": "1.00", "unit": "", "description": "Bodenheizung"}, "Status": {"value": "Betriebsbereit", "unit": "Status", "description": "zst"}, "Abgastemperatur_0x1": {"value": "35.00", "unit": "°C", "description": "Abgas"}, "Betriebsmodus": {"value": "Übergangsbetrieb", "unit": "zst", "description": "Betriebsmodus"}, "Boardtemperatur_0x2": {"value": "26.50", "unit": "°C", "description": "Boardtemperatur"}, "Uhrzeit": {"value": "Wednesday, 29. Apr. 2020 13:31:56", "unit": "T", "description": "Datum Uhrzeit der Heizung"}, "Aussentemperatur_0x4": {"value": "15.50", "unit": "°C", "description": "Außentemperatur"}, "Stokerantrieb_0x5": {"value": "0.00", "unit": "%", "description": "Stokerantrieb"}, "Saugzugdrehzahl_0x7": {"value": "0.00", "unit": "U", "description": "Saugzugdrehzahl"}, "FuehlerinderSTBHuelse_0x8": {"value": "45.00", "unit": "°C", "description": "Fühler in der STB Hülse"}, "TemperaturdesZuendrohres_0xd": {"value": "28.00", "unit": "°C", "description": "Temperatur des Zündrohres"}, "Kesselstellgroesse_0x12": {"value": "100.00", "unit": "%", "description": "Kesselstellgröße"}, "Vorlauf-Isttemperatur_0x15": {"value": "31.50", "unit": "°C", "description": "Vorlauf Heizung"}, "Vorlauf-Isttemperatur_0x19": {"value": "26.50", "unit": "°C", "description": "Vorlauf Fußboden"}, "Betriebsstunden_0x62": {"value": "14909.00", "unit": "h", "description": "Betriebsstunden"}, "FuellstandimPelletsbehaelter_0x71": {"value": "100.00", "unit": "%", "description": "Füllstand im Pelletsbehälter"}, "Puffertemperaturoben_0x76": {"value": "48.00", "unit": "°C", "description": "Puffer Oben"}, "Puffertemperaturunten_0x78": {"value": "27.50", "unit": "°C", "description": "Puffer Unten"}, "PufferpumpenAnsteuerung_0x8c": {"value": "0.00", "unit": "%", "description": "Pufferpumpen Ansteuerung"}, "BetriebsstundenStokerschnecke_0xad": {"value": "10624.00", "unit": "h", "description": "Betriebsstunden Stokerschnecke"}, "DrehzahlderPumpe_0xc8": {"value": "0.00", "unit": "%", "description": "Drehzahl der Pumpe"}, "DrehzahlderZirkulationsPumpe_0xc9": {"value": "100.00", "unit": "%", "description": "Drehzahl der Zirkulations Pumpe"}, "RuecklauftemperaturanderZirkulationsLeitung_0xca": {"value": "44.00", "unit": "°C", "description": "Rücklauftemperatur Zirkulation"}, "KesselanforderungueberHeizkreisoderBoilerstehtan_0xd6": {"value": "0.00", "unit": "", "description": "Kesselanforderung über Heizkreis oder Boiler steht an"}, "28-000005679341": {"value": "45.44", "unit": "°C", "description": "Puffer Mitte"}}]

    passt m.E.


    du hattest <GROUP> im Topic Namen und das ist auch so in der config Tabelle angekommen?

    Seit Oktober 2009:
    Fröling P4 mit 1000l Pufferspeicher

  • Ahhh ich weiß woran das liegt, ich nehme an du verwendest nicht das Paket sondern baust selbst!? Dann hast du sicher noch die Version 0.3.22, richtig?
    Ich hatte nur das Paket aktualisiert und noch nicht ins git gepushed, das habe ich jetzt nachgeholt

    Seit Oktober 2009:
    Fröling P4 mit 1000l Pufferspeicher

  • Ahhh ich weiß woran das liegt, ich nehme an du verwendest nicht das Paket sondern baust selbst!? Dann hast du sicher noch die Version 0.3.22, richtig?
    Ich hatte nur das Paket aktualisiert und noch nicht ins git gepushed, das habe ich jetzt nachgeholt

    Nein ich lade das Paket, weil der einfach update nicht funktioniert bei mir. bekomme da Fehlermeldungen... Hab die Version 0.3.23-GIT93ae62c / 0.3.23 drauf


    VG


    Reachy

  • Ich hatt <GROUP> im Topic Namen: p4d2mqtt/sensor/<GROUP>/state


    wie prüfe ich ob das in der config-Tabelle angekommen ist?


    Ergebnis im MQTT-Explorer:



    Ich brauchs ja nicht, wollts nur testen. Weiss grad nicht, was ich falsch mache.... Vielleicht gehts ja bei Hoppel.. Dann liegts irgendwo bei mir..



    VG



    Reachy

  • Bei mir dauert’s nun noch ne halbe Stunde, bevor ich loslegen kann.


    Verstehe ich es richtig, dass ich unter „Data Topic Name“ folgendes eingebe:


    Code
    p4d2mqtt/<GROUP>/state


    Das „sensor“ würde ich dann direkt weglassen.


    Gruß Hoppel

  • So, ich habe nun die Version 0.3.23-GIT93ae62c / 0.3.23 installiert. Baugruppen sind eingerichtet und zugewiesen und unter "MQTT Data Topic Name" habe ich folgendes eingetragen: "p4d2mqtt/<GROUP>/state".


    Auf meinem Server wird folgendes geloggt: https://pastebin.com/Hg3Mcefk


    Ich schätze ihr erkennt, ob das das ist, was benötigt wird. Zumindest taucht bei mir kein <GROUP> auf, sondern die Baugruppenbezeichnungen. Grundsätzlich also erstmal gut. :)


    Was mir im Unterschied zur vorherigen Version aufgefallen ist, dass die Einheiten und Beschreibungen nun jedesmal übertragen werden und nicht mehr ausschließlich beim Start. Ist das so gewollt? Auch hier wäre es schön, eine Option zu haben, anhand der man die Übertragung von Einheiten/Beschreibungen an- bzw. abschalten kann. Wenn du da sowieso nochmal bei musst, wollte ich das nochmal anbringen. ;)


    By the way... Da fällt mir Beta-Users letzte Anmerkung wieder ein:



    Wäre cool, wenn du da nochmal drauf eingehen könntest.


    Ich werde nun das Ergebnis im FHEM Forum posten und hoffe auf baldige Hilfe von Rudi bzw. Beta-User.


    Ich melde mich dann wieder mit hoffentlich guten Nachrichten. ;)


    Vielen Dank schonmal @horchi!


    Gruß Hoppel

  • habe es nochmal getestet, diese Settings:


    das steht danach zu mqtt in der config Tabelle:

    Code
    MariaDB [p4]> select * from config where name like '%mqtt%';
    +-------+---------------------+------------+------------+-------------------------------+
    | owner | name                | inssp      | updsp      | value                         |
    +-------+---------------------+------------+------------+-------------------------------+
    | p4d   | mqttDataTopic       | 1587801810 | 1588222584 | p4d2mqtt/sensor/<GROUP>/state |
    | p4d   | mqttHaveConfigTopic | 1587801810 | 1588222585 | 0                             |
    | p4d   | mqttUrl             | 1587801810 | 1588222584 | tcp://gate:1883               |
    +-------+---------------------+------------+------------+-------------------------------+


    Hiermit lausche ich an der Kommandozeile an allen Topics welche mit p4d2mqtt beginnen
    mosquitto_sub -v -t p4d2mqtt/#


    dann warte ich bis der p4d etwas schreibt dann kommt das beim mosquitto_sub Kommando an:

    Code
    p4d2mqtt/sensor/Heizung/state {"Heizkreispumpe_0x0": {"value": "1.00", "unit": "", "description": "Heizkreis 1"}, "Heizkreispumpe_0x1": {"value": "1.00", "unit": "", "description": "Bodenheizung"}, "Status": {"value": "Betriebsbereit", "unit": "Status", "description": "zst"}, "Abgastemperatur_0x1": {"value": "34.00", "unit": "°C", "description": "Abgas"}, "Betriebsmodus": {"value": "Übergangsbetrieb", "unit": "zst", "description": "Betriebsmodus"}, "Boardtemperatur_0x2": {"value": "26.50", "unit": "°C", "description": "Boardtemperatur"}, "Uhrzeit": {"value": "Thursday, 30. Apr. 2020 07:03:20", "unit": "T", "description": "Datum Uhrzeit der Heizung"}, "Aussentemperatur_0x4": {"value": "12.50", "unit": "°C", "description": "Außentemperatur"}, "Stokerantrieb_0x5": {"value": "0.00", "unit": "%", "description": "Stokerantrieb"}, "Saugzugdrehzahl_0x7": {"value": "0.00", "unit": "U", "description": "Saugzugdrehzahl"}, "FuehlerinderSTBHuelse_0x8": {"value": "44.00", "unit": "°C", "description": "Fühler in der STB Hülse"}, "TemperaturdesZuendrohres_0xd": {"value": "28.00", "unit": "°C", "description": "Temperatur des Zündrohres"}, "Kesselstellgroesse_0x12": {"value": "95.00", "unit": "%", "description": "Kesselstellgröße"}, "Vorlauf-Isttemperatur_0x15": {"value": "34.00", "unit": "°C", "description": "Vorlauf Heizung"}, "Vorlauf-Isttemperatur_0x19": {"value": "28.00", "unit": "°C", "description": "Vorlauf Fußboden"}, "Betriebsstunden_0x62": {"value": "14911.00", "unit": "h", "description": "Betriebsstunden"}, "FuellstandimPelletsbehaelter_0x71": {"value": "83.53", "unit": "%", "description": "Füllstand im Pelletsbehälter"}, "Puffertemperaturoben_0x76": {"value": "52.50", "unit": "°C", "description": "Puffer Oben"}, "Puffertemperaturunten_0x78": {"value": "26.50", "unit": "°C", "description": "Puffer Unten"}, "PufferpumpenAnsteuerung_0x8c": {"value": "0.00", "unit": "%", "description": "Pufferpumpen Ansteuerung"}, "BetriebsstundenStokerschnecke_0xad": {"value": "10625.00", "unit": "h", "description": "Betriebsstunden Stokerschnecke"}, "DrehzahlderPumpe_0xc8": {"value": "0.00", "unit": "%", "description": "Drehzahl der Pumpe"}, "DrehzahlderZirkulationsPumpe_0xc9": {"value": "0.00", "unit": "%", "description": "Drehzahl der Zirkulations Pumpe"}, "RuecklauftemperaturanderZirkulationsLeitung_0xca": {"value": "47.00", "unit": "°C", "description": "Rücklauftemperatur Zirkulation"}, "KesselanforderungueberHeizkreisoderBoilerstehtan_0xd6": {"value": "0.00", "unit": "", "description": "Kesselanforderung über Heizkreis oder Boiler steht an"}, "28-000005679341": {"value": "48.19", "unit": "°C", "description": "Puffer Mitte"}}
    
    
    p4d2mqtt/sensor/Kessel/state {"Kesseltemperatur_0x0": {"value": "40.00", "unit": "°C", "description": "Kessel"}}

    Seit Oktober 2009:
    Fröling P4 mit 1000l Pufferspeicher

  • zu dem 'immer wieder' übertragen der config Daten habe ich was gefunden. Das wid nur beim Start übertragen, nur wird er p4d dauernd neu gestartet (vom systemd) da er in dem Neuen Modus durch einen Bug dauern crashed.
    Fehler ist in 0.2.24 behoben.

    Seit Oktober 2009:
    Fröling P4 mit 1000l Pufferspeicher

  • Moin @horchi,


    habe nun Version 0.3.25 installiert. Jo sieht gut aus. Einheiten und Beschreibungen werden jetzt nur noch initial übertragen. Die "connection closed/accepted" messages sind nun weg:

    Code
    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 meine Ergebnisse in FHEM, vielleicht kannst du damit was anfangen:


    Hier das neue Logfile: https://pastebin.com/sMDs3wEz


    Hier das list vom Device:



    und hier vom Server:



    Das gleiche habe ich auch im FHEM Forum gepostet. Mal sehen, was Rudi und Beta-User dazu sagen.



    Siehst du evtl. noch Fehler?



    Danke und viele Grüße Hoppel

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!