Long time - men jag har haft rätt mycket annat som kommit ivägen. Men nu är det dags för ett nytt avsnitt: VDs med Sliders, och lite fall luckor typ, och sedan import/export av VD, plus lite om den enheten som har ID = 3.
Jag förutsätter att du läst mina tidigare avsnitt och har en del på fötterna helt enkelt. Så vi börjar med att skapa en ny VD, och döper den till t.ex. SliderTest:
Med denna "tomma" VD så börjar vi med att lägga till en slider, som vi gjorde i förra avsnittet då:
Kom ihåg att trycka "Add set" Och sedan SAVE!
Byt sedan till LUA på slidern, så att det blir såhär ungefär:
Med detta så har vi alltså en slider. Med den kan man göra lite roligt. Låt oss börja med att se om vi kan fånga värdet från slidern, och se vad den ger?
Således skapar vi en Label och trycker "Add set" och SAVE, och då bör det se ut lite såhär:
Men ingenting fungerar ju just nu - jo du kan såklart dra i slidern, men ja någon funktion finns inte
Så vi börjar med att lägga till ett par kodrader i slidern's LUA fält:
Code: Select all
SliderValue1 = _sliderValue_
fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label1.value", SliderValue1)
Code: Select all
fibaro:getSelfId()
Dvs så fort som vi drar i slidern, så publiceras värdet i fältet "Label" - dvs fritextfältet i detta fallet. För ett Label fält är just en plats där man kan skriva ut ett värde (om än begränsat, jag tror det är runt 30 tecken som verkar få plats om man vill att det skall synas på översiktssidan - självklart syns mera om man tar upp / expanderar VDn), och i detta fallet väljer vi alltså att fånga värdet från slidern och publicera det.
Självklart ser ni värdet publiceras precis ovanför slidern i sig också - men att se värdet blir man ju inte klokare av om man inte kan fånga själva värdet...
Ber er observera första raden:
Code: Select all
SliderValue1 = _sliderValue_
Code: Select all
SliderValue2, sliderTS = fibaro:get(166, "ui.Slider1.value")
Om man vill sätta värdet på en slider då? Jag menar man kanske vill ha det till fast 75% - så låt oss skapa en knapp för detta:
Som ni ser har jag lagt till en knapp till, och döpt den till 45%. Om ni sparar samma knapp som min, och har LUA koden:
Code: Select all
fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Slider1.value", "45")
Således, nu har vi en slider, och en label plus då slutligen en knapp - det är ungefär detta man rör sig mellan i VDs. Således tar vi nu nästa steg:
Exportera en VD så att andra kan återanvända din kod. Detta är enkelt: bara trycka på rätt knapp, här markerat med rött:
Enkelt, och den fil som skapas kan du öppna med t.ex. Notepad eller liknande verktyg då den är läsbar.
Att Importera skall vara lika lätt, men jag som är på 3.590 verkar inte klara av det, men såhär borde det gå till:
Men min webläsare bara hänger sig... Jag vill minnas att det krävs IE eller liknande, men jag hmm hoppar det
Kom ihåg att dela med dig av dina VDs - det finns säkert flera som har nytta av dom, eller kan använda dom som kodskelett till sina egna projekt.
Sist tänkte jag bara nämna lite om en special enhet, eller vad man nu skall kalla det, som finns inne i HC2: Vädret.
Det är kanske inte världens mest kända detalj, men ibland kan man tycka att vädret är bra att känna till. HC2 hämtar vädret från Yahoo med hjälp av den information du angett under inställningar. Så vad skall man då med detta till mer än att se det överst på hemsidan:
Jo jag använder just detta för att ta reda på om det kan tänkas vara mulet eller soligt ute. Jag har förvisso ljussensorer som ger LUX värdet, men ibland kan man dra nytta av kombinationen väder och ljusstyrka. Är det t.ex. vackert så kan man kanske trigga på lägre LUX värden - och är det mulet eller liknande, så låter man helt enkelt lamporna vara tända lite högre upp i LUX värdet?
I vilket fall, dessa värden kan man hämta:
Code: Select all
fibaro:getValue(3, "WeatherConditionConverted") == "clear"
fibaro:getValue(3, "WeatherConditionConverted") == "cloudy"
fibaro:getValue(3, "WeatherConditionConverted") == "rain"
fibaro:getValue(3, "WeatherConditionConverted") == "snow"
fibaro:getValue(3, "WeatherConditionConverted") == "storm"
fibaro:getValue(3, "WeatherConditionConverted") == "fog"