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&param=udevice&'
SWITCH_CMD='json.htm?type=command&param=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 ;):

Code : Tout sélectionner

script_time_ping_NAS.lua
comme ça c'est mieux :

Code : Tout sélectionner

-- script_time_ping_NAS.lua
ç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.