It is possible to communicate to the Gateway by chosing the Intergas Gateway from the Domoticz hardware list. See this thread viewtopic.php?f=38&t=7745 for more info on this setup. This will give you 10 devices that are updated with OpenTherm data. A very quick and easy setup, but limited data.
You can also communicate directly with the Xtend. Several methods are available for data collection. I use DzVents.
I connected my Raspberry Pi with a network cable to my router so I have the WIFI connection available for communication with the Xtend indoor unit. In order to communicate you first have to activate the WIFI on the Xtend indoor unit by pressing the button on it. The LED will then start flashing purple. This connection will close automatically after 15 minutes unless you keep it active, so your script has to request data regularly. I will also run a curl command to request data independent of Domoticz to keep it active even if Domoticz crashes for some reason. Not fail-safe but the only way ...the Xtend is not accessible via the router and a permanent API, only via direct communication.
Below is the Dzvents script example for collecting ambient temperature from the Xtend unit and print it to the log. You will have to create your own devices for holding collected data and add device update statements to the script.
Have a look here https://github.com/DSchoutsen/HA_connec ... _codes.txt for more than 100 data points that can be collected. It also shows a Home Assistant dashboard for inspiration.
Anyone feeling the urge to develop a plugin ?
Example script below
Code: Select all
return {
on = {
timer = {
'every 2 minutes' -- frequency of data request
},
httpResponses = {
'XTENDdata' -- must match with the callback passed to the openURL command
}
},
logging = {
level = domoticz.LOG_INFO,
marker = 'XTEND data request',
},
execute = function(domoticz, item)
if (item.isTimer) then
domoticz.openURL({
url = 'http://10.20.30.1/api/stats/values?fields=6573',
method = 'GET',
callback = 'XTENDdata', -- see httpResponses above.
})
end
if (item.isHTTPResponse) then
if (item.ok) then
if (item.isJSON) then
domoticz.log("ambient temperature "..item.json["stats"]["6573"]/100,domoticz.LOG_INFO)
-- add statements here to update relevant devices in Domoticz.
end
else
domoticz.log('There was a problem handling the request', domoticz.LOG_ERROR)
domoticz.log(item, domoticz.LOG_ERROR)
end
end
end
}