Vardag/Helgdag istf veckodagar

Moderators: hekj, Telldus

Post Reply
folkeorg
Posts: 201
Joined: Fri Mar 17, 2023 9:45 am

Vardag/Helgdag istf veckodagar

Post by folkeorg »

Vissa lampor vill jag ha olika schema på för vardag och helgdag dvs inte för specifika veckodagar. Nu går det bara att ha veckodagar dvs ingen synkning mot kalenderns faktiskt dagtyper och jag kan inte påstå att jag använder annat än just vardag/helg för olika schema

Så det vore smidigt att i listan även ha:
[ ] Workday
[ ] Non-workday
(Vet inte om det går eller ens är önskvärt att dela upp på annat sätt?)

Som det är nu så är t.ex. julafton på en fredag men jag inte inte att lamporna ska tändas som om jag ska upp tidigt på morgonen en vardags-fredag. Finns det ngn word-around till detta idag?
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Vardag/Helgdag istf veckodagar

Post by hekj »

folkeorg wrote:Vissa lampor vill jag ha olika schema på för vardag och helgdag dvs inte för specifika veckodagar. Nu går det bara att ha veckodagar dvs ingen synkning mot kalenderns faktiskt dagtyper och jag kan inte påstå att jag använder annat än just vardag/helg för olika schema

Så det vore smidigt att i listan även ha:
[ ] Workday
[ ] Non-workday
(Vet inte om det går eller ens är önskvärt att dela upp på annat sätt?)

Som det är nu så är t.ex. julafton på en fredag men jag inte inte att lamporna ska tändas som om jag ska upp tidigt på morgonen en vardags-fredag. Finns det ngn word-around till detta idag?
Du skulle kunna använda dig av ett 'Attribute' och lägga till det på event-raden som tänder lampan, se till att du har texten Holiday i listan med Attributes under Config-fliken.

Min lista ser ut så här:
Workday, Weekend, Holiday, Party, EarthHour
Se till att du har 'Holiday' markerat i '- Mode/Attr' fältet.

Skapa sedan en ny Device i TelldusCenter med namnet "ModeAttr".

Starta om NexaHome samt skapa en ny bsh fil med device Id som namn, exempelvis 43.bsh

43.bsh

Code: Select all

import java.text.SimpleDateFormat;
device = "ModeAttr";
if (deviceIsOn(device)) {
  // *** Holiday check begin ***
  holiday_attribute = "Holiday";
  String[] holiday_array = {
    "2015-12-24", /* Julafton */
    "2015-12-25", /* Juldagen */
    "2015-12-26", /* Annandag Jul */
    "2015-12-31", /* Nyårsafton */
    "2016-01-01", /* Nyårsdagen */
    "2016-01-06", /* Trettondedag jul */
    "2016-03-25", /* Långfredagen */
    "2016-03-28", /* Annandag påsk */
    "2016-05-01", /* Valborg, Första Maj */
    "2016-05-05", /* Kristi Himmelsfärdsdag */
    "2016-06-06", /* Sveriges Nationaldag och Svenska flaggans dag */
    "2016-06-24", /* Midsommarafton */
    "2016-06-25", /* Midsommardagen */
    "2016-11-05", /* Alla Helgons dag */
    "2016-12-24", /* Julafton */
    "2016-12-25", /* Juldagen */
    "2016-12-26"  /* Annandag Jul */
  };
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  date = sdf.format(Calendar.getInstance().getTime());
  holiday_flag = false;
  for (int ndx = 0; ndx < holiday_array.length; ndx++) {
    if (date.equals(holiday_array[ndx])) {
      holiday_flag = true;
      break;
    }
  }
  attributes = "";
  if (holiday_flag && !attributeIsOn(holiday_attribute)) {
    if (attributes.length() != 0) {
      attributes = attributes + ",";
    }
    attributes = attributes + holiday_attribute + ":set";
  } else if (!holiday_flag && attributeIsOn(holiday_attribute)) {
    if (attributes.length() != 0) {
      attributes = attributes + ",";
    }
    attributes = attributes + holiday_attribute + ":clear";
  }
  // *** Holiday check end ***
  if (attributes.length() != 0) {
    attribute(attributes);
  }
  deviceOff(device);
}
Skapa ett nytt event kopplat till device 'ModeAttr'.
ON 00:00 (alla dagar)
Post Reply