Buderus KM200 Kommunikationsmodul

Begonnen von Sailor, 21 Juli 2014, 12:39:47

Vorheriges Thema - Nächstes Thema

Woodworm

Werte werden nicht gelesen, da der Zeitstempel dies behauptet.

Beispiel:

/system/systemType   PROF_ICOM_GATEWAY   2016-02-22 17:21:00
fullResponse                OK                                  2016-02-22 17:21:00   -funzt

/system/sensors/temperatures/return  51.1      2016-02-22 06:38:21    -keine aktuellen Daten!!

/system/sensors/temperatures/outdoor_t1 -3276.8  2016-02-22 06:38:21 - keine Messung..


Daher vermute ich meinen Fehler hardwareseitig.
Es verwundert mich aber, das die Werte einmalig in die KM300 gelesen werden..

Sailor

#1186
Hi Woodworm

Zitat von: Woodworm am 22 Februar 2016, 18:47:07
Es verwundert mich aber, das die Werte einmalig in die KM300 gelesen werden..

Wie sehen denn deine Attribute aus?

Setze mal das Attribut "verbose" für das km200 - fhem - device auf "5" und sende mir bitte mal das Logfile vom fhem-Neustart bis zum Ende eines Pollings-

Gruss
    Sailor
******************************
Man wird immer besser...

dirk.reinhold@gmx.de

Hallo FHEM,

ich verfolge dieses Forum schon seit einiger Zeit. Vielleicht kann mir hier jemand einen Tipp geben?
Ich suche nach einer Möglichkeit, per Skript (z.B. PHP) eine Einmalladung des Warmwassers meiner Buderus Heizung auszulösen. KM200 und RC300 funktionieren.
Zur Zeit verwende ich das Buderus WebUI ,,http://buderus-connect.de" dazu. Das ist mit aber etwas zu umständlich. Ein Skript wäre mir lieber.
Ich habe mal den Netzwerk-Verkehr mit der Fritzbox mitgeschnitten und per Wireshark analysiert, während ich das Web-UI bedient habe. Hier das Ergebnis:

####################################################################
PUT /dhwCircuits/dhw1/singleChargeSetpoint HTTP/1.1

User-Agent: PortalClient

Content-Type: application/json

Content-Length: 24

0r0vYRtlFsiTwj8/WSXKgQ==

####################################################################
PUT /dhwCircuits/dhw1/chargeDuration HTTP/1.1

User-Agent: PortalClient

Content-Type: application/json

Content-Length: 24

Qg5gMlTBVgt30PWmkaoqtg==

####################################################################
PUT /dhwCircuits/dhw1/charge HTTP/1.1

User-Agent: PortalClient

Content-Type: application/json

Content-Length: 44

1K3rk2G6lPUGySEZeY0b9k1HDsqBS3o35FxU0JsYHMg=

####################################################################

Wie befürchtet, ist der Payload verschlüsselt.
Leider ist mir keine Entschlüsselung gelungen.
Ich habe mir den 256 Bit AES-Key mit der Anleitung ,,AES-Key-Generator für das KM200 Web Gateway" von Andreas Hahn generiert und es damit vergebens versucht.
Den AES-Key könnte ich bereitstellen. Allerdings lieber per PN.

Gruß, Dirk

furban

Zitat von: HandbreitWasser am 23 Februar 2016, 11:26:37
Hallo FHEM,

ich verfolge dieses Forum schon seit einiger Zeit. Vielleicht kann mir hier jemand einen Tipp geben?
Ich suche nach einer Möglichkeit, per Skript (z.B. PHP) eine Einmalladung des Warmwassers meiner Buderus Heizung auszulösen. KM200 und RC300 funktionieren.
Zur Zeit verwende ich das Buderus WebUI ,,http://buderus-connect.de" dazu. Das ist mit aber etwas zu umständlich. Ein Skript wäre mir lieber.
Ich habe mal den Netzwerk-Verkehr mit der Fritzbox mitgeschnitten und per Wireshark analysiert, während ich das Web-UI bedient habe. Hier das Ergebnis:

####################################################################
PUT /dhwCircuits/dhw1/singleChargeSetpoint HTTP/1.1

User-Agent: PortalClient

Content-Type: application/json

Content-Length: 24

0r0vYRtlFsiTwj8/WSXKgQ==

####################################################################
PUT /dhwCircuits/dhw1/chargeDuration HTTP/1.1

User-Agent: PortalClient

Content-Type: application/json

Content-Length: 24

Qg5gMlTBVgt30PWmkaoqtg==

####################################################################
PUT /dhwCircuits/dhw1/charge HTTP/1.1

User-Agent: PortalClient

Content-Type: application/json

Content-Length: 44

