FHEM Forum

FHEM - Entwicklung => Wunschliste => Thema gestartet von: ElTentakel am 10 August 2015, 21:26:08

Titel: OpenHr20 + HM-11
Beitrag von: ElTentakel am 10 August 2015, 21:26:08
Ich habe folgendes getan: ein HM-11 Modul in ein HR20 mit OpenHR20 Firmware eingelötet. Das Ergebnis sieht so aus:

[CON][78:A5:04:3E:E0:CB][LE]> char-write-cmd 0x0012 41
[CON][78:A5:04:3E:E0:CB][LE]> char-write-cmd 0x0012 32
[CON][78:A5:04:3E:E0:CB][LE]> char-write-cmd 0x0012 38
[CON][78:A5:04:3E:E0:CB][LE]> char-write-cmd 0x0012 0d
[CON][78:A5:04:3E:E0:CB][LE]>
Notification handle = 0x0012 value: 44 3a 20 64 35 20 30 31 2e 30 31 2e 31 30 20 31 32 3a 35 33
[CON][78:A5:04:3E:E0:CB][LE]>
Notification handle = 0x0012 value: 3a 30 37 20 4d 20 56 3a 20 32 30 20 49 3a 20 32 36 39 33 20
[CON][78:A5:04:3E:E0:CB][LE]>
Notification handle = 0x0012 value: 53 3a 20 30 35 30 30 20
[CON][78:A5:04:3E:E0:CB][LE]>
Notification handle = 0x0012 value: 42 3a 20 32 39 34 30 20 49 73 3a 20 66 62 30 30 20 58 0a 0a


Danach habe ein A28 [Enter] gesendet und bekomme eine Statusmeldung zurück (siehe code). Das Thermostat zeigt danach 16°C Zieltemperatur. Das Protokoll des HR20 sieht so aus:

http://www2.htw-dresden.de/~wiki_sn/index.php5/HR20#Befehle_zur_Kommunikation_mit_dem_HR20-Thermostat

Also an sich ein einfaches Spiel. Was mir fehlt ist Unterstützung für die Entwicklung. Wie kompliziert ist es ein BTLE Modul für eine Heizungssteuerung einzubinden? ... Und das schlimmste, ich habe keine Ahnung von Perl :D (dafür aber Programmiererfahrung mit C).
Titel: Antw:OpenHr20 + HM-11
Beitrag von: ElTentakel am 11 August 2015, 18:32:15
Wenn keiner was dagegen hat, würde ich einfach mal die Erkenntnisse hier rein schreiben:

Das HM-11 ist ein BT4.0 BLE UART Converter, den man unter anderem bei Ebay beziehen kann:

http://www.ebay.de/itm/4-0-BLE-Bluetooth-Uart-Transceiver-Modul-CC2541-Central-Switching-HM11-Arduino-/221723432924?pt=LH_DefaultDomain_77&hash=item339fbf17dc

Das interessante an dem Gerät: im Standby braucht es "nur" 0,5mA, das heißt mit einem Paar Batterien mit je 2000mAh müsste das System zumindestens 4-5 Monate durchhalten. Da das Modul sehr klein ist, passt es passt wunderbar in die obere Abdeckung in der sich das Display befindet. Für alle Lötfaule, die das ersteinmal ausprobieren wollen kann man auch ein auf einer Trägerplatine bestücktes Module mit ferig konfeltionierten Kabeln an die Kontakte der Revisionsklappe anschiießen.

Die Belegung der Kontakte sieht folgendermaßen aus:

HM11 - FUNKT - HR20
1      RX / TX    6
2      TX / RX    7
9      VCC        9
12      GND      10


Nun ist die Seite der BLE Seite überhaupt nicht dokumentiert, es zeigt sich aber beim Senden des Status Strings vom HR20 folgender Dienst sich meldet:

Notification handle = 0x0012

Nun hatte ich probiert mit diesem einfach einen String zu senden, was fehl schlug, da immer nur ein Zeichen übertragen wurde. Man muß also wie bei einer seriellen Verbindung jedes zeichen einzeln senden (siehe vorherigen Post).

