Xxter advanced training 2015 xxter

Post on 15-Apr-2017

58 views 4 download

Transcript of Xxter advanced training 2015 xxter

Acties, Scripts, Upnp enz.xxter

Freddy van GeelAccountmanager - xxter

Harm ElzingaCTO - xxter

Freek-Jan BuijsmanSupport - xxter

Xxter scripts zijn geschreven programma’s die uit een of meerdere regels bestaan.

Elke regel staat voor een specifiek commando. Het is niet mogelijk meerdere commando’s op

één regel te zetten. U kunt commentaar toevoegen aan een script

door gebruik te maken van het “#” karakter, u kunt dit toepassen op een aparte regel of na een commando aan het einde van een regel.

De Basis

Interface - website

Algemeen

Commando -venster

Script - venster

Hoe zit het?• KNX / enOcean• HTTP• DMX• Protocol• Aanwezigheid• TijdInput

Actie• KNX / enOcean• Scene• Script• OpdrachtOutput

Actie – Website Project Gestart vanuit

Visualisatie (druk op tablet of smartphone dmv virtueel component)

KNX (druk op sensor dmv component) Automatisch (verandering van waarde van component) SIP trigger vanuit intercom HTTP trigger

Opgenomen in scene Gestart vanuit timer/planner

Of…

SCRIPT WAIT CALL SNAPSHOT

SET FADE READ LEARN

EXECUTE WAKEONLAN MISC

PRESENCE SIMULATIO

N

COMMANDS

COMMANDS - deel 1

SCRIPT RESTART START [script] START AT BEGIN [script] STOP STOP [script]

WAIT WAIT [time] WAIT [time] RANDOM [time]

CALL CALL [scenario] CALL [alert] CALL [alert] INCLUDE [camera] CALL [alert] WITH [value] CALL [alert] INCLUDE [camera] WITH

[value]

MAKE SNAPSHOT MAKE SNAPSHOT (camera)

SET SET [script] TO [on/off] SET [scheduler] TO [on/off] SET [bit component] TO [value] SET [byte component] TO [value] SET [2byte component] TO

[value] SET [4byte component] TO

[value] SET [rgb component] TO [red],

[green], [blue]

COMMANDS – deel 2

FADE FADE [byte component] TO [value] IN

[time] FADE [2byte component] TO [value] IN

[time] FADE [4byte component] TO [value] IN

[time] FADE [rgb component] TO [red], [green],

[blue] IN [time] FADE [byte component] TO [value] IN

[time] STEP [time] FADE [2byte component] TO [value] IN

[time] STEP [time] FADE [4byte component] TO [value] IN

[time] STEP [time] FADE [rgb component] TO [red], [green],

[blue] IN [time] STEP [time]

READ READ [bit component] READ [byte component] READ [2byte component] READ [4byte component] READ [scenario]

LEARN LEARN [scenario]

COMMANDS – deel 3

EXECUTE EXECUTE [network

command] EXECUTE [ir command] EXECUTE ON [upnp

device] [upnp command] EXECUTE ON [diva] [diva

macro] WAKEONLAN

SEND WAKEONLAN TO [mac address]

MISC $var = IF (...) WHILE (...) ELSE BEGIN ... END

KNXTUNNEL OPEN KNXTUNNEL CLOSE KNXTUNNEL

PRESENCE SIMULATION PLAY RECORD STOP

COMMANDS – deel 4

FUNCTIONS - deel 1

RANDOM(maxvalue) NOW(timestamp) ROUND(value, precision) FLOOR(value, precision) CEIL(value, precision) ABS(value) MIN(a, b) MAX(a, b) AVG(a, b)

DAYTIME(timestamp) SECOND(timestamp) MINUTE(timestamp) HOUR(timestamp) DAYOFWEEK(timestamp) DAYOFMONTH(timestamp) DAYOFYEAR(timestamp) MONTH(timestamp) YEAR(timestamp)

