Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- %% properties
- 386 value
- 408 value
- %% events
- %% globals
- TimeOfDay
- --]]
- local lux_sensor = 386
- local wind_sensor = 408
- local temperature_sensor = 78
- local awning = 373
- local trigger = fibaro:getSourceTrigger()
- local status = tonumber(fibaro:getValue(awning, "value"))
- local lux = tonumber(fibaro:getValue(lux_sensor, "value"))
- local wind_m_s = tonumber(fibaro:getValue(wind_sensor, "value"))
- local wind_k_h = wind_m_s*3.6
- local temperature = tonumber(fibaro:getValue(temperature_sensor, "value"))
- Debug = function ( color, message )
- fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span"))
- end
- local version = '0.1a'
- Debug('brown', '___Awning-Controller ' ..version.. ' gestartet.___')
- local num = fibaro:countScenes();
- if (num == 1) then
- fibaro:debug('Anzahl der laufenden Instanzen: ' .. num);
- else
- fibaro:debug('Anzahl der laufenden Instanzen: ' .. num);
- end
- Debug('brown', 'Markise-Status ' ..status)
- if (trigger['type'] == 'global') then
- if (fibaro:getGlobal('TimeOfDay') == 'Evening') then
- Debug('blue', 'Es ist Nacht. Prüfe Status der Markise...')
- if (status == 0) then
- Debug('blue', 'Es ist Nacht. Markise ist ausgefahren, wird eingefahren...')
- end
- end
- elseif (trigger['type'] == 'property') then
- -- lux-sensor
- if (lux_sensor == trigger['deviceID']) then
- Debug('yellow', 'LUX-Wert hat sich geändert. Prüfe Status der Markise.')
- if (status ~= 0) then
- Debug('yellow', 'Markise ist eingefahren. Prüfe Wetterbedingungen.')
- if (lux >= 1000) then
- Debug('yellow', 'LUX-Wert von '..lux..' reicht aus, um die Markise auszufahren.')
- if (wind_k_h < 15) then
- Debug('orange', 'Wind: ' ..wind_k_h.. ' km/h. Ist i.O.')
- if (temperature >= 20) then
- Debug('orange', 'Temperatur von '..temperature..' ° passt. Fahre Markise aus.')
- else
- Debug('orange', 'Temperatur von '..temperature..' ° ist zu gering. Fahre Markise nicht aus.')
- end
- else
- Debug('orange', 'Wind: ' ..wind_k_h.. ' km/h. Es ist zu windig.')
- end
- else
- Debug('yellow', 'LUX-Wert von '..lux..' ist zu gering, um die Markise auszufahren')
- end
- else
- Debug('yellow', 'Markise ist bereits ausgefahren.')
- end
- -- wind_sensor
- elseif (wind_sensor == trigger['deviceID']) then
- Debug('yellow', 'Windgeschwindigkeit hat sich geändert. Prüfe...')
- if (wind_k_h < 15) then
- Debug('green', 'Wind: ' ..wind_k_h.. ' km/h. Markise bleibt ausgefahren.')
- else
- Debug('red', 'Wind: ' ..wind_k_h.. ' km/h. Markise muss eingefahren werden.')
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement