Nu funkar allt... det sista scriptet verkar vara något fel med....
Tack än en gång...
Skicka push om tvätten är klar
-
- Medlem
- Posts: 33
- Joined: 07 Mar 2014, 14:54
- 10
jompa68 wrote:Har man en enhet kopplad till sin tvättmaskin (eller annan maskin) som mäter elförbrukningen så kan man monitorera när strömförbrukningen gått ner från högförbrukning till lägre och då skicka ett push som säger att tvättmaskinen tvättat klart. Perfekt om man har sin tvättmaskin i källaren
Code: Select all
--[[ %% properties 17 value %% globals --]] -- 17 value ** Byt ut denna mot det ID som gäller för din brytare till tvättmaskinen ** local power = fibaro:getValue(17, "value") -- tvättmaskinens enhet ** Ändra ID ** local washOn = "tvättmaskinKör" -- skapa en variabel local washDone = "tvättmaskinKlar" -- skapa ytterligare en variabel fibaro:debug("Förbrukning="..power.." Watt") if (tonumber(fibaro:getValue(17, "value")) > 1000) then -- 1000Watt förbrukning fibaro:setGlobal(washOn, "1") -- sätter variabel till 1 då tvättmaskinen är på fibaro:setGlobal(washDone, "0") fibaro:debug("Tvättmaskin går") -- lite debug text :) elseif (tonumber(fibaro:getValue(17, "value")) < 10) then -- 10Watt förbrukning i standby, fibaro:debug("Tvätten är klar!!") fibaro:setGlobal(washOn, "0") fibaro:setGlobal(washDone, "1") end if (tonumber(fibaro:getValue(17, "value")) < 10) and fibaro:getGlobalValue(washDone) == "1" then fibaro:debug("Send push") fibaro:call(22,"sendPush","Tvätten är klar") -- byt ut 22 mot det id som gäller för din telefon end
Hej Jompa68
Jag kan inte få denna att fungera. den skickar ingen push, har en Fibaro Wall plug, stänger jag den fysiskt så kommer push meddelandet och kör jag scenen manuellt fungerar den.
Försöker få den att fungera genom att köra en hårtork.
Vet inte vad som är fel.
Tacksam för hjälp
Hej jackhampus,
Hade också problem att få detta att fungera men efter att jag bytt ut "value" till "power" enligt nedan hoppade det igång.
%% properties
17 power
%% globals
local power = fibaro:getValue(17, "power") -- tvättmaskinens enhet ** Ändra ID **
if (tonumber(fibaro:getValue(17, "power")) > 1000) then -- 1000Watt förbrukning
elseif (tonumber(fibaro:getValue(17, "power")) < 10) then -- 10Watt förbrukning i standby,
if (tonumber(fibaro:getValue(17, "power")) < 10) and fibaro:getGlobalValue(washDone) == "1" then
Hade också problem att få detta att fungera men efter att jag bytt ut "value" till "power" enligt nedan hoppade det igång.
%% properties
17 power
%% globals
local power = fibaro:getValue(17, "power") -- tvättmaskinens enhet ** Ändra ID **
if (tonumber(fibaro:getValue(17, "power")) > 1000) then -- 1000Watt förbrukning
elseif (tonumber(fibaro:getValue(17, "power")) < 10) then -- 10Watt förbrukning i standby,
if (tonumber(fibaro:getValue(17, "power")) < 10) and fibaro:getGlobalValue(washDone) == "1" then
jackhampus wrote:jompa68 wrote:Har man en enhet kopplad till sin tvättmaskin (eller annan maskin) som mäter elförbrukningen så kan man monitorera när strömförbrukningen gått ner från högförbrukning till lägre och då skicka ett push som säger att tvättmaskinen tvättat klart. Perfekt om man har sin tvättmaskin i källaren
Code: Select all
--[[ %% properties 17 value %% globals --]] -- 17 value ** Byt ut denna mot det ID som gäller för din brytare till tvättmaskinen ** local power = fibaro:getValue(17, "value") -- tvättmaskinens enhet ** Ändra ID ** local washOn = "tvättmaskinKör" -- skapa en variabel local washDone = "tvättmaskinKlar" -- skapa ytterligare en variabel fibaro:debug("Förbrukning="..power.." Watt") if (tonumber(fibaro:getValue(17, "value")) > 1000) then -- 1000Watt förbrukning fibaro:setGlobal(washOn, "1") -- sätter variabel till 1 då tvättmaskinen är på fibaro:setGlobal(washDone, "0") fibaro:debug("Tvättmaskin går") -- lite debug text :) elseif (tonumber(fibaro:getValue(17, "value")) < 10) then -- 10Watt förbrukning i standby, fibaro:debug("Tvätten är klar!!") fibaro:setGlobal(washOn, "0") fibaro:setGlobal(washDone, "1") end if (tonumber(fibaro:getValue(17, "value")) < 10) and fibaro:getGlobalValue(washDone) == "1" then fibaro:debug("Send push") fibaro:call(22,"sendPush","Tvätten är klar") -- byt ut 22 mot det id som gäller för din telefon end
Hej Jompa68
Jag kan inte få denna att fungera. den skickar ingen push, har en Fibaro Wall plug, stänger jag den fysiskt så kommer push meddelandet och kör jag scenen manuellt fungerar den.
Försöker få den att fungera genom att köra en hårtork.
Vet inte vad som är fel.
Tacksam för hjälp
-
- Medlem
- Posts: 33
- Joined: 07 Mar 2014, 14:54
- 10
Tack Shafty, har fått det att fungera även med en fördröjning på pushen, nyare maskiner går under lägsta förbrukningen och skickar fast den inte är klar.
Ursäkta om jag missförstår, sitter med riktigt taskig förbindelse o telefon så orkar inte läsa första sidan, då man får vänta länge för varje sida som laddas i mobilen.
Jag har ett bra script.
Hemma dock, den väntar 60sekunder innan den skickar att den e klar.
( förbrukning under 10w i minst 60sekunder)
Detta då det tidigare skickade meddelande varje gång trumman bytte håll.
Om ni är intresserade, kör ni GEA så kan ni även köra kollen där..
Jag har ett bra script.
Hemma dock, den väntar 60sekunder innan den skickar att den e klar.
( förbrukning under 10w i minst 60sekunder)
Detta då det tidigare skickade meddelande varje gång trumman bytte håll.
Om ni är intresserade, kör ni GEA så kan ni även köra kollen där..
-----------------------------------------------------------------
HC2
Aeon Labs, Fibaro, Danfoss enheter (30++st)
HC2
Aeon Labs, Fibaro, Danfoss enheter (30++st)
Och här en film om hur man går till väga utan kunskaper om LUA:
https://www.youtube.com/watch?v=M_QSomtXiiQ
https://www.youtube.com/watch?v=M_QSomtXiiQ
Oj vad jobbigt sätt =)
Globalvariabel, samt 2 scener...
Och vad jag kan se, så kommer det inte fungera på min tvättmaskin..
För min drar 7watt när den är klar.. För den har en display som drar ström.
Så jag kan inte kolla när watt = 0.
Samt så kan jag inte heller kolla när watt =7, för det gör den varje gång trumman stannar (byter håll)
Vilket gör att man får larm var 20e sekund.
Så därför skickar jag nu med, ett annat sätt att lösa problemet med.
Inga globala variabler, samt med en timer på tex 60sekunder, för att veta att är förbrukningen under ett visst antal watt under 1 minut, då kan man anse att tvätten är klar.
Ändra 48 till er enhet..
samt ändra " fibaro:call(27...." ändra 27 till er mobil.. vill ni ha flera mobiler bara lägg till hur många rader/telefoner ni vill
eller om ni kör GEA så gör kollen där istället.
Observera att här får jag först 5min efter.
Då denna inte kollar varje värde på watten under perioden, utan endast var 30 sekund.
Så därför har jag längre "spann"/tid. För om watt vid varje tillfälle 10gånger (var 30sekund under 5min) är under 10 watt, så kan jag anse att tvätten är klar.
Globalvariabel, samt 2 scener...
Och vad jag kan se, så kommer det inte fungera på min tvättmaskin..
För min drar 7watt när den är klar.. För den har en display som drar ström.
Så jag kan inte kolla när watt = 0.
Samt så kan jag inte heller kolla när watt =7, för det gör den varje gång trumman stannar (byter håll)
Vilket gör att man får larm var 20e sekund.
Så därför skickar jag nu med, ett annat sätt att lösa problemet med.
Inga globala variabler, samt med en timer på tex 60sekunder, för att veta att är förbrukningen under ett visst antal watt under 1 minut, då kan man anse att tvätten är klar.
Ändra 48 till er enhet..
samt ändra " fibaro:call(27...." ändra 27 till er mobil.. vill ni ha flera mobiler bara lägg till hur många rader/telefoner ni vill
Code: Select all
--[[
%% autostart
%% properties
48 power
%% globals
--]]
local power_socket = 48
local powerlive = tonumber(fibaro:getValue(power_socket, "power")) -- monitored unit
fibaro:debug("Förbrukning = "..powerlive.." Watt")
if (fibaro:countScenes()>1)
then
fibaro:abort();
end
local run = 0
--local power_socket = 48
local currentDate = os.date("*t");
local power = fibaro:getValue(power_socket, "power")
local counter = 0
if ( tonumber(fibaro:getValue(power_socket, "power")) > 60 ) and run == 0 then
local start = (os.time())
fibaro:debug("Tvättmaskin startad")
fibaro:debug("Förbrukning = "..power.." Watt")
run = 1
end
while run == 1 do
if ( tonumber(fibaro:getValue(power_socket, "power")) < 10) 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")) > 10 ) then
counter = 0
end
if ( tonumber(fibaro:getValue(power_socket, "power")) < 10) and counter > 60 then
fibaro:debug("Tvättmaskin klar.")
local power3 = fibaro:getValue(power_socket, "power")
fibaro:debug("Förbrukning 3 = "..power3.." Watt")
fibaro:debug("Skicka meddelande")
fibaro:call(27,"sendPush", " Tvättmaskinen är klar" )
-- fibaro:call(30,"sendPush", " Tvättmaskinen är klar" )
-- fibaro:call(27, "sendDefinedPushNotification", "9");
run = 0
end
--fibaro:sleep(1000)
end
Code: Select all
GEA.add({"Power-", id["TVATTM"], 10}, 5*60, "Tvätten är klar GEA", {{"Portable", 27}})
Då denna inte kollar varje värde på watten under perioden, utan endast var 30 sekund.
Så därför har jag längre "spann"/tid. För om watt vid varje tillfälle 10gånger (var 30sekund under 5min) är under 10 watt, så kan jag anse att tvätten är klar.
-----------------------------------------------------------------
HC2
Aeon Labs, Fibaro, Danfoss enheter (30++st)
HC2
Aeon Labs, Fibaro, Danfoss enheter (30++st)
Hmm..
vad säger den ifall du kollar i debug fönstret?
Den borde ju skriva ut räknaren som borde gå från 1 till 60.. o när den är på 60 då skall den skicka push, samt stänga av..
Kopierade du hela koden?
Jag kanske kopierade något fel... Får du det inte att fungera så kan jag skicka orginalkoden till dig.
vad säger den ifall du kollar i debug fönstret?
Den borde ju skriva ut räknaren som borde gå från 1 till 60.. o när den är på 60 då skall den skicka push, samt stänga av..
Kopierade du hela koden?
Jag kanske kopierade något fel... Får du det inte att fungera så kan jag skicka orginalkoden till dig.
-----------------------------------------------------------------
HC2
Aeon Labs, Fibaro, Danfoss enheter (30++st)
HC2
Aeon Labs, Fibaro, Danfoss enheter (30++st)
Sedan jag gjort mina ändringar avseende förbrukning och telefon ID ser koden ut som följer:
Min maskin verkar ha standbyeffekt=3,5 W
Just nu när maskinen inte går ser det ut så här: [DEBUG] 20:45:48: Förbrukning = 3.5 Watt
Gör ett nytt försök under morgondagen.
Code: Select all
--[[
%% autostart
%% properties
27 power
%% globals
--]]
local power_socket = 27
local powerlive = tonumber(fibaro:getValue(power_socket, "power")) -- monitored unit
fibaro:debug("Förbrukning = "..powerlive.." Watt")
if (fibaro:countScenes()>1)
then
fibaro:abort();
end
local run = 0
--local power_socket = 27
local currentDate = os.date("*t");
local power = fibaro:getValue(power_socket, "power")
local counter = 0
if ( tonumber(fibaro:getValue(power_socket, "power")) > 60 ) and run == 0 then
local start = (os.time())
fibaro:debug("Tvättmaskin startad")
fibaro:debug("Förbrukning = "..power.." Watt")
run = 1
end
while run == 1 do
if ( tonumber(fibaro:getValue(power_socket, "power")) < 4) 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")) > 4 ) then
counter = 0
end
if ( tonumber(fibaro:getValue(power_socket, "power")) < 4) and counter > 60 then
fibaro:debug("Tvättmaskin klar.")
local power3 = fibaro:getValue(power_socket, "power")
fibaro:debug("Förbrukning 3 = "..power3.." Watt")
fibaro:debug("Skicka meddelande")
fibaro:call(138,"sendPush", " Tvättmaskinen är klar" )
fibaro:call(167,"sendPush", " Tvättmaskinen är klar" )
-- fibaro:call(138, "sendDefinedPushNotification", "9");
run = 0
end
--fibaro:sleep(1000)
end
Just nu när maskinen inte går ser det ut så här: [DEBUG] 20:45:48: Förbrukning = 3.5 Watt
Gör ett nytt försök under morgondagen.
- RH_Dreambox
- Z-Wave Kung
- Posts: 1203
- Joined: 03 Jan 2015, 16:49
- 9
- Location: Vegby
- Contact:
Om maskinen drar 3,5 Watt i standby så bör du ändra värdet 4 i koden till 3 eller hellre 2 Watt för att vara säker på att scriptet triggas rätt.
Jag har satt mitt värde till 1 och tvättmaskinen anses vara igång om effekten är högre än 250 Watt.
Jag har satt mitt värde till 1 och tvättmaskinen anses vara igång om effekten är högre än 250 Watt.
Min gamla ombyggda HC2 har fått ett nytt liv och min HC3 är nu nedkopplad.
HC2 med Home Assistant har blivit en riktig Game Changer och nu har jag hemautomatik på riktigt.
https://www.zwaveforum.se/viewtopic.php?t=7087
HC2 med Home Assistant har blivit en riktig Game Changer och nu har jag hemautomatik på riktigt.
https://www.zwaveforum.se/viewtopic.php?t=7087
- RH_Dreambox
- Z-Wave Kung
- Posts: 1203
- Joined: 03 Jan 2015, 16:49
- 9
- Location: Vegby
- Contact:
Jag såg nu att jag kör ett annat script än dig, men principen bör ändå vara densamma.
I exemplet nedan har jag kört en utpumpning och centrifugering (ca. 12 min)
Så här funkar det med mitt script som du hittar längst ned..
[DEBUG] 13:42:02: Tvättmaskinscriptet har aktiverats: Tue Aug 11 13:42:02 2015
[DEBUG] 13:42:02: Effektförbrukningen just nu = 100.12 Watt
En effektförändring har triggat igång scriptet och några globala parametrar hämtas.
Inget mer händer om inte effekten överstiger överstiger 250 Watt
[DEBUG] 13:44:26: Effektförbrukningen just nu = 253.077 Watt
[DEBUG] 13:44:26: Tvättmaskinen har startats
Nu startade centrifugeringen och effekten överstiger mitt värde på 250 Watt.
Scriptet sätter några globala parametrar WashOn=1, WashDone=0, WashMail=0
[DEBUG] 13:51:52: Effektförbrukningen just nu = 0.592 Watt
[DEBUG] 13:52:04: Tvätten är klar: Tue Aug 11 13:54:04 2015
Centrifugeringen är klar och effekten understiger min parameter på 1 Watt
Nu sätts några globala parametrar WashOn=0, WashDone=1
[DEBUG] 13:53:07: Skicka E-mail
En fördröjning (sleep) på 60 sekunder (kolla att maskinen är klar och släpper lucklåset)
[DEBUG] 13:53:35: Mail skickades till Admin, RH och YH
###########################################################
--[[
%% properties
--675 power
%% globals
--]]
-- Change id 161 to what id you want to have for monitoring
local currentDate = os.date("*t");
local power = fibaro:getValue(675, "power") -- monitored unit
local WashOn = "WashOn" -- create a variable WashOn
local WashDone = "WashDone" -- create a variable WashDone
local WashMail = "WashMail" -- create a variable WashMail
fibaro:debug("Tvättmaskinscriptet har aktiverats: " .. os.date());
fibaro:debug("Effektförbrukningen just nu = "..power.." Watt")
if ( tonumber(fibaro:getValue(675, "power")) > 250 ) then -- 500Watt change to wanted value in watt
fibaro:setGlobal(WashOn, "1") -- sets variable to 1 if machine is running
fibaro:setGlobal(WashDone, "0") -- sets variable WashDone to 0
fibaro:setGlobal(WashMail, "0") -- sets variable WashMail to 0
fibaro:debug("Tvättmaskinen har startats") -- lite debug text
elseif ( tonumber(fibaro:getValue(675, "power")) < 1 ) then
fibaro:debug("Tvätten är klar.")
fibaro:setGlobal(WashOn, "0")
fibaro:setGlobal(WashDone, "1") -- Tvätten är klar!
end
if ( tonumber(fibaro:getValue(675, "power")) < 1 ) and fibaro:getGlobalValue(WashDone) == "1" and fibaro:getGlobalValue(WashMail) == "0" then
fibaro:sleep(60*1000) -- 60 sec delay
if ( tonumber(fibaro:getValue(675, "power")) < 1 ) then
fibaro:setGlobal(WashMail, "1")
fibaro:debug("Skicka E-mail")
local subject = "Tvätten är klar"
local message = "Tvätten var klar klockan" .." ".. string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min)
fibaro:call(2, "sendEmail", subject, message)
fibaro:call(4, "sendEmail", subject, message)
fibaro:call(665, "sendEmail", subject, message)
fibaro:debug("Mail är skickade till Admin, RH och YH")
end
end
##########################################################
I exemplet nedan har jag kört en utpumpning och centrifugering (ca. 12 min)
Så här funkar det med mitt script som du hittar längst ned..
[DEBUG] 13:42:02: Tvättmaskinscriptet har aktiverats: Tue Aug 11 13:42:02 2015
[DEBUG] 13:42:02: Effektförbrukningen just nu = 100.12 Watt
En effektförändring har triggat igång scriptet och några globala parametrar hämtas.
Inget mer händer om inte effekten överstiger överstiger 250 Watt
[DEBUG] 13:44:26: Effektförbrukningen just nu = 253.077 Watt
[DEBUG] 13:44:26: Tvättmaskinen har startats
Nu startade centrifugeringen och effekten överstiger mitt värde på 250 Watt.
Scriptet sätter några globala parametrar WashOn=1, WashDone=0, WashMail=0
[DEBUG] 13:51:52: Effektförbrukningen just nu = 0.592 Watt
[DEBUG] 13:52:04: Tvätten är klar: Tue Aug 11 13:54:04 2015
Centrifugeringen är klar och effekten understiger min parameter på 1 Watt
Nu sätts några globala parametrar WashOn=0, WashDone=1
[DEBUG] 13:53:07: Skicka E-mail
En fördröjning (sleep) på 60 sekunder (kolla att maskinen är klar och släpper lucklåset)
[DEBUG] 13:53:35: Mail skickades till Admin, RH och YH
###########################################################
--[[
%% properties
--675 power
%% globals
--]]
-- Change id 161 to what id you want to have for monitoring
local currentDate = os.date("*t");
local power = fibaro:getValue(675, "power") -- monitored unit
local WashOn = "WashOn" -- create a variable WashOn
local WashDone = "WashDone" -- create a variable WashDone
local WashMail = "WashMail" -- create a variable WashMail
fibaro:debug("Tvättmaskinscriptet har aktiverats: " .. os.date());
fibaro:debug("Effektförbrukningen just nu = "..power.." Watt")
if ( tonumber(fibaro:getValue(675, "power")) > 250 ) then -- 500Watt change to wanted value in watt
fibaro:setGlobal(WashOn, "1") -- sets variable to 1 if machine is running
fibaro:setGlobal(WashDone, "0") -- sets variable WashDone to 0
fibaro:setGlobal(WashMail, "0") -- sets variable WashMail to 0
fibaro:debug("Tvättmaskinen har startats") -- lite debug text
elseif ( tonumber(fibaro:getValue(675, "power")) < 1 ) then
fibaro:debug("Tvätten är klar.")
fibaro:setGlobal(WashOn, "0")
fibaro:setGlobal(WashDone, "1") -- Tvätten är klar!
end
if ( tonumber(fibaro:getValue(675, "power")) < 1 ) and fibaro:getGlobalValue(WashDone) == "1" and fibaro:getGlobalValue(WashMail) == "0" then
fibaro:sleep(60*1000) -- 60 sec delay
if ( tonumber(fibaro:getValue(675, "power")) < 1 ) then
fibaro:setGlobal(WashMail, "1")
fibaro:debug("Skicka E-mail")
local subject = "Tvätten är klar"
local message = "Tvätten var klar klockan" .." ".. string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min)
fibaro:call(2, "sendEmail", subject, message)
fibaro:call(4, "sendEmail", subject, message)
fibaro:call(665, "sendEmail", subject, message)
fibaro:debug("Mail är skickade till Admin, RH och YH")
end
end
##########################################################
Min gamla ombyggda HC2 har fått ett nytt liv och min HC3 är nu nedkopplad.
HC2 med Home Assistant har blivit en riktig Game Changer och nu har jag hemautomatik på riktigt.
https://www.zwaveforum.se/viewtopic.php?t=7087
HC2 med Home Assistant har blivit en riktig Game Changer och nu har jag hemautomatik på riktigt.
https://www.zwaveforum.se/viewtopic.php?t=7087
Förlåt om jag drar upp en gammal tråd men tyckte det va bättre än att göra en ny
Har gjort LUA scener på tvättmaskin, torktumlare och diskmaskin exakt enligt Clabbes kodning.
Allt funkar bra förutom att timern på 60 sekunder (eller hur länge jag väljer att sätta den på) räknas på typ en sekund.
Varför blir det så? Är helt ny på det här
Har gjort LUA scener på tvättmaskin, torktumlare och diskmaskin exakt enligt Clabbes kodning.
Allt funkar bra förutom att timern på 60 sekunder (eller hur länge jag väljer att sätta den på) räknas på typ en sekund.
Varför blir det så? Är helt ny på det här
/Mvh Fredrik
Fibaro HC2.
Mest saker från Fibaro, sen lite blandat av diverse märken.
Fibaro HC2.
Mest saker från Fibaro, sen lite blandat av diverse märken.
- RH_Dreambox
- Z-Wave Kung
- Posts: 1203
- Joined: 03 Jan 2015, 16:49
- 9
- Location: Vegby
- Contact:
60'1000 (60x1000 förtydligat) innebär en minut eftersom klockan i scripten är tusendelar. 1000 = 1 sekund.
Till mitt tvättmaskinsscript kör jag 120'1000 dvs 2 minuter för att inte få falsktriggningar att maskinen är klar om den gör en liten "konstpaus" i programkörningen.
I mitt script har jag också lagt in en beräkning så att man får reda på hur mycket energi just den tvätten eller torktumlingen drog.
Till mitt tvättmaskinsscript kör jag 120'1000 dvs 2 minuter för att inte få falsktriggningar att maskinen är klar om den gör en liten "konstpaus" i programkörningen.
I mitt script har jag också lagt in en beräkning så att man får reda på hur mycket energi just den tvätten eller torktumlingen drog.
Min gamla ombyggda HC2 har fått ett nytt liv och min HC3 är nu nedkopplad.
HC2 med Home Assistant har blivit en riktig Game Changer och nu har jag hemautomatik på riktigt.
https://www.zwaveforum.se/viewtopic.php?t=7087
HC2 med Home Assistant har blivit en riktig Game Changer och nu har jag hemautomatik på riktigt.
https://www.zwaveforum.se/viewtopic.php?t=7087