Scene Wallplug energie dan Rolo runter

Hallo könnte vielleicht ein bisschen Hilfe gebrauchen.
Habe eine Scene geschrieben, sollte eigentlich so funktionieren, wenn das Gerät ein Dolby Receiver Saft zieht ( der an Wallplug angeschlossen ist) die Rollos runter fahren.
Momentan kann ich nur über einschalten des Wallplug die Rollo´s runter fahren.
Es hat doch mal eine Zeile gegeben mit Watt z.b. Wallplug über der Watt zahl schalte oder liege ich da falsch.
Hier mal die Scene wer mich helfen will ich wäre sehr dankbar darüber ( versuche das schon den ganzen Tag hinzubekommen).

–[[
%% properties
402 value
%% events
%% globals
TimeOfDay
–]]

local startSource = fibaro:getSourceTrigger();
if (
( fibaro:getGlobalValue(“TimeOfDay”) == “Morning” or fibaro:getGlobalValue(“TimeOfDay”) == “Day” or fibaro:getGlobalValue(“TimeOfDay”) == “Evening” )
and
( tonumber(fibaro:getValue(402, “value”)) > 0 )
or
startSource[“type”] == “other”
)
then
fibaro:call(396, “close”);
setTimeout(function()
fibaro:call(396, “stop”);
end, 7000)
end

Hi,

der Trigger TimeOfDay gehört da schon mal nicht rein.
Ansonsten findest Du hier Lösungen:
http://www.siio.de/board/thema/rolladen-runter-wenn-tv-an/

oder

http://www.siio.de/board/thema/script-schalte-geraet-ab-wenn-laenger-als-x-energieverbrauch-unter-y/

VG Hoggle

@Hoggle das mit den TimeOfDay ist ein Test spielt keine Rolle ( soll dan auch wieder hochfahren zu bestimmten Variablen).

Der erste Link Interessant nur geht das nicht, mit den Wallplug über die Bolckscene ( Wallplug mit Watt).
Mit den zweiten Link mache ich auch schon den ganzen tag rum.
Ein meiner Scene gehört doch nur diese Zeile geändert:

( tonumber(fibaro:getValue(402, „value“)) > 0 )

Das diese Watt einschaltet, und nicht wenn der Wallplug einschaltet.
Oder brauche ich für den 2ten Link noch eine separate Scene

Hier mal meine geschriebene Scene.
Die Scene wird durch die Watt am Wallplug getriggert.
Beamer ein, dann Rollo über die Zeit gesteuert herunterfahren, und in der Mitte des Fensters stehen bleiben.
Geht nur fast :frowning: der Beamer hat beim einschalten 103 Watt der Rollo fährt und bleibt auch stehen Ok passt.
Dan aber Mist der Wallplug 119 Watt, Scene wird wieder aktiv Rollo Fährt sollte nicht sein.
Dan Mist der Wallplug 186 Watt und die Scene läuft noch mal.
So sollte es eigentlich nicht sein, könnte man da was einbauen.
Will ja dann noch eine Scene schreiben die sagt wenn Beamer aus ( Wallplug Watt weniger wie 2 )und es ist Morning oder Day,
Rollo hochfahren.

–[[
%% properties
449 power
%% globals
–]]

local startSource = fibaro:getSourceTrigger();
if (

( tonumber(fibaro:getValue(449, “power”)) > 100 )
or
startSource[“type”] == “other”
)
then
fibaro:call(444, “close”);
fibaro:call(394, “close”);
fibaro:call(396, “close”);
setTimeout(function()
fibaro:call(444, “stop”);
fibaro:call(394, “stop”);
fibaro:call(396, “stop”);
end, 5000)
end

Hi,

Du kannst eine Globale Variable (GV) mit einbauen.
Das erstmalige Auslösens setzt die GV auf 1

Diese GV baust Du als Bedingung mit in Deine Formel ein - wenn Watt > x UND die GV == 0 DANN yxz UND GV = 1

Du kannst die GV zB bei Watt < 10 wieder auf 0 setzen.

VG Hoggle

Habe mal eine GV angelegt.
Hier mal die Scene geht aber nicht immer noch das selbe.

–[[
%% properties
449 power
%% globals
DolbyRollo
–]]

local startSource = fibaro:getSourceTrigger();
if (

( tonumber(fibaro:getValue(449, “power”)) > 100 )
and
( fibaro:getGlobalValue(“DolbyRollo”) == “Wert 1” )
or
startSource[“type”] == “other”
)
then
fibaro:call(444, “close”);
fibaro:call(394, “close”);
fibaro:call(396, “close”);
setTimeout(function()
fibaro:call(444, “stop”);
fibaro:call(394, “stop”);
fibaro:call(396, “stop”);
end, 5000)
end

Hallo Michi,

als erstes darf meiner Meinung nach das Wort “Wert” nicht in den Anführungszeichen stehen, da der String den Du da vergleichst nie mit dem Value der globalen Variablen übereinstimmt. Darüber hinaus wird der Wert der globalen Variablen in der Szene nicht geändert, die Szene wird also entwerder weiterhin immer (oder nie laufen).