So, soviel dazu. Ich werde noch mehr schreiben, jedoch ist meine Zeit recht begreńzt. Da aber sich aber sechs HR20 mit openHR20 in meinem Haushalt befinden und sehr gute Dienste leisten ist meine Motivation doch recht hoch. Sollte sich noch jemand anderes oder gar das FHEM Team dafür begeistern können bin ich für jede Unterstützung dankbar.
Titel: Antw:OpenHr20 + HM-11
Beitrag von: ElTentakel am 12 August 2015, 16:55:33
Ich habe mir den Quellcode mal angeschaut und denke, dass das Projekt in 2 Teile geteilt werden muss:

1. Teil: Implementierung der Steuerung des HR20 (über UART)

2. Teil: Implementierung eines Zugriffsmoduls für den BLE UART Converter.

Ich denke einige Besitzer der HR20 schon Dankbar wären, wenn es eine Möglichkeit gibt das Gerät mit UART zu steuern. Schließlich gibt es auch Menschen die dafür RS485 benutzen.

Der 2. Teil ist ein wenig schwierig für mich einzuschätzen. Aber notfalls könnte man ein C Programm dazu schreiben, dass per Netzwerk socket eine Serielle Verbindung über RS485 vortäuscht. Es sollte also machbar sein.
Titel: Antw:OpenHr20 + HM-11
Beitrag von: Mikesch am 01 Februar 2018, 19:01:05
Hallo,

bist du mit den HR20 weitergekommen? Hast du es geschafft sie unter FHEM ans laufen zu bringen?
Es hat sich glaube ich was openhr20 Firmware angeht einiges getan.

Ein RFM12b 868 MHz kann intern verlötet werden.

Die neue Version der Software basiert auf der Arduino-IDE und ist hier zu finden. Sie verwendet das MQTT.
https://github.com/basti79/ESP8266-Sensors/tree/ESP-01

Hier steuert einer die Thermostate mit seinem OpenWRT Router:
https://piontecsmumble.wordpress.com/2013/02/25/openhr-20-tutorial-part-0-introduction/


Ich Frage weil ich auch 5 von denen im Einsatz habe und ich Sie gerne ins FHEM bekommen würde.
Titel: Antw:OpenHr20 + HM-11
Beitrag von: Mikesch am 16 Februar 2018, 18:38:18
Hallo zusammen,

Ich habe mir einen 6ten gekauft um es "zu probieren". Vielleicht macht ja jemand mit :-)
Es gibt verschiedene Wege ich habe den hier eingeschlagen. Weil der Programmer günstig ist und ich (ich es nicht besser wusste:-) und ich dafür ein Win10 Laptop benutzten wollte.
Die anderen heißen USBtinyISP  oder AVR Dragon, ich habe echt keine Ahnung davon und bin froh das es doch, mit dem 6€ Chinateil, klappt.

Wenn ich es richtig verstehe dieser nur von der AVR Studio 4.18 Version unterstützt wird.
AVR Studio 4.18 mit SP3 Update, bekommt man hier: http://www3.nautel.com/pub/Utilities/AVR_Studio/AVR%20Studio%204.18/
Das ist der JTAG-ICE Programmer 6€
https://www.ebay.de/itm/USB-Download-Programmer-Emulator-Debugger-fur-AVR-JTAG-ICE-Atmega-AVR-STUDIO-Neu/111543439247?hash=item19f881cf8f:g:W6AAAOSwg3FUhqy7

Das ist die Pin Verbindungsanleitung: (ich habe mir einen Adapter gebaut siehe Bild bitte den gesamten Beitrag erst lesen)
HR20 JTAG
1 (/RESET) 6 (NSRST)
2 (PE2) not connected
3 (TMS) 5 (TMS)
4 (TCK) 1 (TCK)
5 (TDO) 3 (TDO)
6 (TxD) not connected
7 (RxD) not connected
8 (TDI) 9 (TDI)
9 (+Batt) 4 (VREF)
10 (GND) 10 (GND)


Batterien raus! Der Strom kommt über USB. Sonst geht's kaputt.
Hier die nötigen Einstellungen: https://www2.htw-dresden.de/~wiki_sn/index.php/HR20/flashen#Einstellungen
Hier die Firmware: https://www2.htw-dresden.de/~wiki_sn/index.php/Datei:Software_OpenHR20_1.0.tar.gz

Ob die neue Firmware drauf ist sieht man wenn man den mittleren Knopf zwei mal drückt. In der Anzeige erscheint dann die aktuelle Temperatur.
Siehe beigefügtes Bild. Der HR20 auf der linken Seite hat die openHR20 Firmware.