CONCAT([text 1], [text 2], …) FORMAT([format], ...) SUBSTR([text], [start], [length]) STRLEN([text])

FUNCTIONS - deel 2

Berekenen en voorwaarden

Rekenen + - * / ^

Voorwaarden & (en) | (of) < > =

Testen en inzien Actie - Script

In de unit: instellingen-basis Gebruikerslogboek

Openen op statuspagina:

“Open het gebruikerslogboek”

Gebruikerslogboek

Script – Website Project

Basic logica; EN - OF - XOF. Rekenen; waarden optellen, aftrekken, vermenigvuldigen,

delen enz. Geavanceerde logica; IF, THEN, ELSE - Variabelen gebruiken

enz.

OEFENING: EN poort

Zet een bit met op een “1”, als 2 andere bits allebei “1” zijn.

IF [BIT 1] = 1 & [BIT 2] = 1 SET [BIT 3] TO 1Alle waarden zijn mogelijk:IF [BIT 1] = [WAARDE 1] & [BIT 2] = [WAARDE 2] SET [BIT 3] TO [WAARDE 3]Ook met byte waarden (= of > of <)IF [BIT 1] = [WAARDE 1] & [BIT 2] = [WAARDE 2] & [BYTE 1] > [WAARDE 1] SET [BIT 4] TO [WAARDE 4]Byte waarde sturen:IF [BIT 1] = [WAARDE 1] & [BIT 2] = [WAARDE 2] & [BYTE 1] = [WAARDE 1] SET [BYTE 4] TO [WAARDE 4]

OEFENING: OF poort

Zet een bit met op een “1”, als één van 2 andere bits “1” zijn.

IF [BIT 1] = 1 | [BIT 2] = 1 SET [BIT 3] TO 1Alle waarden zijn mogelijk:IF [BIT 1] = [WAARDE 1] | [BIT 2] = [WAARDE 2] | [BIT 3] = [WAARDE 3] SET [BIT 4] TO [WAARDE 4]Ook met byte waarden (= of > of <)IF [BIT 1] = [WAARDE 1] | [BIT 2] = [WAARDE 2] | [BYTE 1] < [WAARDE 1] SET [BIT 4] TO [WAARDE 4]Byte waarde sturen in tijd:IF [BIT 1] = [WAARDE 1] | [BIT 2] = [WAARDE 2] | [BIT 3] = [WAARDE 3] FADE [BYTE 4] TO [WAARDE 4] IN [TIJD]

OEFENING: combi EN/OF poort

Zet een bit met op een “1”, als één van 2 andere bits “1” zijn.

IF [BIT 1] = 1 & [BIT 2] = 1 | [BIT 3] = 1 SET [BIT 4] TO 1Alle waarden zijn mogelijk:IF [BIT 1] = [WAARDE 1] & [BIT 2] = [WAARDE 2] | [BIT 3] = [WAARDE 3] SET [BIT 4] TO [WAARDE 4]Indien nodig haken gebruiken!IF [BIT 1] = [WAARDE 1] & ( [BIT 2] = [WAARDE 2] | [BIT 3] = [WAARDE 3] ) SET [BIT 4] TO [WAARDE 4]Byte waarde sturen in tijd met stappen van:IF [BIT 1] = [WAARDE 1] & ( [BIT 2] = [WAARDE 2] | [BIT 3] = [WAARDE 3] ) FADE [BYTE 4] TO [WAARDE 4] IN [TIJD] STEP [WAARDE]

Toiletverlichti

ng= 0 herstart

script

# Ventilatie aanSET BIT(36/MV Stand ⟨2⟩) TO 1 # Naloop in MIN en uitWAIT 5 MINSET BIT(36/MV Stand ⟨2⟩) TO 0

Naloop ventilatie

Toiletverlichti

ng= 0 herstart

script

# Ventilatie aanSET BIT(36/MV Stand ⟨2⟩) TO 1 # Naloop “Byte”-Tijd in MIN en uitWAIT BYTE(2000044/ventilatie naloop lang) MINSET BIT(36/MV Stand ⟨2⟩) TO 0

