scena /powiadomienia

  • 6 Odpowiedzi
  • 3574 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline Lukas76

  • ** 28
  • 0
scena /powiadomienia
« dnia: Grudzień 17, 2017, 08:19:51 pm »
Cześć,
potrzebuję pomocy jak zrobić scenę, która będzie informowała o tym, że pralka skończyła pranie  (W) będą w określonym przedziale) ale tylko raz- teraz wysyła informację co chwila- co zrobić żeby wysłała tylko raz?
*

Offline viperlodz

  • Moderator Globalny
  • ***** 838
  • 23
  • Nazwa i wersja ID: HC3 / HC2/ HC3L / Yubii
Odp: scena /powiadomienia
« Odpowiedź #1 dnia: Grudzień 17, 2017, 09:00:44 pm »
dodac zmienna
*

Offline Lukas76

  • ** 28
  • 0
Odp: scena /powiadomienia
« Odpowiedź #2 dnia: Grudzień 17, 2017, 09:28:28 pm »
Potrzebuje jaśniejszych odpowiedzi najlepiej gotowego rozwiązania:)  dziękuję
*

Offline Piotr B

  • ** 64
  • 0
Odp: scena /powiadomienia
« Odpowiedź #3 dnia: Grudzień 18, 2017, 08:52:58 am »
wydaje mi się (tak wynika z mojego doświadczenia ze zmywarką, pralką i suszarką), że problem jest wynikiem złych ustawień poziomów mocy.

Sugestia - zrób pranie (typowy program) i popatrz na wykres mocy. Potem ustaw wartości mocy tak aby były one dobrane do twojego urządzenia (możesz też posterować czasem - na przykład jak moc jest mniejsza niż 1 W przez 30 sekund to oznacza, że pralka skończyła prać.

Co do zmiennej - to trzeba w panelu zmiennych stworzyć nową zmienną i odpowiednio nią sterować - ale chyba nie będzie takiej potrzeby jak dobrze ustawisz moce.
*

Offline marcinwojciesz

  • Moderator Globalny
  • ***** 122
  • 3
  • Nazwa i wersja ID: HC2 4.042, Sterbox
Odp: scena /powiadomienia
« Odpowiedź #4 dnia: Luty 15, 2018, 12:09:31 pm »
Ja mam tak rozwiązane:

--[[

%% properties
236 power
136 power

%% globals

--]]

 

if (fibaro:countScenes()>1) then

                fibaro:debug("Scena pralki nie może być uruchomiona ponownie");

                fibaro:abort();

end

 

 

local lvn_WashingMachine_ID = 236;

local lvn_neTV_ID = 136;

local lvn_TimeCounter = 0;

local lvn_WashingMachinePowerON = 4.0;

local lvn_WashingTime = 0;

 

local lvt_WashingMachineStartTimeHours;

local lvt_WashingMachineStartTimeMins;

local lvt_WashingMachineStartTimeSecs;

 

local lvt_currentDate = os.date("*t");

local lvt_WashingMachineStartTime;

local lvt_WashingMachineStopTime;

local lvb_Washing = false;

local lvb_WashingFinished = false;

 

fibaro:debug("Scena - nadzór nad pralką uruchomiony");


if (tonumber(fibaro:getValue(lvn_WashingMachine_ID, "power")) > lvn_WashingMachinePowerON) and lvb_Washing == false then

                lvt_WashingMachineStartTime = tonumber(os.time());

                lvb_Washing = true;

                lvb_WashingFinished = false;

 

                fibaro:debug("Pralka wystartowała: " .. os.date());

              --  fibaro:debug("Aktualne zużycie prądu: "..power.." W");

end;


while lvb_Washing do   

                if tonumber(fibaro:getValue(lvn_WashingMachine_ID, "power")) > lvn_WashingMachinePowerON then

                lvn_TimeCounter = 0;

                elseif (tonumber(fibaro:getValue(lvn_WashingMachine_ID, "power")) < lvn_WashingMachinePowerON) and lvn_TimeCounter <= 60 then

                lvn_TimeCounter = lvn_TimeCounter + 1;

    elseif (tonumber(fibaro:getValue(lvn_WashingMachine_ID, "power")) < lvn_WashingMachinePowerON ) and lvn_TimeCounter > 60 then

                fibaro:debug("Pranie zakończone.");

        lvb_Washing = false;

                               lvt_WashingMachineStopTime = tonumber(os.time());

        lvb_WashingFinished = true;

   end;

 

                fibaro:sleep(1000);

end;

------------------------------------------------------------------------------

if lvb_WashingFinished == true then

                lvn_WashingTime = os.difftime (lvt_WashingMachineStopTime, lvt_WashingMachineStartTime);

                local lvt_WashingMachineStartTimeHours = string.format("%02.f", math.floor(lvn_WashingTime/3600));

                local lvt_WashingMachineStartTimeMins = string.format("%02.f", math.floor(lvn_WashingTime/60 - (lvt_WashingMachineStartTimeHours*60)));

                local lvt_WashingMachineStartTimeSecs = string.format("%02.f", math.floor(lvn_WashingTime - lvt_WashingMachineStartTimeHours*3600 - lvt_WashingMachineStartTimeMins*60));

                lvs_neTV_text = "Pranie zakończone. Czas prania: "..lvt_WashingMachineStartTimeHours..":"..lvt_WashingMachineStartTimeMins..":"..lvt_WashingMachineStartTimeSecs;

                fibaro:debug(lvs_neTV_text);

                fibaro:setGlobal("gls_neTV_text", lvs_neTV_text);

                fibaro:call(lvn_neTV_ID, "pressButton", "17");   
                fibaro:call(154, "pressButton", "20")
end;



wyświetla mi napis z netv na telewizorku i gada przez gadaczke. niestety nie wiem kto jest pierwszym autorem tego skryptu.
Pobaw się może coś pomoże.
*

Offline marecki_0luk1

  • Administratorzy
  • ***** 430
  • 26
  • Nazwa i wersja ID: HC3 5.070.42 / HC2 4.600
Odp: scena /powiadomienia
« Odpowiedź #5 dnia: Luty 15, 2018, 05:05:58 pm »
Ja wiem kto to napisal :) po zmiennych widać. Tak przy okazji chcialbym wszystkich namowic na korzystanie z tej konwencji bo bardo ulatwia prace.

