Sinds kort ook in het bezit van een atag one (zone) en zou de app ook graag op mijn homey willen draaien. Is het mogelijk dat er een update komt??
Alvast bedankt.
Sinds kort ook in het bezit van een atag one (zone) en zou de app ook graag op mijn homey willen draaien. Is het mogelijk dat er een update komt??
Alvast bedankt.
Omdat er geen app (meer) bestaat voor de Atag One ben ik zelf wat gaan experimenteren met HomeyScript.
(Helaas voor de Atag One Zone gebruikers: ik verwacht niet dat dit zal werken)
Ik heb een paar scripts gemaakt die de Atag One laat koppelen (dat hoef je maar één keer te doen), de actuele waarden ophaalt en de gewenste temperatuur instelt.
Om het te laten werken, moet je wel even wat gegevens aanvullen:
het IP-adres van je thermostaat,
het MAC-adres,
de naam van het toestel en het e-mailadres waarmee je inlogt op de Atag Portal.
(IP address, MAC address en DeviceName kan je noteren vanop de instellingen op de thermostaat zelf. Via de Telenet router in België zijn deze gegevens ook op te halen. )
Wanneer het koppelen goed gaat krijg je als antwoord, in HomeyScript, terug:
{ pair_reply: { seqnr: 0, acc_status: 2 } }
Bij dit antwoord heb je grote kans dat het besturen van de Atag One lukt via Homeyscripts.
Probeer dit even, wanneer dit ook voor anderen behulpzaam is deel ik de andere scripts.
Mogelijk moet je de pairing request bevestigen op je thermostaat zelf.
Kijk dat na bij het uitvoeren van het script.
Ik wil me nog gaan verdiepen in het maken van een app, wie weet in de nabije toekomst.
Succes.
========
Bewaar het volgende HomeyScript (nadat je je eigen gegevens hebt aangevuld) in zoiets als AtagOne_Pair.js:
const atagOneip= '192.168.x.xxx';
const macAddress = '11:22:33:44:55:66';
const deviceName = '6808-1234-6789_12-36-001-252';
const mailaddres = "your.mail@domain.com";
var pairUrl = `http://${atagOneip}:10000/pair_message`;
var jsonPayload = `{
"pair_message":{
"seqnr":0,
"accounts":{
"entries":[
{
"user_account":"${mailaddres}",
"mac_address":"${macAddress}",
"device_name":"${deviceName}",
"account_type":0
}
]
}
}
}`;
//log(jsonPayload);
console.log('Starting pairing request ...');
const PairAtagOne = async () => {
try {
const rawResponse = await fetch(pairUrl, {
method: 'POST',
headers: {
'Content-Type': 'text/plain;charset=UTF-8',
'Content-Length': Buffer.byteLength(jsonPayload),
'Accept': '*/*',
'Accept-Encoding': 'gzip,deflate',
'Accept-Language': 'en-US,en;q=0.8'
},
body: jsonPayload
});
const content = await rawResponse.json();
console.log(content);
} catch (error) {
console.error('Error fetching data:', error);
}
};
PairAtagOne();
Some unrequested hints & tips ![]()
Be careful with using many capitals in a const/var/let name, it’s quite easy to make a mistake when using it in other code parts.
I always use one capital max, like
atagOneip
To save you from all these + and " signs, and to increase readability, you can put backticks around the declaration, and put the variable between brackets with a preceding $
Example:
var pairUrl = `"http://${AtagOneIP}:10000/pair_message"`;
The var jsonPayload JSON will be much clearer (and easier to write) as well:
var jsonPayload = `{
"pair_message":{
"seqnr":0,
"accounts":{
"entries":[
{
"user_account":"${mailaddres}",
"mac_address":"${macAddress}",
"device_name":"${deviceName}",
"account_type":0
}
]
}
}
}`;
Dank je Peter.
Heb de code aangepast zoals voorgesteld.