Page 7 sur 35
Re: Domotique Piscine
Publié : 17 mai 2017, 21:54
par le belge
ha ! et pourquoi c'est pas bien ?

- Sans titre5.jpg (130.32 Kio) Consulté 7531 fois
Re: Domotique Piscine
Publié : 17 mai 2017, 22:04
par aleph0
ha ! et pourquoi c'est pas bien ?
Parce que si un hacker arrive à exploiter une faille dans domoticz, il aura un accès administrateur à ta machine et pourra faire ce qu'il en veut. Alors que si domoticz tourne sous un utilisateur non privilégié (et non sudoer's, hein ?!) le même pirate n'aura qu'un accès limité à ta machine et ne pourra faire que moins de dégats, ou devra faire plus d'efforts pour devenir administrateur et tu auras une chance de voir ce qu'il fait dans le logs
Mais ça n'a rien à voir avec ton problème actuel. sqlite3 est aussi accessible par root, donc c'est bon et du coup je commence à sécher. Va falloir creuser la ligne os.capture plus en détail, mais je vais devoir décrocher pour ce soir. Me reconnecte demain dans la journée
Bonne soirée !
Re: Domotique Piscine
Publié : 17 mai 2017, 22:06
par le belge
dakodak , va falloir que je regarde à ça alors ...
pas de souci , ça ne presse pas !
merci pour ton aide en tous cas ...
bonne soirée
Re: Domotique Piscine
Publié : 18 mai 2017, 19:41
par le belge
Bonjour ,
comment faire pour indiquer le chemin dans les appels système ?
Edit : J'ai oublié une dépendence importante !! Vous aurez noté que le script fait des requêtes sql sur la base domoticz pour récupérer la température moyenne de la veille, ou la durée de fonctionnement de la pompe. Il faut donc avoir sqlite3 d'installé sur l'ordi qui fait tourner domoticz, et déclaré dans le PATH. S'il n'est pas dans le path, indiquer le chemin complet dans les appels système
Re: Domotique Piscine
Publié : 19 mai 2017, 08:47
par aleph0
le belge a écrit :comment faire pour indiquer le chemin dans les appels système ?
Il te faut prendre un terminal, passer en root (utilisateur qui fait tourner domoticz) avec sudo su puis taper la commande
qui te retournera un truc du style : /usr/bin/sqlite3 Ensuite, dans les commandes os.capture, il te faut remplacer sqlite3 par /usr/bin/sqlite3 (le résultat de la commande which). Je ne pense pas que ce soit l'origine de ton problème, au vu des tests qu'on a fait avant-hier, mais ça ne coûte rien d'essayer !
Pour aller plus loin dans le diagnostic, remplace
Code : Tout sélectionner
PpeFait=os.capture('sqlite3 '..dbPath..' "select sum(percentage) from percentage where devicerowid='..idx_DebitFl..' and Date(date)=\''..today..'\'"')*5/cst_DebitFlNom
par
Code : Tout sélectionner
cmd='sqlite3 '..dbPath..' "select sum(percentage) from percentage where devicerowid='..idx_DebitFl..' and Date(date)=\''..today..'\'"'
print(cmd)
PpeFait=os.capture(cmd)*5/cst_DebitFlNom
et poste le résultat de la commande print(cmd) stp
Re: Domotique Piscine
Publié : 19 mai 2017, 09:40
par aleph0
@lebelge :
Oops, je viens de réaliser qqch avec sqlite3 !! Si on lance sqlite3 avec un nom de dB non existant, il la crée au lieu de donner une erreur !! du coup, les tests qu'on a fait ne permettent pas de vérifier qu'on ouvre la bonne dB ! Vérifie que le champs local dbPath = "/var/domoticz/domoticz.db" pointe bien sur le chemin d'accès de TA dB domoticz !
Re: Domotique Piscine
Publié : 19 mai 2017, 17:43
par le belge
Bonjour ,
désolé , je viens juste de rentrer du travail ...
je viens de tester la commande : wich sqlite3
et voici la réponse : /usr/bin/sqlite3
Vérifie que le champs local dbPath = "/var/domoticz/domoticz.db" pointe bien sur le chemin d'accès de TA dB domoticz !
désolé mais je fais comment pour ça ?
je ne trouve pas la ligne :
PpeFait=os.capture('sqlite3 '..dbPath..' "select sum(percentage) from percentage where devicerowid='..idx_DebitFl..' and Date(date)=\''..today..'\'"')*5/cst_DebitFlNom
Re: Domotique Piscine
Publié : 19 mai 2017, 21:13
par Jeff
En haut du script, 1ère ligne après --paramètres...
Re: Domotique Piscine
Publié : 20 mai 2017, 09:54
par le belge
bonjour ,
je viens de modifier l'accès à la db ...
j'attends pour voir le changement !
Re: Domotique Piscine
Publié : 20 mai 2017, 10:21
par le belge
on progresse :
Error: EventSystem: in gestion piscine: [string "--[[ Script de gestion de la piscine ..."]:214: attempt to compare nil with number
La ligne en question :
if (val_Tair <= 1) and val_PpeFl == "Off" then