Ich habe mal schnell ein paar Zeilen Code nierdergeschrieben, die kannst Du gerne mal testen. Wenn ich keine Schreibfehler drin habe sollte es dann laufen. Leider habe ich hier keine Testmöglichkeiten!

--[[
%% properties
449 power
%% globals
--]]

local run = 0

if (tonumber(fibaro:getValue(449, „power“)) > 100 )
and
run == 0
then
fibaro:call(444, „close“);
fibaro:call(394, „close“);
fibaro:call(396, „close“);
setTimeout(function()
fibaro:call(444, „stop“);
fibaro:call(394, „stop“);
fibaro:call(396, „stop“);
end, 5000)
local run = 1
elseif (tonumber:getValue(449, "power")) <= 5) then
local run = 0
end

Den Wert zum Zurücksetzen der lokalen Variablen habe ich etwas über “0” gesetzt, da ich nicht weiß ob Dein gerät evtl. noch Standby Energie verbraucht.

Gruß,

CD

Läuft leider auch nicht schau mal das Bild.

2.png

Ergänzung:
Warum nutzt du für das Rollo Close und dann Stop?
Du kannst das Rollo auch gleich auf einen vordefinierten Wert (zB 30% auf) fahren lassen.

Es läuft so nicht, weil bei jedem Trigger UND nach dem Durchlauf wird run auf Null gesetzt…

Hoggle wollte ich ja machen mit %, aber ich weis leider nicht wie man die Zeile schreibt.

Das dürfte an den “falschen” Anführungszeichen gelegen haben. Ich habe Teile des Skripts aus Deinem Vorpost kopiert.

Versuchen wir es so noch einmal:

--[[
%% properties
449 power
%% globals
--]]
 
local run = 0
 
if (tonumber(fibaro:getValue(449, "power")) > 100 )
and
run == 0
then
fibaro:call(444, "close")
fibaro:call(394, "close")
fibaro:call(396, "close")
setTimeout(function()
fibaro:call(444, "stop")
fibaro:call(394, "stop")
fibaro:call(396, "stop")
end, 5000)
local run = 1
elseif (tonumber:getValue(449, "power")) <= 5) then
local run = 0
end

Da bekomme ich zumindest keine Debug-Fehler auf meiner HC2. Testen kann ich es mangels entsprechender Aktoren (Rolloshutter) aber nicht

Hatte ich auch gedacht und schon probiert.
Hier mal der debug

3.png

Mein Fehler!

Ersetze mal zwischen “tonumber” und “fibaro:getValue” in Zeile 22 die Doppelpunkte durch eine öffnende Klammer “(”

Da sind hinten in Zeile 22 ja 3 schließende Klammern, aber vorne nur 2

Ich hoffe, wir näheren uns langsam dem Ziel! :wink:

Immer noch :frowning:

2-1.png

Hallo Michi,

ich habe mal die globalen Variablen TimeOfDay und RolloStatus in die Szene eingebaut und die Bedienung der Roller Shutter auf Prozentwerte umgestellt.
Probiere es mal aus.

--[[
%% properties
449 power
%% globals
--]]

local globalstatus = fibaro:getGlobal("RolloStatus")
local TimeOfDay = fibaro:getGlobal("TimeOfDay")
local power = tonumber(fibaro:getValue(449, "power"))

if ((TimeOfDay == "Morning") or (TimeOfDay == "Day") or (TimeOfDay == "Evening"))
then 
	if ( power > 100 ) and ( globalstatus == "0" )
		then
			fibaro:call(444, "setValue", "100");
			fibaro:call(394, "setValue", "100");
			fibaro:call(396, "setValue", "100");
			fibaro:setGlobal("RolloStatus","1")
		
	elseif (power) <= 5 and ( globalstatus == "1" )
		then
			fibaro:call(444, "setValue", "0");
			fibaro:call(394, "setValue", "0");
			fibaro:call(396, "setValue", "0");
			fibaro:setGlobal("RolloStatus","0")
	end
end

Gruß
Neospin

Hast du es mal mit zwei Blockzenen versucht?
Das geht auch und Du hast nicht die Probleme mit dem Syntax.
Zum Einstieg Super geeignet.

Hast du es mal mit zwei Blockzenen versucht?
Das geht auch und Du hast nicht die Probleme mit dem Syntax.
Zum Einstieg Super geeignet.

Habe ich, der Effekt war der den ich schon oben erklärt habe.

Neospin wenn man die Scene so liest ist sie gut nur die schaltet nicht.
Ab dieser Zeile sollten die Rollo runter : fibaro:call(444, “setValue”, “100”); oder liege ich da falsch :).
Im Debug kommt keine Fehlermeldung.
GV heist bei mir jetzt RolloStatus und Anfangszustand ist Wert 0 also sollte was anlaufen aber es tut sich nicht´s.
Der Wallplug zieht über 100Watt also müsste doch laufen warum nicht.
Oh man wäre ich froh wen das Gänge.
Bin schon 2 Wochen drüber.