Ok geflasht ist er schon mal ich warte mal auf meine RFM12b Funkchips.

Ich habe noch mit den verschiedenen Versionen der Firmware gespielt.
Dazu muss ich noch sagen das es etwas verwirrend ist.
obwohl rfm_ext suggeriert dass das Funkmodul außen ist das die richtige Firmware auch wenn das Funkmodul innen verbaut wird.
Es sind die gleichen Kontakte vom Stecker nur innen im Gehäuse abgegriffen statt außen. Also Falls jemand das hier nachbauen sollte nimm die  rfm_ext_sww. Bei der anderen rfm_int_* blieb bei mir das Display immer dunkel.


original_* - Ohne RFM12-Funkmodul
rfm_int_* - RFM12 Chip wird intern angelötet
rfm_ext_* - RFM12 Chip wird über den 2x5 Pin-Block angeschlossen
     *_sww - offene Fenster werden softwareseitig erkannt
    *_hww - offene Fenster werden hardwareseitig erkannt (Anschluss an den Pinst)


Dabei habe ich ein paar Probleme mit dem flashen gehabt die ich mal erwähnen will. Wenn auf der ersten Seite die Signature des Chips nicht passt "0x1E 0x94 0x05" braucht ihr nicht weitermachen. Manchmal hilft ein paar mal auf den Button "Read Signature" zu drücken. Das Zeug abstecken und anstecken bis da diese Zahlen stehen. 
Bei Problemen kann man am Thermostat (Pin 9/+Batt und GND) bzw. (Pin4 VREF am JTAG)  einen 100µF Elko anschließen.
Außerdem half es bei mir eine Brücke zwischen GND und HR20 Pin1 Reset (JTAG Pin 6 NSRST) eine Brücke zum flashen zu machen.
Keine Angst dann geht das Display aus aber man kann flashen.

Anbei als Anlage noch die Bilder der Einstellungen. Diese sind (musste ich mittlerweile feststellen) ziemlich egal.
Letztendlich gehts es so:
JTAG anschließen,
AVR Studio starten, "Tools",   "Programm AVR", "Connect"
Plattform "JTAG ICE" und "Port:" COM3 (das passende:-)
Unter "Mail" auf "Read Signature" falls die Signatur richtig ist weiter,
Reiter "Program" unter "ELF Production File Format" das rfm_ext_sww/hr20.elf auswählen und auf "Program" klicken.
Falls es Probleme beim verifiy gibt, auf den Reiter "Fuses" gehen auf "Read" klicken, den Hacken bei "EESAVE" wegmachen, auf "Program" klicken und das flashen wiederholen.

Das Funkmodul würde ich am Anfang nicht rein löten (eher zum Stecken) das man sonst nicht Programmieren kann.
In der Firmware muss die ID und der Schlüssel eingestellt werden. Sobald ich das hinbekommen habe schreibe ich hier was dazu.
Nicht wundern nach einiger Zeit zeigt das Thermostat "E4" an. bedeutet es hat kein Funk Paket vom HR20 Master bekommen.
Hie bin ich auch noch dabei.

Wenn man den "UART TTL - CP2102 Seriell Adapter Modul" noch da hat kann man direkt die Serielle Konsole verbinden. Drei Pins reichen GND TXD und RXD (vertauscht) Siehe https://www2.htw-dresden.de/~wiki_sn/index.php/HR20#Kommunikation_mittels_RS232-Schnittstelle
sieht dann so aus:     V:OpenHR20 1.0 Feb 16 2011 01:28:33 Rel_1.0     D: d4 16.02.17 23:26:55 A V: 30 I: 2107 S: 1700 B: 2717 Is: 0000 E:04 X


Titel: Antw:OpenHr20 + HM-11
Beitrag von: Mikesch am 28 Februar 2018, 12:31:56
Update ich habe die Funkmodule (RFM12BSP Rev.1.0 866Mhz) eingebaut.
Leider stehe ich jetzt etwas auf dem Schlauch ich habe versucht am myLaCrosseGateway etwas zu empfangen leider bis jetzt ohne Erfolg.
set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery


Hat jemand eine Idee oder Tipps?
Titel: Antw:OpenHr20 + HM-11
Beitrag von: Florian_GT am 17 Januar 2020, 00:40:26
Hallo zusammen,

