Aller au contenu

Evénements


Steven

Messages recommandés

je pense que le HC2 conserve des logs mais sur une durée réduite, ce qui est certain c'est que ce n'est pas accessible sauf avoir un accès "admin" sur la machine ;) d'ailleurs le support en remote session peut monitorer en temps réel l'activité du HC2 et il y a beaucoup d'informations. Un accès au logs serait un plus indéniable ....

Envoyé de mon iPhone àl'aide de Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

Je vous propose ma version, avec les ajouts/modifications suivantes :

  • ajout : la variable excluded_id permet d'exclure certains modules (par exemple chez moi j'exclue les cellules du portail qui détectent sans arrêt les passage de chats)
  • ajout : la variable max_events permet de paramétrer le nombre d'événements à  surveiller (parce qu'à  force d'exclure trop de modules, les 50 événements de base ne suffisaient plus, et seulement quelques lignes étaient remplies au lieu des 10 prévues)
  • optimisation : déplacement de la génération de la variable msg dans la section else afin de ne pas travailler inutilement
  • optimisation : ajout d'un break dès qu'on atteint les 10 lignes, afin de ne pas travailler inutilement

 

Et je vous propose l’icône suivante pour le module virtuel :

gallery_133_82_9136.png

local user = "admin"
local pwd = "password"
local excluded_id = {98, 127}
local max_events = 100

HC2 = Net.FHttp("127.0.0.1", 80)
HC2:setBasicAuthentication(user, pwd)
  
response = HC2:GET("/api/panels/event?last="..max_events.."&type=id")

local t = json.decode(response)
local j = 0
for i = 1, max_events do
  local exclude = false
  for k = 1, #excluded_id do
    if excluded_id[k] == t[i].deviceID then
      exclude = true
      break
    end
  end

  if (t[i].deviceType == "temperature_sensor") or
     (t[i].deviceType == "humidity_sensor") or
     (t[i].deviceType == "light_sensor") or
     exclude == true
  then
    -- pas interessant
  else
    local msg = fibaro:getName(t[i].deviceID) .. " ["..fibaro:getRoomName(fibaro:getRoomID(t[i].deviceID)) .. "] | " .. t[i].oldValue .. "->" .. t[i].newValue .. " | " .. os.date("%d/%m/%Y %H:%M:%S", t[i].timestamp)
    j = j + 1
	pcall(function() 
    	fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label"..j..".value", msg)
	end)
    if j >= 10 then break end
  end
end
  • Upvote 2
Lien vers le commentaire
Partager sur d’autres sites

Réflexion personnel :

 

"J'ai peur ....

 

Je vais mettre du code de Lazer dans ma HC2 ... c'est un peu comme demander un conseil à  Fredo ... ça craint.

 

Allez, courage, Steven, courage"

 

[pointeur sur le bouton Sauver]

On respire ... 1 ... 2 ... 3 

 

Heiiinnnn, quoi, ça marche !!!, c'est quoi ce délire, ça à  pas sauvé ? ... si ... hummm ok

 

Bon ben, bizarre mais cela fonctionne. C'est sà»rement parce qu'il est parti d'excellente base.

"

 

Trève de stupidité ... merci Lazer :)

  • Upvote 3
Lien vers le commentaire
Partager sur d’autres sites

Non mais heuuu c'est pas gentil ça.

Nous les Suisses, on est pas lent, on est réfléchi ... Bon OK on réfléchi longtemps ... Tellement longtemps que lorsqu'on aura pris notre décision, il sera trop tard.

N'ayant pas de module a exclure, je n'y voyais pas d'intérêt. Néanmoins, je l'ai fait et j'en ai profiter pour cacher la date si c'est celle du jour :)

Lien vers le commentaire
Partager sur d’autres sites

Comme ceci :

local user = "admin"
local pwd = "admin"
local excluded_id = {} -- {1,2,3}
local max_events = 50
 
HC2 = Net.FHttp("127.0.0.1", 80)
HC2:setBasicAuthentication(user, pwd)
 
response = HC2:GET("/api/panels/event?last="..max_events.."&type=id")
 
local t = json.decode(response)
local j = 0
	
local now = os.date("%d/%m/%Y")

function getDate(timestamp)
	return string.gsub(os.date("%d/%m/%Y %H:%M:%S", timestamp), now, "")
end	
	
for i = 1, max_events do
  local exclude = false
  for k = 1, #excluded_id do
    if excluded_id[k] == t[i].deviceID then
      exclude = true
      break
    end
  end
 
  if (t[i].deviceType == "temperature_sensor") or
     (t[i].deviceType == "humidity_sensor") or
     (t[i].deviceType == "light_sensor") or
     exclude == true
  then
    -- pas interessant
  else
    local msg = fibaro:getName(t[i].deviceID) .. " | " .. t[i].oldValue .. " -> " .. t[i].newValue .. " | " .. getDate(t[i].timestamp)
    j = j + 1
	pcall(function() 
    	fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label"..j..".value", msg)
	end)
    if j >= 10 then break end
  end
end

Lignes ajoutées : 15, 17, 18 et 19

Ligne modifiée : 37 (attention, j'ai enlevé la pièce) :)

  • Upvote 2
Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Just replace / Remplace juste

  if (t[i].deviceType == "temperature_sensor") or
     (t[i].deviceType == "humidity_sensor") or
     (t[i].deviceType == "light_sensor") or
     exclude == true
  then 

by / par

  if (t[i].deviceType ~= "motion_sensor") or
     exclude == true
  then 
Lien vers le commentaire
Partager sur d’autres sites

local user = "admin"
local pwd = "********"
local excluded_id = {98, 127}
local max_events = 100

HC2 = Net.FHttp("127.0.0.1", 80)
HC2:setBasicAuthentication(user, pwd)
 
response = HC2:GET("/api/panels/event?last="..max_events.."&type=id")
 
local t = json.decode(response)
local j = 0
for i = 1, max_events do
  local exclude = false
  for k = 1, #excluded_id do
    if excluded_id[k] == t[i].deviceID then
      exclude = true
      break
    end
  end
 
  if (t[i].deviceType ~= "motion_sensor") or
     exclude == true
  then 
    -- pas interessant
  else
    local msg = fibaro:getRoomName(fibaro:getRoomID(t[i].deviceID)) .. " | " .. t[i].oldValue .. "->" .. t[i].newValue .. " | " .. os.date("%d/%m %H:%M", t[i].timestamp)
    j = j + 1
	pcall(function() 
    	fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label"..j..".value", msg)
	end)
    if j >= 10 then break end
  end
end

rectifiée cela. Il ne fonctionne pas.

Lien vers le commentaire
Partager sur d’autres sites

Work well on my computer (just copied and test it), I just had to change this : 

Fonctionne bien sur mon ordinateur (juste copier et testé). J'ai juste modifié ceci :

local user = "admin"
local pwd = "********"
local excluded_id = {98, 127}
local max_events = 100 

 
And change max_events to 1000  

Et j'ai changé max_events à  1000

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...
×
×
  • Créer...