FHEM Forum

FHEM - Anwendungen => Heizungssteuerung/Raumklima => Thema gestartet von: WumpE am 07 November 2016, 14:11:17

Titel: Neues Modul Heizungssteuerung OEG-KMS/KSF/KSW | Seltron-KXD | Solarbayer-D30
Beitrag von: WumpE am 07 November 2016, 14:11:17
Hallo Leute, ich habe ein Modul für die Anbindung folgender Heizungs- / Solarthermiesteuerungen geschrieben:

OEG KMS, OEG KMS+, OEG KSFpro
Seltron KXD
Solarbayer D30

Das Modul ist noch im Alphastadium kann aber schon alle Relais Ein und Ausgänge, Analog Ein und Ausgänge sowie Betriebsarten, Zeitprogramme und Sonderfunktionen anzeigen.

Bei den set Befehlen für Betriebsarten, Zeitprogramme und Sonderfunktionen bin ich gerade dran.

Vielleicht finden sich ja einige die eine der Steuerung im Einsatz haben und mir beim debuggen helfen können.

Install:


und los geht's

Update 27.11.2016
KMS Beta v0.2

Bugfixing

Neue Funktionen

Update 27.05.2018
KMS Beta v0.5

Bugfixing

Danke und Grüße
WumpE
Titel: Antw:Neues Modul Heizungssteuerung OEG-KMS/KSF | Seltron-KXD | Solarbayer-D30
Beitrag von: WumpE am 28 November 2016, 10:44:50
Update
Titel: Antw:Neues Modul Heizungssteuerung OEG-KMS/KSF | Seltron-KXD | Solarbayer-D30
Beitrag von: WumpE am 29 Mai 2018, 14:18:08
*update
Titel: Antw:Neues Modul Heizungssteuerung OEG-KMS/KSF | Seltron-KXD | Solarbayer-D30
Beitrag von: TorstenF am 21 Oktober 2018, 19:11:59
Hallo WumpE,

ich wollte nur mal danke sagen für das Modul.
Es läuft bei mir seit vielen Monaten stabil, wenn auch nur zum Auslesen der Aussentemperatur. Weitergegeben wird das dann an mein Loxone-System.
Ich bin absoluter FHEM-Anfänger. Aber wenn ich irgendwie helfen/testen kann, mache ich das gern.

Torsten
Titel: Antw:Neues Modul Heizungssteuerung OEG-KMS/KSF | Seltron-KXD | Solarbayer-D30
Beitrag von: TorstenF am 04 Mai 2021, 20:48:28
Hallo WumpE,

ich bin gerade dabei, die Kommunikation meiner Smarthome-Komponenten auf MQTT zu vereinheitlichen. Dabei bin ich darauf gestoßen, dass die OEG KMS-D auch MQTT spricht am USB-Port. Hast Du eventuell eine Übersicht der Register? In Deinem FHEM-Modul ist das ja letztendlich alles drin, aber für mich nicht so einfach herauslesbar. Falls Du Deine vermutlich mit hohem Zeitaufwand gefundenen Erkenntnisse teilen magst, wäre ich sehr dankbar.

Danke und Gruß
Torsten
Titel: Antw:Neues Modul Heizungssteuerung OEG-KMS/KSF | Seltron-KXD | Solarbayer-D30
Beitrag von: WumpE am 04 Mai 2021, 21:19:01
Grüße Torsten,

woher hast du die info das die KMS-D MQTT spricht ?

die KMS-D kommuniziert per usb-cdc (serial) mit modbus-ascii


