Döda noder

Hjälp varandra att vara kreativa för att göra hemmet mer bekvämt.
Post Reply
User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
10
Location: Västerås

Det finns en del trådar här om döda noder, vissa funkar och vissa inte.
Är det någon som har en fungerande död nod kod som kollar noderna och försöker väcka dom, om det inte lyckats skicka push med vilken enhet som är död, inte bara "someone is dead"
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
SirMaggot
Medlem
Posts: 441
Joined: 18 Aug 2013, 10:36
10

Denna använder jag, tror jag hittade den på fibaros forum. (hittar inte tillbaka nu)
Den väcker döda mina döda enheter, men då jag inte haft någon som "dött på riktigt" så vet jag inte om push funkar.

Code: Select all

--[[
    %% properties
    %% autostart
    %% globals
    --]]

    local TotalDevices = 300 --max nr of devices

    while true do

      local timeNow = os.date('*t')
      local day = timeNow['day']
      local month = timeNow['month']
  	  local year = timeNow['year']
     
      local i = 1
      local anydead = 0
      while i < TotalDevices do
        --check if any dead
        local status = fibaro:getValue(i, 'dead');
        local name = fibaro:getName(i);
        local room = fibaro:getRoomNameByDeviceID(i);
       
        if status >= "1" then
          fibaro:debug(year.."-"..month.."-"..day..":"..i..' DEAD '..name..":"..room);
          fibaro:wakeUpDeadDevice(i)
          fibaro:sleep(5000) --check again in 5 sec
          status = fibaro:getValue(i, 'dead');
          if status >= "1" then
            anydead = 1; fibaro:debug('Really Dead')
          else
            fibaro:debug('Now OK '..name)
          end
        end
        i = i + 1
      end
     
      if anydead == 0 then
        --fibaro:debug('Nobody is dead :-) ')
      else
        fibaro:call(9, "sendPush","Somebody really DEAD ", name); -- CHANGE THIS
        --fibaro:call(2, 'sendEmail', 'Somebody really DEAD', '..')
        fibaro:debug('Device:"..name " is really DEAD')
      end
     
      -- abort any unnecesary scenes started
      if fibaro:countScenes() > 1 then fibaro:abort() end
     
      fibaro:sleep(15*60000) --repeat every 15 minutes
    end
User avatar
Bamsefar
Z-Wave Kung
Posts: 1233
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Jag använder i princip samma kod, som körs en gång i timmen från min TOD scen (den enda scenen jag har som gör sleep - och som alltså körs dygnet runt):

Code: Select all

--[[ 
%% properties 
%% autostart 
%% globals 
--]] 

-- abort any unnecesary scenes started 
if fibaro:countScenes() > 1 then fibaro:abort() end 

local TotalDevices = 300 --max nr of devices 
local timeNow = os.date('*t') 
local day = timeNow['day'] 
local month = timeNow['month'] 
local i = 1 
local anydead = 0 

--check if any dead 
while i < TotalDevices do 
   local status = fibaro:getValue(i, 'dead'); 
   local name = fibaro:getName(i); 
   local room = fibaro:getRoomNameByDeviceID(i); 

   if status >= "1" then 
      fibaro:debug(day.."/"..month..":"..i..' DEAD '..name..":"..room); 
      fibaro:wakeUpDeadDevice(i) 
      fibaro:sleep(5000) --check again in 5 sec 
      status = fibaro:getValue(i, 'dead'); 
      if status >= "1" then
         fibaro:debug('Really Dead') 
      else 
         fibaro:debug('Now OK '..name) 
      end 
   end 
   i = i + 1 
end 
Jag vet att min snurra fungerar:
[DEBUG] 08:00:24: 7/8:29 DEAD Golvlampa Stereo:Vardagsrum
[DEBUG] 08:00:29: Now OK Golvlampa Stereo
Men det är ytterst sällan som jag har/får en död enhet - men bevisligen börjar det dyka upp nu när jag har massor av enheter... Vera'n hade aldrig problemet, och jag är rätt säker på att allt fungerar faktiskt, så det är troligen en bugg i HC2....
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
10
Location: Västerås

