Page 1 sur 2

[RESOLU]Supprimer relève température du Raspberry

Publié : 12 nov. 2014, 17:29
par valdoison
Bonjour

Avec un Raspberry, la température de celui-ci est relevée toutes les 30 secondes.
Le problème c'est que ce script doit modifier le status d'un périphérique et donc les scripts de type "script_device_www.lua" sont exécutés toutes les 30 secondes.
J'ai essayé de supprimer le périphérique dans l'onglet "dispositif" mais il revient toutes les 30 secondes.
Comment faire pour arrêter le script de relève de température du Raspberry?

Re: Supprimer relève température du Raspberry

Publié : 12 nov. 2014, 17:33
par jackslayter
supprime le via l'onglet 'hardware' motherboard

Re: Supprimer relève température du Raspberry

Publié : 12 nov. 2014, 17:55
par valdoison
Je l'avais déjà fait, mais ce périphérique dépend du "system" et pas de la carte mère.

Re: Supprimer relève température du Raspberry

Publié : 12 nov. 2014, 18:04
par mike913
Bonjour
Liste nous ton script on te diras ce qui ne vas pas.

Re: Supprimer relève température du Raspberry

Publié : 12 nov. 2014, 18:35
par valdoison
Le problème ne vient pas du script_device_www.lua, mais du fait que la relève de la température du Raspberry est un script intégré au système qui s’exécute toutes les 30 secondes et lance, par incidence, tous les scripts de type "device".
Cela veut dire que les scripts de type device, à cause du script "température raspberry", sont exécutés toutes les 30 secondes c'est à dire plus souvent que les scripts de type "time" et sans que le statut d'un périphérique utile ne soit modifié.

Re: Supprimer relève température du Raspberry

Publié : 12 nov. 2014, 18:44
par mike913
C' est absolument Faux les scripts de type script_device_XXX seulement quand le dispositif concerné change d' état:
exemple:

Code : Tout sélectionner

-- Allumage Lumière Entree. 
commandArray = {}
if (devicechanged['Presence Entree'] == 'On' and otherdevices['Lumiere Entree'] == 'Off' and  (tonumber(otherdevices_svalues['Sensor Entree']) < 30)) then
	commandArray['Lumiere Entree']='On'
	print('Script Entree: #######################  Allumage ' .. otherdevices_svalues['Sensor Entree'].. ' Lux')
end
if (devicechanged['Presence Entree'] == 'Off' and otherdevices['Lumiere Entree'] == 'On') then
	commandArray['Lumiere Entree']='Off'
	print('Script Entree: #######################  Extinction '.. otherdevices_svalues['Sensor Entree'] .. ' Lux')
end
return commandArray
ce script s'exécute uniquement quand le dispositif Presence Entree change d' état.
et en mettant un print dans le script tu as une trace dans les logs ce qui te permet de le vérifier.

Re: Supprimer relève température du Raspberry

Publié : 12 nov. 2014, 18:58
par valdoison
C'est vrai, sauf que le script "relève température Raspberry" intégré au système à le même effet que le changement de statut d'un de mes détecteurs. Il lance mon script de type "device "toutes les 30 secondes.
Je l'ai vérifié en créant un script de type "device" qui incrémente un fichier à chacune de ses exécution avec l'heure. J'ai vu que ce script était exécuté à la même heure comme le script de température alors qu'aucun de mes détecteurs n'avaient détecté un mouvement.

Re: Supprimer relève température du Raspberry

Publié : 12 nov. 2014, 19:06
par mike913
Liste nous ton script on te diras ce qui ne vas pas.
Car chez moi le relevé de température du CPU n' influe pas sur les autres scripts.
Les scripts de type device agisse un peu comme une ligne dans la crontab, chaque fois que condition est vérifiée le script exécute la suite.
Il est bien évident que cette condition est vérifiée régulièrement.

Re: Supprimer relève température du Raspberry

Publié : 12 nov. 2014, 19:28
par valdoison
Je comprend bien tout cela.
Mais je pense, car je l'ai vérifié avec ce script de type "device" qui incrémente un fichier à chaque fois qu'il est exécuté.
Aucun de mes périphériques ne changent de status, et pourtant à chaque relevé de température du raspberry, le fichier est incrémenté à la même heure.
Bien sur, si un détecteur détecte, mon script est exécuté aussi.
Je te joins le script test: ( entre temps j'ai supprimé la détection de l'heure)
commandArray = {}
if (devicechanged['detecteur'] == 'On') then
if (timeofday['Daytime']) then
commandArray['test'] = 'On'
end
end
if (devicechanged['detecteur'] == 'Off' and otherdevices['test'] == 'On') then
commandArray['test'] = 'Off'
end
file = io.open("/home/pi/domoticz/scripts/lua/valeurs.txt","a+")
file:write("1".."\n")
file:close()
return commandArray
C'est bien entendu les 3 lignes avant le return commandArray qui sont intéressantes.
Le fichier valeurs.txt s'incrémente d'un 1 à chaque relève de la température du Raspberry alors que les périphériques "détecteur" et "test" n'ont pas changés.

Re: Supprimer relève température du Raspberry

Publié : 12 nov. 2014, 20:02
par mike913
valdoison a écrit :Je comprend bien tout cela.
Mais je pense, car je l'ai vérifié avec ce script de type "device" qui incrémente un fichier à chaque fois qu'il est exécuté.
Aucun de mes périphériques ne changent de status, et pourtant à chaque relevé de température du raspberry, le fichier est incrémenté à la même heure.
Bien sur, si un détecteur détecte, mon script est exécuté aussi.
Je te joins le script test: ( entre temps j'ai supprimé la détection de l'heure)
commandArray = {}
if (devicechanged['detecteur'] == 'On') then
if (timeofday['Daytime']) then
commandArray['test'] = 'On'
end
end
if (devicechanged['detecteur'] == 'Off' and otherdevices['test'] == 'On') then
commandArray['test'] = 'Off'
end
file = io.open("/home/pi/domoticz/scripts/lua/valeurs.txt","a+")
file:write("1".."\n")
file:close()
return commandArray
C'est bien entendu les 3 lignes avant le return commandArray qui sont intéressantes.
Le fichier valeurs.txt s'incrémente d'un 1 à chaque relève de la température du Raspberry alors que les périphériques "détecteur" et "test" n'ont pas changés.
ce qui est normal puisque ces 3 lignes ne sont pas comprise dans le bloc if then .... end , et donc elles s' exécutent chaque fois que domoticz parcoure la table des commandes.
Et je suppose que ton device 'test' ne change pas d' état à chaque fois.