Page 2 sur 2
Re: Domotique chez DumpDos
Publié : 04 déc. 2017, 13:06
par nene82
Bonjour,
Pouvez vous m'expliquer comment vous remontez sur Domoticz les appareils suivant :
- NAS
- Réseau
- L'onduleur (Charge batterie)
- Les débits montants et descendant de votre ADSL
je vous en remercie par avance
cdt,
Re: Domotique chez DumpDos
Publié : 05 déc. 2017, 22:34
par DumpDos
Bonsoir,
nene82 a écrit :
Pouvez vous m'expliquer comment vous remontez sur Domoticz les appareils suivant :
- NAS
- Réseau
- L'onduleur (Charge batterie)
- Les débits montants et descendant de votre ADSL
je vous en remercie par avance
cdt,
Pour le NAS et le Réseau, il s'agit d'un simple script qui vérifie leur présence par le biais d'un ping réseau. il suffi juste de l'adapter en modifiant les variables :
Code : Tout sélectionner
script_time_ping_reseau.lua
-------------------------------------------------------------------------------------------------------------
----------------------------------------- Variables à Editer ------------------------------------------------
-------------------------------------------------------------------------------------------------------------
local device = 'Réseau'
local ip_reseau = '8.8.4.4' -- (Serveur DNS)
local temps = 60
-------------------------------------------------------------------------------------------------------------
-------------------------------------- Fin des Variables à Editer -------------------------------------------
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
------------------------------------------------ Fonctions --------------------------------------------------
-------------------------------------------------------------------------------------------------------------
function difference (s)
year = string.sub(s, 1, 4)
month = string.sub(s, 6, 7)
day = string.sub(s, 9, 10)
hour = string.sub(s, 12, 13)
minutes = string.sub(s, 15, 16)
seconds = string.sub(s, 18, 19)
t1 = os.time()
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference_commande = os.difftime (t1, t2)
return difference_commande
end
-------------------------------------------------------------------------------------------------------------
---------------------------------------------- Fin Fonctions ------------------------------------------------
-------------------------------------------------------------------------------------------------------------
commandArray = {}
-- Vérification des conditions --
if (otherdevices[device]=='Off' or otherdevices[device]=='On') and (difference(otherdevices_lastupdate[device]) > temps) then
-- Envoi d'un ping --
ping_success = os.execute('ping -c1 '..ip_reseau)
-- Vérification des conditions --
if ping_success then
-- Changement d'état --
commandArray[device]='On'
-- Vérification des conditions --
elseif otherdevices[device]=='On' then
-- Changement d'état --
commandArray[device]='Off'
end
end
return commandArray
Pour l'onduleur, il doit disposer d'un port USB/Série permettant la remontée d'informations.
De mon coté je dispose d'un onduleur de la marque "APC" relié en USB à mon RPI et utilise le script suivant :
Code : Tout sélectionner
#!/bin/bash
#Script permettant la récupération des variables onduleur vers DZ
SERVER='192.168.0.10:8080/'
SERVER_CMD='json.htm?type=command¶m=udevice&'
SWITCH_CMD='json.htm?type=command¶m=switchlight&'
IDX1='568'
IDX2='566'
IDX3='569'
IDX4='567'
data=`apcaccess status`
#apc_total = "apcaccess status"
#echo "$data"
ups_stat=`awk '/STATUS / {print $3}' <<< "$data"`
ups_volts=`awk '/LINEV / {print $3}' <<< "$data"`
ups_charge=`awk '/BCHARGE / {print $3}' <<< "$data"`
ups_autono=`awk '/TIMELEFT / {print $3}' <<< "$data"`
#echo $apc_stat
#echo $apc_volts
#echo $apc_itemp
#echo $apc_load
hostcmd="http://${SERVER}${SERVER_CMD}idx=${IDX1}&nvalue=0&svalue=${ups_autono}"
curlres=`curl -sS $hostcmd`
hostcmd="http://${SERVER}${SERVER_CMD}idx=${IDX2}&nvalue=0&svalue=${ups_volts}"
curlres=`curl -sS $hostcmd`
hostcmd="http://${SERVER}${SERVER_CMD}idx=${IDX3}&nvalue=0&svalue=${ups_charge}"
curlres=`curl -sS $hostcmd`
if [ "$ups_stat" = "ONLINE" ]; then
#Passage inter a ON
hostcmd="http://${SERVER}${SWITCH_CMD}idx=${IDX4}&switchcmd=On&level=0"
curlres=`curl -sS $hostcmd`
else
#Passage inter a OFF
hostcmd="http://${SERVER}${SWITCH_CMD}idx=${IDX4}&switchcmd=Off&level=0"
curlres=`curl -sS $hostcmd`
fi
Et enfin en ce qui concerne le débit internet je vous laisse faire un petit tour par ici :
http://easydomoticz.com/foru/viewtopic.php?f=10t=587
En espérant que tout cela vous aidera.
DumpDos
Re: Domotique chez DumpDos
Publié : 11 déc. 2017, 08:59
par nene82
Bonjour,
Je vous remercie beaucoup.
Bien cordialement.
Re: Domotique chez DumpDos
Publié : 30 juil. 2018, 15:07
par nene82
Bonjour,
Voilà ce que me répond domoticz, je suis désolé je n'y arrive pas
"2018-07-30 15:03:00.508 Error: EventSystem: in script_time_ping_NAS.lua: [string "script_time_ping_NAS.lua..."]:6: syntax error near 'local'"
Votre script (mal) modifié
script_time_ping_NAS.lua
-------------------------------------------------------------------------------------------------------------
----------------------------------------- Variables à Editer ------------------------------------------------
-------------------------------------------------------------------------------------------------------------
local device = 'NAS'
local ip_reseau = '192.168.68.109' (Serveur DNS)
local temps = 60
-------------------------------------------------------------------------------------------------------------
-------------------------------------- Fin des Variables à Editer -------------------------------------------
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
------------------------------------------------ Fonctions --------------------------------------------------
-------------------------------------------------------------------------------------------------------------
function difference (s)
year = string.sub(s, 1, 4)
month = string.sub(s, 6, 7)
day = string.sub(s, 9, 10)
hour = string.sub(s, 12, 13)
minutes = string.sub(s, 15, 16)
seconds = string.sub(s, 18, 19)
t1 = os.time()
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference_commande = os.difftime (t1, t2)
return difference_commande
end
-------------------------------------------------------------------------------------------------------------
---------------------------------------------- Fin Fonctions ------------------------------------------------
-------------------------------------------------------------------------------------------------------------
commandArray = {}
-- Vérification des conditions --
if (otherdevices[device]=='Off' or otherdevices[device]=='On') and (difference(otherdevices_lastupdate[device]) > temps) then
-- Envoi d'un ping --
ping_success = os.execute('ping -c1 '..ip_reseau)
-- Vérification des conditions --
if ping_success then
-- Changement d'état --
commandArray[device]='On'
-- Vérification des conditions --
elseif otherdevices[device]=='On' then
-- Changement d'état --
commandArray[device]='Off'
end
end
return commandArray
En fait, j'ai plusieurs scripts qui ne marchent pas, car mal adaptés.
peut être que votre correction me permettra de valider les autres.
merci de vos retours
Re: Domotique chez DumpDos
Publié : 01 août 2018, 06:54
par DumpDos
Bonjour, je pense que le problème est ici .
local ip_reseau = '192.168.68.109' (Serveur DNS)
Lorsque vous mettez un commentaire dans un script , il faut toujours le " commenter " pour pas qu'il ne soit interprété comme une commande, une variable ou encore une fonction. Ici (Serveur DNS) n'est pas commenté, d'ailleurs c'est de ma faute.
Dans un lua, on rajoute toujours deux tirets (--) avant le commentaire.
Vous pouvez remplacer par :
local ip_reseau = '192.168.68.109' -- (NAS)
Ou sans commentaire :
local ip_reseau = '192.168.68.109'
Re: Domotique chez DumpDos
Publié : 01 août 2018, 17:57
par nene82
Bonjour et merci pour votre patience, mais non ça ne marche pas.
Dans le log
""2018-07-30 15:03:00.508 Error: EventSystem: in script_time_ping_NAS.lua: [string "script_time_ping_NAS.lua..."]:6: syntax error near 'local'"
la ligne 6 correspondrait plutôt au Device.
6 local device = 'NAS'
Manifestement, j'ai fait au moins 2 erreurs....
incompréhensible IoI
Cdt
Re: Domotique chez DumpDos
Publié : 01 août 2018, 18:28
par DumpDos
nene82 a écrit :Bonjour et merci pour votre patience, mais non ça ne marche pas.
Dans le log
""2018-07-30 15:03:00.508 Error: EventSystem: in script_time_ping_NAS.lua: [string "script_time_ping_NAS.lua..."]:6: syntax error near 'local'"
la ligne 6 correspondrait plutôt au Device.
6 local device = 'NAS'
Manifestement, j'ai fait au moins 2 erreurs....
incompréhensible IoI
Cdt
Vous avez oublié de commenter en première ligne je ne vois que ça

