Aller au contenu

Messages recommandés

Posté(e)

Pour info j'ai aussi ajouté une notification de début du cycle histoire de savoir quand il démarre pour par ex lors d'une programmation décalé et que je ne suis pas àla maison ;)

Posté(e)

Oui moi j'ai pas mis de notif de depart parce que sinon ma femme me flic pour voir àquel moment je l'ai mis :)

Pour l’évolution des icônes, je m'occupe de ça dès que j'ai 5min, en ce moment c'est bulletins/conseil de classe j'ai pas le temps !

Posté(e)

Bah en fait comme je l'ai fais, cela ne notifie qu'une fois le cycle démarré donc si tu programmes avec 4h de décalage Mme ne saura pas quand tu l'as réellement programmé lol

Posté(e)

Fait moi plusieurs relevés de machine pour confirmer cette courbe. Après je te bricolerai un truc pour checker tes cycles.

  • 7 mois après...
Posté(e)

Pour changer l'icône sur un de mes devices virtuel j'utilise le code ci-dessous. C'est àaffiner avec des tests sur les valeurs de retour mais ca marche.

Pour que l'icône change tout de suite j'ai été obligé de changer deux paramètres :

  • properties.DeviceIcon => Id de l'icône sous forme d'entier
  • properties.currentIcon => Id de l'icône sous forme de chaine :D
function ChangeDeviceIcon ( ip, port, user, pass, deviceid, iconid )
  HC2 = Net.FHttp(ip,port);
  HC2:setBasicAuthentication(user, pass);

  response ,status, errorCode = HC2:GET("/api/virtualDevices?id=" .. deviceid );
  jsonTable = json.decode(response);

  jsonTable.properties.deviceIcon = iconid;
  jsonTable.properties.currentIcon = tostring(iconid);
  json = json.encode(jsonTable);

  response2 ,status2, errorCode2 = HC2:PUT("/api/virtualDevices?id=" .. deviceid, json);
end  


ChangeDeviceIcon ( "192.168.0.100", "80", "admin", "admin", 9, 1016 )

Pour trouver les id de vos icones, on peut soit utiliser le HC2Toolkit soit afficher l'URL de l'image dans votre navigateur favoris et garder le chiffre aprés User.

http://192.168.0.100/fibaro/n_vicons/User1016.png
Posté(e)

Ils ont changé le nom des propriétés, ou c'est plus pris en compte en V4 ?

 

PS : Je suis un petit joueur je sui resté en 3.590 :P

Posté(e)

@Massalia, et juste un

fibaro:call(VD_ID, "setProperty", "currentIcon", value);

peut-être ?

 

;)

Posté(e)

Possible :)

 

J'arrive, laissez moi le temps de tout digérer, en plus je commence par des choses fondamentales comme changer les icones :60:

 

Merci KriKoff

Posté(e)

@BenjyNet, oui oui j'avais bien compris ça. Tu es vraiment sur de toi la :15:

fibaro:call(VD_ID, "setProperty", "currentIcon", value);

Ça marche très bien même dans une scène ;)

  • 2 mois après...
Posté(e)
Bonsoir, je voulais savoir si c'est possible d'adapté pour avoir la même chose chez moi.
Voila deux graphes de machine à  laver.

Je vois bien que je dois avoir id_wallplug à  13.

Cycle complet:

lave linge1

Première partie du cycle complet:

lave linge2

Deuxième partie du cycle complet:

lave linge3

Détail de fin de cycle complet:

lave linge4

2ème relevé:

2lave linge1

 

Comment déterminer ces cycles?

 

J'ai aussi un cycle pour mon sèche linge

 
Cycle complet:

lave linge1

Première partie du cycle complet:

lave linge2

Deuxième partie du cycle complet:

lave linge3

 

 

Posté(e)

Oui c'est très facile, change juste les puissances au niveau des boucles et les temps (fibaro:sleep). Si tu n'y arrives pas, je te filerai un coup de main. Il faudrait que tu zoomes aussi sur le début de ton cycle pour bien voir àcombien de watts il faut déclencher les boucles.

Posté(e)

Ok, je vais m'y plonger d'avantage pour savoir (surtout en lua vu que je ne connais pas trop). 

Je suppose qu'on peut plus regarder en détail sur la box pour le début du cycle? Car dans journalier, je vois plus bien les détails. 

 

Je vais essayer de comprendre ce que tu as écrit.

 

Flag, je ne sais pas ce que c'est.

Power 0 (éteint) power 1 (allumé)

 

Si on a une consommation supérieur à  500w, le lave linge est en route et la phase 1 aussi. 

On attend pendant 5 minutes. On vérifie tout les 2 minutes que la consommation est inférieur à  100w et quand on est dans ce cas, c'est la 2ème phase.

La phase 3, je ne comprend pas vu que je vois pas ce qu'est le flag. 

 

Si j'ai une déduction à  faire, une boucle qui tourne tous les 2 secondes qui dit que si on repasse jamais à  100w 150 fois, on peut dire que le lave linge ou seche linge est terminer. 