# startIndex, länge, hexwert, zieldatentyp (f=float, d=decimal, b=binär, z=datetime),
# operation (a=addiere,s=subtrahiere,m=multipliziere,d=dividiere,l=minimalestringlänge,p=bitposition,n=nichts,b=byte,sm=sondermodus,zw=Zählwert),
# operationswert, realwert, einheit, readingname
my @kms_array = (
[  7,12, "","z","n",   0,  "",  "","Datum_Zeit"],
[ 31, 4, "","s","b",   1,  "",  "","HK1_Zeitprogramm"],
[ 31, 4, "","s","b",   0,  "",  "","HK1_Betriebsart"],
[ 35, 4, "","f","d",  10,  "","°C","HK1_Tag_Soll"],
[ 39, 4, "","f","d",  10,  "","°C","HK1_Nacht_Soll"],
[ 43,12, "","s","sm",  0,  "",  "","HK1_Sondermodus"],
[ 55, 4, "","s","b",   1,  "",  "","HK2_Zeitprogramm"],
[ 55, 4, "","s","b",   0,  "",  "","HK2_Betriebsart"],
[ 59, 4, "","f","d",  10,  "","°C","HK2_Tag_Soll"],
[ 63, 4, "","f","d",  10,  "","°C","HK2_Nacht_Soll"],
[ 67,12, "","s","sm",  0,  "",  "","HK2_Sondermodus"],
[ 79, 4, "","s","b",   1,  "",  "","WW_Zeitprogramm"],
[ 79, 4, "","s","b",   0,  "",  "","WW_Betriebsart"],
[ 83, 4, "","f","d",  10,  "","°C","WW_Soll"],
[ 87,12, "","s","sm",  0,  "",  "","WW_Sondermodus"],
[159, 4, "","f","d",  10,  "","°C","ZT_T1_Ist"],
[163, 4, "","f","d",  10,  "","°C","ZT_T2_Ist"],
[167, 4, "","f","d",  10,  "","°C","ZT_T3_Ist"],
[171, 4, "","f","d",  10,  "","°C","ZT_T4_Ist"],
[175, 4, "","f","d",  10,  "","°C","ZT_T5_Ist"],
[179, 4, "","f","d",  10,  "","°C","ZT_T6_Ist"],
[183, 4, "","f","d",  10,  "","°C","ZT_T7_Ist"],
[187, 4, "","f","d",  10,  "","°C","ZT_T8_Ist"],
[191, 4, "","f","d",  10,  "","°C","ZT_TR1_Ist"],
[195, 4, "","f","d",  10,  "","°C","ZT_TR2_Ist"],
[203, 4, "","f","d",  10,  "","°C","ZT_T1_Soll"],
[207, 4, "","f","d",  10,  "","°C","ZT_T2_Soll"],
[211, 4, "","f","d",  10,  "","°C","ZT_T3_Soll"],
[215, 4, "","f","d",  10,  "","°C","ZT_T4_Soll"],
[219, 4, "","f","d",  10,  "","°C","ZT_T5_Soll"],
[223, 4, "","f","d",  10,  "","°C","ZT_T6_Soll"],
[227, 4, "","f","d",  10,  "","°C","ZT_T7_Soll"],
[231, 4, "","f","d",  10,  "","°C","ZT_T8_Soll"],
[235, 4, "","f","d",  10,  "","°C","ZT_TR1_Soll"],
[239, 4, "","f","d",  10,  "","°C","ZT_TR2_Soll"],
[149, 2, "","b","l",   8,  "",  "",".ZR_RX"],
[149, 2, "","b","p",   7,  "",  "","ZR_R1"],
[149, 2, "","b","p",   6,  "",  "","ZR_R2"],
[149, 2, "","b","p",   5,  "",  "","ZR_R3"],
[149, 2, "","b","p",   4,  "",  "","ZR_R4"],
[149, 2, "","b","p",   3,  "",  "","ZR_R5"],
[149, 2, "","b","p",   2,  "",  "","ZR_R6"],
[149, 2, "","b","p",   1,  "",  "","ZR_R7"], #Index 42
[149, 2, "","b","p",   0,  "",  "","ZR_R8"],
[  1, 2, "","n", "",   0,  "",  "",".Placeholder"],
[  1, 2, "","n", "",   0,  "",  "",".Placeholder"],
[  1, 2, "","n", "",   0,  "",  "",".Placeholder"],
[  1, 2, "","n", "",   0,  "",  "",".Placeholder"],
[  1, 2, "","n", "",   0,  "",  "",".Placeholder"],
[  1, 2, "","n", "",   0,  "",  "",".Placeholder"],
[  1, 2, "","n", "",   0,  "",  "",".Placeholder"], #index 50
[  1, 2, "","n", "",   0,  "",  "",".Placeholder"],
[  1, 2, "","n", "",   0,  "",  "",".Placeholder"],
[  1, 2, "","n", "",   0,  "",  "",".Placeholder"],
[  1, 2, "","n", "",   0,  "",  "",".Placeholder"],
[  1, 2, "","n", "",   0,  "",  "",".Placeholder"],
[  1, 2, "","n", "",   0,  "",  "",".Placeholder"],
[  1, 2, "","n", "",   0,  "",  "",".Placeholder"],
[  1, 2, "","n", "",   0,  "",  "",".Placeholder"],
[  1, 2, "","n", "",   0,  "",  "",".Placeholder"],
[  7, 4, "","zw", "",   0,  "",  "","ZW_R1"],       #index 60
[ 11, 4, "","zw", "",   1,  "",  "","ZW_R2"],
[ 15, 4, "","zw", "",   2,  "",  "","ZW_R3"],
[ 19, 4, "","zw", "",   3,  "",  "","ZW_R4"],
[ 23, 4, "","zw", "",   4,  "",  "","ZW_R5"],
[ 27, 4, "","zw", "",   0,  "",  "","ZW_R6"],
[ 31, 4, "","zw", "",   0,  "",  "","ZW_R7"],
[ 35, 4, "","zw", "",   0,  "",  "","ZW_R8"],
[ 39, 4, "","zw", "",   0,  "",  "","ZW_R9"],
[ 43, 4, "","zw", "",   0,  "",  "","ZW_R0"],
[ 47, 4, "","zw", "",   0,  "",  "","ZW_R1_Starts_Gesamt"],
[ 51, 4, "","zw", "",   0,  "",  "","ZW_R1_Starts_Heute"],
[ 55, 4, "","zw", "",   0,  "",  "","ZW_R1_Betriebsstunden_Gesamt"],
[ 59, 4, "","zw", "",   0,  "",  "","ZW_R0_Starts_Gesamt"],
[ 63, 4, "","zw", "",   0,  "",  "","ZW_R0_Starts_Heute"],
[ 67, 4, "","zw", "",   0,  "",  "","ZW_R0_Betriebsstunden_Gesamt"],
);