@sirMaggot, din funkar så långt att den väcker noderna, men den kan inte skicka push får detta i loggen
[ERROR] 16:33:48: line LuaScript:
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
SirMaggot
Medlem
Posts: 441
Joined: 18 Aug 2013, 10:36
10

Misstänkte att push inte funkade.
User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
10
Location: Västerås

Bamsefar wrote: Men det är ytterst sällan som jag har/får en död enhet - men bevisligen börjar det dyka upp nu när jag har massor av enheter... Vera'n hade aldrig problemet, och jag är rätt säker på att allt fungerar faktiskt, så det är troligen en bugg i HC2....
Jag hade inte heller det problemet när jag körde Razberryn, detta har börjat sen jag böt till HC.

Har en liten fundering på era luakoder, båda era kollar alla noder både på gott och ont, kan man förändra något så den kollar bara nätanslutna typ som kirkoff har i sin? "local nodes = {4,33,34,35,36,37,38,51,66};"
tyvärr så skickar den push direkt utan att försöka väcka enheten :(

Det kanske inte ha betydelse men jag funderar på alla batteridrivna enheter som får lov att väckas varje gång, kanske drar lite batteri i onödan.
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
dhanjel
Medlem
Posts: 264
Joined: 19 Apr 2013, 12:47
11
Contact:

Bamsefar wrote:Jag använder i princip samma kod, som körs en gång i timmen från min TOD scen (den enda scenen jag har som gör sleep - och som alltså körs dygnet runt):

Code: Select all

--[[ 
%% properties 
%% autostart 
%% globals 
--]] 

-- abort any unnecesary scenes started 
if fibaro:countScenes() > 1 then fibaro:abort() end 

local TotalDevices = 300 --max nr of devices 
local timeNow = os.date('*t') 
local day = timeNow['day'] 
local month = timeNow['month'] 
local i = 1 
local anydead = 0 

--check if any dead 
while i < TotalDevices do 
   local status = fibaro:getValue(i, 'dead'); 
   local name = fibaro:getName(i); 
   local room = fibaro:getRoomNameByDeviceID(i); 

   if status >= "1" then 
      fibaro:debug(day.."/"..month..":"..i..' DEAD '..name..":"..room); 
      fibaro:wakeUpDeadDevice(i) 
      fibaro:sleep(5000) --check again in 5 sec 
      status = fibaro:getValue(i, 'dead'); 
      if status >= "1" then
         fibaro:debug('Really Dead') 
      else 
         fibaro:debug('Now OK '..name) 
      end 
   end 
   i = i + 1 
end 
Jag vet att min snurra fungerar:
[DEBUG] 08:00:24: 7/8:29 DEAD Golvlampa Stereo:Vardagsrum
[DEBUG] 08:00:29: Now OK Golvlampa Stereo
Men det är ytterst sällan som jag har/får en död enhet - men bevisligen börjar det dyka upp nu när jag har massor av enheter... Vera'n hade aldrig problemet, och jag är rätt säker på att allt fungerar faktiskt, så det är troligen en bugg i HC2....
Fungerar tyvärr inte i senaste alphan.
[ERROR] 20:54:48: line 23: attempt to compare string with nil
User avatar
Bamsefar
Z-Wave Kung
Posts: 1233
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Inte direkt oväntat...

Men jag tänker inte ladda in vare sig alfa eller beta version av programvaran, så jag kommer således inte felsöka.
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
10
Location: Västerås

Är det någon som har en väcka döda noder som funkar i ver 4.xxx?
Har fortfarande problem med några enheter som är längst bort från HC:n
Har prövat med reconfigure med det blir ingen skillnad :(
Behöver inget push utan bara att men ser i debugen vilken enhet som vart död,
och att den väcks till liv.
Ser att enheterna är på fast dom skulle stängts av i morse runt 0500.
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
Post Reply