1K3rk2G6lPUGySEZeY0b9k1HDsqBS3o35FxU0JsYHMg=

####################################################################

Wie befürchtet, ist der Payload verschlüsselt.
Leider ist mir keine Entschlüsselung gelungen.
Ich habe mir den 256 Bit AES-Key mit der Anleitung ,,AES-Key-Generator für das KM200 Web Gateway" von Andreas Hahn generiert und es damit vergebens versucht.
Den AES-Key könnte ich bereitstellen. Allerdings lieber per PN.

Gruß, Dirk

Hi,

das Problem habe ich inzwischen damit gelöst das ich einfach die Wassertemperatur entsprechend setzte. Damit kann ich dann sogar genau sagen wie lange die Einmalladung laufen soll. Ist also eigentlich viel besser

Bei mir wird Warmwasser nur zwischen 07:30 bis 22:30 erzeugt. Tagsüber ab 09:00 bis 17:00 nur 40 Grad ansonsten 55 Grad
define WassertemperaturPmHigh at *17:00 set KM200 /dhwCircuits/dhw1/temperatureLevels/high 55
define WassertemperaturAmLow at *09:00 set KM200 /dhwCircuits/dhw1/temperatureLevels/high 40

So kann man sich das recht einfach zusammenbauen wie man es selbst am liebsten hätte.

dirk.reinhold@gmx.de

Hallo Furban,

danke für den Tipp.
Ich hätte trotzdem gerne gewusst, wie Buderus die Einmalladung auslöst.
Die Frage ist: Was steckt hinter dem verschlüsselten Befehlen "0r0vYRtlFsiTwj8/WSXKgQ==", "Qg5gMlTBVgt30PWmkaoqtg==" und "1K3rk2G6lPUGySEZeY0b9k1HDsqBS3o35FxU0JsYHMg="?

Dirk

Sailor

Moin zusammen

ab morgen, Freitag, ist eine neue Version 10933 des km200-Moduls zur Verfügung.

Habe die Log-Level angepasst und versucht die doppelten Einträge die durch DoNotPoll verusacht werden, zu unterbinden.

Da bei mir dieser Fehler weder vorher noch nachher auftaucht, konnte ich diese bisher bei mir selbst nicht nachvollziehen.

Ich bitte um Test und Rückmeldung.

Gruß
   Sailor
******************************
Man wird immer besser...

HarryHase

@furban: Ich verstehe nicht wie das umgesetzt ist. Kannst Du das mir noch mal erklären, auch wo was eingetragen werden muss?

define in die fhem.cfg?

Und wie rufe ich das dann auf? Das würde meine Frau echt freuen wenn die es per Knopfdruck auslösen kann.
Grüße hh

-----------------------

Starkstrombastler

@HarryHase:

Bei mir gibt es im Bad einen Taster der über eine Logo ausgelesen wird. Bei kurzer Betätigung schaltet die Logo die Zirkulation ein. Bei langer Betätigung (t>4.00 sec) wird die WW-Soll-Temperatur auf 55° gesetzt und nach 30 Minuten wieder auf die planmäßige Soll-Temperatur gem. HeatingControl-Profil zurück gesetzt.


define nAnfordWW notify Mi9_AnfordWWZirk.off {
my $SpeicherTemp = int(ReadingsVal("KM200","/dhwCircuits/dhw1/actualTemp",0));
my $msg = "";
if (ReadingsVal("M_ZirkAnf","state",0) > 400){
fhem("set KM200 /dhwCircuits/dhw1/temperatureLevels/on 55");
my $profilTemp = Value("hcWW");
fhem "defmod aZirkAnf at +00:30 set KM200 /dhwCircuits/dhw1/temperatureLevels/on $profilTemp";
$msg = "Wasser wird aufgeheizt";
} else {
$msg = "Die Zirkulation ist aktiv. Die Temperatur beträgt $SpeicherTemp Grad";
}
fhem "set MyTTS tts $msg";
}
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

furban

Zitat von: HarryHase am 25 Februar 2016, 20:15:53
@furban: Ich verstehe nicht wie das umgesetzt ist. Kannst Du das mir noch mal erklären, auch wo was eingetragen werden muss?

define in die fhem.cfg?

Und wie rufe ich das dann auf? Das würde meine Frau echt freuen wenn die es per Knopfdruck auslösen kann.

Was da Starkstrombaster gebaut hat ist natürlich schon eher die Mercedeslösung :)
Ich mache das nur rein auf Zeitschaltung und da reicht es das in der fhem.cfg einzutragen was ich weiter oben angeben habe.

Wenn das per Knopfdruck passieren soll hängt das natürlich auch etwas davon ab welchen Knopf man denn verwenden will. Da müsste ich dann sicher auch erst probieren. So viel Ahnung habe ich leider von fhem nun auch nicht.

