This project runs on ESP8266 (and probably is easily portable to ESP32) and connects to WiFi and Viessmann Heaters using Optolink (https://github.com/openv/openv/wiki/Die-Optolink-Schnittstelle) with a self-made adapter (https://github.com/openv/openv/wiki/Bauanleitung) If you have a 3D printer check out OptolinkConnector.blend and OptolinkConnector.stl located in the hardware folder.
-
Check out this repository
-
Download and install PlatformIO https://docs.platformio.org/en/latest/core/installation/index.html
-
Go to the software folder of this repository
$ cd software
-
copy wifi-credentials.h.example to wifi-credentials.h
$ [ -f src/wifi-credentials.h ] || cp src/wifi-credentials.h.example src/wifi-credentials.h
-
edit the wifi credentials using your favourite text editor
$ vim src/wifi-credentials.h
-
Compile
$ pio run
-
Upload to device
$ pio run -t upload
-
Check log output
$ pio device monitor
-
Open an issue with the error and hope for help, because things never work out the way you expect it
OptopLink communicates via addresses. To read or write information you need to know two things:
- Which address the information is stored in
- In which format the data is stored in (see Data types)
Refer to openv Wiki for more information: https://github.com/openv/openv/wiki/Adressen
There are several data for converting the datapoint into useable format:
- raw
- temp
- temps
- stat
- count
- counts
- mode
- hours
- cop
Example URL for reading Address 0x2000 (Room Temperature Setpoint)
http://<IP_OF_ESP8266>/read?addr=0x2000&conv=temp
Example URL for writing Address 0x2000 (Room Temperature Setpoint)
http://<IP_OF_ESP8266>/write?addr=0x2000&conv=temp&val=21