Xxter advanced training 2015 xxter

40
Acties, Scripts, Upnp enz. xxter Freddy van Geel Accountmanager - xxter Harm Elzinga CTO - xxter Freek-Jan Buijsman Support - xxter

Transcript of Xxter advanced training 2015 xxter

Page 1: Xxter advanced training 2015 xxter

Acties, Scripts, Upnp enz.xxter

Freddy van GeelAccountmanager - xxter

Harm ElzingaCTO - xxter

Freek-Jan BuijsmanSupport - xxter

Page 2: Xxter advanced training 2015 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

Page 3: Xxter advanced training 2015 xxter

Interface - website

Algemeen

Commando -venster

Script - venster

Page 4: Xxter advanced training 2015 xxter

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

Actie• KNX / enOcean• Scene• Script• OpdrachtOutput

Page 5: Xxter advanced training 2015 xxter

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

Page 6: Xxter advanced training 2015 xxter

Opgenomen in scene Gestart vanuit timer/planner

Of…

Page 7: Xxter advanced training 2015 xxter

SCRIPT WAIT CALL SNAPSHOT

SET FADE READ LEARN

EXECUTE WAKEONLAN MISC

PRESENCE SIMULATIO

N

COMMANDS

Page 8: Xxter advanced training 2015 xxter

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]

Page 9: Xxter advanced training 2015 xxter

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]

Page 10: Xxter advanced training 2015 xxter

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

Page 11: Xxter advanced training 2015 xxter

PRESENCE SIMULATION PLAY RECORD STOP

COMMANDS – deel 4

Page 12: Xxter advanced training 2015 xxter

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)

Page 13: Xxter advanced training 2015 xxter

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

FUNCTIONS - deel 2

Page 14: Xxter advanced training 2015 xxter

Berekenen en voorwaarden

Rekenen + - * / ^

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

Page 15: Xxter advanced training 2015 xxter

Testen en inzien Actie - Script

In de unit: instellingen-basis Gebruikerslogboek

Openen op statuspagina:

“Open het gebruikerslogboek”

Page 16: Xxter advanced training 2015 xxter

Gebruikerslogboek

Page 17: Xxter advanced training 2015 xxter

Script – Website Project

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

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

enz.

Page 18: Xxter advanced training 2015 xxter

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]

Page 19: Xxter advanced training 2015 xxter

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]

Page 20: Xxter advanced training 2015 xxter

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]

Page 21: Xxter advanced training 2015 xxter

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

Page 22: Xxter advanced training 2015 xxter

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

Page 23: Xxter advanced training 2015 xxter

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

Page 24: Xxter advanced training 2015 xxter

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

Page 25: Xxter advanced training 2015 xxter

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

Page 26: Xxter advanced training 2015 xxter

IR Global CacheWebsite - Opdrachten

Page 27: Xxter advanced training 2015 xxter

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

Page 28: Xxter advanced training 2015 xxter

volume = 0 stop script

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

Sonos volume up - downvolume = 1 start

script

Page 29: Xxter advanced training 2015 xxter

Sonos volume up – down (2)

Page 30: Xxter advanced training 2015 xxter

#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

Page 31: Xxter advanced training 2015 xxter

#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

Page 32: Xxter advanced training 2015 xxter

#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

Page 33: Xxter advanced training 2015 xxter

# 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

Page 34: Xxter advanced training 2015 xxter

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)

Page 35: Xxter advanced training 2015 xxter

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

Page 36: Xxter advanced training 2015 xxter

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

Page 37: Xxter advanced training 2015 xxter

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

Page 38: Xxter advanced training 2015 xxter

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

Aanwezigheid sim

Planner: Zon onder

Start script

Page 39: Xxter advanced training 2015 xxter

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

Page 40: Xxter advanced training 2015 xxter

Bedankt voor uw aandacht