Ich habe nun seit einiger Zeit das HC2 und möchte nun mit lua beginnen. Ich habe nun mal versucht die super script mit der Waschmaschine (wenn fertig push Meldung) einfach zu kopieren und einzufügen. Dann habe ich die entsprechenden ID geändert. Aber leider passiert nix. Muss ich da noch etwas beachten?
WallplugID = 140; – ID des Wallplug, hier ändern.
Phone1 = 41; – ID Telefon1, hier ändern.
Phone2 = 192; – ID Telefon2, hier ändern. Wenn nicht benötigt löschen.
local sourceTrigger = fibaro:getSourceTrigger();
if (sourceTrigger[“type”] == “property”) – Trigger Wallplug
then
fibaro:debug(‘Wallplug Auslösung an/aus’);
fibaro:sleep(600000); – 10 min Wartezeit
local Wallplug = (tonumber(fibaro:getValue(WallplugID, “value”)) > 0 ); – Ist Wallplug an
if (Wallplug)
then
while true do
fibaro:debug(‘Loop läuft’);
local PushAus = (tonumber(fibaro:getValue(WallplugID, “valueSensor”)) < 8 ); – Wallplug kleiner als 8 Watt
if (PushAus) then
fibaro:debug(‘Sende Push’);
fibaro:call(Phone1, “sendPush”, “Wäsche ist fertig”); – Push Handy
– Phone2 löschen wenn nicht benötigt
fibaro:call(Phone2, “sendPush”, “Wäsche ist fertig”); – Push Handy
fibaro:sleep(600000); – 10 min Wartezeit
fibaro:debug(‘Schalte aus’);
fibaro:call(Phone1, “sendPush”, “Waschmaschine wird ausgeschaltet”); – Push Handy
– Phone2 löschen wenn nicht benötigt
fibaro:call(Phone2, “sendPush”, “Waschmaschine wird ausgeschaltet”); – Push Handy
fibaro:call(WallplugID, “turnOff”); – Wallplug aus
break;
end
fibaro:sleep(60000);
end
end
end
Wegen dem Abschalten nutze ich das Script nicht. Das wollte ich nicht.
Ich habe mit zwei Blockszenen angefangen.
Zwischenzeitlich musste ich eine Szene in LUA umwandeln, weil ich mal Probleme mit den Push-Nachrichten hatte.
--[[
%% 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
Hi,
anbei zwei Szenen, die mir als Basis gedient haben.
Im Gegensatz zu dem LUA-Script musst Du hier zusätzlich eine Globale Variable “Waschmaschine” mit den Werten “Running” und “On” anlegen.
VG Hoggle
Danke Hoggle für die Szenen. Ich schaue jetzt mal wie das Skript von boomx sich bewährt.
Hallo Boomx,
ich habe jetzt das Skript für den Trockner angewandt. Im Gegensatz zur Waschmaschine habe ich aber da das Problem, wenn der Trockner mit dem Programm durch ist und man ihn nicht sofort abschaltet, dreht er die Wäschetrommel alle ca. 60 Sekunden 2-3 Umdrehungen und braucht natürlich immer wieder über die 35 Watt, die der Szene eigentlich sagen müsste das der Trockener fertig ist. Somit sendet die App Keine Push!?
In welcher Zeile kann ich denn evtl. die Zeit einstellen zwischen unter 35 Watt und Push senden? Oder liege ich da falsch mit meiner Idee?
pass am Besten Zeile 38 an und mach aus der 60 eine 30. Dann pusht das Skript, wenn die Wattzahl für 30 Sekunden unter 1 Watt (dein Wattverbrauch, wenn der Verbraucher fertig ist; ansonsten musst du die Wattzahl mal abändern. Mit dem Stromverbrauch von 35 Watt erkennt das Skript nur, dass der Verbraucher an ist.) fällt. Müsstest du mal testen.
Bei mir läuft jetzt dein Skript mit der Waschmaschine und Trockner.
Jetzt wäre es super wenn am Schluss jetzt zusätzlich zur Push Nachricht mein Sonos Lautsprecher sagt “Die Waschmaschine ist fertig!”.
Ich habe dank Hoggle’s Hinweis diesen Sonos Comander installiert und es funktioniert alles super. Ich kann einfache Szenen damit realisieren wie zb. Wenn Türsensor geöffnet dann spiele Musik oder eben einen definierten Text sprechen lassen.
Nur wie binde ich jetzt zu deinem Skript noch den Befehl ein das das VD Sonos Comander spricht?