Naloop ventilatie - 2

Deurbel = 1 herstart script

# status opslaan$STATUS445 = BIT(445/Buitenlicht voortuin)# licht aanschakelen en wacht 10 minSET BIT(445/Buitenlicht voortuin) TO 1WAIT 10 MIN# zet terug naar de status voor schakelenSET BIT(445/Buitenlicht voortuin) TO $STATUS445

Buitenlicht aan en na 10 min terug op waar ie stond

HTTP trigger http://[ipaddress]:8001/trigger#

# = een nummer

Voor het instellen van variabelen: http://IP-adres:8001/trigger1?var1=10&var2=5.55 In dit voorbeeld worden 2 variabelen gezet namelijk: $HTTPVAR1 naar 10 en $HTTPVAR2

naar 5.55 (gebruik een . bij kommagetallen!!) De namen van de variabelen kunnen zelf gekozen worden, maar worden altijd vooraf

gegaan door $HTTP dit om te voorkomen dat alle variabelen zomaar te overschrijven zijn. Hierna zijn deze variabelen in een script bruikbaar.

Bijvoorbeeld: http://[ipaddress]:8001/trigger1?temp=10&luchtvochtigheid=60&…... In het script gebruik je dan $httptemp en $httpluchtvochtigheid

http trigger variabelen

deurbel = 0 stop script

CALL ALERT(1934/Freddy - Deurbel) INCLUDE CAMERA(645/Voordeur axis) WAIT 1 SEC  IF BIT(92/Alarmsysteem status 1=ingeschakeld)=0   BEGIN    SET BIT(91/Voordeur slot) TO 1    WAIT 100    SET BIT(91/Voordeur slot) TO 0   END

Deur openen, lang drukkendeurbel = 1 start

script

IR Global CacheWebsite - Opdrachten

EXECUTE IRCOMMAND(IRCALL297/flex 1 Yamaha - DOLBY aan) EXECUTE IRCOMMAND(IRCALL206/flex 3 humax - HUMAX AAN) EXECUTE IRCOMMAND(IRCALL203/flex 2 tv - TV AAN) WAIT 31 SEC EXECUTE ON UPNPDEVICE(Kamer - Sonos PLAY:5) STOP EXECUTE IRCOMMAND(IRCALL376/flex 3 humax - tv kanaal 1)

TV, Audio en set-top box IRCinema

set toets

= 1 start script

volume = 0 stop script

EXECUTE ON UPNPDEVICE(WOONKAMER - SONOS PLAY:5) VOLUME UP WITH 2WAIT 200RESTART

Sonos volume up - downvolume = 1 start

script

Sonos volume up – down (2)

#stuur pushbericht met tempCALL ALERT(1929/Freddy - zonneboiler overtemp) WITH 2BYTE(390/Zonneboiler - Temp - collector OUTPUT)#zet knop in knoppenrij op “aan”, met bijbehorende icoonSET BIT(29/Boiler overtemp alarm) TO 1

Waarschuwing met temp

Temp gemete

n>90 start

script

#als slapen niet actief isIF BIT(95/Slapen )=0 BEGIN #zet verlichting badkamer aan SET BIT(10/Badkamer verlichting - a/u) TO 1 #als het tussen 8 en 21 uur is sonos afspelen IF (HOUR()<21) & (HOUR()>8) EXECUTE ON UPNPDEVICE(Badkamer - Sonos PLAY:1) PLAY END

Radio aan badkamer

Sensor badkam

er= 1 start

script