ich weiß der Beitrag ist alt, aber ich werde meine HR20 nun bald mit dem ESP verbinden und hoffentlich auch eine Verbindung über MQTT zu FHEM schaffen. OpenHR20 läuft bereits mit einer Modifizierten Version, Siehe https://github.com/florian-asche/openhr20.

Mit einem RS232 Com-Server hatte ich schon eine Verbindung zu FHEM aber eher unstabil. Ich will nun mit dem ESP und MQTT eine bessere Verbindung schaffen und nebenbei noch mit einigen DS18B20 Temperatur messen.
Titel: Antw:OpenHr20 + HM-11
Beitrag von: Selfmanager am 01 Dezember 2020, 10:24:26
Hallo,
zufällig bin ich auf eueren thread gestoßen, und hätte hierzu ein paar Informationen:

ZitatElTentakel Antw:OpenHr20 + HM-11  am 12 August 2015
1. Teil: Implementierung der Steuerung des HR20 (über UART)

Bei mir sind 6 HR20E aktiv, geflashed mit "openhr20 V1.0" vom 16.02.2011 von der htw.dresden,
sie sind per Telefonkabel via RS232 mit fhem verbunden.
Versuche mit Funkverbindungen gab es keine.
Die Batterien wurden ersetzt durch NiMH-Akku's 2700mAh, einzeln versorgt durch Lademodule und eine 24V-Zentralversorgung.
Jeder HR20 wird mit einem Pegelwandler an RS232 angepasst, über die Telefonkabel zu zwei 4-Kanal COM2NET-Adaptern geführt, und im internen Netz zur Verfügung gestellt.
In fhem sind 6 ECMDDevice's definiert, die telnet-Verbindungen über IP-Adressen und Ports herstellen.
Das Senden von Commands und die Auswertung der Statusmitteilungen erfolgen in einer hr20.classdef und ergänzend in userReadings.

#
define KuHR20 ECMD telnet 192.168.178.11:109
setuuid KuHR20 5d89ad58-f33f-bee7-c49c-4059c5b2f98601c6
attr KuHR20 classdefs HR20=./CLASS/hr20.classdef
attr KuHR20 icon sani_heating
attr KuHR20 partial 3
attr KuHR20 room NET
#
define KuHR20cmd ECMDDevice HR20 A B H V X Y Ma Mm Command
setuuid KuHR20cmd 5d89ae1b-f33f-bee7-7e1d-73404805aa6c0a5d
attr KuHR20cmd IODev KuHR20
attr KuHR20cmd event-min-interval .*:240
attr KuHR20cmd event-on-change-reading .*
attr KuHR20cmd room AC.Ku
attr KuHR20cmd userReadings BATT { sprintf ("%0.2f",ReadingsVal("KuHR20cmd","batt.raw",0) *0.5026) },\
POS { sprintf ("%0.1f",(ReadingsVal("KuHR20cmd","ventil",0))*1.66 -33)}
#


Ein Problem soll nicht verschwiegen werden: Alle HR20 liefern zuverlässig Daten im 4-Minuten-Takt, aber nur einer lässt sich verlässlich steuern. Bei einem zweiten kommt die hälfte der Commands nicht an, und bei den anderen kann maximal die Version mit V/n abgefragt werden.
Bei denen erfolgt die Programmierung der automatischen Zeitsteuerung und Parameter noch über ,,openHR20 Suite V0.4.23954", oder am Anfang war das auch auch über ,,RealTerm".

So zeigt sich die Datenauswertung in der grafischen Darstellung.
Im unteren Diagramm ist die Akku-Spannung dargestellt. 2,95V ist der normale Wert, und bei Ausfall der Stromversorgung funktionieren µC und die Datenübertragung bis zu etwa 2,7V.
Titel: Antw:OpenHr20 + HM-11
Beitrag von: Mikesch am 15 Mai 2021, 11:51:19
Danke das du deine Informationen teilst ich habe die Sammlung der HR20 noch in der Kiste muss mich unbedingt dran setzten.
Es kommt ja immer etwas dazwischen....
Titel: Antw:OpenHr20 + HM-11
Beitrag von: Florian_GT am 06 Juni 2021, 21:50:13
Ich muss gestehen ich habe auf Zigbee Geräte gewechselt und dir HR20 liegen jetzt hier in einer Kiste. Ist etwas Offtopic aber falls jemand die Geräte haben möchte, gerne melden.