Thermostate verknüpfen

Guten Morgen

Ich bin seit November in der Smarthome Welt unterwegs und jetzt neu hier im Forum. Nach einigen Startschwierigkeiten läuft es soweit.

Meine Ausstattung bisher:

HC2
8x Popp Thermsotat
3x Fibaro Dubleswitch
1x Fibaro DimmerJetzt
1x Fibaro Motion Sensor
1x Fibaro Wall Plug
3x Fibaro Fenster Sensor

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 :slight_smile:

Grüße aus dem Sauerland

Hi,

zu dem Snyc von Thermostaten gibt es hier auf der Seite bereits einen Artikel. Dies wäre genau das, was du umsetzen wolltest.

https://www.siio.de/heizenenergiesparen/kleine-lua-scripte-teil-12-hermostate-syncen/

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 :wink:

Gruß

Hi

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)