Windows Management User Group

Domoticz sunscreen LUA script

By Kamm_and_Re

Configuration

Hardware
Raspberry pi
RFXCOM – RFXtrx433 USB 433.92MHz Transceiver
KAKU ASUN-650
Sunscreen with motor

Software
Domoticz
weather Underground or ForcastIO supscription
winSCP

Script

— Zonnescherm zal uitrollen wanneer de goed condities worden weergegeven
— en rolt weer op wanneer dit nodig is.
— André Kamman
— versie info verplaatst naar beneden

commandArray = {}

— #############################################################################################
— # Compiling Values #
— #############################################################################################
— # datum en tijd bepalen #
tijd = (os.date(“%H:%M”))
opmerking = os.date(“Zonnescherm melding %A %d %B %Y om %H:%M#n”)
optellen = 0

— # Extract waardes from SValue TempDrukLVWU #
TempDrukLVWU1 = otherdevices_svalues[‘TempDrukLVWU’]
–print(“TempDrukLVWU1: “..TempDrukLVWU1)
TempDrukLVWUTemp = string.sub(TempDrukLVWU1,1,string.find(TempDrukLVWU1,’;’,1,true)-1)
print(“TempDrukLVWUTemp: “..TempDrukLVWUTemp)
TempDrukLVWU2 = string.sub(TempDrukLVWU1,string.find(TempDrukLVWU1,’;’,1,true)+1)
–print(“TempDrukLVWU2: “..TempDrukLVWU2)
TempDrukLVWULV = string.sub(TempDrukLVWU2,1,string.find(TempDrukLVWU2,’;’,1,true)-1)
print(“TempDrukLVWULV: “..TempDrukLVWULV)
TempDrukLVWU3 = string.sub(TempDrukLVWU2,string.find(TempDrukLVWU2,’;’,1,true)+1)
–print(“TempDrukLVWU3: “..TempDrukLVWU3)
TempDrukLVWUwaarde1 = string.sub(TempDrukLVWU3,1,string.find(TempDrukLVWU3,’;’,1,true)-1)
print(“TempDrukLVWUwaarde1: “..TempDrukLVWUwaarde1)
print(“1 is Comfortabel”)
print(“2 is ?”)
print(“3 is NAT”)
print(“4 is ?”)
TempDrukLVWU4 = string.sub(TempDrukLVWU3,string.find(TempDrukLVWU3,’;’,1,true)+1)
–print(“TempDrukLVWU4: “..TempDrukLVWU4)
TempDrukLVWUDruk = string.sub(TempDrukLVWU4,1,string.find(TempDrukLVWU4,’;’,1,true)-1)
print(“TempDrukLVWUDruk: “..TempDrukLVWUDruk)
TempDrukLVWUWaarde2 = string.sub(TempDrukLVWU4,string.find(TempDrukLVWU4,’;’,1,true)+1)
print(“TempDrukLVWUWaarde2: “..TempDrukLVWUWaarde2)
print(“1 is ?”)
print(“2 is Deels bewolkt”)
print(“3 is Bewolkt”)
print(“4 is Regen”)
— # Extract waardes from SValue Wind #
wind = otherdevices_svalues[‘Wind’]
–wind = ‘326.00;NW;13;0;9.9;9.9′
–wind = ‘182.00;S;66;0;18.2;18.2′
–print(“Wind: “..wind)
windgetal = string.sub(wind,1,string.find(wind,’;’,1,true)-1)
–print(“windgetal: “..windgetal)
b = string.sub(wind,string.find(wind,’;’,1,true)+1)
–print(“b: “..b)
windrichting = string.sub(b,1,string.find(b,’;’,1,true)-1)
–print(“windrichting: “..windrichting)
d = string.sub(b,string.find(b,’;’,1,true)+1)
–print(“d: “..d)
windsnelheid = string.sub(d,1,string.find(d,’;’,1,true)-1)
–print(“windsnelheid: “..windsnelheid)
— # i.v.m. getallen onder de 10 is deze workaround opgenomen, bijv. 6 is hoger dan 50
if (windsnelheid == ‘1′ ) then
windsnelheid = “NOK”
end
if (windsnelheid == ‘2′ ) then
windsnelheid = “NOK”
end
if (windsnelheid == ‘3′ ) then
windsnelheid = “NOK”
end
if (windsnelheid == ‘4′ ) then
windsnelheid = “NOK”
end
if (windsnelheid == ‘5′ ) then
windsnelheid = “NOK”
end
if (windsnelheid == ‘6′ ) …read more

Read more here:: Kamm and Re