Aller au contenu

Recommended Posts

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Installé nickel, cela me permet d'exclure mon sensor motion du couloir et la lampe qui va avec :)

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

Hé même pas peur, en plus je remarque que tu as attendus que d'autres testent le code de Lazer avant :D

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven tu m'as bien faire rire.... un collègue qui passait par làm'a trouvé bien joyeux !

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Envoyé de mon iPhone àl'aide de Tapatalk

Partager ce message


Lien à poster
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 :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Non mais heuuu je te taquine, qui aime bien chatie bien :P

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Néanmoins, je l'ai fait et j'en ai profiter pour cacher la date si c'est celle du jour :)

Steven tu as fait cela comment?

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

Dear friends,

 

How may I leave only motion sensors in the list?

 

Thank you!!
Sasha

Partager ce message


Lien à poster
Partager sur d’autres sites

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. 

Partager ce message


Lien à poster
Partager sur d’autres sites
Chers amis, 

 

Comment puis-je laisser que des détecteurs de mouvement dans la liste? 

 

Merci, 

Sasha

Partager ce message


Lien à poster
Partager sur d’autres sites

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 

Partager ce message


Lien à poster
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.

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

×