Support for the Resol VBUS protocol?
Moderators: leecollings, remb0
- bbqkees
- Posts: 407
- Joined: Sunday 17 August 2014 21:01
- Target OS: Linux
- Domoticz version: 4.1x
- Location: The Netherlands
- Contact:
Re: Support for the Resol VBUS protocol?
Likely yes.
have you tried any other sketch that sends data to the serial port so you know that works anyway?
have you tried any other sketch that sends data to the serial port so you know that works anyway?
Bosch / Nefit / Buderus / Junkers / Worcester / Sieger EMS bus Wi-Fi MQTT Gateway and interface boards: https://bbqkees-electronics.nl/
Re: Support for the Resol VBUS protocol?
No I haven't can you enlighten me about this feature ?? what kind of sketch ??
Re: Support for the Resol VBUS protocol?
Hello
Finaly i am getting data from my circuit the problem was the cable connecting my resol regulator to the circuit , everything is working fine now... but if you don't mind me asking do you have any idea on how to store this data on a SD card ??
Finaly i am getting data from my circuit the problem was the cable connecting my resol regulator to the circuit , everything is working fine now... but if you don't mind me asking do you have any idea on how to store this data on a SD card ??
-
- Posts: 6
- Joined: Sunday 07 January 2018 22:31
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 4.97
- Location: Germany
- Contact:
Re: Support for the Resol VBUS USB Adapter?
Hello,
i have a Resol BX controller and a VBUS to USB adapter and i would like to display the temperatures with domoticz. did anyone else do this before? I do not know how.
Grettings Bernoo
i have a Resol BX controller and a VBUS to USB adapter and i would like to display the temperatures with domoticz. did anyone else do this before? I do not know how.
Grettings Bernoo
don't drink whisky without water and don't drink water without whisky...
- mrccore
- Posts: 14
- Joined: Wednesday 07 December 2016 11:15
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 3.5877
- Location: Madeira
- Contact:
Re: Support for the Resol VBUS protocol?
Hi.
I have build the vbus sensor and connected it to arduino mega that is using a wiznet w5100.
On serial console i can see that my setup is workin OK, i get the values from my DeltaSol C 0x4212 heres a debug info:
---------------
Destination: 10
Source: 4212
Protocol Version: 1
Command: 100
Framecount: 7
Checksum: 3
---------------
---------------
Now decoding for DeltaSol C 0x4212
---------------
------Decoded VBus data------
Destination: 10
Source: 4212
Protocol Version: 1
Command: 100
Framecount: 7
Checksum: 3
------Values------
Sensor 1: 24.30
Sensor 2: 35.70
Sensor 3: 50.40
Sensor 4: 0.00
Relay 1: 0
Relay 2: 0
0
------END------
My problem is that i cant get any data to be display in my domoticz server.
I can ping the mega on my network but no data on my domoticz server.
Can anyone help me out on this problem
This is the ethernet shield i have on my mega:
And here's the link to protoboard i have build:
https://1drv.ms/u/s!ADyQTNUUw6kNgoUt
https://1drv.ms/u/s!ADyQTNUUw6kNgoUs
I have build the vbus sensor and connected it to arduino mega that is using a wiznet w5100.
On serial console i can see that my setup is workin OK, i get the values from my DeltaSol C 0x4212 heres a debug info:
---------------
Destination: 10
Source: 4212
Protocol Version: 1
Command: 100
Framecount: 7
Checksum: 3
---------------
---------------
Now decoding for DeltaSol C 0x4212
---------------
------Decoded VBus data------
Destination: 10
Source: 4212
Protocol Version: 1
Command: 100
Framecount: 7
Checksum: 3
------Values------
Sensor 1: 24.30
Sensor 2: 35.70
Sensor 3: 50.40
Sensor 4: 0.00
Relay 1: 0
Relay 2: 0
0
------END------
My problem is that i cant get any data to be display in my domoticz server.
I can ping the mega on my network but no data on my domoticz server.
Can anyone help me out on this problem
This is the ethernet shield i have on my mega:
And here's the link to protoboard i have build:
https://1drv.ms/u/s!ADyQTNUUw6kNgoUt
https://1drv.ms/u/s!ADyQTNUUw6kNgoUs
- bbqkees
- Posts: 407
- Joined: Sunday 17 August 2014 21:01
- Target OS: Linux
- Domoticz version: 4.1x
- Location: The Netherlands
- Contact:
Re: Support for the Resol VBUS protocol?
First make sure that you have chosen a proper IP address and a unique mac address.
Then make sure both the Arduino and the machine running Domoticz are on the same subnet (so f.i. 192.168.1.x).
If there two devices with the same IP address then it won't work.
A good next step would be to modify the sketch such that it only sends a dummy httpRequestTemp(IDX, value) so you know that works as well.
Then make sure both the Arduino and the machine running Domoticz are on the same subnet (so f.i. 192.168.1.x).
If there two devices with the same IP address then it won't work.
A good next step would be to modify the sketch such that it only sends a dummy httpRequestTemp(IDX, value) so you know that works as well.
Bosch / Nefit / Buderus / Junkers / Worcester / Sieger EMS bus Wi-Fi MQTT Gateway and interface boards: https://bbqkees-electronics.nl/
Re: Support for the Resol VBUS protocol?
Dear programers
I have built my own dattaloger for vbus resol, using the vbus library, it worked fine with the Resol DeltaSol C4 and Resol DeltaSol BS , but using the same code and library for the Resol Delta Sol E generated many errors , and i can't seem to figure out why any suggestions ??
I have built my own dattaloger for vbus resol, using the vbus library, it worked fine with the Resol DeltaSol C4 and Resol DeltaSol BS , but using the same code and library for the Resol Delta Sol E generated many errors , and i can't seem to figure out why any suggestions ??
- Attachments
-
- resl.PNG (16.47 KiB) Viewed 4706 times
Re: Support for the Resol VBUS protocol?
Help please i m still getting the same error values any suggestions ??
-
- Posts: 17
- Joined: Wednesday 27 June 2018 23:53
- Target OS: Raspberry Pi / ODroid
- Domoticz version: beta
- Location: Netherlands/Westland
- Contact:
Re: Support for the Resol VBUS protocol?
I didn't want to connect an Arduino to my Resol SLT because it already has a LAN interface.
This is how I connected my Resol device to Domoticz by using vbus over lan with Node Red and MQTT.
It should work with other vbus devices as well
1) install Resol library from https://github.com/danielwippermann/resol-vbus
npm install --save resol-vbus
2)
git clone https://github.com/danielwippermann/resol-vbus.git
cd resol-vbus
npm install
3) install /compile json live data server
See: https://github.com/danielwippermann/res ... ata-server
cd /resol-vbus/examples/json-live-data-server
copy config.js.example to config.js
nano config.js
Change your ip and password
<code>
/*! resol-vbus | Copyright (c) 2013-2018, Daniel Wippermann | MIT license */
'use strict';
var path = require('path');
var config = {
/**
* The port number for the HTTP server to listen to.
* @type {Number}
*/
httpPort: 3333,
/**
* The inteval in milliseconds between two writes of the logging file.
* @type {Number}
*/
loggingInterval: 10000,
/**
* The filename of the logging file.
* @type {String}
*/
loggingFilename: path.resolve(__dirname, 'live-data.json'),
/**
* The name of the `Connection` subclass to use for connecting to the VBus.
* @type {String}
*/
connectionClassName: 'TcpConnection',
connectionOptions: {
/**
* The host name / IP address of the VBus/LAN or Datalogger device.
* @type {String}
*/
host: '192.168.178.41',
/**
* The password for the VBus/LAN or Datalogger device.
* @type {String}
*/
password: 'vbus',
},
};
</code>
4) Check if web server works
Start live data server:
sudo node resol-vbus/examples/json-live-data-server/index.js
Open page in browser: http://192.168.178.32:3333/api/v1/live-data/
Should look like
<code>
[
{
"id": "00_0010_1001_10_0100_000_4_0",
"name": "System date",
"rawValue": 564698061
},
{
"id": "00_0010_1001_10_0100_004_2_0",
"name": "Temperature sensor 1",
"rawValue": 12
},
{
"id": "00_0010_1001_10_0100_006_2_0",
"name": "Temperature sensor 2",
"rawValue": 23
},
etc.
</code>
6) Automatic start up the live data server
crontab -e
add following line
@reboot sudo node resol-vbus/examples/json-live-data-server/index.js
7)
Add couple of dummy/virtual devices.
I used 5 temperature, one counter device for the PWM pump and one switch for the heating assistant valve
The idx's of these sensors must be used later.
8) Import in Node red
<code>
[{"id":"22d84f5c.31346","type":"inject","z":"e8a6bafb.256b68","name":"GetSensorData","topic":"","payload":"","payloadType":"date","repeat":"60","crontab":"","once":false,"onceDelay":0.1,"x":114.10685729980469,"y":679.4766540527344,"wires":[["b07b8430.15cc68"]]},{"id":"b07b8430.15cc68","type":"http request","z":"e8a6bafb.256b68","name":"","method":"GET","ret":"txt","url":"http://192.168.178.32:3333/api/v1/live- ... 032,"wires":[["31962303.00ff2c"]]},{"id":"31962303.00ff2c","type":"json","z":"e8a6bafb.256b68","name":"","property":"payload","action":"","pretty":true,"x":451.1042823791504,"y":680.0079431533813,"wires":[["5d661853.27cd68"]]},{"id":"5d661853.27cd68","type":"function","z":"e8a6bafb.256b68","name":"FilterVBUSSensors","func":"var idlist = [\n \"004\",\n \"006\",\n \"008\",\n \"010\",\n \"012\",\n \"030\",\n \"031\"\n ];\n\ni=0;\ndo {\n id= msg.payload.id.substr(21, 3);\n if(idlist.indexOf(id)==-1){\n msg.payload.id=id;\n msg.payload.splice(i,1);\n } else\n {\n msg.payload.id=id;\n i++;\n }\n} while (i<msg.payload.length)\n\nreturn msg;","outputs":1,"noerr":0,"x":616.0990600585938,"y":681.086109161377,"wires":[["1688f22d.03186e"]]},{"id":"1688f22d.03186e","type":"split","z":"e8a6bafb.256b68","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":798.0963096618652,"y":681.1616096496582,"wires":[["b12163cd.79176"]]},{"id":"b12163cd.79176","type":"function","z":"e8a6bafb.256b68","name":"IdentifySensor","func":"var devices = [\n [\"004\",1987], \n [\"006\",1988],\n [\"008\",1989],\n [\"010\",1990],\n [\"012\",1991],\n [\"030\",1992],\n [\"031\",1993]\n ]\n \nsensid=msg.payload.id;\n\nfor (i = 0; i < devices.length; i++) {\n if(sensid==devices[0]){\n msg.payload.idx=devices[1];\n msg.payload.svalue=msg.payload.rawValue.toString();\n }\n if(sensid==\"031\"){\n msg.payload.nvalue = 0 ;\n if(msg.payload.rawValue>0){\n msg.payload.switchcmd=\"On\";\n } else {\n msg.payload.switchcmd=\"Off\";\n }\n msg.payload.command =\"switchlight\";\n }\n}\nreturn msg;","outputs":1,"noerr":0,"x":783.6068649291992,"y":727.7579135894775,"wires":[["7aa248b.bcbe0b8","a792fd8f.4957b"]]},{"id":"7aa248b.bcbe0b8","type":"debug","z":"e8a6bafb.256b68","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":975.1068382263184,"y":713.6824169158936,"wires":[]},{"id":"a792fd8f.4957b","type":"mqtt out","z":"e8a6bafb.256b68","name":"test","topic":"domoticz/in","qos":"0","retain":"false","broker":"3cd8a35a.e2ae2c","x":946.9999732971191,"y":853.3332901000977,"wires":[]},{"id":"3cd8a35a.e2ae2c","type":"mqtt-broker","z":"","name":"Local","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"15","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","willTopic":"","willQos":"0","willPayload":""}]
</code>
9) Change Node red to your environment
a) Change node “http request” to match your IP
b) Change the node “FilterVBUSSensors” if you have different sensors. Use list of sensors from step 4
c) Change the node “IdentifySensor” to match the idx of your dummy/virtual sensors of Domoticz
This is how I connected my Resol device to Domoticz by using vbus over lan with Node Red and MQTT.
It should work with other vbus devices as well
1) install Resol library from https://github.com/danielwippermann/resol-vbus
npm install --save resol-vbus
2)
git clone https://github.com/danielwippermann/resol-vbus.git
cd resol-vbus
npm install
3) install /compile json live data server
See: https://github.com/danielwippermann/res ... ata-server
cd /resol-vbus/examples/json-live-data-server
copy config.js.example to config.js
nano config.js
Change your ip and password
<code>
/*! resol-vbus | Copyright (c) 2013-2018, Daniel Wippermann | MIT license */
'use strict';
var path = require('path');
var config = {
/**
* The port number for the HTTP server to listen to.
* @type {Number}
*/
httpPort: 3333,
/**
* The inteval in milliseconds between two writes of the logging file.
* @type {Number}
*/
loggingInterval: 10000,
/**
* The filename of the logging file.
* @type {String}
*/
loggingFilename: path.resolve(__dirname, 'live-data.json'),
/**
* The name of the `Connection` subclass to use for connecting to the VBus.
* @type {String}
*/
connectionClassName: 'TcpConnection',
connectionOptions: {
/**
* The host name / IP address of the VBus/LAN or Datalogger device.
* @type {String}
*/
host: '192.168.178.41',
/**
* The password for the VBus/LAN or Datalogger device.
* @type {String}
*/
password: 'vbus',
},
};
</code>
4) Check if web server works
Start live data server:
sudo node resol-vbus/examples/json-live-data-server/index.js
Open page in browser: http://192.168.178.32:3333/api/v1/live-data/
Should look like
<code>
[
{
"id": "00_0010_1001_10_0100_000_4_0",
"name": "System date",
"rawValue": 564698061
},
{
"id": "00_0010_1001_10_0100_004_2_0",
"name": "Temperature sensor 1",
"rawValue": 12
},
{
"id": "00_0010_1001_10_0100_006_2_0",
"name": "Temperature sensor 2",
"rawValue": 23
},
etc.
</code>
6) Automatic start up the live data server
crontab -e
add following line
@reboot sudo node resol-vbus/examples/json-live-data-server/index.js
7)
Add couple of dummy/virtual devices.
I used 5 temperature, one counter device for the PWM pump and one switch for the heating assistant valve
The idx's of these sensors must be used later.
8) Import in Node red
<code>
[{"id":"22d84f5c.31346","type":"inject","z":"e8a6bafb.256b68","name":"GetSensorData","topic":"","payload":"","payloadType":"date","repeat":"60","crontab":"","once":false,"onceDelay":0.1,"x":114.10685729980469,"y":679.4766540527344,"wires":[["b07b8430.15cc68"]]},{"id":"b07b8430.15cc68","type":"http request","z":"e8a6bafb.256b68","name":"","method":"GET","ret":"txt","url":"http://192.168.178.32:3333/api/v1/live- ... 032,"wires":[["31962303.00ff2c"]]},{"id":"31962303.00ff2c","type":"json","z":"e8a6bafb.256b68","name":"","property":"payload","action":"","pretty":true,"x":451.1042823791504,"y":680.0079431533813,"wires":[["5d661853.27cd68"]]},{"id":"5d661853.27cd68","type":"function","z":"e8a6bafb.256b68","name":"FilterVBUSSensors","func":"var idlist = [\n \"004\",\n \"006\",\n \"008\",\n \"010\",\n \"012\",\n \"030\",\n \"031\"\n ];\n\ni=0;\ndo {\n id= msg.payload.id.substr(21, 3);\n if(idlist.indexOf(id)==-1){\n msg.payload.id=id;\n msg.payload.splice(i,1);\n } else\n {\n msg.payload.id=id;\n i++;\n }\n} while (i<msg.payload.length)\n\nreturn msg;","outputs":1,"noerr":0,"x":616.0990600585938,"y":681.086109161377,"wires":[["1688f22d.03186e"]]},{"id":"1688f22d.03186e","type":"split","z":"e8a6bafb.256b68","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":798.0963096618652,"y":681.1616096496582,"wires":[["b12163cd.79176"]]},{"id":"b12163cd.79176","type":"function","z":"e8a6bafb.256b68","name":"IdentifySensor","func":"var devices = [\n [\"004\",1987], \n [\"006\",1988],\n [\"008\",1989],\n [\"010\",1990],\n [\"012\",1991],\n [\"030\",1992],\n [\"031\",1993]\n ]\n \nsensid=msg.payload.id;\n\nfor (i = 0; i < devices.length; i++) {\n if(sensid==devices[0]){\n msg.payload.idx=devices[1];\n msg.payload.svalue=msg.payload.rawValue.toString();\n }\n if(sensid==\"031\"){\n msg.payload.nvalue = 0 ;\n if(msg.payload.rawValue>0){\n msg.payload.switchcmd=\"On\";\n } else {\n msg.payload.switchcmd=\"Off\";\n }\n msg.payload.command =\"switchlight\";\n }\n}\nreturn msg;","outputs":1,"noerr":0,"x":783.6068649291992,"y":727.7579135894775,"wires":[["7aa248b.bcbe0b8","a792fd8f.4957b"]]},{"id":"7aa248b.bcbe0b8","type":"debug","z":"e8a6bafb.256b68","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":975.1068382263184,"y":713.6824169158936,"wires":[]},{"id":"a792fd8f.4957b","type":"mqtt out","z":"e8a6bafb.256b68","name":"test","topic":"domoticz/in","qos":"0","retain":"false","broker":"3cd8a35a.e2ae2c","x":946.9999732971191,"y":853.3332901000977,"wires":[]},{"id":"3cd8a35a.e2ae2c","type":"mqtt-broker","z":"","name":"Local","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"15","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","willTopic":"","willQos":"0","willPayload":""}]
</code>
9) Change Node red to your environment
a) Change node “http request” to match your IP
b) Change the node “FilterVBUSSensors” if you have different sensors. Use list of sensors from step 4
c) Change the node “IdentifySensor” to match the idx of your dummy/virtual sensors of Domoticz
-
- Posts: 2
- Joined: Thursday 02 November 2017 20:53
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Location: Netherlands
- Contact:
Re: Support for the Resol VBUS protocol?
I saw this thread and it is old, but I'm struggling getting things to work.
Now I get this error in my debug screen.
node: FilterVBUSSensorsfunction : (error)
'TypeError: Cannot read property 'substr' of undefined'.
Do you have any idea?
Now I get this error in my debug screen.
node: FilterVBUSSensorsfunction : (error)
'TypeError: Cannot read property 'substr' of undefined'.
Do you have any idea?
-
- Posts: 18
- Joined: Sunday 12 February 2017 15:14
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: Support for the Resol VBUS protocol?
Exactly what I am searching. Got the CSV on my pi but need a script to import it in Domoticz. Can you please share the script?McMelloW wrote: ↑Wednesday 17 January 2018 14:58 See my previous post. With the formatter from Daniel Wippermann I can get the data from my Resol KM2 every 5 minutes into Domoticz. This can be faster if you want it.
Thanks also to Dannybloe for his support with the dzVents script
A floorplan of my Solarboiler / Heating system. Combined with values form Atag One and Weather Underground.
-
- Posts: 71
- Joined: Tuesday 30 April 2019 16:06
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 4.10717
- Location: Portugal
- Contact:
Re: Support for the Resol VBUS protocol?
Hi Bbqkees I have followed your guide to build the vbus to UART and load the sketch in Arduino compatible Mega (ATmega) + Ethernet Shield, everything works perfectly with my Deltasol CS Plus controller . Great work!, but I can't leave a network cable from the technical zone where I have the solar controller to link the router because is so far, I know that I can connect a Vonets to transmit via WiFi but I thought that maybe the ATmega could be connected to an ESP8266 to transmit via WiFi, you know if it would be possible?
Kind regards
Kind regards
Last edited by javalin on Tuesday 05 November 2019 21:19, edited 4 times in total.
- McMelloW
- Posts: 427
- Joined: Monday 20 November 2017 17:01
- Target OS: Raspberry Pi / ODroid
- Domoticz version: V2024.1
- Location: Harderwijk, NL
- Contact:
Re: Support for the Resol VBUS protocol?
Here is the script I useJoost996me wrote: ↑Saturday 08 June 2019 8:42Exactly what I am searching. Got the CSV on my pi but need a script to import it in Domoticz. Can you please share the script?McMelloW wrote: ↑Wednesday 17 January 2018 14:58 See my previous post. With the formatter from Daniel Wippermann I can get the data from my Resol KM2 every 5 minutes into Domoticz. This can be faster if you want it.
Thanks also to Dannybloe for his support with the dzVents script
A floorplan of my Solarboiler / Heating system. Combined with values form Atag One and Weather Underground.
Code: Select all
--[[ Test script for dzVents KM2 Data read from KM2 communication-unit without the use og website Vbus.current_packets
Read from KM2 local-ip into current_packets.vbus binary file
current_packets.vbus (binary) is formatted to json with KM2-formatter from Daniel Wipperman
See https://github.com/danielwippermann/resol-vbus.rs for all information
KM2Output.json is read and tranfered to the devices.
]]--
local KM2output = '/tmp/KM2output.json' -- Formatted json output file
local fetchIntervalMins = 1 -- (Integer) (Minutes, Range 5-60) How often KM2 file is fetched
local idxTempCol = 61
local idxTempBoil = 62
local idxPumpRel = 63
local idxPWM_BP = 64
local idxTage = 65
local idxRelTime = 66
local ScriptVersion = '0.1.5'
return {
active = true,
logging = {
-- level = domoticz.LOG_DEBUG, -- Uncomment to override the dzVents global logging setting
marker = 'KM2 '.. ScriptVersion
},
on = {
timer = {'every minute'} -- Don't change! Verander niet! Ne changez pas!
},
execute = function(domoticz, device)
local getData = false
if (os.date('*t').min % fetchIntervalMins) == 0 then
getData = true
elseif ((os.date('*t').min -1) % fetchIntervalMins) ~= 0 then
return
end
if getData then
domoticz.utils.osExecute('wget -nv -N -P /tmp/ 192.168.xxx.yyy/current/current_packets.vbus')
domoticz.utils.osExecute('/home/pi/resol-vbus.rs/examples/formatter/KM2-formatter -- simple-json /tmp/current_packets.vbus')
--loads a json file with the provided name and returns it as a table (if it exists)
local function readLuaFromJsonFile(fileName)
KM2data ={}
local file = io.open(fileName, 'r')
if file then
-- package.path = package.path ..";./scripts/lua/?.lua;" -- This can be removed when using dzVents 2.3.1 or later
local jsonParser = require('JSON')
local _json = file:read('*a')
local json = jsonParser:decode(_json)
io.close(file)
return json
end
return nil
end -- function readLuaFromJsonFile(fileName)
local KM2data = readLuaFromJsonFile(KM2output)
if not KM2data then
domoticz.log('Could not read KM2-data from file: '.. KM2output, domoticz.LOG_ERROR)
return
end
domoticz.log('KM2output json data file has been read', domoticz.LOG_DEBUG)
-- Read KM2data in pairs and update devices
for i, item in pairs(KM2data.fields) do
if (item.id == '00_0010_2360_10_0100_004_2_0') then -- uniek id voor Temperatur Sensor 1
domoticz.devices(idxTempCol).updateTemperature(tonumber(item.rawValue) / 10)
domoticz.log('Temperatuur Collector = ' ..item.textValue.. ' °C', domoticz.LOG_DEBUG)
end
if (item.id == '00_0010_2360_10_0100_006_2_0') then -- uniek id voor Temperatur Sensor 2
domoticz.devices(idxTempBoil).updateTemperature(tonumber(item.rawValue) / 10)
domoticz.log('Temperatuur Boiler = ' ..item.textValue.. ' °C', domoticz.LOG_DEBUG)
end
if (item.id == '00_0010_2360_10_0100_016_2_0') then -- uniek id voor Tage
domoticz.devices(idxTage).updateCustomSensor(tonumber(item.rawValue))
domoticz.log('Aantal dagen = ' ..item.textValue.. ' dagen', domoticz.LOG_DEBUG)
end
if (item.id == '00_0010_2360_10_0100_034_1_0') then -- uniek id voor Pomp Relais 1
domoticz.devices(idxPumpRel).updatePercentage(tonumber(item.rawValue))
domoticz.log('Pomp Relais = ' ..item.textValue.. ' %', domoticz.LOG_DEBUG)
end
if (item.id == '00_0010_2360_10_0100_038_1_0') then -- uniek id voor PWM A
domoticz.devices(idxPWM_BP).updatePercentage(tonumber(item.rawValue))
domoticz.log('PWM Boier Pomp = ' ..item.textValue.. ' %', domoticz.LOG_DEBUG)
end
if (item.id == '00_0010_2360_10_0100_048_4_0') then -- uniek id Betriebssekunden Relais 1
RelaisTime = (tonumber(item.rawValue))
local days = math.floor(RelaisTime / 86400)
local remainder = RelaisTime % 86400
local hours = math.floor(remainder / 3600)
local remainder = remainder % 3600
local minutes = math.floor(remainder / 60)
local seconds = remainder % 60
Bedrijfstijd = tostring(days.. 'd:' ..hours.. 'u:' ..minutes.. 'm:'..seconds.. 's.')
domoticz.devices(idxRelTime).updateText(tostring(Bedrijfstijd))
domoticz.log('Bedrijfstijd Pomp Relais 1 = ' ..Bedrijfstijd, domoticz.LOG_DEBUG)
domoticz.log('Bedrijfstijd Pomp Relais 1 = ' ..item.textValue.. ' sec', domoticz.LOG_DEBUG)
end
end -- Read KM2data in pairs and update devices
end -- getData
end
}
Greetings McMelloW
-
- Posts: 71
- Joined: Tuesday 30 April 2019 16:06
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 4.10717
- Location: Portugal
- Contact:
Re: Support for the Resol VBUS protocol?
Thank you McMelloW, you use a vbus to lan adapter in your example?. I would like to send the data via wifi from arduino to domoticz without ethernet cable.McMelloW wrote: ↑Tuesday 05 November 2019 20:19Here is the script I useJoost996me wrote: ↑Saturday 08 June 2019 8:42Exactly what I am searching. Got the CSV on my pi but need a script to import it in Domoticz. Can you please share the script?McMelloW wrote: ↑Wednesday 17 January 2018 14:58 See my previous post. With the formatter from Daniel Wippermann I can get the data from my Resol KM2 every 5 minutes into Domoticz. This can be faster if you want it.
Thanks also to Dannybloe for his support with the dzVents script
A floorplan of my Solarboiler / Heating system. Combined with values form Atag One and Weather Underground.Code: Select all
--[[ Test script for dzVents KM2 Data read from KM2 communication-unit without the use og website Vbus.current_packets Read from KM2 local-ip into current_packets.vbus binary file current_packets.vbus (binary) is formatted to json with KM2-formatter from Daniel Wipperman See https://github.com/danielwippermann/resol-vbus.rs for all information KM2Output.json is read and tranfered to the devices. ]]-- local KM2output = '/tmp/KM2output.json' -- Formatted json output file local fetchIntervalMins = 1 -- (Integer) (Minutes, Range 5-60) How often KM2 file is fetched local idxTempCol = 61 local idxTempBoil = 62 local idxPumpRel = 63 local idxPWM_BP = 64 local idxTage = 65 local idxRelTime = 66 local ScriptVersion = '0.1.5' return { active = true, logging = { -- level = domoticz.LOG_DEBUG, -- Uncomment to override the dzVents global logging setting marker = 'KM2 '.. ScriptVersion }, on = { timer = {'every minute'} -- Don't change! Verander niet! Ne changez pas! }, execute = function(domoticz, device) local getData = false if (os.date('*t').min % fetchIntervalMins) == 0 then getData = true elseif ((os.date('*t').min -1) % fetchIntervalMins) ~= 0 then return end if getData then domoticz.utils.osExecute('wget -nv -N -P /tmp/ 192.168.xxx.yyy/current/current_packets.vbus') domoticz.utils.osExecute('/home/pi/resol-vbus.rs/examples/formatter/KM2-formatter -- simple-json /tmp/current_packets.vbus') --loads a json file with the provided name and returns it as a table (if it exists) local function readLuaFromJsonFile(fileName) KM2data ={} local file = io.open(fileName, 'r') if file then -- package.path = package.path ..";./scripts/lua/?.lua;" -- This can be removed when using dzVents 2.3.1 or later local jsonParser = require('JSON') local _json = file:read('*a') local json = jsonParser:decode(_json) io.close(file) return json end return nil end -- function readLuaFromJsonFile(fileName) local KM2data = readLuaFromJsonFile(KM2output) if not KM2data then domoticz.log('Could not read KM2-data from file: '.. KM2output, domoticz.LOG_ERROR) return end domoticz.log('KM2output json data file has been read', domoticz.LOG_DEBUG) -- Read KM2data in pairs and update devices for i, item in pairs(KM2data.fields) do if (item.id == '00_0010_2360_10_0100_004_2_0') then -- uniek id voor Temperatur Sensor 1 domoticz.devices(idxTempCol).updateTemperature(tonumber(item.rawValue) / 10) domoticz.log('Temperatuur Collector = ' ..item.textValue.. ' °C', domoticz.LOG_DEBUG) end if (item.id == '00_0010_2360_10_0100_006_2_0') then -- uniek id voor Temperatur Sensor 2 domoticz.devices(idxTempBoil).updateTemperature(tonumber(item.rawValue) / 10) domoticz.log('Temperatuur Boiler = ' ..item.textValue.. ' °C', domoticz.LOG_DEBUG) end if (item.id == '00_0010_2360_10_0100_016_2_0') then -- uniek id voor Tage domoticz.devices(idxTage).updateCustomSensor(tonumber(item.rawValue)) domoticz.log('Aantal dagen = ' ..item.textValue.. ' dagen', domoticz.LOG_DEBUG) end if (item.id == '00_0010_2360_10_0100_034_1_0') then -- uniek id voor Pomp Relais 1 domoticz.devices(idxPumpRel).updatePercentage(tonumber(item.rawValue)) domoticz.log('Pomp Relais = ' ..item.textValue.. ' %', domoticz.LOG_DEBUG) end if (item.id == '00_0010_2360_10_0100_038_1_0') then -- uniek id voor PWM A domoticz.devices(idxPWM_BP).updatePercentage(tonumber(item.rawValue)) domoticz.log('PWM Boier Pomp = ' ..item.textValue.. ' %', domoticz.LOG_DEBUG) end if (item.id == '00_0010_2360_10_0100_048_4_0') then -- uniek id Betriebssekunden Relais 1 RelaisTime = (tonumber(item.rawValue)) local days = math.floor(RelaisTime / 86400) local remainder = RelaisTime % 86400 local hours = math.floor(remainder / 3600) local remainder = remainder % 3600 local minutes = math.floor(remainder / 60) local seconds = remainder % 60 Bedrijfstijd = tostring(days.. 'd:' ..hours.. 'u:' ..minutes.. 'm:'..seconds.. 's.') domoticz.devices(idxRelTime).updateText(tostring(Bedrijfstijd)) domoticz.log('Bedrijfstijd Pomp Relais 1 = ' ..Bedrijfstijd, domoticz.LOG_DEBUG) domoticz.log('Bedrijfstijd Pomp Relais 1 = ' ..item.textValue.. ' sec', domoticz.LOG_DEBUG) end end -- Read KM2data in pairs and update devices end -- getData end }
- McMelloW
- Posts: 427
- Joined: Monday 20 November 2017 17:01
- Target OS: Raspberry Pi / ODroid
- Domoticz version: V2024.1
- Location: Harderwijk, NL
- Contact:
Re: Support for the Resol VBUS protocol?
Sorry I have no experience with wifi and a KM2.
With the wget command I simply take a copy of the KM2 memory and this is stored in a file called current_packets.vbus.
Daniel Wippermann is a software designer, study the things he placed on github about vbus.
The formatter is used to change the contents to a json-file.
Greetings McMelloW
-
- Posts: 71
- Joined: Tuesday 30 April 2019 16:06
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 4.10717
- Location: Portugal
- Contact:
Re: Support for the Resol VBUS protocol?
I get sucess with this board: ATmega2560 + ESP8266
And following this scheme:
At the moment I have the sketch reading 4 sensor values form Resol controller. You need to compile one firm to Mega and another for ESP8266. The first read values from Vbus to UART converter and second sent data wireless to Domoticz via HTTP GET requests
And following this scheme:
At the moment I have the sketch reading 4 sensor values form Resol controller. You need to compile one firm to Mega and another for ESP8266. The first read values from Vbus to UART converter and second sent data wireless to Domoticz via HTTP GET requests
Re: Support for the Resol VBUS protocol?
Hi,
Would it be possible not only to read but also to interact with the Resol relays ?
i have a DeltaSol BX plus + a Datalogger DL3.
Thanks,
P.
Would it be possible not only to read but also to interact with the Resol relays ?
i have a DeltaSol BX plus + a Datalogger DL3.
Thanks,
P.
-
- Posts: 7
- Joined: Thursday 12 November 2020 21:06
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: Support for the Resol VBUS protocol?
In your description you mentioned you removed the voltage divider. Which resistors did you remove ? I've tried to make the circuit on a breadboard and I've messed something up and it isn't getting any data.bbqkees wrote: ↑Monday 24 July 2017 11:54I still have not made them yet, no time.delphi wrote:
Do you have any "extra" board, that want to sell?
If you would order the components from Aliexpress/Ebay etc and buy a small breadboard it is not that hard to put it together.
The schematic is quite simple:
Could you please post a high res photo of your breadboard so I can see what I've done wrong ? I'm not the best at reading circuit diagrams, but I thought I did it right...
-
- Posts: 71
- Joined: Tuesday 30 April 2019 16:06
- Target OS: Raspberry Pi / ODroid
- Domoticz version: 4.10717
- Location: Portugal
- Contact:
Re: Support for the Resol VBUS protocol?
You dont need the voltage divider with arduino UNO or MEGA, dont need to reduce voltage input. Didn't work for me also at first time.
Check wirings at breadboard and pinout to the arduino must match with your script.
https://photos.app.goo.gl/SxGLecT4j6goQeCC9
https://photos.app.goo.gl/NYzjNj1tj6uqBLpw7
https://photos.app.goo.gl/7mQygyiyWfPpRwTA8
Check wirings at breadboard and pinout to the arduino must match with your script.
https://photos.app.goo.gl/SxGLecT4j6goQeCC9
https://photos.app.goo.gl/NYzjNj1tj6uqBLpw7
https://photos.app.goo.gl/7mQygyiyWfPpRwTA8
- bbqkees
- Posts: 407
- Joined: Sunday 17 August 2014 21:01
- Target OS: Linux
- Domoticz version: 4.1x
- Location: The Netherlands
- Contact:
Re: Support for the Resol VBUS protocol?
For the Arduino you can use 5V but remove the 20k resistor at the end end and you can replace the 10k resistor above that with a 4,7k resistor but that 10k can also work.
Earlier this year I made a batch of PCB's for this but I never actually tried one out, I'm still using my breadboard version
Earlier this year I made a batch of PCB's for this but I never actually tried one out, I'm still using my breadboard version
Bosch / Nefit / Buderus / Junkers / Worcester / Sieger EMS bus Wi-Fi MQTT Gateway and interface boards: https://bbqkees-electronics.nl/
Who is online
Users browsing this forum: No registered users and 1 guest