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:
- fhem mit Steuerung per usb verbinden
- 98_KMS.pm downloaden und ins Verzeichnis fhem-home/FHEM kopieren (leserechte setzen nicht vergessen)
- define gerätename KMS /dev/ttyACMX@9600
und los geht's
Update 27.11.2016KMS Beta v0.2
Bugfixing
- Fehler mit negativen Temperaturen wurde behoben
Neue Funktionen
- Betriebsarten können jetzt geschalten werden
Example: set Device HK1_Betriebsart Tag
Erlaubte Parameter Automatik|Tag|Nacht|Aus - Zeitprogramme können jetzt geschalten werden
Example: set Device WW_Zeitprogramm 2
Erlaubte Parameter 1|2 - Sonderprogramme können jetzt geschalten werden
Example1: set Device HK2_Sondermodus Party 19:32 25.0
Example2: set Device HK1_Sondermodus Eco +300 17
Example3: set Device HK2_Sondermodus Urlaub 30.04. 12
Erlaubte Parameter Party|Eco|Urlaub|Aus
Party [AbsoluteZeit/Minutenabjetzt] [Temp]
Eco [AbsoluteZeit/Minutenabjetzt] [Temp]
Urlaub [Datum] [Temp]
Update 27.05.2018KMS Beta v0.5
Bugfixing
- Fehler mit falschen Tages und Monatswerten beim Urlaubsmodus behoben
- Wenn das Attribut useHK2 0 ist, werden auch die Readings entfernt
- Wenn das Attribut updateTime 0 ist, wird auf die Zeit kein Event mehr gefeuert
Danke und Grüße
WumpE
Update
*update
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
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
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
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
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.
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 :)