HC2 - Byta ikon för rum med LUA?

Post Reply
MastrUsr
Medlem
Posts: 202
Joined: 25 Apr 2017, 07:24
6

Hej!
Jag undrar om det är någon som vet om man kan och i sådana fall hur man byter ikon på ett rum, med hjälp av LUA. Jag misstänker att man måste använda sig av något http api...

Idéer?

Bakomliggande story:
Jag vill byta ikon för garaget till en med öppen/stängd port beroende på portsensorns status.


All hjälp mottages med största tacksamhet!



Eric

Sent from my SM-G930F using Tapatalk
alexndr
Medlem
Posts: 420
Joined: 14 Jul 2016, 14:38
7

Använd t.ex . Chromes Developer tools.
Gör bytet manuellt i GUI:t och fånga vilket REST- anrop som görs.
pos
Medlem
Posts: 89
Joined: 03 Feb 2017, 02:20
7

Hej

Har inte ändrat på icon för ett rum... Men du borde kunna göra typ så här i lua...


Code: Select all

roomID = "23" -- Example room ID
data = '{ LÄGG IN DITT DATA HÄR }' 
HOST = Net.FHttp("127.0.0.1",11111);
local response ,status, err = HOST:PUT('/api/rooms/'..roomID, data);
fibaro:debug(' Error code: ' .. err)
if (tonumber(status)==200) then
  fibaro:debug('BLA BLA BLA')
else
  fibaro:debug('OOOPS BLA BLA BLA')
end

För att titta på ett rum i din HC2 kan du göra så här (rum med ID 6 som exempel)...
http://HC2IP_ELLER_DNSNAMN:80/api/rooms/6


Kan se ut så här...
{
"id": 6,
"name": "Hall",
"sectionID": 5,
"icon": "room_polkabuty",
"defaultSensors": {
"temperature": 865,
"humidity": 0,
"light": 866
},
"defaultThermostat": 0,
"created": 1508877156,
"modified": 1508877156,
"sortOrder": 8
}



För att formatera varibeln "data" ovan så kan du titta på "function createglobalpredefvar" i min DSCengine kod. Du hittar den här... https://www.incedo.eu/~sjoholmp/Fibaro_ ... DSCengine/
Kolla i version ...2.8.lua. Sen får du anpassa din "data"variabel ovan genom att titta på rummet. Se exempel på rum ovan. API syntax för att modda rum är här...
http://HC2IP_ELLER_DNSNAMN/docs/#!/rooms/modifyRoom

/Peo
MastrUsr
Medlem
Posts: 202
Joined: 25 Apr 2017, 07:24
6

Tack Peo! Det funkade jäklar i mig :D
Byter jag data = '{"icon":"User1001"}' till t.ex. data = '{"icon":"User1002"}' får jag nästa icon, osv... Icon-namnet får jag genom att byta icon på ett rum och sedan "öppna bilden/iconen" genom att dra den till webbläsarens adressfält. I fältet står sedan iconens namn.

Något som jag inte hade koll på innan var att "Net.FHttp" inte fungerar i scener men i en VD (fick googla fram det).


Här är min kod:

Code: Select all

roomID = "18" -- Example room ID
data = '{"icon":"User1001"}' -- Change icon to the icon with name "User1001"
HOST = Net.FHttp("127.0.0.1",11111);
local response ,status, err = HOST:PUT('/api/rooms/'..roomID, data);
fibaro:debug(' Error code: ' .. err)
if (tonumber(status)==200) then
  fibaro:debug('BLA BLA BLA')
else
  fibaro:debug('OOOPS BLA BLA BLA')
end



Tack också alexndr som tog dig tid att svara! :)


Jag trodde i ärlighetens namn inte att jag skulle få ett svar på det här; och så snabbt!!


Med största tacksamhet,
Eric
Post Reply