LUA för nybörjare - Del 3.2 - VD med sliders mm.

Post Reply
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Hallå,

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:
Image

Med denna "tomma" VD så börjar vi med att lägga till en slider, som vi gjorde i förra avsnittet då:
Image
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:
Image

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:
Image

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)
Den som är observant ser att jag använder en liten funktion i fibaro:call raden:

Code: Select all

fibaro:getSelfId()
Denna funktion returnerar aktuell VDs ID - vilket behövs rätt ofta när man skall hantera just VDs. Praktisk funktion speciellt när man exporterar VDn och någon annan importerar VDn - då får den som importerar nytt EnhetsID på sin VD, och därmed är denna funktion mer eller mindre obligatorisk för enkelhetens skull! Mer om export snart!

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_
Detta är en metod att hämta värdet på slidern, en annan metod är:

Code: Select all

SliderValue2, sliderTS = fibaro:get(166, "ui.Slider1.value")
Båda ger exakt samma slutresultat så ingen större sak med det, förutom att man även får TidsStämpeln när man drog i slidern i metod 2. Jag använder nu inte sliders så ofta så jag har ingen metod som jag föredrar.

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:
Image
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å kan ni prova att trycka på knappen - som ni ser så ställer sig slidern på 45 - som förväntat, men notera också att själva LUA koden i slidern INTE körs!! Dvs själva koden körs bara, i alla fall på min FW 3.590 är det bäst att lägga till här, när man fysisk så att säga drar i slidern - men att använda en knapp för att ställa in värdet på slidern, triggar INTE sliderns LUA kod!! Mycket viktigt att hålla reda på!

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:
Image
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:
Image
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:
Image

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" 
Kan också vara bra att ha tillgång till för den som funderar på att vattna gräsmattan ;-)
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
Farbror Grå
Medlem
Posts: 76
Joined: 23 Oct 2014, 09:20
9
Location: Göteborg

Denna delen har jag väntat på. Tack!
Henrikel
Proffsmedlem
Posts: 687
Joined: 12 Dec 2013, 00:24
10
Location: Växjö
Contact:

Alltid lika bra bamsefar =)
Installations Elektriker
https://www.facebook.com/ramnasael
Installerar och säljer Z-wave lösningar
DrPepper
Medlem
Posts: 92
Joined: 05 Jul 2014, 02:04
9

Attans - var är bilderna? :)

Vänligen,
DrPepper
HC2, blandade sensorer och puckar.

"Hemautomation är inte "remote access" eller "in i en app och pilla" - hemautomation är rätt sensorer och puckar på rätt plats och, utan användarinteraktion, trigga önskade aktiviteter."
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Ahhh - dropbox har ändrat reglerna... Där ligger nog bilderna, får kolla när jag kommer hem ikväll...
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
Post Reply