anbei meine rückwärts herausgelesenen modbus register (wo steht was drin und in welchem format)


# DebugAnswers
$answer = ":80037809271D0B10070001006E0068100000DC00960001005A00E1100200DC0096000200000000100002F4000000010000000000000000000000000000000100000000000000000000009803C100000C2D00F402960167023F016A0C1C0C25003C003CFE0CFE0C00F40276002802440028FE0CFE0C003C003C002894\r\n" if($pollTimeState != 0 );
$answer = ":8003280000000100010313000000000000031500000000221A000005240003000000000000000000000000AA\r\n" if($pollTimeState == 0 );


und hier hast du mal 2 beispieldatensätze, was die KMS auf anfrage abliefert.

grüße
Titel: Antw:Neues Modul Heizungssteuerung OEG-KMS/KSF | Seltron-KXD | Solarbayer-D30
Beitrag von: TorstenF am 06 Mai 2021, 20:12:30
Sorry, ich meinte auch Modbus ASCII. Das ganze will ich dann zu MQTT wandeln. Darauf gekommen bin ich über diese Python-Skripte:
https://github.com/Yannicflight/oeg_kmsd/blob/master/oegscan_mqtt.py (https://github.com/Yannicflight/oeg_kmsd/blob/master/oegscan_mqtt.py)
https://github.com/ced2git/oeg_kmsd/blob/master/oegscan_mqtt.py (https://github.com/ced2git/oeg_kmsd/blob/master/oegscan_mqtt.py)
Leider bekomme ich die dort beschriebenen Register nicht mit der Tabelle in Deinem Skript zusammen.
Daher die Frage nach den eigentlichen Registernummern.
Hast Du einen Tip für mich?

Gruß Torsten
Titel: Antw:Neues Modul Heizungssteuerung OEG-KMS/KSF | Seltron-KXD | Solarbayer-D30
Beitrag von: mynameisfu am 19 Dezember 2021, 13:15:48
Einen wunderschönen Guten Tag,
besteht die Möglichkeit das Modul auf Die OEG KSW-e um zu modeln.

danke im voraus



......
hat sich erledigt geht super
Ich musste nur den USB Port anpassen.
Titel: Antw:Neues Modul Heizungssteuerung OEG-KMS/KSF | Seltron-KXD | Solarbayer-D30
Beitrag von: WumpE am 16 Februar 2022, 13:13:40
Zitat von: mynameisfu am 19 Dezember 2021, 13:15:48
Einen wunderschönen Guten Tag,
besteht die Möglichkeit das Modul auf Die OEG KSW-e um zu modeln.

danke im voraus



......
hat sich erledigt geht super
Ich musste nur den USB Port anpassen.

Super , dann nehme ich sie in der Beschreibung mal mit auf :)
Titel: Aw: Neues Modul Heizungssteuerung OEG-KMS/KSF/KSW | Seltron-KXD | Solarbayer-D30
Beitrag von: stelo am 29 Dezember 2025, 15:37:23
Hallo zusammen,

ich habe eine OEG KMS-D und würde diese gerne in fhem einbinden.
Wie erfolgt nun die physikalische Anbindung? Wird ein ESP32 o.ä. direkt mit dem USB-Port verbunden und die Werte können dann über Wlan abgefragt werden? Gibt es dafür ein Sketch oder fertige Lösungen?

Danke und Grüße,
Stefan
Titel: Aw: Neues Modul Heizungssteuerung OEG-KMS/KSF/KSW | Seltron-KXD | Solarbayer-D30
Beitrag von: WumpE am 29 Dezember 2025, 18:34:43
Zitat von: stelo am 29 Dezember 2025, 15:37:23Hallo zusammen,

