I believe the optical UART interface components are functioning properly: I can run
screen /dev/ttyAMA0 4800 on the Pi, point the infrared emitter at the infrared receiver, and when they are aimed at each other properly, I can see characters I type in
screen echoed back to me; when they aren’t pointed at each other, I don’t.
For reference, I used an Osram IRL 81A as the IR emitter (as suggested in the above blog entry since the SFH487-2 is no longer available) and an Osram SFH 309 FA as the IR receiver (which has the recommended “dark plastic case” that presumably helps filter out visible light from the green status LED).
I was able to
git clone the vcontrold tool from openv and compile it on the Pi without issue. I then copied the XML files from openv’s kw directory to
/etc/vcontrold and modified
and set my device:
to match the Vitotronic 200 KW2 I want to monitor.
vcontrold starts up fine, but when I connect and send a command, it never sees the 05 response to the 04 sync byte:
vctrld>debug on vctrld>getTempA DEBUG:Fri Oct 23 11:18:14 2020 : Command: getTempA DEBUG:Fri Oct 23 11:18:14 2020 : >SENT: 04 DEBUG:Fri Oct 23 11:18:14 2020 : >FRAMER: no preset result DEBUG:Fri Oct 23 11:18:14 2020 : Waiting for 05 DEBUG:Fri Oct 23 11:18:19 2020 : read timeout DEBUG:Fri Oct 23 11:18:19 2020 : Error in wait, terminating DEBUG:Fri Oct 23 11:18:19 2020 : Error executing getTempA ERR: read timeout Error in wait, terminating Error executing getTempA
Given that I can’t even get this simple test to work, I haven’t even attempted to go further with any of the OH bindings, and am hoping there are other Viessmann owners here who’ve attempted this and may have some suggestions, or can possibly recommend other forums that may be able to help. (I’ve been unable to find a way to purchase a “real”/working Optolink interface here in the U.S.)
Given that I can point the IR emitter/receiver at each other and get characters echoed (which indicates to me the hardware is wired properly and working), does anybody have any suggestions on what else can I try?