Ervaring met Homey en Plugwise

Ja! Ik heb die volgens mij van jou gekregen :slight_smile:

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;  
1 Like