ich habe eine OEG KMS-D und würde diese gerne in fhem einbinden.
Wie erfolgt nun die physikalische Anbindung? Wird ein ESP32 o.ä. direkt mit dem USB-Port verbunden und die Werte können dann über Wlan abgefragt werden? Gibt es dafür ein Sketch oder fertige Lösungen?

Danke und Grüße,
Stefan

Grüße Stefan,

das Modul läuft nativ im FHEM und benötigt eine serielle Verbindung zur KMS. Ich habe dazu zum Beispiel nen USB-Kabel zwischen KMS und Raspi hängen und schleife die Daten per Ser2Net zur fhem-Instanz (anderer rechner) per Ethernet weiter. Man könnte dazu auch einen ESP nutzen und per esphome dafür bereitstellen. Damit habe ich mich aber noch nicht beschäftigt, müsste aber easy zu machen sein!

def im fhem -> ip-vom-raspi:port-vom-raspi
zB 192.168.178.200:13012

raspi udev rule -> KERNEL=="ttyACM*", SUBSYSTEMS=="usb", ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="000a", SYMLINK+="KMSusb", MODE="0666"

raspi ser2net yaml config ->
### KMS-D+
connection: &con012
    accepter: tcp,13012
    connector: serialdev,/dev/KMSusb,9600n81,nobreak,local
    options:
      kickolduser: true


Grüße und guten Rutsch
Titel: Aw: Neues Modul Heizungssteuerung OEG-KMS/KSF/KSW | Seltron-KXD | Solarbayer-D30
Beitrag von: stelo am 29 Dezember 2025, 23:09:37
Herzlichen Dank für die schnelle Rückmeldung WumpE. Das ich den Raspi einfach so per Kabel anschließen kann hätte ich nicht gedacht.
Leider ist der Raspi mit Buster zu alt für die Installation von ser2net.
Ich werde fhem neu installieren und es dann nochmal versuchen.
Danke für Deine bisherige Hilfe und dem Modul.
Guten Rutsch,
Stefan
Titel: Aw: Neues Modul Heizungssteuerung OEG-KMS/KSF/KSW | Seltron-KXD | Solarbayer-D30
Beitrag von: WumpE am 30 Dezember 2025, 10:05:28
Zitat von: stelo am 29 Dezember 2025, 23:09:37Herzlichen Dank für die schnelle Rückmeldung WumpE. Das ich den Raspi einfach so per Kabel anschließen kann hätte ich nicht gedacht.
Leider ist der Raspi mit Buster zu alt für die Installation von ser2net.
Ich werde fhem neu installieren und es dann nochmal versuchen.
Danke für Deine bisherige Hilfe und dem Modul.
Guten Rutsch,
Stefan


ser2net gibts doch schon ewig..... lief bei mir auch schon auf buster und auch davor

hier mal meine alte ser2net.conf
13011:raw:0:/dev/CULusb:38400 NONE 1STOPBIT 8DATABITS HANGUP_WHEN_DONE
13012:raw:0:/dev/KMSusb:9600 8DATABITS NONE 1STOPBIT

grüße und guten rutsch
Stefan aka WumpE
Titel: Aw: Neues Modul Heizungssteuerung OEG-KMS/KSF/KSW | Seltron-KXD | Solarbayer-D30
Beitrag von: stelo am 30 Dezember 2025, 21:09:26
Hi Stefan,
für Buster kann man leider keine Pakete mehr updaten/installieren. Die Paketquellen sind nicht mehr erreichbar. Ich habe aber eine Anleitung gefunden auf Bullseye upzugraden.
Nach der Installation von ser2net habe ich dann nach einigen Probieren ein Device opened mit dem ersten KMS-Reading bekommen :-) Echt cool!
Danke für Deinen Support.
Grüße, Stefan
Titel: Aw: Neues Modul Heizungssteuerung OEG-KMS/KSF/KSW | Seltron-KXD | Solarbayer-D30
Beitrag von: stelo am 08 Januar 2026, 07:59:52
Hallo zusammen,

das Modul läuft nun schon einige Zeit perfekt. Vielen Dank!
Allerdings habe ich festgestellt, dass folgender Eintrag alle 5 Sekunden im Log erzeugt wird:

2026.01.08 07:57:46 3: deletereading kmsd HK2_.* : Deleted reading HK2_Zeitprogramm for device kmsd
Deleted reading HK2_Tag_Soll for device kmsd
Deleted reading HK2_Betriebsart for device kmsd
Deleted reading HK2_Sondermodus for device kmsd
Deleted reading HK2_Nacht_Soll for device kmsd

Wie kann der Logeintrag unterbunden werden?

Danke,Stefan