Buderus KM200 Kommunikationsmodul

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

Vorheriges Thema - Nächstes Thema

furban

Na ob die Version nun was bringt? Wie schon gesagt ich bin mir nicht sicher ob ich überhaupt auf dem richtigen Weg bin. Ich habe keine Ahnung von dieser ganzen Ver- und Endschlüsselei und diesem "JOSM". Das ist erst mal nur ein Copy/Paste aus der Webseite von oben.
Hier auch mal die decrypt.pl und encrypt.pl mit der man schon etwas ver- und entschlüsseln kann. Das funktioniert mal. Nur wie man das jetzt ganz genau eingebaut bekommt so das auch die richtigen Werte übergeben werden ist mir derzeit noch nicht ganz klar.

ergerd

Hallo zusammen,

ich würde gern das Modul testen, scheitere aber schon an Mcrypt.
FHEM betreibe ich auf einem Synolgy NAS, kann mir jemand vermitteln wie ich (und ob überhaupt) Mcrypt darauf installiere?

Viele Grüße
Rainer
FHEM auf RasPi 4, CUNO, ZigBee, 1Wire2WLAN, DS2423, C-Control II, Buderus KM200, LaCrosseGateway, PCA301, ConBee II, LuftdatenInfo, OneWireGW, Div. ESPs u. Shellys

Sailor

Hallo egerd

M typt bekommst du nur von CPAN.

Um CPAN repositories zu bekommen musst du vorher CPANM installieren.
Dann kannst du mit CPANM das Mcrypt herunterladen und installieren.

Sailor


Gesendet mit Tapatalk
******************************
Man wird immer besser...

ergerd

Hallo Sailor,

das scheint auf der Synology nicht so einfach bzw. unmöglich zu sein.
Ich habe vieles versucht, bin auch bis dahin gekommen, das ich über CPANM Mcrypt installieren konnte, erhalte bei einem "reload 73_km200.pm" jedoch folgende Fehler:

Can't locate loadable object for module Mcrypt in @INC (@INC contains: /usr/local/perl/lib/5.16.0/armv5tel-linux /usr/local/perl/lib/5.16.0 /usr/local/perl/lib/site_perl/5.16.0/armv5tel-linux /usr/local/perl/lib/site_perl/5.16.0 /usr/local/perl/lib/site_perl/5.16.0/armv5tel-linux /usr/local/perl/lib/site_perl/5.16.0 /usr/local/perl/lib/5.16.0/armv5tel-linux /usr/local/perl/lib/5.16.0 . /usr/local/FHEM/share/fhem/FHEM /usr/local/FHEM/share/fhem/FHEM/lib) at /usr/local/FHEM/share/fhem/FHEM/73_km200.pm line 62.
Compilation failed in require at /usr/local/FHEM/share/fhem/FHEM/73_km200.pm line 62.
BEGIN failed--compilation aborted at /usr/local/FHEM/share/fhem/FHEM/73_km200.pm line 62.

An der Stelle weis ich nicht mehr weiter.

Grüße
Rainer
FHEM auf RasPi 4, CUNO, ZigBee, 1Wire2WLAN, DS2423, C-Control II, Buderus KM200, LaCrosseGateway, PCA301, ConBee II, LuftdatenInfo, OneWireGW, Div. ESPs u. Shellys

Sailor

Hallo ergerd

Schau mal bei Antwort Nr. 32. und dann Nummer 33.  ;D

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

ergerd

Hallo Sailor,

ich sehe bei mir keine Nummern zu den Antworten, aber ich denke du meinst
sudo apt-get install libmcrypt4 libmcrypt-dev

apt-get gibt es auf der Synology nicht, daher bin ich so vorgegangen:
cd /usr/src
wget ftp://mcrypt.hellug.gr/pub/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
tar xvfz libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure
make
make install


Aber cpan Mcrypt leifert nur Fehlermeldungen beim Test:
Running make test
PERL_DL_NONLAZY=1 /usr/local/perl/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/destruct.t ..... Can't load '/root/.cpan/build/Mcrypt-2.5.7.0-1P1tO8/blib/arch/auto/Mcrypt/Mcrypt.so' for module Mcrypt: /root/.cpan/build/Mcrypt-2.5.7.0-1P1tO8/blib/arch/auto/Mcrypt/Mcrypt.so: undefined symbol: mcrypt_enc_get_block_size at /usr/local/perl/lib/5.16.0/armv5tel-linux/DynaLoader.pm line 190.
at t/destruct.t line 6.
Compilation failed in require at t/destruct.t line 6.
BEGIN failed--compilation aborted at t/destruct.t line 6.
# Looks like your test exited with 2 before it could output anything.
t/destruct.t ..... Dubious, test returned 2 (wstat 512, 0x200)
Failed 1/1 subtests


Grüße
Rainer
FHEM auf RasPi 4, CUNO, ZigBee, 1Wire2WLAN, DS2423, C-Control II, Buderus KM200, LaCrosseGateway, PCA301, ConBee II, LuftdatenInfo, OneWireGW, Div. ESPs u. Shellys

Sailor

Hallo Rainer,

auweia, da bin ich auch ueberfragt!

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

nobody0472

Hi all,

an ähnlicher Stelle bin ich auch gerade mit meiner Linkstation. Auch hier kein apt-get, aber ipkg. SSL ist bereits drauf, mcrypt habe ich auch selbst übersetzt.
Obendrein: kein cpanm sondern nur per Hand Installation der CPAN Module.

Werde berichten.
Gruß,
Olaf

Rockojfonzo