HarryHase

wenn ich wüsste wie ich das auffrufe, dann würde mir ein virtueller Knopf in der Oberfläche auf dem PC reichen. Wenn mein Weib meint dass das Wasser zu kalt ist macht sie auch den pc an und drückt irgendwo drauf.
Grüße hh

-----------------------

furban

Zitat von: HarryHase am 27 Februar 2016, 12:50:41
wenn ich wüsste wie ich das auffrufe, dann würde mir ein virtueller Knopf in der Oberfläche auf dem PC reichen. Wenn mein Weib meint dass das Wasser zu kalt ist macht sie auch den pc an und drückt irgendwo drauf.
Einfach nur eine virtuellen Knopf habe ich mir in FHEM auch noch nie eingebaut. Aber macht das denn Sinn? Wenn man sich ohnehin an den PC setzten muss kann man ja auch gleich zum Steuergerät der Heizung laufen und da den Knopf drücken.
Dann doch lieber noch ein CUL an den Raspi anstecken (falls nicht schon vorhanden) und über eine billige Fernbedienung aus dem Baumarkt eine Einmalladung auslösen

huhu

Hallo Leute,

ich versuche leider immer noch vergebens erste Werte mit meinem KM200 auszulesen. FHEM habe ich neu installiert, auf die neuste Version gebracht und die Einbindung gemäß des Wiki Beitrags durchgeführt. Leider erhalte ich keine Werte und folgenden Fehler im Log:

________________________________________________________________________________________________________

2016.03.01 09:37:59 3: myKm200 - km200 has been undefined. The KM unit at 192.168.1.11 will no longer polled.
km200 has been undefined. The KM unit at 192.168.1.11 will no longer polled.
________________________________________________________________________________________________________

2016.03.01 09:37:59 1: Including fhem.cfg

km200 module is only polling the following services!
/ /dhwCircuits /gateway /heatSources /heatingCircuits /notifications /recordings /solarCircuits /system
km200 module is NOT  polling the following services!
   
2016.03.01 09:38:11 3: deletereading myKm200 .* : Deleted reading fullResponse for device myKm200

Sounding and importing of services started
2016.03.01 09:38:51 1: Including ./log/fhem.save
2016.03.01 09:38:52 2: myKm200 : km200_ParseHttpResponseInit - ERROR - Service: /: No proper Communication with Gateway: connect to to http://192.168.1.11:80 timed out
km200_ParseHttpResponseInit ERROR: connect to to http://192.168.1.11:80 timed out
2016.03.01 09:38:52 2: myKm200 : km200_ParseHttpResponseInit - ERROR - Timer restarted to try again in 10s
The following Service CANNOT be read                   : /
The following Service CANNOT be parsed by JSON         : /dhwCircuits
The data type is unknown for the following Service     : /dhwCircuits
The following Service CANNOT be parsed by JSON         : /gateway
The data type is unknown for the following Service     : /gateway
The following Service CANNOT be parsed by JSON         : /heatSources
The data type is unknown for the following Service     : /heatSources
The following Service CANNOT be parsed by JSON         : /heatingCircuits
The data type is unknown for the following Service     : /heatingCircuits
The following Service CANNOT be parsed by JSON         : /notifications
The data type is unknown for the following Service     : /notifications
The following Service CANNOT be parsed by JSON         : /recordings
The data type is unknown for the following Service     : /recordings
The following Service CANNOT be parsed by JSON         : /solarCircuits
The data type is unknown for the following Service     : /solarCircuits
The following Service CANNOT be parsed by JSON         : /system
The data type is unknown for the following Service     : /system
Sounding and importing of services is completed
________________________________________________________________________________________________________


Sounding and importing of services started
The following Service CANNOT be read                   : /
The following Service CANNOT be parsed by JSON         : /dhwCircuits
The data type is unknown for the following Service     : /dhwCircuits
The following Service CANNOT be parsed by JSON         : /gateway
The data type is unknown for the following Service     : /gateway
The following Service CANNOT be parsed by JSON         : /heatSources
The data type is unknown for the following Service     : /heatSources
The following Service CANNOT be parsed by JSON         : /heatingCircuits
The data type is unknown for the following Service     : /heatingCircuits
The following Service CANNOT be parsed by JSON         : /notifications
The data type is unknown for the following Service     : /notifications
The following Service CANNOT be parsed by JSON         : /recordings
The data type is unknown for the following Service     : /recordings
The following Service CANNOT be parsed by JSON         : /solarCircuits
The data type is unknown for the following Service     : /solarCircuits
The following Service CANNOT be parsed by JSON         : /system
The data type is unknown for the following Service     : /system
Sounding and importing of services is completed
________________________________________________________________________________________________________

