Aller au contenu

Messages recommandés

Posté(e)

Il trace les actions reçues ou envoyés par la HC2.

 

En effet, cela serait sympa n'avoir le log des trames mais je ne pense pas que la HC2 les stockes :(

 

@Krikroff, une petite idée ?  :D Si tu réponds v4 ... tu sors :)

Posté(e)

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

Posté(e)

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
Posté(e)

nouvelle version adoptée..

 

 

C'est quand même strange de ne pas pouvoir savoir quel module lance les trames  :mellow:

 

Je sens que ce weekend je vais jouer au ping-pong avec les motions  ;)

Posté(e)

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
Posté(e)

@hansolo, C'est normal il est suisse faut lui laisser le temps d'arriver

Envoyé de mon iPhone àl'aide de Tapatalk

Posté(e)

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 :)

Posté(e)

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
  • 1 mois après...
Posté(e)

Bonjour

 

Merci d'écrire exclusivement en Francais.

Utiliser "google translate" si nécessaire.


 

 

hello 

 

Thank you write exclusively in French. 

Use "google translate" if necessary. 

Posté(e)

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 
Posté(e)
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.

Posté(e)

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

Posté(e)

Ok, they have change all the API so this can't work on 4.017  :(

Ils ont changer les API, plus rien de fonctionne en 4.017

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