Ja! Ik heb die volgens mij van jou gekregen ![]()
Dat werkte prima, maar had het voor 1 van de twee Adam’s in gebruik. Later - toen ik met de tweede Adam aan de slag ging - heb ik het met flows anders opgelost.
PS
Dit script:
//Script om een schema wijziging naar de plugwise Adam door te geven
// argumenten: b.v "<schema>,<zone>" <schema> mogelijkheden: Aanwezig, Afwezig, Vakantie
// Later nog uitbreiden dat meerdere zones meegegeven kunnen worden. Die moeten namelijk ineens
//
let a = args[0].split(',')
// a = ["Afwezig","Studio"];
let schema = a[0].trim();
let zone = a[1].trim();
let error = false;
let location_id = "";
let rule_id = "";
let name = "";
//
//console.log(schema,zone)
//
//
//
//
// the location_id staat in <your_bridge_ip/core/appliances)
//
switch (zone){
case "Studio":
location_id = "41f43c862e84433ab74eee035b9ddb61";
break;
case "Woonkamer":
location_id = "348b2d27615044a7a1f04b913db22219";
break;
// case "Werkkamer achter":
// location_id = "xxxxxxxxxxxx";
// break;
// case "Werkkamer voor":
// location_id = "xxxxxxxxxxxx";
// break;
default:
error = true;
};
//
//
switch (schema){
case "Aanwezig":
switch (zone){
case "Woonkamer":
rule_id = "b66c16a70dc34f8099739362f6d4fa0f";
name = "WK schema Aanwezig";
break;
case "Studio":
rule_id = "6150b7480dc744a598756d990c4a4985";
name = "ST schema Aanwezig"
break;
// case "Werkkamer achter":
// rule_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxx";
// name = "Werkkamers achter"
// case "Werkkamer voor":
// rule_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxx";
// name = "Werkkamers Nacht"
// break;
default:
error = true;
}
break;
//
//
case "Afwezig":
switch (zone){
case "Studio":
rule_id = "6947928e473a45878c6672ab8e86f82d";
name = "ST schema Afwezig";
break;
case "Woonkamer":
rule_id = "7bd80927a93643a2ad6a7c009eb4116c";
name = "WK schema Afwezig"
break;
default:
error = true;
}
break;
// case "Vakantie":
// rule_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxx";
// name = "Vakantie"
// break;
default:
error = true;
};
if (!error){
let url = "http://192.168.50.32/core/rules;id="+rule_id;
console.log(url);
let payload = '\<?xml version="1.0" encoding="UTF-8" ?><rules><rule id="'+rule_id+'"><name><![CDATA['+name+']]></name><template tag="zone_preset_based_on_time_and_presence_with_override"/><contexts><context><zone><location id="'+location_id+'"/></zone></context></contexts></rule></rules>';
console.log(payload);
const response = await fetch(url, {
method: 'POST',
headers: {
'content-type': 'text/xml',
'content-length': payload.length,
'authorization' : 'Basic c21pbGU6a25rcGxxa2Y='
},
body: payload
}).then(response => response.text())
.then(data => {
console.log('Success:', data);
})
.catch((error) => {
console.error('Error:', error);
});
}
return !error;