Zonwering en handmatig instellen van LUXwaarde

Dit is een handleiding voor gebruik met xxter. Hiermee kan een regeling voor zonwering worden gemaakt waarbij de grenswaarde van het aantal LUX kan worden ingesteld met een "instelbare regelaar" vanuit de xxter app.
​​
1. Component(en) toevoegen
Maak in de componentenlijst in het project op my.xxter een component aan voor lichtintensiteit. Gebruik hiervoor een vrij groepsadres. Later wordt deze gekoppeld aan een instelbare regelaar in het profiel.

Verder is natuurlijk de huidige LUXwaarde nodig. Als deze nog niet is aangemaakt in het xxter project maak deze dan aan en gebruik het groepsadres dat in ETS gekoppeld is aan de LUX sensor.

​​
2. Script LUXwaarde
Maak nu een script aan. Zet daar onderstaande code in.
Let op: De gebruikte componenten in dit voorbeeld moeten worden aangepast naar de componenten uit het eigen project.
$INSTELLUX = 2BYTE(109/LUXwaardeinstellen)
IF 2BYTE(110/LUXsensor⟨huidigeluxwaarde⟩)>2BYTE(109/LUXwaardeinstellen)
 BEGIN
  # zonwering dicht
  SET BIT(1/Zonwering) TO 1
  WAIT 5 MIN
 END
IF 2BYTE(110/LUXsensor⟨huidigeluxwaarde⟩)<(2BYTE(109/LUXwaardeinstellen)*0.9)
# *0.9 zorgt ervoor dat er een marge zit van 10% voor hysteresis. Deze kan ook kleiner worden ingesteld als het zonnescherm nog te vaak heen en weer gaat, *0.8 of * 0.7 bijvoorbeeld.
 BEGIN
  # zonwering open
  SET BIT(1/Zonwering) TO 0
  WAIT 5 MIN
 END
3. Script LUXwaarde herstel
Maak nog een script aan en stel deze zo in dat het script start bij het starten van de xxter.
Zet het volgende in het script:
WAIT 2 MIN
SET 2BYTE(109/LUXwaarde instellen) TO $INSTELLUX
#Dit zorgt ervoor dat de ingestelde waarde uit de app ook beschikbaar is na stroomuitval.

4. Actie aanmaken
Maak in het project, bij acties, een actie aan die het script start dat in stap is 2 aangemaakt. zie screenshot hieronder.
Let op: de actie start bij twee voorwaarden (OF poort). Het pijltje voor de voorwaarde geeft aan dat het een trigger is. Dit kan worden aan of uit gezet door op het pijltje te klikken voor de actie.

5. Pagina element toevoegen
Maak in het profiel op een pagina een instelbare regelaar aan en koppel het eerder aangemaakte component "LUXwaarde instellen" hieraan.

Reacties

  • Ivo Jansch
    Ivo Jansch Gebruiker, Specialist
    Een aantal vragen hierover want ik ben van plan dit zo te gaan programmeren:

    1) Als ik het goed begrijp gebruik je de WAIT in dit voorbeeld om te voorkomen dat er continu een ‘close’ commando naar het scherm gaat. Door de wait is dat maximaal 1 keer per 5 minuten. Kan dat kwaad? Is het niet mogelijk om bij de voorwaarden een extra check op te nemen dat ie het script alleen uitvoert Indien get scherm niet al open/dicht was?

    2) Door de ‘ieder telegram’ kan het script elke seconde gestart worden. Houdt dat de xxter processor ‘bezig’?

    3) als je meerdere screens hebt adviseer je dan ze allemaal met 1 script aan te sturen of elk een eigen script te geven?
  • 1) De WAIT zit er in om te voorkomen dat het scherm (te) vaak op en neer gaat. Als het scherm dicht wordt gezet dan blijft deze in ieder geval 5 minuten dicht. De WAIT kan naar wens, op basis van hoe men de automatisering van de schermen ervaart in de praktijk, worden aangepast. Even uitproberen dus.
    Een extra check inbouwen kan wel maar heeft in dit voorbeeld geen toegevoegde waarde.

    2) Dat ligt eraan hoe vaak de luxsensor een telegram stuurt, dat mag niet iedere seconde te zijn. Dit moet je juist instellen in de luxsensor. KNX busload is over het algemeen eerder een probleem dan de cpu belasting van de xxter.

    3) Je kunt meerdere screens aansturen met hetzelfde script. In het script voor "Luxwaarde" (stap2) kun je voor of na regel 5 en regel 12 screens toevoegen die moeten worden bewogen. Kijk echter vooral naar de praktijk.
    Verder is het gebruikelijk om per woningzijde de screens aan te sturen. Je kunt in KNX met 1 groepsadres meerdere screens aansturen. Dan hoef je in het script ook maar 1 groepsadres te gebruiken.
  • Ivo Jansch
    Ivo Jansch Gebruiker, Specialist
    Ik wil dit script uitbreiden met een ‘manual override’, om te voorkomen dat het screen na 5 minuten weer dicht gaat als een bewoner hem net heeft opengemaakt voor de glazenwasser. Ik dacht aan de volgende aanpak: aan het adres van de taster koppel ik een script (met restart) met de volgende inhoud:

    $OVERRIDE = 1; WAIT 60 MIN #Na een uur gaan we terug op auto $OVERRIDE = 0;

    En dan in het script van Freek-Jan de code overslaan indien override == 1.

    Is dit de goede aanpak of kan het eenvoudiger?
  • Ik zou in de actie, bij stap4 van mijn eerste post, een component toevoegen dat de "manual override" moet gaan aansturen. Let op het gebruik van haken in de AND / OR poort.

    Op de plek van de schakelaar kun je 1). Een magneetcontact gebruiken. 2). Een dummy* component aanmaken die je aan een schakelaar in de app koppelt.

    Op deze manier zal het script dat de zonwering aanstuurt niet worden gestart als het magneetcontact open is of als het dummy component geactiveerd is.

    *Een dummy is een component in de componentenlijst van het xxter project waar een vrij groepsadres aan is toegekend. Het komt niet voor in het KNX project.
  • Ivo Jansch
    Ivo Jansch Gebruiker, Specialist
    Probleem bij die laatste aanpak is dat je dan een component in de xxter app moet erbuiten. Liefst werkt het ook met de fysieke tasters.
  • Ik zie net staan dat het om een taster ging. Een taster koppelen kan ook uiteraard. Gebruik daarvoor het groepsadres van de taster op de plek van de schakelaar. Voeg deze in het xxter project toe als schakelaar.
  • Ivo Jansch
    Ivo Jansch Gebruiker, Specialist
    April 2019 aangepast
    Mjah dan heeft de taster de functie ‘override aan/uit’. Dat is niet helemaal wat ik bedoel. Wat ik bedoel is dat als iemand handmatig besluit de screens open of dicht te maken, op wat voor manier dan ook, bijv met een op/neer taster, dat het auto-open/dicht dan even een paar uur moet stoppen. Ik puzzel nog wel even verder en als het lukt maak ik er een artikeltje van.