Hallo,
ich brauch mal eure Hilfe. Ich habe eine Scene die nur manchmal funktioniert.
Über einen Schalter löse ich eine Scene aus, die das Heizungsventil für 30 Minuten auf 28°C stellt.
Die Variable bad_heizung_e_a
fragt ab, ob der elektrische Heizstab der Heizung an ist.
Damit ich sehe ob das Heizventil schaltet, also die Scene funktioniert, schaltet das Licht für 2 Sekunden an und dann wieder aus, bzw. wenn es schon an ist dimmt es für 2 Sekunden ab und wird dann wieder hell.
So weit die Theorie.
Was passiert ist:
- Manchmal macht es tatsächlich das was es soll
- Manchmal macht es das was es soll, aber das Licht schaltet oder dimmt für bis zu 30 Sekunden,nicht 2 Sekunden.
- Manchmal schaltet das Licht aus und geht nicht wieder an
- Manchmal schltet das Licht an und aus, aber das Ventil schaltet nicht
- usw., usw.
Mit anderen Worten, diese Scenen macht was sie will. Hier mal der Code. Was mache ich da falsch?
–[[
%% autostart
%% properties
%% weather
%% events
276 CentralSceneEvent 4 HeldDown
%% globals
–]]local startSource = fibaro:getSourceTrigger();
if (
( (startSource[„type“] == „event“ and startSource[„event“][„type“] == „CentralSceneEvent“) )
or
startSource[„type“] == „other“
)
then
bad_1 = fibaro:getGlobalValue(‚bad_heizung_e_a‘)
–(‚bad_heizung_e_a‘) für Heizung aktiv/inaktiv - für Schleife unten Heat oder nicht Heat verwenden
bad = tonumber(bad_1)
lampe_wert_1 = fibaro:getValue(400, „value“)
lampe_wert = tonumber(lampe_wert_1)
fibaro:debug(lampe_wert);
fibaro:debug(bad);
if (lampe_wert > 5) then
if (bad == 1) then
print „an“
fibaro:call(400, „setValue“, „40“);
setTimeout(function()
fibaro:call(400, „setValue“, „100“);
end, 2000)
fibaro:call(203, „setMode“, „1“);
fibaro:call(201, „setThermostatSetpoint“, „1“, „28“);
setTimeout(function()
fibaro:startScene(336);
end, 1800000) – end, 1800000)
end
elseif (lampe_wert < 5) then
if (bad == 1) then
print „aus“
fibaro:call(400, „turnOn“);
setTimeout(function()
fibaro:call(400, „turnOff“);
end, 2000)
fibaro:call(203, „setMode“, „1“);
fibaro:call(201, „setThermostatSetpoint“, „1“, „28“);
setTimeout(function()
fibaro:startScene(336);
end, 1800000)
end
else print „mist“
end
end
Habt ihr eine Idee oder einen Tipp?