Ändra ikon beroende på variables tillstånd

Här kan du som nybörjare ställa dina frågor utan att skämmas
Post Reply
Bisse90
Medlem
Posts: 96
Joined: 01 Dec 2013, 17:43
10

Hejsan

någon som kan hjälpa mig med att ändra ikonen på en virtuell enhet berroende på om en specifik variable är ett eller noll?

förmodar att detta måste göras i lua, vet vet ej hur =(
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Hur ser din kod ut för den virtuella enheten? Behöver även id på label och själva virtuella enheten.
Bisse90
Medlem
Posts: 96
Joined: 01 Dec 2013, 17:43
10

jompa68 wrote:Hur ser din kod ut för den virtuella enheten? Behöver även id på label och själva virtuella enheten.

jag har inte skrivit den än, jag skulle egentligen bara behöva en virtuell enhet med två knappar (Larm av/ larm på)

så jag sätter en variabel till ett (kalla den vad som) om larmet är på, och om larmet är av sätter jag samma variabel till noll.

så inte något jätte inveklat, skulle bara vilja ha 2 olika ikoner beroende på om larmet var av eller på =)
Bisse90
Medlem
Posts: 96
Joined: 01 Dec 2013, 17:43
10

jompa68 wrote:Hur ser din kod ut för den virtuella enheten? Behöver även id på label och själva virtuella enheten.

--[[
%% properties
%% globals
--]]

if fibaro:getGlobal("Home") == "0"
then fibaro:setGlobal("Home", "1")
elseif fibaro:getGlobal("Home") == "1"
then fibaro:setGlobal("Home", "0")
end


koden för knappen i enheten

enhetens id: 19

label id: Label1

räcker det för att du ska kunna hjälpa mig? =)
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Prova detta, ska nog fungera.

Code: Select all

function getIcon(value)
  if(variable == 0) then return 1070 -- ikonens id
  elseif(variable == 1) then return 1071 -- ikonens id
  else return 1073 end  -- okänt värde, ikonens id
end

local variable = fibaro:getGlobalValue("Home")
fibaro:call(243, "setProperty", "currentIcon", getIcon(value));
Bisse90
Medlem
Posts: 96
Joined: 01 Dec 2013, 17:43
10

jompa68 wrote:Prova detta, ska nog fungera.

Code: Select all

function getIcon(value)
  if(variable == 0) then return 1070 -- ikonens id
  elseif(variable == 1) then return 1071 -- ikonens id
  else return 1073 end  -- okänt värde, ikonens id
end

local variable = fibaro:getGlobalValue("Home")
fibaro:call(243, "setProperty", "currentIcon", getIcon(value));

Tusen tack :) det ska jag prova :)

Hur får jag fram id på ikonen :$
Hittar inte det *skäms*
Mek
Medlem
Posts: 38
Joined: 26 Dec 2013, 17:30
10

Tror du gör detta genom att högerklicka på den och välj "öppna bild i nytt fönster". Kika sedan i adressfältet.
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

HTTP://hc2_ip/api/icons där ser du alla id på alla ikoner, sen är det bara att para ihop. Sista id = sista ikonen
näst sista id = näst sista ikonen osv


Jonny sent this from his iPhone using Tapatalk
Bisse90
Medlem
Posts: 96
Joined: 01 Dec 2013, 17:43
10

jompa68 wrote:HTTP://hc2_ip/api/icons där ser du alla id på alla ikoner, sen är det bara att para ihop. Sista id = sista ikonen
näst sista id = näst sista ikonen osv


Jonny sent this from his iPhone using Tapatalk

tackar, hittade det nu =) dock verkar det inte fungera, den ändrar bilden men endast till okänt värde, någon ide vad det kan vara?

här är hela koden

if fibaro:getGlobal("Home") == "0"
then fibaro:setGlobal("Home", "1")
elseif fibaro:getGlobal("Home") == "1"
then fibaro:setGlobal("Home", "0")
end

function getIcon(value)
if(variabel == 0) then return 1006-- ikonens id
elseif(variable == 1) then return 1007-- ikonens id
else return 1000 end -- okänt värde, ikonens id
end

local variable = fibaro:getGlobalValue("Home")
fibaro:call(19, "setProperty", "currentIcon", getIcon(value));

missat något kanske? :S
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Prova sätt "0" och "1"
forumadmin
Site Admin
Posts: 276
Joined: 10 Dec 2011, 11:43
12

Det är även felstavat här, "variabel"
if(variabel == 0) then return 1006-- ikonens id
elseif(variable == 1) then return 1007-- ikonens id
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
12
Location: Hofors

Så här ska det vara:

Code: Select all

function getIcon(value)
if(variable >= 1) then return 1006-- ikonens id
else return 1000 end -- okänt värde, ikonens id
end

local variable = tonumber(fibaro:getGlobalValue("Home"))
fibaro:call(19, "setProperty", "currentIcon", getIcon(value));
Bisse90
Medlem
Posts: 96
Joined: 01 Dec 2013, 17:43
10

jompa68 wrote:Så här ska det vara:

Code: Select all

function getIcon(value)
if(variable >= 1) then return 1006-- ikonens id
else return 1000 end -- okänt värde, ikonens id
end

local variable = tonumber(fibaro:getGlobalValue("Home"))
fibaro:call(19, "setProperty", "currentIcon", getIcon(value));

Tusen tack för all hjälp :)
walltorp
Medlem
Posts: 50
Joined: 03 Sep 2013, 11:09
11

Hej,

Ett tips för att hitta ID på ikonen är att högerklicka på den och välja Save picture as. Då kommer ikonens namn stå i slutet på det föreslagna namnet.

Mvh Håkan
Post Reply