Let me chime in on this discussion. having a Nefit Topline together with Moduline 300 controller, I am very interested in this topic. I have already followed the topics at mikrocontroller.net on this, but now it it time to get things going and do some stuff.

I was looking to use the software 'EMS-collector' from Maniac103 at https://github.com/maniac103/ems-collector, but then I still need the hardware. Would the circuit that bbqkees has shared here be able to communicate with the EMS-collector?

Last edited by SirBacon on Tuesday 16 January 2018 9:58, edited 1 time in total.

Yes, but the circuit makes a 5V compatible UART interface. The Pi needs a 3.3V interface.
So if you want to connect the circuit directly to the Pi UART you need to add a voltage divider at the end.
Replace the last 4.7K resistor on the right in the schematic with a 10K and 20K resistor in series to ground.
Connect the point between the 10K and 20K resistor to the Pi UART.

See f.i. the schematic in my other Github project about the VBUS (only look at the voltage divider at the right):

Thanks bbqkees for the quick reply. As there are also 5v TTL/UART USB cables (http://www.ftdichip.com/Products/Cables ... Serial.htm) perhaps the circuit can remain the same for both Arduino and RPi applications. Then just make sure you have the right connection to your application.

Last edited by SirBacon on Tuesday 16 January 2018 9:58, edited 1 time in total.

My code is also based on the Nodo code from J vd Meer. But I do not use the writing part.

If you read my Github page documentation you see that on the EMS bus each thermostat type has it's own address.
So if you do not have the RC20 but another thermostat you need to find out which address that thermostat uses otherwise it won't respond to your write actions.
Easiest method is to print out each packet that is read from the bus and find out what is sent by the thermostat when you change the temperature.

You are apparently successfully reading RC20StatusMessage from 0x17. Which means there is a device on the bus with address 0x17 (or you are just printing out the default values every time) so I think there is something wrong in your code or hardware while writing to the bus. Or your thermostat does not respond to writing to those specific addresses.

and i can switch from night to manual to clock. but the software is a bit buggy. does ur code support the moduline 300? this software is for the moduline 300.

As bbqkes pointed out, are you sure the bus address for moduline 300 is 0x17? If, as you say, you can read and write to the bus and switch from night to manual it should be Ok, but I cannot find it in the wiki documentation.

On the other hand, when you send a read command remember to mask the destination address with 0x80 (I could not find if that is done in your github). I remember that, at the begging of this project, I also used something similar to the regNefitCoding that are in your code and I could never find what message types 0x91 and 0xA8 were.

I am using your code an your circuit for reading my Buderus EMS-Bus.
It works fine, but I have the folowing problem:
I want to read some other values then your code provides.
There for I used your telegram-tabels for building adress, frametyp, offset and vartype
That worked e.g. for ww-circulation on/off (0x08, 0x18, 0x07, 0x70) but not for e.g. outdoor temperature (0x08, 0x19, 0x00, 0x05)
The outdoor temp value is allways 0.0000, I am using a RC 35 with the adress 0x10
Can I not read different values then your code contains? What do I wrong?

I am using your code an your circuit for reading my Buderus EMS-Bus.
It works fine, but I have the folowing problem:
I want to read some other values then your code provides.
There for I used your telegram-tabels for building adress, frametyp, offset and vartype
That worked e.g. for ww-circulation on/off (0x08, 0x18, 0x07, 0x70) but not for e.g. outdoor temperature (0x08, 0x19, 0x00, 0x05)
The outdoor temp value is allways 0.0000, I am using a RC 35 with the adress 0x10
Can I not read different values then your code contains? What do I wrong?

If I remember well, to receive a 0x19 (UBA_MONITOR_SLOW) message with outdoor temperature you should first make a poll (using the 0x80 mask because it is a read command). The fast monitor is send every X seconds automatically, but the slow monitor is sent only under request. After your request, you will receive from your RC35 a response of type 0x19 containing the datagram you expect.

Not sure if this is a new topic or belongs to this one. After spending a lot of time on the hardware part, my EMS interface still does not work. Main problem is my limited knowledge of electronics to troubleshoot the hardware. To save myself some time I decided to look for another solution and found the Nefit EMS OpenTherm converter, but I am not sure if this will work. We have the Nefit Trendline II HRC30 CW5 installed with a Lyric T6 (ON/OFF thermostat). What I want to do is the following:
- Connect the Nefit EMS OpenTherm converter to the Nefit Trendline and a RPi with Domoticz, so I can read at least the water pressure and temperatures of the installation
- Use the Lyric for controlling the heating.

What I read on the different forums is that by using the Nefit EMS OpenTherm converter you can no longer use the ON/OFF connectors (for the Lyric). Is this also valid when only reading data from the Nefit EMS OpenTherm converter?
- Will this setup work for reading the data by using a OT converter connected to a RPi and the Nefit Trendline?

Good morning, any chance somebody can help me out with hardware? I definitely want to read out my Nefit heating system but lack the hardware. As I am no good with hardware (One has to know one's own limitations ) I would appreciate any help.

My breadboard setup still works after all that time so I am not in a real hurry to finish it.
But I have received all the components for the first batch of boards last week, and I am finalizing the PCB design.
So it is coming, but it will still take some time.

The PCB's are ordered now, expect to have them here mid February.
I hope I did not make a mistake in the design and the first batch will work well.
I'll let everyone know here when they are soldered, tested and ready.