#verlichting uitSET BIT(10/Badkamer verlichting - a/u) TO 0SET BIT(96/Badkamer spiegel) TO 0#sonos terug naar stream 100%nl, vol op 8 en stopEXECUTE ON UPNPDEVICE(Badkamer - Sonos PLAY:1) SOURCEURI x-rincon-mp3radio://stream.100p.nl/100pctnl.mp3WAIT 50EXECUTE ON UPNPDEVICE(Badkamer - Sonos PLAY:1) VOLUME TO 8WAIT 50EXECUTE ON UPNPDEVICE(Badkamer - Sonos PLAY:1) STOP

Reset radio badkamer Sensor badkam

er= 0 start

script

# Script start via een actie door activeren taster. # Daytime geeft 1 als zon op is en 0 als de zon onder is# Tussen 17:00 en 17:59 script 1IF DAYTIME()=0 & (HOUR()=17) CALL SCENARIO(1/keuken Koken)# Tussen 17:00 en 17:59 script 2IF DAYTIME()=0 & (HOUR()<>17) CALL SCENARIO(2/2 keuken Gezellig)

Scene afhankelijk van tijdSensor = 1 start

script

5 Zones individueel aan te sturen door knoppen

Sproeitijd instelbaar in de app Schakelen pomp via script

Pomp mag niet aan gaan als alle zones dicht zijn.

Tuin besproeiing (5 zones)

Start besproeien

#Zone 1,2,3 zijn sproeizones. Zone 4 is vijver bijvullen en 5 een waterkraan.IF (BIT(21/Zone 1)= 1) | (BIT(14/Zone 2)= 1) | (BIT(15/Zone 3)= 1) | (BIT(16/Zone 4)= 1) | (BIT(17/Zone 5)=1) BEGIN  WAIT 2 SEC  SET BIT(12/Pomp) TO 1  WAIT 2BYTE(44/Sproeitijd ⟨min⟩) MIN  SET BIT(12/Pomp) TO 0  SET BIT(21/Zone 1) TO 0  SET BIT(14/Zone 2) TO 0  SET BIT(15/Zone 3) TO 0  SET BIT(16/Zone 4) TO 0  SET BIT(17/Zone 5) TO 0 ENDELSE SET BIT(12/Pomp) TO 0

Stop besproeien

IF (BIT(21/Zone 1)= 0) & (BIT(14/Zone 2)= 0) & (BIT(15/Zone 3)= 0) & (BIT(16/Zone 4)= 0) & (BIT(17/Zone 5)= 0) BEGIN #Beëindig looptijd van script besproeiing aan  STOP SCRIPT(1572/Besproeing AAN)  SET BIT(12/Pomp) TO 0 WAIT 1 SEC  SET BIT(21/Zone 1) TO 0  SET BIT(14/Zone 2) TO 0  SET BIT(15/Zone 3) TO 0  SET BIT(16/Zone 4) TO 0  SET BIT(17/Zone 5) TO 0 END

Mogelijkheden: Opnemen Afspelen Stop

Neem continue op, of 1 representatieve periode. Speel af bij (bijvoorbeeld):

Donker via planner Beveiliging via Actie Meer voorwaarden via script

Aanwezigheid sim

IF (BIT(92/Alarmsysteem status 1=ingeschakeld)=1) & (BIT(95/Slapen )= 0) SET PRESENCE SIMULATION TO PLAY

Aanwezigheid sim

Planner: Zon onder

Start script

Voorbeeld rekenen(parkeerdek)

Als er 50 auto’s op het parkeerdek zijn, moet een rode lamp aan gaan.

Haal “1” van een waarde af als een auto eruit gaat:IF [SENSOR BIT] = 0  $TELLER = [BYTE TELLER] – 1

Tel “1” bij een waarde op als een auto binnen gaat:IF [SENSOR BIT] = 1  $TELLER = [BYTE TELLER] + 1

De huidige teller waarde naar bus schrijven (indien nodig):SET [BYTE TELLER] TO $TELLER

Zet stoplicht aan/uit (meer dan 50 autos = lamp aan)IF $TELLER > 50 SET [STOPLICHT BIT] TO 1ELSE SET [STOPLICHT BIT] TO 0

Bedankt voor uw aandacht