Jetzt würde ich gerne die Bedienung etwas verbessern bzw vereinfachen. Ich habe z.B. im Wohnzimmer / Esszimmer 3 Heizungen die ich gerne gleichzeitig steuern würde wenn ich außerhalb des Heizplans die Temperatur ändern will. Eine Verknüpfung der Module funktioniert leider nicht und ich finde nicht heraus warum. Die Module werden in der Auswahlliste nicht angezeigt.
…weiter finde ich leider nicht heraus wie ich den Heizplan unterbrechen kann wenn ich nicht zu Hause bin. In dem LUA Script welches ich für die offenen Fenster eingefügt habe, ist so etwas zwar hinterlegt ich weiß aber nicht wie ich dieses Script passend verändern kann.
Soweit erstmal dazu.
Wie gesagt ich bin neu hier und habe bisher mit Programmierungen und ähnliches keinen Kontakt gehabt. Wäre daher schön wenn ihr mir helfen könntet und nachsichtig mit mir seid auch wenn ich vielleicht Frage stellen die irgendwo schon mal geklärt wurden. Über die Suchfunktion habe ich aber in den letzten Wochen nichts gefunden
Zu dem anderen Thema: In dem Skript wird die Variable PresentState dazu genutzt. Wenn diese auf “Away” gesetzt wird, dann sollte die Heizung runtergefahren werden. Eigentlich musst du die nur anlegen und überlegen, wie du die Variable setzt
Vielen Dank erstmal für die Hinweise. Gesehen habe ich diesen Beitrag auch schon aber habe es wohl nicht verstanden, dass es sich hier um meine Lösung handelt.
Habe jetzt einmal das kleine Script aus dem verlinkten Beitrag genommen, funktioniert auch aber es ist nicht so nach meinen Vorstellungen weil ich keine Zeit eingeben kann. Weiter auch mal mit diesem hier probiert… Läuft jetzt erstmal, mal probieren im Beitrag steht es fehlt noch etwas.
Für das andere erstelle ich wohl mal ein neues Thema…
--[[
%% properties
94 value
%% globals
--]]
now = os.time()
handTime = now + (60 * 60) -- Eine Stunde
local schedule = {
id = 4, --Raum aus dem Heizpanel
manTemp = tonumber(fibaro:getValue(94, 'value')) --manuelle Temperatur
}
function Debug( color, message )
fibaro:debug(string.format('<%s style="color:%s;">%s<!--%s-->', "span", color, message, "span"));
end
if (fibaro:countScenes()>1) then
fibaro:debug('Kill the second scene!');
fibaro:abort();
end
local function getMethod(requestUrl, successCallback, errorCallback)
local http = net.HTTPClient()
http:request(requestUrl, {
options = {
method = 'GET'
},
success = successCallback,
error = errorCallback
})
end
local function putMethod(requestUrl, data, successCallback, errorCallback)
local http = net.HTTPClient()
http:request(requestUrl, {
options = {
method = 'PUT',
data = json.encode(data)
},
success = successCallback,
error = errorCallback
})
end
local function setHandModeTrue(subjectToChange)
local url = 'http://127.0.0.1:11111/api/panels/heating/' .. subjectToChange.id
getMethod(url, function(resp)
if resp.status == 200 then
print('Verbindung zum Heizpanel erfolgreich, Status ' .. resp.status)
local panel = json.decode(resp.data)
if panel.properties.handTemperature ~= nil then
panel.properties.handTemperature = subjectToChange.manTemp
panel.properties.handTimestamp = handTime
print('Setze Temperatur auf ' .. subjectToChange.manTemp .. ' C')
putMethod(url, panel, function(resp)
if resp.status == 200 then
print('Änderung wurde vorgenommen.')
end
end,
function(err)
print('Error ' .. err)
end
)
else
print('Panel nicht gefunden')
end
else
print('Verbindung konnte nicht hergestellt werden, Status ' .. resp.status)
end
end,
function(err)
print('error ' .. err)
end
)
end
setHandModeTrue(schedule)