Hi,
das hat nichts mit der Fibaro-FW zu tun.
Die Mond-Seite wurde von http auf https umgestellt. Daher funktioniert der Abruf über das VD nicht mehr…
Ich bin daher auf ein Script umgestiegen, dass ein VD füttert.
--[[
%% properties
%% events
%% globals
%% autostart
--]]
local VDid = 268 --ID des Mond-VDs
local sourceTrigger = fibaro:getSourceTrigger()
--Datum = os.date("%d.%m.%Y %H:%M:%S", os.time())
Datum = os.date("%d.%m.%Y", os.time())
print("Script gestartet am "..Datum.."....")
if fibaro:countScenes() > 1 then
fibaro:debug("stop scene");
fibaro:abort();
end
function varTime()
function setDevicePropertyValue(id, label, value)
fibaro:call(id, "setProperty", "ui."..label..".value", value)
end
local url = "https://www.torsten-hoffmann.de/apis/suncalcmooncalc/xml/?key=xxxxx&lat=xx.xxxxxx&lon=xx.xxxxxx"
local selfhttp = net.HTTPClient()
selfhttp:request(url, {
options={
method = 'GET',
},
success = function(resp)
--fibaro:debug("STATUS: "..resp.status)
-- fibaro:debug("DATA: "..resp.data)
local s = resp.data
a, b = string.find(s, "<status>")
c, d = string.find(s, "</status>")
local status = s:sub(b + 1, c - 1)
--print(status)
--Befüllung Mond-VD (ID 268)
setDevicePropertyValue(VDid, "Label7", status)
if status ~= "Limit per Day exceeded!" then
local s = resp.data
local b = 0
a, b = string.find(s, "<MoonPhase>")
c, d = string.find(s, "</MoonPhase>")
local MoonPhase = s:sub(b + 1, c - 1)
a, b = string.find(s, "<MoonRise>")
c, d = string.find(s, "</MoonRise>")
local Mondaufgang_resp = s:sub(b + 1, c - 1)
local Mondaufgang = string.sub(Mondaufgang_resp, 1, 5)
a, b = string.find(s, "<MoonIllumination>")
c, d = string.find(s, "</MoonIllumination>")
local Sichtbarkeit_resp = s:sub(b + 1, c - 1)
local Sichtbarkeit = tonumber(string.format("%.0f", Sichtbarkeit_resp)) --Runded den Wert
a, b = string.find(s, "<MoonAz>")
c, d = string.find(s, "</MoonAz>")
local Mondstand_resp = s:sub(b + 1, c - 1)
local Mondstand = tonumber(string.format("%.0f", Mondstand_resp)) --Runded den Wert
a, b = string.find(s, "<MoonAgeDays>")
c, d = string.find(s, "</MoonAgeDays>")
local Mondalter_resp = s:sub(b + 1, c - 1)
local Mondalter = tonumber(string.format("%.1f", Mondalter_resp)) --Runded den Wert
-----------------------------------------------------
--Setzt Globale Variable für andere Zwecke als diese Szene/VD
a, b = string.find(s, "<SunCivilTwilightEvening>")
c, d = string.find(s, "</SunCivilTwilightEvening>")
local Abendaemmerung_resp = s:sub(b + 1, c - 1)
local Abendaemmerung = string.sub(Abendaemmerung_resp, 1, 5)
fibaro:setGlobal("Abenddaemmerung", Abendaemmerung)
--print(Abendaemmerung)
------------------------------------------------
--Befüllung Mond-VD (ID 268)
setDevicePropertyValue(VDid, "Label1", Mondaufgang)
setDevicePropertyValue(VDid, "Label2", MoonPhase)
setDevicePropertyValue(VDid, "Label3", Sichtbarkeit.." %")
setDevicePropertyValue(VDid, "Label4", Mondalter.." Tage")
setDevicePropertyValue(VDid, "Label5", Mondstand.." °")
Date = os.date("%d.%m.%Y %H:%M:%S", os.time())
setDevicePropertyValue(VDid, "Label6", Date)
--else print("Status: "..status)
end --der if-Bedingung für Limit per Day exceeded!
end,
error = function(err)
fibaro:debug("ERROR: "..err)
end
})
--end
--process()
setTimeout(varTime, 900*1000) --0,25 Stunde
end
if (sourceTrigger["type"] == "autostart")
then varTime()
--fibaro:debug("Type Autostart");
end