Upload
freddy-van-geel
View
58
Download
4
Embed Size (px)
Citation preview
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