NEWS
Adapter für Buderus KM200 (und eventuell auch anderen KMxxx)
-
Der Adapter ist auf Git unter https://github.com/frankjoke/iobroker.km200 verfügbar.
Buderus liefert mit dem KM200 eine Netzwerkanbindung ihrer Heizungen https://www.buderus.de/de/produkte/cata … km100-km50.
Es gibt laut den Foren auch KM50, KM100 und in nder Zwischenzeit auch ein KM300 welche anscheinend ähnlich funktionieren,
leider kann ich das nicht testen da ich nur eine KM200-Box hab, aber ich bitte euch den Adapter auf anderen Systemen zu testen.
Damit kann man über die Buderus-Webseite ([https://www.buderus-connect.de]) oder die 'EasyControl' app vom Handy steuern.
Nun hab ich in einem Forum gelesen dass FHEM und SYMCON dafür Treiber/adapter anbieten.
Diese sind jedoch in Perl und PHP geschrieben die ich beide überhaupt nicht kann.
Habe mir den sourcecode trotzdem angeschaut und versucht zu analysieren und mit node.js
herumgespielt ob ich auch eine Kommunikation ohne Fehler hinkriege.
Das ist mir jetzt gelungen und ich hab das ganze in diesem Adapter verbaut.
Momentan ist er nur 'read-only' was bedeutet man kann noch keine Daten zur Heizung schicken
(also z.B. die gewünschte Temperatur ändern), das steht in der TODO-Liste ganz oben.
Das System brauch einen Access-Key um die Daten ver- und entschlüsseln zu können.
Leider mußte der Code zur Generierung des Schlüssels wege Urheberrechtlichen Gründen vom Netz genommen werden
aber ein Symcon-Nutzer hat ein eigenes Webtool kreiert mit dem man den Key anfertigen kann.
Dazu ist es notwendig zuerst die app auf einem Handy zu installieren und dort das Passwort zu setzen,
die App fragt nach dem Passwort und dem Loginnamen auf dem Gerät und dann kann man sein Passwort setzten.
Dieses selbst gesetzte Passwort und das Gerätelogin werden dann auf der Webseite https://ssl-account.com/km200.andreashahn.info/
eingegeben und man erält seinen AccessKey (ein 64 Zeichen langes Hex-String). Dieser ist im Adapterkonfig einzugeben.
Der Adapter brauch noch die IP (oder den Netzwerknamen, bei mir 'BuderusKM200.fritz.box')
und die Portadrese (ist 80 am Gerät, aber falls ihr ihn über einen Router geändert habt… ).
Da der adapter die daten von der Anlage abfragen muß hab ich ein Update-Intervall definiert,
das ist auf minimum 5 Minuten gesetzt da bei jedem Update alle Daten einzeln abgefragt werden müssen.
Meine Anlage (2 Heizkreise und ein Heisswasserkreis) liefert mehr als 150 Datenpunkte wo ich die meisten nicht brauchen kann und manche sind doppelt.
Deshalb hab ich eine Blak/Push-List eingeführt um bestimmte Daten ausblenden oder einblenden zu können.
Diese Liste besteht aus strings welche zu RegExp geformt werden und die Services in der Heizung werden dann danach gefiltert.
Die Syntax ist dass "/irgendwas*" oder "-/irgendwas*" alles ausblendet fas mit "/irgendwas" beginnt und dann beliebige Zeichen (oder nichts) dran hat.
Mit "+.temp" kann man alles einblenden was 'temp' enthält, und das hat Vorrang gegenüber dem Ausblened!
Meile Liste schaut so aus
["/gateway*","/recordings*",".*switchPrograms.*","/heatSource*"]
und blendet ca 100 der ~150 Datensätze meiner Anlage aus.Die Anlage arbeitet Services die wie ein Verzeichnisbaum strukturiert sind und diese wird im Adapter nachgebildet.
-
Update zum Adapter, jetzt v0.3.0!
So, schreiben ist jetzt auch implementiert, die crypt-libraries von nodejs habe unterschiedliche Voraussetzungen als php drum konnte die encrypt-routine welche zum Setzen von Werten an der Heizung notwendig sind erst verspätet korrigiert werden.
Man kann allerdings nur Zahlen und strings setzen, Arrays und Objekte nicht (diese sind notwendig wenn man ein Programm ändern will).
Ich benötige das nicht da alle interessanten Teile wie setzten der Temperaturen oder aus/einschalten so auch funktioniert.
Habe nur Probleme mit den Vis-Widgets, diese zeigen zwar teilweise die min-max-Werte an verwenden sie aber nicht. So kann ich dann die HeissWassertemperatur nur auf 40°C setzten obwohl im Widget das min 30 und max 80 wie von der Heizung vorgegeben gesetzt ist. Werde aber im anderen Forumteil da mal meine Vis-Probleme versuchen zu lösen.
LG
Frank
-
Update auf 0.4!
Jetzt können Strings mit allowedValues vom KM als staes in ioBroker gelesen und geschrieben werden!
Das bedeutet dass erlaubte Werte wie [ "Off", "high", "HCprogram", "ownprogram"] richtig behandelt weden und als 'states' von ioBroker beim Lesen und Schreiben umgesetzt werden.
MFG
Frank
-
Hallo Frank,
habe auch ein KM200, den ich über FHEM (Danke an Sailor) eingebunden habe. Funktioniert einwandfrei. Über den FHEM-Adapter kommen die Werte auch alle in ioBroker an. Ein direkter Adapter ist natürlich einfacher und weniger fehlerträchtig.
Leider kann ich Deinen Adapter über GIT nicht installieren. Es tritt ein Fehler zu MCrypt auf.
3022 verbose stack Error: mcrypt@0.1.11 install: `node-gyp rebuild --release` 3022 verbose stack Exit status 1 3022 verbose stack at EventEmitter. <anonymous>(C:\Program Files\nodejs\node_modules\npm\lib\utils\lifecycle.js:217:16) 3022 verbose stack at emitTwo (events.js:87:13) 3022 verbose stack at EventEmitter.emit (events.js:172:7) 3022 verbose stack at ChildProcess. <anonymous>(C:\Program Files\nodejs\node_modules\npm\lib\utils\spawn.js:24:14) 3022 verbose stack at emitTwo (events.js:87:13) 3022 verbose stack at ChildProcess.emit (events.js:172:7) 3022 verbose stack at maybeClose (internal/child_process.js:829:16) 3022 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5) 3023 verbose pkgid mcrypt@0.1.11 3024 verbose cwd C:\Programme_Lokal\Services 3025 error Windows_NT 10.0.14393 3026 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "https://github.com/frankjoke/iobroker.km200/tarball/master" "--production" "--prefix" "c:/iobroker" 3027 error node v4.5.0 3028 error npm v2.15.9 3029 error code ELIFECYCLE 3030 error mcrypt@0.1.11 install: `node-gyp rebuild --release` 3030 error Exit status 1 3031 error Failed at the mcrypt@0.1.11 install script 'node-gyp rebuild --release'. 3031 error This is most likely a problem with the mcrypt package, 3031 error not with npm itself. 3031 error Tell the author that this fails on your system: 3031 error node-gyp rebuild --release 3031 error You can get information on how to open an issue for this project with: 3031 error npm bugs mcrypt 3031 error Or if that isn't available, you can get their info via: 3031 error 3031 error npm owner ls mcrypt 3031 error There is likely additional logging output above.</anonymous></anonymous>
Hast Du eine Idee?
Gruß Helle
-
Hallo,
es scheint du verwendest Windows und da ich ioBroker auf keinem Windows-Rechner installiert habe kann ich's dort nicht wirklich testen. Muss das mal nachholen.
Egal, sehe dass die Installation von mcrypt (ein anderes repo von Git) probleme macht.
Hab einen Rechner mit Nodejs unter Windows und konnte dort mit
npm install mcrypt
installieren, allerdings brauchst das VC++ development paket zum kompilieren des sourcecodes.
Da dies einige packages brauchen nehme ich an du hast das schon installiert.
Gehe mal ins /opt/iobroker/node-modules/iobroker.km200 Verzeichnis (wo auch immer das unter Windows ist) und probier
npm install mcrypt
Wenn das nicht hinhaut dann kannst nur bei mcrypt nachschauten
-
So, um etwas nachzuforschen und auch mal 'nen Adapter auf Windows testen zu können hab ich ioBroker auf meinem alten PC, der im Keller eigentlich nur meine CNC-Fräse steuert, installiert.
Dann erst mal Git installiert und im c:\ioBroker\node_modules den git clone gemacht.
Dann hinein ins c:\ioBroker\node_modules\iobroker.km200 und npm install.
Erstens: npm nimmt node-gyp zum installieren und das nimmt Python und C-Compiler zum kompilieren.
Erster Fehler: Node-gyp kann nur mit Python 2.7 (nicht 3.x), auf der Maschine war 3.3 installiert, also runter und 2.7 rauf.
2. Fehler: Keine compiler (MSBuild auf windows).
Also kurzerhand auf https://www.visualstudio.com/de/downloads/ und Visual Studio Community installiert. Nach gefühlten 2 Stunden und einem re-boot zurück nach
> c:\ioBroker\node_modules\iobroker.km200
, das komplette node_modules da drinnen löschen und ein neues '> npm install
' das jetzt (mit warnings) durchlief!zurück zu c:\ioBroker und ioaborker add km200 was dann ging
Dann kam die nächste Schlappe: Der adapter startet nicht! Die logs melden nur:
> host-keller 2016-10-16 20:44:46.610 error instance system.adapter.km200.0 terminated with code 1 ()
Ok, dann wollte ich wissen obs an mcrypt oder sonst was scheitert und mein altes testscript für den Zugriff auf KM200 welches im javascript adapter lief hervorgeholt.
Den Javascriptadapter installiert (admin lief in der zwischenzeit) und mcrypt bzw asynk als module angegeben und mein script gestartet. Es funktionierte!
Dann hab ich versucht meinen 2. Adapter zu installieren, er verwendet keine speziellen Bibliotheken wie mcrypt, scheiterte aber mit dem selben code 1
Beide Adapter wurden ursprünglich vom 'Adapter Template' generiert und umbenannt.
Also:
Irgendwas funktioniert nicht im Adaptern unter Windows. Muss erst Bluefox oder andere Spezialisten fragen wie ich den Adapterstart debuggen kann und was der code 1 bedeutet.
Jetzt kann ich wenigstens im Keller auch unter Windows Adapter testen.
-
Hallo Frank,
Mit "npm install –global --production windows-build-tools" wird die richtige Umgebung geschaffen. Der Adaptern kann dann gestartet werden. Bekomme ebenfalls keinen Connect.
Gruß Helle
-
So, bei mir läuft der Adapter nun auch unter Windows!
Wenn du die zwei Voraussetztungen vom vorigen post für node-gyp erfüllst (Python 2.7 und Windows develpoment environment) dann kannst den Adapter jetzt installieren.
Wenn du ihn nicht neu runterladen willst kannst mit npm install request –save (im Adapterverzeichnis) die Änderung durchführen welche den Adapter auch unter Windows laufen lässt.
-
Danke Helle!
Noch was gelernt heute!
Muss bald die gesammelten Tipps in einem how-to sammeln:)
-
Hallo Mario!
Die PN von dir scheint verschwunden zu sein. Die Antwort auf deine Frage hat Helle geliefert:
npm install –global --production windows-build-tools
dann solltest du Adapter und npm install durchführen können.
-
Hallo Frank,
habe noch keinen Connect.
2016-10-18 21:50:39.178 - info: host.NUC1 Restart adapter system.adapter.km200.0 because enabled 2016-10-18 21:51:09.256 - info: host.NUC1 instance system.adapter.km200.0 started with pid 42988 module.js:327 throw err; ^ Error: Cannot find module 'async' at Function.Module._resolveFilename (module.js:325:15) at Function.Module._load (module.js:276:25) at Module.require (module.js:353:17) at require (internal/module.js:12:17) at Object. <anonymous>(c:\iobroker\node_modules\iobroker.km200\km200.js:12:21) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12) at Function.Module.runMain (module.js:441:10) 2016-10-18 21:51:09.852 - error: host.NUC1 instance system.adapter.km200.0 terminated with code 1 () 2016-10-18 21:51:09.853 - info: host.NUC1 Restart adapter system.adapter.km200.0 because enabled</anonymous>
Habe es im KM200 Verzeichnis mit "npm install -g async" nachinstalliert und mit "npm list -g async" geprüft.
Hast Du noch eine Idee?
Gruß
Helle
-
Ok, hab 'ne kleine Odyssee hinter mir!
Hab die Version auf 0.4.1 gesetzt, einzige Änderung sind die Einträge in package.json um 'async', 'mcrypt' und 'request' installiert zu bekommen.
Hab mir einen CSL-NUC zugelegt (4GB Ram/32GB Flash, Intel Atom mit Windows Home, Bei CSL um ca 170€) um ihn vielleichet als Raspi-Alternative zu verwenden.
War frustriert, ging gar nichts am Anfang before ich nicht Windows 10 auf den letzten Stand gebracht habe. Nun läuft iobroker und ich verwende TightVNC um das Ding headless zu betreiben.
Kleiner Vergleich: NUC: Mit BT direkt am Netwerkkabel (und W-LAN ausgeschaltet, so wie beim Raspi) ca 6-7W Verbrauch. Habe ihn zur APC_USV gemeinsam mit der Fritzbox und HomeMatic. gehängt…
Raspi brauch 3W mit Kamera ...
Schockiert war ich von der SW.
Am Raspi ist die Installation recht schnell erledigt, auf Windows teilweise eine Katastrophe. Hat mich jetzt einen Tag (= 2 Abende) gekostet.
Leider hab ich rausgefunden dass
> npm install –global --production windows-build-tools
bei mcrypt nicht hilft und man wirklich Visual Studio Community installiert (hab auch Visual C++ probiert aber hat auch nicht funktioniert).Obwohl ich bei VSC nur die C++ - Funktion dazu nahm und alle Web-Sachen wegließ füllte die Installation meinen NUC bis auf 800MB :oops:
Werde es wohl wieder am NUC de-installieren und solche NPM-Installs am PC durchführen und dann das Verzeichnis (z.B. iobroker.km200\node_modules\mcrypt) dann kopieren (mcrypt hat >17MB mit >200 Dateien. Werde versuchen die Teile einzeln hochzuladen…
Habe noch einen Adapter fertig aber nicht publick gemacht6 da er auf Windows auch noch nicht funktioniert (verwendet noble aber auch Unix-tools wie 'fping' und 'hcitool'). Wer auf Raspi-3 (oder niedriger mit BT LE stick) arbeitet kann ihn von https://github.com/frankjoke/iobroker.radar installieren. Er überprüft die Verfügbarkeit von IP-Adressen und BT-Adressen, funktioniert bei mir mit non-BT-LE (Unsere handys) und BT-LE devices (G-Tags)! Übrigens kann man auch den Tintenfüllstand von (hoffentlich mehreren) HP-Druckern auslesen...
Egal, in den nächsten Antworten werd' ich das mcrypt-Zip nachliefern damit es bei euch vielleicht ohne VSC-Installation geht!
-
Part#1: Umbenennen in 'mcrypt_multi.z01'
part#2: Umbenennen in 'mcrypt_multi.z02'
part#3: umbenennen in 'mcrypt_multi.z03'
Letzter Teil: Nicht umbenennen!
Hoffe es hilft..
Gruß
Frank
-
Hallo Frank,
danke für Deine Mühen.
Nach "npm install –global --production windows-build-tools" lief es bei mir noch nicht wirklich. Ich hatte die ganze Zeit den AES-Key im Verdacht und es kurzerhand unter FHEM noch einmal probiert. Der war und ist in Ordnung.
Bei der Suche nach der Fehlermeldung zu "async" hatte ich "npm install -g async" ausprobiert. Leider kein Erfolg. Eine Diskussion zu dem Parameter "-g" (Global) stellte diesen in Frage. Also kurz "npm install async" probiert. Dann gab es wieder eine Fehlermeldung zu "mcrypt" . Also "npm install mcrypt" ohne "-g". Seit dem läuft es ohne Fehlermeldung. Erklären kann ich die Hintergründe nicht.
-
Die 4.1 habe ich noch nicht probiert. Der Adapter ist klasse. Vielen Dank. Jetzt muss mir eine Bedienoberfläche schaffen und zahlreiche Plots einrichten. Meine beiden FHEM-Installation kann ich deaktivieren. Die Steuerung der Fussbodenheizung bleibt allerdings bei FHEM.
-
Hallo Frank,
nachdem ich Deinen Adapter unter Windows zum laufen gebracht habe, bin ich jetzt auf einen Raspi3 umgestiegen. Leider bekomme ich Deinen Adapter darauf nicht zum laufen.
Ich bin ein ziemlicher Neuling was die Sache betrifft.
Ich habe Deinen Adapter aufgespielt und er signalisiert mir eine Verbindung unter Instanzen (Host:wahr; Lebenszeichen :wahr)
Nur leider bekomme ich keine Daten unter Objekte, da taucht erkurz auf um dann wieder vollständig zu verschwinden.
Unter LOG bekomme ich folgende Meldungen:
<code>km200.0 2016-11-07 12:01:10.599 info Interval=5, Black/Push-list: [] km200.0 2016-11-07 12:01:10.597 info KM200 adresse: http://192.168.178.20:80 km200.0 2016-11-07 12:01:10.563 info starting. Version 0.4.1 in /opt/iobroker/node_modules/iobroker.km200, node: v4.6.1 km200.0 2016-11-07 12:01:05.255 info terminating km200.0 2016-11-07 12:01:05.230 info cleaned everything up... km200.0 2016-11-07 11:54:52.189 info Interval=5, Black/Push-list: [] km200.0 2016-11-07 11:54:52.188 info KM200 adresse: http://192.168.178.20:80 km200.0 2016-11-07 11:54:52.169 info starting. Version 0.4.1 in /opt/iobroker/node_modules/iobroker.km200, node: v4.6.1 km200.0 2016-11-07 11:54:47.261 info terminating km200.0 2016-11-07 11:54:47.241 info cleaned everything up... km200.0 2016-11-07 11:53:55.445 info Interval=5, Black/Push-list: [] km200.0 2016-11-07 11:53:55.443 info KM200 adresse: http://192.168.178.20:80 km200.0 2016-11-07 11:53:55.420 info starting. Version 0.4.1 in /opt/iobroker/node_modules/iobroker.km200, node: v4.6.1 km200.0 2016-11-07 11:53:50.612 info terminating km200.0 2016-11-07 11:53:50.598 info cleaned everything up... km200.0 2016-11-07 11:44:46.115 error Did not get any Services from KLM200!: undefined km200.0 2016-11-07 11:39:43.254 info Interval=5, Black/Push-list: [] km200.0 2016-11-07 11:39:43.251 info KM200 adresse: http://19.168.178.20:80 km200.0 2016-11-07 11:39:43.229 info starting. Version 0.4.1 in /opt/iobroker/node_modules/iobroker.km200, node: v4.6.1 km200.0 2016-11-07 11:39:38.000 info terminating km200.0 2016-11-07 11:39:37.952 info cleaned everything up...[code][/code]</code>
Da der Key unter Windows funktioniert gehe ich davon aus dass der stimmt.
Alle anderen Adapter die ich aufgespielt habe laufen einwandfrei…
Hast du vielleicht eine Idee
Servus Mario
-
Das ist sehr eigenartig da ich den Adapter (selbe Version) auf einem Raspi-3 genau mit der gleichen Node-Version laufen habe!
Der Log zeigt mir dass der Adapter in der Initialisierungsroutine 'abstürzt', aber der Grund ist unterschiedlich.
Einmal hat der Adapter keine Services vom KM200 erhalten, die anderen male ist der Grund unbekannt.
Kannst mal den Debug-Level einschalten(ioBroker Admin/Instanzen), dann sollte im Log mehr Info stehen.
Du kannst auch mal ausprobieren, den Adapter ausschalten und manuell starten: auf /opt/iobroker gehen und dann````
node node_modules/iobroker.km200 --force --debug -
Hallo!
Habe mir auch die KM200 bestellt. Damit ich gleich loslegen kann wen das gute Stück angeschlossen ist habe ich den Adapter schon mal installiert.
-
Von Git runtergeladen
-
in den node modules Ordner kopiert
-
Adapter tauchte bei ioBroker auf
-
Dort via "+" die Installation gestartet
-
Die ist ohne Fehler durchgelaufen (Raspberry Pi 3)
-
Der Adapter taucht unter Instanzen auf und ich könnte ihn nun konfigurieren insofern denn das KM200 da wäre
Gibt es sonst noch etwas was ich machen kann um zu prüfen, ob wirklich alles sauber installiert wurde und auch später richtig funktionieren wird? Oder reicht die sauber durchgelaufene Routine und die Tatsache, dass ich die Konfiguration aufrufen kann?
Lg
Marc
-
-
Marc,
du mußt dir noch die App auf dem Handy/Tablett installieren um ein 'Passwort' zu generieren. Diese Passort mus dann auf https://ssl-account.com/km200.andreashahn.info/ in einen Key umgewandelt werden.
Ja, die richtige Adresse (hab meinem KM200 in der Fritzbox einen Namen gegeben und immer die selbe IP reserviert) ist noch wichtig!
Sonst war bei mir nichts notwendig.
-
Hallo Frank,
danke. Klar, die Einstellungen muss ich noch vornehmen (wenn das Gerät denn mal da ist…). Ging mir eher um die Installation des Adapters unter ioBroker. Aber da wie gesagt alles ohne Fehlermeldungen durchgelaufen ist gehe ich einfach mal davon aus das der Adapter dann auch macht was er soll. Wollte nur etwaige Problemchen vorher erkennen und lösen so das ich dann am Tag der Tage sofort mit der Nutzung der Daten loslegen kann