dewenni / ESP_Buderus_KM271

Control your Buderus Logamatic 2107 or HS-2105 with MQTT or Home Assistant
MIT License
54 stars 10 forks source link

Möglichkeit den Configwert Reglereingriff Raumtemp auch bei MQTT setzen zu können #60

Closed HMMike closed 5 months ago

HMMike commented 5 months ago

Hi vllt könntest du noch folgendes Implementieren:

Kommando um den Reglereingriff der Raumtemperatur einstellen zu können

die Codefolge wäre für HK1; (b"\x07\x15" + Temp + b"\x65\x65\x65\x65\x65")

bzw für HK2; (b"\x08\x15" + Temp + b"\x65\x65\x65\x65\x65")

bzw generell vllt, das in einer art expertenmodus du ein Expert Publish mit (bwispielsweise Hex string mit 16 Stellen entsprichen den 8 Bytes eines Kommandotelegramms, damit wäre auch "ausprobieren" möglich und den als KOmmandojob an die L2107 schickst

Gruss, Mike

dewenni commented 5 months ago

Hi, danke für den Hinweis. Kannst du mir etwas genauer erklären was man damit einstellt und woher du die Info zu den Parametern hast?

Das mit der "Service Schnittstelle" zum probieren kann ich gerne machen. Ist auch eine gute Idee. Hatte ich testweise sogar schon mal selbst so genutzt.

HMMike commented 5 months ago

Hi. Ich habe die L2107 mit der funkuhr Fernbedienung, daher fahre ich raumregelung mit unterlagerter witterungsgeführter Regelung der VL-Temperatur.

Der genannte Parameter beschreibt den Eingriff des Reglern der Raumtemperatur auf die vorlauf-solltemperatur in grad C. Ich benutze unterschiedliche Werte in der Übergangszeit und im winter.

Woher habe ich die Infos.. Von mir stammte seinerzeit aus dem Jahre 2015/2016 die python Implementierung einer L2107 Anbindung, die auch lesen und schreiben konnte. Der thread im homematic forum ist von mir. Daher ist mir die Kommunikation und die telegramme bekannt. Da ich aber an der Stelle einiges umbauen muss wegen Solar bin ich nun auch auf die km271 wifi gewechselt. Ist ein super Projekt und ein Kasten samt pi ,Netzteil pegelwandler und switch etc an der Wand kann weg.

Als expertentelegramm dachte ich an ein topic in der Art /setvalue/experttelegramm was als message dann den 16 Zeichen hexstring für das Konfigurationstelegramm innehat.

Gruss Michael

Tip für die iobroker nutzer: ein sendto auf den mqtt.0 adapter macht ein sauberes publish zum senden

dewenni commented 5 months ago

@HMMike bezüglich dem Parameter für den Reglereingriff:

HMMike commented 5 months ago

Hi,

das passende Rückmeldetelegramm ist das, welches ich einen Post drüber als BUG gemeldet hatte, da bei dem Rücklesen der Offset nicht stimmte. (im Quellcode die 0+4 anstatt der 0 (https://github.com/dewenni/ESP_Buderus_KM271/issues/61)

der Defaultwert ist 3 Grad

EInstellbar an der Logamatik ist dieses nur, wenn du eine Fernbedienung angeschlossen hast

Kapitel 4.14 der Serviceanleitung

grafik

dewenni commented 5 months ago

ah, ok! Das hatte ich nicht in Verbindung gebracht. Bin gerade dabei das zu implementieren und wollte das dann auch gerne testen.

HMMike commented 5 months ago

@dewenni

via MQTT musstest dieses über das config Telegramm senden können. Nur die Logamatik wird den Wert nicht beachten und ausser beim Rücklesen selber wirst du das nicht an der Logamatik einstellen oder kontrollieren können

Bei mir ist das ja mit der Tag/Nachttemperatur so, ich habe eine Fernbedienung, da kommen die beiden Werte zwingend von der FB. Ich kann zwar die beiden werte beschreiben über ein Konfigtelegramm (mit der Original KM271 und meinem Python Programm) oder auch über MQTT mit deiner nun installierten SW,aber die FB überschreibt diese werte dann wieder bei ihrem nächsten Telegramm. Eigentlich müsstest du die beiden Werte auf der http Bedienseite rausnehmen, wenn die Fernbedienung aktiviert ist, weil die eh keinen Effekt dann haben. Dafür fann die Aufschalttemperatur anzeigen und änderbar machen, wenn FB aktiviert ist. Aber ich denke, das geht zu weit, hier werden alle ja wahrscheinlich eine Implementierung in ihr Automatisierungssystem gemacht haben und dort die werte Visualisieren und Änderbar haben.

Bekommst du auch meinen Wunsch nach dem selbst konfiguriertbaren expertentelegramm umgesetzt ?

dewenni commented 5 months ago

Ich habe mal die Serviceschnittstelle und auch die zwei Befehle für den Reglereingriff implementiert. Scheint auch prinzipiell zu funktionieren.

Service Schnittstelle erstmal nur per mqtt. Beispiel:

Topic: esp_heizung/cmd/service
Payload: 11_22_33_44_55_66_77_88

Payload sind dann 8 Hex Werte durch "_" getrennt. Ich habe das auch so gut es geht auf Plausibilität getestet. Es müssen immer die 8 Hexwerte sein und die Gesamtanzahl an Zeichen muss auch stimmen.

Für die beiden neuen Kommandos gibt es folgende Syntax:

command:    heating circuit 1: controller intervention
topic:      {"setvalue/hk1_reglereingriff", setvalue/hc1_ctrl_intervention"}
payload:    Resolution: 1 [°C] - Range: 0 ... +10 [°C]

command:    heating circuit 2: controller intervention
topic:      {"setvalue/hk2_reglereingriff", setvalue/hc2_ctrl_intervention"}
payload:    Resolution: 1 [°C] - Range: 0 ... +10 [°C]

@HMMike Bitte mal testen und Rückmeldung geben. beta_3.2.x.zip

dewenni commented 5 months ago

Ich werde aber vermutlich den Begriff "Reglereingriff" nochmal in "Aufschalttemperatur" ändern. Dann wird deutlicher, dass der Sollwert mit dem existierenden Config (Istwert) zusammengehört.

HMMike commented 5 months ago

@dewenni könntest du mir die beta bitta als ova compilieren, dann teste ich gerne. Ich komme immo nicht an die Logamatic ran via kabel und hab so auch noch nie geflashed.

dewenni commented 5 months ago

@HMMike in dem Archiv im Beitrag zuvor sind beide .bin Files drin. Ich habe sie nur zugegeben nicht getestet.

HMMike commented 5 months ago

Ok. Dann kurze, dumme Frage. Ich mache das heute abend dann über vpn. Bin auf Dienstreise immo

Die für ova flash, ist das die die mit Date_3.2.x.bin endet oder die Flash_v3.2.x.bin ?

dewenni commented 5 months ago

Die mit "Flash" in Namen ist für das Flashen per Kabel. Die andere Datei müsste auch ota im Namen tragen. Wenn du nicht zuhause bist, würde ich das Update aber nicht einspielen. Es besteht immer die Gefahr das es nicht klappt. Dann hast du keine Werte.

HMMike commented 5 months ago

ich hab das ota hochgeladen und update durchgeführt.

grafik

er meldet sich aber noch mit folgender firmware: grafik

die Aufschalttemperatur wird immer rnoch fehlerhaft ausgelesen änderung via mqtt nicht möglich

dewenni commented 5 months ago

@HMMike dann hat er den Upload oder das Update abgebrochen. Das gleiche hatte ich eben auch bei meinen Tests. Nach mehreren Versuchen ging es dann plötzlich und auch mehrfach hintereinander.

Möglicherweise liegt es daran, dass der Flashspeicher mit der Default Partitionierung nahezu voll belegt ist. Daher werde ich mit dem nächsten Update das Partitionsschema anpassen um mehr Platz für das Programm und den OTA Upload zu bekommen. Das geht dann aber nur in dem man das Programm per Kabel aufspielt.

HMMike commented 5 months ago

ok, nach dem hinweis habs auch ein paar mal probiert... ok, über vpn so ne sache, aber.. nach 4 versuchen hat er es gefressen.

status:

  1. Wert aufschalttemperatur kommt nun richtig
  2. wert lässt sich verstellen über MQTT
  3. Servicetelegramm funktionierte auch (du hast in deinem Beispiel aber 9 Hexwerte, dürfen aber nur 8 sein)

Meine Frau hatte wie Werte direkt an der Logamatik kontrolliert, passt also

also in der Form, alles supi

Gruss, Michael

dewenni commented 5 months ago

Prima, dann gibt's die Tage ein offizielles Release dazu. Danke für die Hilfe und falls du noch weitere Werte kennst die nicht umgesetzt sind, gib Bescheid.

HMMike commented 5 months ago

DU kannst eigentlich jeden Wert de Konfig Tabelle setzen (Obs Sinn macht ist die andere Sache)

HK1 setzen: 07 Offset 6 Byte folge wie gehabt

HK2 setzen 08 [Offset des HK1] 6 Byte folge wie gehabt

der wwv beginnt mit 0C und folgt leider nicht der schönen regel,
Ich weiss dass es da einen Parameter geben muss, der einen WWB Ladezyklus ausführt. Grund: an der FB kann man einen Taster anschliessen, der dann einen Ladezyklus anstösst. und da die FB mit ihren Telegrammen die Tag/Nachttemp überschreibt, wird diese da in der gruppe wohl auch einen Wert setzen

Timer setzen wäre auch noch eine schöne Option, so könne man sich in der Middleware mehrere "Eigen" Programme ablegen und die dann entsprechend unter dem Logamatic Programm eigen laden. Aber damit hatte ich mich seinerzeit nicht mit befasst

dewenni commented 5 months ago

solved with v3.2.5