Hey Alex
soweit so gut oder auch wieder nicht…
also…
mit den Variablen habe ich glaube ich verstanden.
Button 112 habe ich auch gefunden …
aber was muss ich dann genau machen…
Ich versuche mal zusammen zu fassen was ich gemacht habe bis jetzt.
- habe diese globale Variable nach deiner Anleitung erstellt.
- Habe folgende 3 Scenen erstellt
XBMC Start:
–[[
%% properties
%% globals
–]]
local room = “Xbmc_salon”;
local startSource = fibaro:getSourceTrigger();
if ( startSource[“type”] == “other” ) then
fibaro:sleep(51000);
if ( fibaro:getGlobalValue(room) == “Empty” ) then
fibaro:setGlobal(room, “Movies”);
end
if ( (fibaro:getGlobalValue(room) == “Movies”) or (fibaro:getGlobalValue(room) == “TVShows”) ) then
– Code for Movie or TVShows
elseif ( fibaro:getGlobalValue(room) == “Music” ) then
– Code for Music
elseif ( fibaro:getGlobalValue(room) == “PVR” ) then
– Code For PVR
end
fibaro:sleep(601000);
end
XBMC Pause
–[[
%% properties
%% globals
–]]
local room = “Xbmc_salon”;
local startSource = fibaro:getSourceTrigger();
if ( startSource[“type”] == “other” ) then
if ( (fibaro:getGlobalValue(room) == “Movies”) or (fibaro:getGlobalValue(room) == “TVShows”) ) then
– Code for Movies and TVShows
elseif ( fibaro:getGlobalValue(room) == “Music” ) then
– Code for Music
elseif ( fibaro:getGlobalValue(room) == “PVR” ) then
– Code for PVR
end
fibaro:sleep(60*1000);
end
XBMC Ende
–[[
%% properties
%% globals
–]]
local room = “Xbmc_salon”;
local Vdevice = 104;
local startSource = fibaro:getSourceTrigger();
if ( startSource[“type”] == “other” ) then
if ( (fibaro:getGlobalValue(room) == “Movies”) or (fibaro:getGlobalValue(room) == “TVShows”) ) then
– Code for Movies and TVShows
elseif ( fibaro:getGlobalValue(room) == “Music” ) then
– Code for Music
elseif ( fibaro:getGlobalValue(room) == “PVR” ) then
– Code for PVR
end
fibaro:setGlobal(room, “Empty”);
fibaro:call(Vdevice, “setProperty”, “ui.sldPercentage.value”,‘0’);
fibaro:call(Vdevice, “setProperty”, “ui.lblXbmc1.value”,’’);
fibaro:call(Vdevice, “setProperty”, “ui.lblXbmc2.value”,’’);
fibaro:call(Vdevice, “setProperty”, “ui.lblXbmc3.value”,’’);
fibaro:call(Vdevice, “setProperty”, “ui.lblTime.value”,‘00:00:00/00:00:00’);
fibaro:sleep(60*1000);
end
-
Jetzt habe ich das virtual device importiert
-
Dann habe ich den Button 112 gesucht und auch gefunden. Ab Hier komme ich aber leider nicht weiter.
Es sind soviel IP in den Skripten…
Hier mal der Auszug aus 112 wie es bei mir aussieht:
local XBMC = Net.FHttp(‘192.168.5.25’, 8080); – was soll diese IP finde die überall
local max_playlist = ‘5’;
local selfId = fibaro:getSelfId();
HC2 = Net.FHttp(“192.168.0.55”,80); – dies ist die IP meiner HC2
HC2:setBasicAuthentication(“admin”, “mein Passwort”);
test = ‘ok’;
function xbmcJson (label, info)
local xbmcFunction = pcall(function()
if (label == “1”) then
response,status, errorCode = XBMC:GET(’/jsonrpc?request={“jsonrpc”:“2.0”,“method”:“Player.GetProperties”,“params”:{“playerid”:0,“properties”:[“position”]},“id”:1}’);
elseif (label == “2”) then
response,status, errorCode = XBMC:GET(’/jsonrpc?request={“jsonrpc”:“2.0”,“method”:“Playlist.GetItems”,“params”:{“properties”:[“title”,“artist”],“limits”:{“start”:’ … info …’},“playlistid”:0},“id”:1}’);
end
local t = nil;
t = json.decode(response);
if (label == “1”) then
xbmcJson(“2”, t.result.position);
elseif (label == “2”) then
if (info + max_playlist + 1 >= t.result.limits.total) then
position_max = t.result.limits.total;
else
position_max = info + max_playlist + 1;
end
result_label = ‘’;
i = ‘1’;
repeat
info = info + 1;
i = i + 1;
if (result_label == ‘’) then
result_label = t.result.items[i].artist[1] … ’ - ’ … t.result.items[i].title;
else
result_label = result_label … ‘\n’ … t.result.items[i].artist[1] … ’ - ’ … t.result.items[i].title;
end
until info == position_max;
fibaro:call(selfId, “setProperty”, “ui.lblXbmc2.value”,result_label);
–response2 ,status2, errorCode2 = HC2:GET("/api/virtualDevices?id=" … selfId);
--if (tonumber(status2) == 200) then
--jsonTable = json.decode(response2);
--caption = jsonTable.properties.ui.lblXbmc1.value;
--fibaro:debug(test);
--fibaro:debug(caption);
--jsonTable.properties.ui.lblXbmc1.value = result_label;
--fibaro:debug(result_label);
--json_post = json.encode(jsonTable);
--response3 ,status3, errorCode3 = HC2:PUT("/api/virtualDevices?id=" .. selfId, json_post);
--if (tonumber(errorCode3)==0) then
--fibaro:debug("Edit complete text set "..status3)
--else
--fibaro:debug("Error update "..errorCode3)
--end
--end
end
end)
if (not xbmcFunction) then
fibaro:debug(‘Decode raised an error’);
end
end
xbmcJson(“1”,“0”);
- Ab hier scheiter ich und komme nicht mehr klar.
- Die Einstellungen in XBMC selber da weis ich auch nicht so recht weiter aber evtl. ergibt sich das wenn ich die Konfiguration in der HC2 mal richtig habe.