przed nazwa zmiennej uzywamy 3 literek + "_"
np. lvb_Nazwa oznacza local variable typu boolean
lvt_Nazwa local variable time
gvs_Nazwa global varialble string

:) itd.

Ja mam tak rozwiązane:

--[[

%% properties
236 power
136 power

%% globals

--]]

 

if (fibaro:countScenes()>1) then

                fibaro:debug("Scena pralki nie może być uruchomiona ponownie");

                fibaro:abort();

end

 

 

local lvn_WashingMachine_ID = 236;

local lvn_neTV_ID = 136;

local lvn_TimeCounter = 0;

local lvn_WashingMachinePowerON = 4.0;

local lvn_WashingTime = 0;

 

local lvt_WashingMachineStartTimeHours;

local lvt_WashingMachineStartTimeMins;

local lvt_WashingMachineStartTimeSecs;

 

local lvt_currentDate = os.date("*t");

local lvt_WashingMachineStartTime;

local lvt_WashingMachineStopTime;

local lvb_Washing = false;

local lvb_WashingFinished = false;

 

fibaro:debug("Scena - nadzór nad pralką uruchomiony");


if (tonumber(fibaro:getValue(lvn_WashingMachine_ID, "power")) > lvn_WashingMachinePowerON) and lvb_Washing == false then

                lvt_WashingMachineStartTime = tonumber(os.time());

                lvb_Washing = true;

                lvb_WashingFinished = false;

 

                fibaro:debug("Pralka wystartowała: " .. os.date());

              --  fibaro:debug("Aktualne zużycie prądu: "..power.." W");

end;


while lvb_Washing do   

                if tonumber(fibaro:getValue(lvn_WashingMachine_ID, "power")) > lvn_WashingMachinePowerON then

                lvn_TimeCounter = 0;

                elseif (tonumber(fibaro:getValue(lvn_WashingMachine_ID, "power")) < lvn_WashingMachinePowerON) and lvn_TimeCounter <= 60 then

                lvn_TimeCounter = lvn_TimeCounter + 1;

    elseif (tonumber(fibaro:getValue(lvn_WashingMachine_ID, "power")) < lvn_WashingMachinePowerON ) and lvn_TimeCounter > 60 then

                fibaro:debug("Pranie zakończone.");

        lvb_Washing = false;

                               lvt_WashingMachineStopTime = tonumber(os.time());

        lvb_WashingFinished = true;

   end;

 

                fibaro:sleep(1000);

end;

------------------------------------------------------------------------------

if lvb_WashingFinished == true then

                lvn_WashingTime = os.difftime (lvt_WashingMachineStopTime, lvt_WashingMachineStartTime);

                local lvt_WashingMachineStartTimeHours = string.format("%02.f", math.floor(lvn_WashingTime/3600));

                local lvt_WashingMachineStartTimeMins = string.format("%02.f", math.floor(lvn_WashingTime/60 - (lvt_WashingMachineStartTimeHours*60)));

                local lvt_WashingMachineStartTimeSecs = string.format("%02.f", math.floor(lvn_WashingTime - lvt_WashingMachineStartTimeHours*3600 - lvt_WashingMachineStartTimeMins*60));

                lvs_neTV_text = "Pranie zakończone. Czas prania: "..lvt_WashingMachineStartTimeHours..":"..lvt_WashingMachineStartTimeMins..":"..lvt_WashingMachineStartTimeSecs;

                fibaro:debug(lvs_neTV_text);

                fibaro:setGlobal("gls_neTV_text", lvs_neTV_text);

                fibaro:call(lvn_neTV_ID, "pressButton", "17");   
                fibaro:call(154, "pressButton", "20")
end;



wyświetla mi napis z netv na telewizorku i gada przez gadaczke. niestety nie wiem kto jest pierwszym autorem tego skryptu.
Pobaw się może coś pomoże.
*

Offline marcinwojciesz

  • Moderator Globalny
  • ***** 122
  • 3
  • Nazwa i wersja ID: HC2 4.042, Sterbox
Odp: scena /powiadomienia
« Odpowiedź #6 dnia: Marzec 14, 2018, 06:09:19 pm »
hehe no tak - mogłem się domyślić - ok więc poprawiam.
JUŻ WIEM KTO JEST AUTOREM
OTÓŻ JEST TO MARECKI_0LUK1