On envoie alors une notification (pour toi, a l'appareil 11, 8 et 10)

 

Et après, c'est si on a plus de 2w alors la machine est bien en route.

Et après, c'est la condition qui remet à  zéro le script.

 

Je vais installer camtasia pour garder la vidéo du sèche linge.

 

C'est quoi exactement les cycles de chaque machine. 

Rinçage, essorage, ...

Posté(e)

Je viens de réussir à  me servir du tutoriel pour la consommation sur un NAS (de Lazer) et donc j'ai un plus beau graphique avec. 

Mais bon j'ai eu un soucis avec le sèche-linge. C'est pour cela que je veux aussi cette notification.

J'ai eu encore un message me disant que le bac ou le filtre est pleins alors qu'il n'y était pas du tout. 

Je m'en suis aperçu car je n'avais plus de consommation après un peu plus d'une heure au lieu de 6h pour le précédent. 

Posté(e)

Alors je t'explique le script en commentaire :

--[[
%% autostart
%% properties
%% globals
--]]
 
-- Tumble dryer - process checker v 1.0.1 [03-2014]
-- Copyright © 2014 BenjyNet
 
local sourceTrigger = fibaro:getSourceTrigger();
local id_wallplug = 42;
local current_conso = 0;
local power = 0;
 
if (sourceTrigger["type"] == "autostart") then
	while true do
	local flag = 0;
        current_conso = tonumber(fibaro:getValue(id_wallplug, "valueSensor"));
	if current_conso > 500 then -- si la conso est supérieure à500W alors le cycle de seche-linge a démarré
		power = 1; -- la variable power indique que le sèche linge est allumé
		fibaro:debug(os.date() .. " - Start tumble dryer");
		fibaro:debug(os.date() .. " - PHASE 1");
		fibaro:sleep(5*60*1000); -- wait 5 min
		while current_conso > 500 do -- tant que la conso est supérieure à500W qu'on vérifie toute les 2 min, on reste dans la phase 1 sinon on continue
			fibaro:sleep(2*60*1000); -- check conso every 2 min
			current_conso = tonumber(fibaro:getValue(id_wallplug, "valueSensor"));
		end
		fibaro:debug(os.date() .. " - PHASE 2"); -- la conso est devenue inférieure à500W donc on passe en phase 2
		while current_conso > 100 do -- tant que la conso est supérieure à100W qu'on vérifie toute les min, on reste dans la phase 2 sinon on continue
			fibaro:sleep(1*60*1000); -- check conso every min
			current_conso = tonumber(fibaro:getValue(id_wallplug, "valueSensor"));
		end
		fibaro:debug(os.date() .. " - PHASE 3"); -- la conso est devenue inférieure à100W, on passe àla phase 3
		while (current_conso > 2 and flag < 149) do -- tant que la conso est supérieure à2W et que le flag est inférieur à149 (correspondant au temps durant lequel le seche linge défoule le linge soit environ 5min, si > alors le cycle de défoulage est fini et, en veille, le seche linge consomme 2W (donc pas éteint)). Dans ce cycle on oscille entre 2W et plus de 100W en dent de scie, le flag permet de distinguer ces dents de scies en surveillant toutes les 2s.
			if current_conso > 100 then
				flag = 0;
				current_conso = tonumber(fibaro:getValue(id_wallplug, "valueSensor"));
			else
				flag = flag + 1;
				current_conso = tonumber(fibaro:getValue(id_wallplug, "valueSensor"));
			end
			fibaro:sleep(2*1000); -- check conso every 2s
		end
		fibaro:debug(os.date() .. " - Tumble dryer process terminated"); -- comme on a plus de conso > à100W et qu'on est à2W depuis plus de 5 min c'est que le cycle 3 est fini.
		-- Send notification to cellphone here
		fibaro:call(11, "sendDefinedPushNotification", "3");
		fibaro:call(8, "sendDefinedPushNotification", "3");
		fibaro:call(10, "sendDefinedPushNotification", "3");
	end
	if current_conso > 2 then -- si la conso est > 2W c'est qu'il faut aller vider le seche linge et l'eteindre
		power = 1;
		fibaro:debug(os.date() .. " - Tumble dryer power ON - Please power OFF");
	end
	if (current_conso == 0 and power == 1) then -- si la conso est égale à0 et que le seche linge etait allumé c'est qu'on l'a éteint
		power = 0;
		fibaro:debug(os.date() .. " - Tumble dryer power OFF");
	end
	fibaro:sleep(5*60*1000); -- check if tumble dryer is ON every 5 min
	end
end
 

Normalement tu devrais comprendre le principe et l'adapter àce que tu veux faire. Tu peux même supprimer des boucles ou en rajouter. Perso, je pense que 2 boucles (cycle 1 et 2) suffiraient dans ton cas. Essaye, copie ici ton code (ça permet de comprendre le lua, tu verras c'est un cas simple pas très difficile (bien loin des trucs de ouf de steven ou krikri !)). Je te filerai un coup de main si tu galères.

  • 2 mois après...
Posté(e)

Bonsoir à  tous,

 

Quelqu'un a tester ca sur le dernier firmware ?

 

Question idiote, désolé, mais vous placez le script dans une scène, pour la relier sur le wall plug vous faites comment ?

 

Merci de votre aide

Posté(e)

Salut Ben,

 

Changer l'id du WP et j'ai ca dans le debug

 

[ERROR] 21:50:28: line 11: attempt to call method 'getSourceTrigger' (a nil value)

×
×
  • Créer...