Aloha! Ich will auch mitspielen! :-)
Modul installiert, "Buderus" definiert, sieht für mich gut aus:
2014-10-20 12:43:07 km200 Buderus Interval: 60
2014-10-20 12:43:07 km200 Buderus Address: 192.168.1.92
2014-10-20 12:43:07 km200 Buderus REST_services: 27

Leider bin ich zu doof zu kapieren, wie es nun weitergeht.
Wie komme ich denn jetzt z.B. an den Wert von "/system/sensors/temperatures/supply_t1"?

Dank für Aufs-Pferd-Helfing!
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

Sailor

Moin zusammen!

Die gute Nachricht vorweg: Ich habs geschafft: Der Zugang zum KM200 ist offen!!!!!!

Mein System spukt folgendes aus:

2014.10.20 16:18:29 3: decryptData : deciphertext     : {"id":"/system/sensors/temperatures/outdoor_t1","type":"floatValue","writeable":0,"recordable":1,"value":15.1,"unitOfMeasure":"C"}


und das ganz ohne MCrypt!!! Sondern nur mit: http://search.cpan.org/~bdfoy/Crypt-Rijndael-1.12/Rijndael.pm

Damit waere der Meilenstein geschafft!!!!!!

Die schlechte Nachricht: Jetzt geht es an die Fussarbeit daraus ein brauchbares fhem modul zu machen!
Das kann noch dauern und braucht die Hilfe erfahrener Modulprogrammierer!

Augenblickliches Problem: Stoesst mein Modul auf einen Heizungsparameter den es nicht gibt spukt er die Linux-Befehlszeilenfehlermeldung
404 Not Found at ./FHEM/73_km200.pm line 493, <$fh> line 16.
obwohl ich glaubte, dies mit einem die-Befehl abgefangen zu haben!


489: if ($response->is_success) {     
490:       $data = decode_json(km200_Decrypt( $response->decoded_content , $km200_crypt_key_private));
491:    }
492:   else {
493:        die $response->status_line;
494:   }


aus und fhem stuerzt ab... Aber mit vorhandenen Parametern klappts und ich arbeite daran!!!

Ha, aber fuer heute ist Feierabend... Mann, hat das NERVEN gekostet!!!

(Warum gibt es eigentlich keinen Bier-Trink-Smiley in diesem Forum?  ;D ;D ;D

Gruss heute mal vom "aufm-Deich"!
    Sailor
******************************
Man wird immer besser...

nobody0472

HI all,

das ist auch die Lösung für alle NAS-Nutzer die KEIN OpenSSL in Developer-Version nachinstallieren können.

Die Crypt::Rijndael (-1.12) braucht dies nicht, und realisiert AES. Bei mir auf derLinkstation ist das Perl aber zu alt, daher habe ich die Crypt-Rijndael-1.11 isntalliert.
Man muß im Code allerdings die Erzeugeung des Ciphers ändern:

Jeweils statt:

   my $cipher = Crypt::CBC->new(
      -literal_key    => 1,
      -key            => $key,
      -header         => 'none',
      -iv             => $iv,
      -cipher         => 'Crypt::OpenSSL::AES');

folgendes:

   my $cipher = Crypt::CBC->new(
      -literal_key    => 1,
      -key            => $key,
      -header         => 'none',
      -iv             => $iv,
      -cipher         => 'Crypt::Rijndael');

Und Crypt::CBC und Crypt::Rijndael lassen sich auch OHNE CPAN-Minus (cpanm) direkt als TGZ ziehen und lokal ins Perl installieren.

Soweit mein Stand bis dato. Am Rest bin ich ähnlich dran wie Sailor.
Gruß,
Olaf

Sailor

Hallo Olaf, komme sogar ohne Crypt::CBC aus


Gesendet mit Tapatalk
******************************
Man wird immer besser...

nobody0472

HI Sailor,

klingt gut, und wie hast Du das im Code glöst? Kannst Du Deine Version vom Modul mal hochladen?

Danke,
Gruß,
Olaf

nobody0472

So Nachtrag,

da ich ein KM50 besitze und kein KM200 hat sich folgendes herausgestellt:
Der HEADER des HTTP-GET ist beim KM50 unterschiedlich, daher antwortet mein Gateway immer, dass es die "Files" nicht kennt.
Bin gerade dran herauszufinden, wo die Unterschiede liegen. Dies wurde im Juli des Jahres schon einmal in einem anderen Board gelöst, allerdings ohne die Lösung zu posten.
Werde also nachher mal nen Sniffer dran hängen.
Die Unterschiede sind vermutlich marginal, allerdings ausreichend, dass mein KM50 die Antwort verweigert. Alles andere (SALT, REST_Baum, etc.) sollen wohl gleich sein.

Gruß,
Olaf

Sailor

Hallo Olaf,

deine Frage nach der Entschlüsselung scheinst Du schon rausbekommen zu haben.  8)


Zwei Fragen an Dich:

1)
Wie übertrage ich den entschlüsselten String
{"id":"/system/sensors/temperatures/outdoor_t1","type":"floatValue","writeable":0,"recordable":1,"value":15.1,"unitOfMeasure":"C"}
in den hash welches die (unter) Spalten "id" , "type", "writeable", "recordeable", "value" und "unitOfMeasure" für sämtliche Einträge hat


2)
Wie wandle ich die in den hash geschriebenen Daten in Readings um, wobei
"id" Der Name des Readings ist
"type" verworfen werden kann
"writeable" verworfen werden kann
"recordeable" verworfen werden kann
"value" der Wert des Readings
"unitOfMeasure" die EInheit des Readings
ist?

Danke für deine Hilfe.

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