No dynamic values available to be read. Skipping download.


Laut Wiki ist die Ursache ein falsches Kennwort. Dieses habe ich mehrfach geprüft (auch mit "-" und ohne "-" eingegeben), persönliches Passwort hat keine deutschen Umlaute, auch schonmal neu gesetzt. Kein Erfolg.

Folgende Werte verwende ich:
define myKm200 km200 192.168.1.11 xxxx-xxxx-xxxx-xxxx persoenlichesPW
attr myKm200 IntervalDynVal 180
attr myKm200 PollingTimeout 30
attr myKm200 ConsoleMessage 1
attr myKm200 DoNotPoll
attr myKm200 ReadBackDelay 5000


Unter Unsorted, myKm200 ändert sich STATE zwischen Polling und Standby - scheint ja eigentlich ok zu sein?
fullResponse   OK   2016-03-01 09:39:03


Die "Testwerte" zum Auslesen habe ich aus dem Wiki 1:1 übernommen:

define Temperaturen readingsGroup myKm200:<%temp_temperature>,<AussenTemp.>,/system/sensors/temperatures/outdoor_t1 myKm200:<%sani_solar_temp><SonnenkollektorTemp.>,/solarCircuits/sc1/collectorTemperature myKm200:<%sani_buffer_temp_all>,<HeißwasserTemp.>,/system/sensors/temperatures/hotWater_t2
attr Temperaturen room Heizung
attr Temperaturen valueStyle style="text-align:right"

define Heizung readingsGroup myKm200:<%sani_domestic_waterworks>,<Heizungsdruck>,/system/appliance/systemPressure myKm200:<%sani_supply_temp>,<Vorlauftemp>,/system/sensors/temperatures/supply_t1 myKm200:<%sani_return_temp>,<Rücklauftemp>,/heatSources/returnTemperature
attr Heizung room Heizung
attr Heizung valueStyle style="text-align:right"



Was mache ich falsch? Oder was fehlt noch?

Rockojfonzo

Huhu huhu!  ;)

Ich will hier nicht Leute abwerben, aber ich hatte auch allzeit meine Müh mit dem Modul (hängende Requests, ausbleibende Antworten, vier- bis fünffacher Poll pro Wert...).
Seit BDKM ist mein Leben schön!
FHEM auf Shuttle XS 35V2 mit CUL und HM-LGW
9 x HM-CC-RT-DN; 2 x HM-LC-SW4-DR; 3 x HM-WDS30-OT2-SM; 3 x HM-SEC-SD; 1 x HM-LC-Bl1PBU-FM; 1 x HM-LC-SW1-PL2;1 x HM-LC-SW1-FM; 2 x HM-SEC-SC-2

furban

Zitat von: Rockojfonzo am 01 März 2016, 10:02:56
Huhu huhu!  ;)

Ich will hier nicht Leute abwerben, aber ich hatte auch allzeit meine Müh mit dem Modul (hängende Requests, ausbleibende Antworten, vier- bis fünffacher Poll pro Wert...).
Seit BDKM ist mein Leben schön!

Also ich bleibe bei diesem Modul hier. Bei mir funktioniert das alles wunderbar und ich sehe keine Notwendigkeit umzubauen. Ich habe das Andere zwar auch mal parallel am laufen, sehe für mich aber keine Vorteile.
Schade das es nun zwei Module zum selben Thema gibt. Ich denke es wäre schöner gewesen der "Konkurrent" hätte sich an der Weiterentwicklung des vorhandenen Moduls beteiligt.

Zum Huhu Problem würde ich aus dem Bauch mal sagen das da schon zu viel in der Konfig ist. Ich würde mal mit minimaler Konfig anfangen und das sollte das hier reichen
um erstmal die Werte auszulesen

define myKm200 km200 192.168.1.11 xxxx-xxxx-xxxx-xxxx persoenlichesPW
attr myKm200 verbose 3



Sailor

Hallo Huhu, furban

Zitat von: furban am 01 März 2016, 10:21:10
Zum Huhu Problem würde ich aus dem Bauch mal sagen das da schon zu viel in der Konfig ist. Ich würde mal mit minimaler Konfig anfangen und das sollte das hier reichen
um erstmal die Werte auszulesen

define myKm200 km200 192.168.1.11 xxxx-xxxx-xxxx-xxxx persoenlichesPW
attr myKm200 verbose 3


Gebt mir bitte mal
attr myKm200 verbose 4
und poste bitte mal das Log.

Im ersten Ansatz würde ich auch auf ein falsches PW oder falschen Anschluß an die Heizung tippen.

Kannst Du mit der Buderus App auf das Gerät zugreifen?

Gruß
    Sailor
******************************
Man wird immer besser...