:
comme ça c'est mieux :
ça donne ça :
Code : Tout sélectionner
-- script_time_ping_NAS.lua
-------------------------------------------------------------------------------------------------------------
----------------------------------------- Variables à Editer ------------------------------------------------
-------------------------------------------------------------------------------------------------------------
local device = 'NAS'
local ip_reseau = '192.168.68.109' -- (NAS)
local temps = 60
-------------------------------------------------------------------------------------------------------------
-------------------------------------- Fin des Variables à Editer -------------------------------------------
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
------------------------------------------------ Fonctions --------------------------------------------------
-------------------------------------------------------------------------------------------------------------
function difference (s)
year = string.sub(s, 1, 4)
month = string.sub(s, 6, 7)
day = string.sub(s, 9, 10)
hour = string.sub(s, 12, 13)
minutes = string.sub(s, 15, 16)
seconds = string.sub(s, 18, 19)
t1 = os.time()
t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
difference_commande = os.difftime (t1, t2)
return difference_commande
end
-------------------------------------------------------------------------------------------------------------
---------------------------------------------- Fin Fonctions ------------------------------------------------
-------------------------------------------------------------------------------------------------------------
commandArray = {}
-- Vérification des conditions --
if (otherdevices[device]=='Off' or otherdevices[device]=='On') and (difference(otherdevices_lastupdate[device]) > temps) then
-- Envoi d'un ping --
ping_success = os.execute('ping -c1 '..ip_reseau)
-- Vérification des conditions --
if ping_success then
-- Changement d'état --
commandArray[device]='On'
-- Vérification des conditions --
elseif otherdevices[device]=='On' then
-- Changement d'état --
commandArray[device]='Off'
end
end
return commandArray
Re: Domotique chez DumpDos
Publié : 01 août 2018, 21:41
par nene82
re,
Cool, ça fonctionne! Super.
Sinon ce lien communiqué dans vos réponses précédentes ne fonctionne plus "Et enfin en ce qui concerne le débit internet je vous laisse faire un petit tour par ici :
http://easydomoticz.com/foru/viewtopic.php?f=10t=587"
Merci beaucoup.