Flexit ventilation

Very briefly described:

  • Flexit Uni 3

  • Flexit modbus adapter CI66

  • Intel NUC running Home assistant and with an USB RS485 adapter

  • Homeyscript interacting directly with the home assistant API

Here is the homeyscript interacting with the API:

vent.js
let variables = await Homey.logic.getVariables()
let getVar = (name) => {
let x = _.find(variables, (val, key) => {return (val.name === name) })
if (typeof x === 'undefined') throw new Error("Could not find variable [" + name + "]")
return x
}
// Variables: home,bright,timeperiod,presence-2etg
let home = getVar('home').value
let vent = getVar('vent').value
// home: boolean
// vent: boolean
let fanmode = "Low"
if (home) {
if (vent) {
fanmode = "High"
} else {
fanmode = "Medium"
}
}
let body = {
"entity_id": "climate.flexit",
"fan_mode": fanmode
}
let bodyencoded = JSON.stringify(body)
let token = '-----removed------' // get a token from the home assistant user settings
let response = await fetch("https://home.solweb.no/api/services/climate/set_fan_mode",
{
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + token
},
method: "POST",
body: bodyencoded
})
let json = await response.json()
// console.log("Reponse: ", json)
if (json.length <= 0) {
throw new Error("Empty response....")
}
return true;