Hi,
warum nimmst du nicht das Skript auf der ersten Seite, was funktioniert?
Die Szene wird durch das An/Ausschalten getriggert, das ist richtig. Der Fehler ist in der Zeile 21: “valueSensor” gibt es nicht.
Gruß
Hi,
warum nimmst du nicht das Skript auf der ersten Seite, was funktioniert?
Die Szene wird durch das An/Ausschalten getriggert, das ist richtig. Der Fehler ist in der Zeile 21: “valueSensor” gibt es nicht.
Gruß
ICh finde immer “neuer ist besser” und habe das genommen, an dem stand “ich habe es nochmal überarbeitet…”
Alles klar, dann versuche ich gleich das erste nochmal.
Kenne mich in LUA nicht aus und versuche deshalb einfache Lösungen für mich zu finden. Aber ich lese mich nach und nach ein.
Danke erstmal für die Hilfe!
Sorry, mein Fehler. War in einem anderen Thread.
Findest du hier (Seite 1, mein Post)
--[[
%% properties
81 power
%% globals
--]]
local power_socket = 81 -- wallplug
local powerlive = fibaro:getValue(power_socket, "power")
fibaro:debug("Verbrauch = "..powerlive.." Watt")
if (fibaro:countScenes()>1)
then
fibaro:abort();
end
local run = 0
local currentDate = os.date("*t");
local power = fibaro:getValue(power_socket, "power")
local counter = 0
if ( tonumber(fibaro:getValue(power_socket, "power")) > 35 ) and run == 0 then
local start = (os.time())
fibaro:debug("Geschirrspüler läuft...")
fibaro:debug("Verbrauch = "..power.." Watt")
run = 1
end
while run == 1 do
if (tonumber(fibaro:getValue(power_socket, "power")) < 2) then
counter = counter + 1
local power2 = fibaro:getValue(power_socket, "power")
fibaro:debug('counter = ' ..counter.. " : "..power2.."Watt")
end
if (tonumber(fibaro:getValue(power_socket, "power")) > 3 ) then
counter = 0
end
if (tonumber(fibaro:getValue(power_socket, "power")) < 1.0) and counter > 60 then
fibaro:debug("Geschirrspüler ist fertig.")
local power3 = fibaro:getValue(power_socket, "power")
fibaro:debug("Verbrauch (3) = "..power3.." Watt")
fibaro:debug("Send Push")
fibaro:call(68, "sendPush", "Geschirrspüler ist durchgelaufen", "Dischwasher");
fibaro:call(113, "sendPush", "Geschirrspüler ist durchgelaufen", "Dischwasher");
run = 0
end
fibaro:sleep(1*1000)
end
Super, jetzt funktioniert es perfekt. Musste nur die Watt Zahl im idle runter setzen und dann lief es.
Vielen Dank!
Lieber Boomx,
ich habe das Script für mich angepasst. Im Debug laufen nun die Verbräuche schön durch. Ich habe mit meiner Waschmaschine versucht. Der Ruheverbrauch beträgt 4,2 Watt. Kann ich in Zeile 35 diesen Ruheverbrauch anpassen, also z.B.
if (tonumber(fibaro:getValue(power_socket, "power")) > 5 ) then
Oder ist das die falsche Stelle?
Aktuell kommt keine Beendigungsmeldung im Debug und demnach auch nicht bei den ID meiner Smartphones heraus.
Vielen Dank für einen Tipp
Hi,
hab es mal angepasst für deinen Wert:
--[[
%% properties
81 power
%% globals
--]]
local power_socket = 81 -- wallplug
local powerlive = fibaro:getValue(power_socket, "power")
fibaro:debug("Verbrauch = "..powerlive.." Watt")
if (fibaro:countScenes()>1)
then
fibaro:abort();
end
local run = 0
local currentDate = os.date("*t");
local power = fibaro:getValue(power_socket, "power")
local counter = 0
if ( tonumber(fibaro:getValue(power_socket, "power")) > 35 ) and run == 0 then
local start = (os.time())
fibaro:debug("Geschirrspüler läuft...")
fibaro:debug("Verbrauch = "..power.." Watt")
run = 1
end
while run == 1 do
if (tonumber(fibaro:getValue(power_socket, "power")) < 5) then
counter = counter + 1
local power2 = fibaro:getValue(power_socket, "power")
fibaro:debug('counter = ' ..counter.. " : "..power2.."Watt")
end
if (tonumber(fibaro:getValue(power_socket, "power")) > 5 ) then
counter = 0
end
if (tonumber(fibaro:getValue(power_socket, "power")) < 5) and counter > 60 then
fibaro:debug("Geschirrspüler ist fertig.")
local power3 = fibaro:getValue(power_socket, "power")
fibaro:debug("Verbrauch (3) = "..power3.." Watt")
fibaro:debug("Send Push")
fibaro:call(68, "sendPush", "Geschirrspüler ist durchgelaufen", "Dischwasher");
fibaro:call(113, "sendPush", "Geschirrspüler ist durchgelaufen", "Dischwasher");
run = 0
end
fibaro:sleep(1*1000)
end
Gruß
Herzlichen Dank lieber Boomx
Es läuft super. Ich habe zusätzlich neben der Pushnachricht eine Sprachmitteilung über Sonos realisiert.
Zusätzlich wollte ich am Ende den Wallplug ausschalten.
Ich habe den Ausschaltbefehl nach den Benachrichtigungen platziert, dann bricht aber das Script ab. Vor und nach fibaro:sleep ging es auch nicht. Morgens die Waschmaschine an machen und dann zur Arbeit gehen bedeutet unnötigen Standbyverbrauch. An welcher Stelle kann man den Ausschaltbefehl platzieren, damit es noch rund läuft?
In welche Zeile hast du es eingefügt? Nach Zeile 44? Das sollte eigentlich gehen, da dort keine Werte mehr abgefragt werden.
Gruß
ich habe es hinter der Zeile 46 aktuell eingefügt. Dann schaltet der Wallplug direkt nach dem Einschalten den Verbraucher wieder ab
Gruß
… konnte es klären. Läst man genügend zeitlichen Abstand zum nächsten Einschalten, läuft es sauber…
Begrenzt ggf. die maximale Anzahl an Instanzen das direkte Neustarten? Ist eigentlich nur am Rande von Interesse.
OK, wollte es nochmal testen, bevor ich poste. Brauch ich ja dann nicht mehr
Ne, sollte nicht. Die Szene oben kann nur 1x laufen.
Gruß
Die Herbergsmutter hatte noch einen Hinweis: Die Nachricht sollte nicht während der Nachtruhe durchs Haus plärren. Wenn die Waschmaschine im Keller nachts läuft, wäre das nicht gut. Dies wäre mit einer Variable “Timeoffday” als if Bedingung gut realisierbar
Wenn ich bei den Globals Timeoffday ergänze, wie baue ich das dann an dieser Stelle ein, das die Nachrichten unterdrückt werden aber der Wallplug trotzdem abeschaltet wird?
if (tonumber(fibaro:getValue(power_socket, "power")) < 5) and counter > 90 then
fibaro:debug("Waschmaschine ist fertig.")
Dies wäre der Part der noch hinein müsste:
local startSource = fibaro:getSourceTrigger();
if (
( fibaro:getGlobalValue(“TimeOfDay”) == “Day” )
or
startSource[“type”] == “other”
)
then
Bin ein wneig überfordert, wie sich machen lässt…
Hallo,
ich versuche mich langsam in Szenen einzuarbeiten. aber irgendwie willl das bei mir nicht funzen.Ich poste mal zwei Scrrens und den Code. Kann mir jemand sagen, was ich falsch mache.
Danke.
--[[
%% properties
81 power
%% globals
--]]
local power_socket = 33 -- wallplug
local powerlive = fibaro:getValue(power_socket, "power")
fibaro:debug("Verbrauch = "..powerlive.." Watt")
if (fibaro:countScenes()>1)
then
fibaro:abort();
end
local run = 0
local currentDate = os.date("*t");
local power = fibaro:getValue(power_socket, "power")
local counter = 0
if ( tonumber(fibaro:getValue(power_socket, "power")) > 35 ) and run == 0 then
local start = (os.time())
fibaro:debug("Trockner läuft...")
fibaro:debug("Verbrauch = "..power.." Watt")
run = 1
end
while run == 1 do
if (tonumber(fibaro:getValue(power_socket, "power")) < 5) then
counter = counter + 1
local power2 = fibaro:getValue(power_socket, "power")
fibaro:debug('counter = ' ..counter.. " : "..power2.."Watt")
end
if (tonumber(fibaro:getValue(power_socket, "power")) > 5 ) then
counter = 0
end
if (tonumber(fibaro:getValue(power_socket, "power")) < 5) and counter > 60 then
fibaro:debug("Trockner ist fertig.")
local power3 = fibaro:getValue(power_socket, "power")
fibaro:debug("Verbrauch (3) = "..power3.." Watt")
fibaro:debug("Send Push")
fibaro:call(46, "sendPush", "Trockner ist durchgelaufen", "Trockner");
fibaro:call(81, "sendPush", "Trockner ist durchgelaufen", "Trockner");
run = 0
end
fibaro:sleep(1*1000)
end
Hi,
die Szene startet nicht, weil du die ID im Header nicht angepasst hast.
@Homer:
Mach einfach vor die Versendung der Push-Nachrichten eine Abfrage, ob die Variable ein bestimmtes Value hat. Den Header darfst du nicht verändern.
Gruß
Danke für die schnelle Antwort. Heute sollte der Trockner noch ´ne Runde drehen. Dann werde ich sehen, ob es funzt
Hallo liebe Gemeinde,
habe heute meinen ersten Wallplug bekommen und natürlich gleich an dem Trcokner getestet. Mit dem Script das boomx empfohlen hat. Allerdings bekommt man ja hier ständig Push-Meldungen wenn am ende der Trockner in seinen Knitterschutz geht und ständig 60 sec pause macht und dann wieder anläuft.
Kann mir jemand ein komplettes Script reinstellen, welches bei dem ersten Knitterschutz ein Pusch-Nachricht sendet " Trockner ist zu ende, Wäsche kann entnommen werden, Knitterschutz läuft" ( Aber nur eine Meldung, da dieser Knitterschutz zig mal läuft bis er endlich den Trockner ausschaltet)
Die zweite Meldung sollte dann kommen " Trockner ist zu ende, Wäsche kann entnommen werden, Knitterschutz zu ende". ( Dies ist dann wenn sich der Trockner komplett abgeschaltet hat)
Also bekommt man für einen Trcoknerdurchlauf nur max 2 Meldungen.
Gibt es eine Möglichkeit dies so anzupassen? Wenn ja, wäre ich dankbar, wenn ihr mir das fertige Skript zum testen reinstellen könntet.
Ich bin etwas verzweifelt. Ich habe das Skript nochmal angepasst (ID im Header angepasst) und trotzdem will nix passieren. Hat jemand eine Idee, wie ich überprüfen könnte, woran es liegt. Wenn der Trockner läuft, sehe ich bspw. in der App den Stromverbauch am Wall-Plug. Über ein Magic Scene habe ich auch mal die Benachrichtigung (wenn Verbauch größer X Watt dann sende E-Mail) getestet und es hat einwandfrei funktioniert.
Hi Leute,
hier mal mein Script das ich an meinen Trockner angepasst habe, damit ich nur eine push bekomme.
Bei mir funktioniert es tadellos.
–[[
%% properties
93 power
%% globals
–]]
local power_socket = 93 – wallplug
local powerlive = fibaro:getValue(power_socket, “power”)
fibaro:debug(“Verbrauch = “…powerlive…” Watt”)
if (fibaro:countScenes()>1)
then
fibaro:abort();
end
local run = 0
local currentDate = os.date("*t");
local power = fibaro:getValue(power_socket, “power”)
local counter = 0
if ( tonumber(fibaro:getValue(power_socket, “power”)) > 35 ) and run == 0 then
local start = (os.time())
fibaro:debug(“Geschirrspüler läuft…”)
fibaro:debug(“Verbrauch = “…power…” Watt”)
run = 1
end
while run == 1 do
if (tonumber(fibaro:getValue(power_socket, “power”)) < 2) then
counter = counter + 1
local power2 = fibaro:getValue(power_socket, “power”)
fibaro:debug('counter = ’ …counter… " : "…power2…“Watt”)
end
if (tonumber(fibaro:getValue(power_socket, “power”)) > 3 ) then
counter = 0
end
if (tonumber(fibaro:getValue(power_socket, “power”)) < 1.0) and counter > 15 then
fibaro:debug(“Waschmaschine ist fertig.”)
local power3 = fibaro:getValue(power_socket, “power”)
fibaro:debug(“Verbrauch (3) = “…power3…” Watt”)
fibaro:debug(“Send Push”)
fibaro:call(6, “sendPush”, “Trockner ist fertig”, “Dischwasher”);
fibaro:call(114, “sendPush”, “Trockner ist fertig”, “Dischwasher”);
fibaro:call(143, “sendPush”, “Trockner ist fertig”, “Dischwasher”);
fibaro:call(113, “pressButton”, “3”);
run = 0
end
fibaro:sleep(1*1000)
end
OK, werde ich versuchen. Mit dem Befehl
fibaro:call(113, „pressButton“, „3“);
löst Du was aus?
Damit sagt mir mein SONOS Lautsprecher, “Die Wäsche ist fertig!”
Der Wallplug ist bei mir immer an, da sonst meine Frau diesen immer wieder einschalten müsste!