Page 3 sur 4
Re: Weewx & Domoticz
Publié : 03 mars 2018, 09:50
par domopat24
J' ai modifié les liens des images de mes posts précédents, j'espère que c' est bon.
La commande que tu me propose ne donne pas de réponse.
Dans la base domoticz.db, je n'ai pas d'enregistrement à 00:00:00, comme sur la copie d'écran de la base si tu as pu la visualiser.
Suivant les jours, c'est soit 00:00:01 ou 00:00:02, le cumul de la veille est maintenu pendant 2 enregistrements.
Celui de minuit et minuit 5 ce n'est qu' à minuit 10 qu'il y a reset.
Weewx et Domoticz sont sur la même machine entre autre un Orange pi one derrière une Livebox.
D'autre part, à 00:03 j'ai un crontab qui me fait une sauvegarde des 2 bases, étant après 00:00:00, normalement il ne doit pas perturber domoticz.
Je te remercie de ton aide, ça me permet de progresser plus rapidement.
Re: Weewx & Domoticz
Publié : 03 mars 2018, 12:55
par olivier81
Bonjour,
J'avance un petit peu grâce à ce post. Je n'ai pas encore exploré la personalisation car je bloque sur la récupération de l'information UV.
J'ai ajouté un dispositif UV, et dans la vue Météo le dispositif n'affiche rien. En creusant, j'ai regardé les dispositifs et remarqué la chose suivante :

- UVOK.png (7.65 Kio) Consulté 8722 fois
Voilà mon dispositif avant que je ne l'alimente
Après alimentation via le script LUA

- UVHS.png (7.41 Kio) Consulté 8722 fois
On voit que la valeur va se mettre à la place de UVI...
Et là, si on regarde la vue météo, voilà ce qui s'afiche ...

- UVS.png (29.18 Kio) Consulté 8722 fois
A gauche vide à droite le non alimenté affiche bien la valeur initiale...
J'ai réussi à contourner mon problème en faisant un capteur générique comme celui-ci :

- GenericUV.png (8.32 Kio) Consulté 8722 fois
Qui lui fonctionne, mais je trouve ça pas très propre. Je pense que la valeur attendue par le capteur UV de domoticz n'est pas celle-là...
Voilà la ligne de code que j'utilise pour mettre à jour mon capteur
Code : Tout sélectionner
tempdevice = UV_device_idx..'|0|'..indexUV
commandArray [8] = {['UpdateDevice'] = tempdevice }
indexUV est ma valeur récupérée = 2.1 dans mon cas.
Si quelqu'un a une idée, je suis preneur.
Re: Weewx & Domoticz
Publié : 04 mars 2018, 23:08
par domcars0
domopat24 a écrit :J' ai modifié les liens des images de mes posts précédents, j'espère que c' est bon.
La commande que tu me propose ne donne pas de réponse.
Même pas un message d'erreur ?
domopat24 a écrit :
Dans la base domoticz.db, je n'ai pas d'enregistrement à 00:00:00, comme sur la copie d'écran de la base si tu as pu la visualiser.
Suivant les jours, c'est soit 00:00:01 ou 00:00:02, le cumul de la veille est maintenu pendant 2 enregistrements.
Celui de minuit et minuit 5 ce n'est qu' à minuit 10 qu'il y a reset.
Weewx et Domoticz sont sur la même machine entre autre un Orange pi one derrière une Livebox.
D'autre part, à 00:03 j'ai un crontab qui me fait une sauvegarde des 2 bases, étant après 00:00:00, normalement il ne doit pas perturber domoticz.
Je te remercie de ton aide, ça me permet de progresser plus rapidement.
Qu'est -ce que tu utilises comme soft pour lire tes tables sqlite ? Parce lorsqu'on regarde les valeurs dans les tables sur l'interface de Domoticz, on a bien des valeurs aux temps H:00:00, H+1:00:00, H+2:00:00 etc ... Ca serait bien d'utiliser sqlite3 pour lire les tables parce que là c'est louche ?
PS: Je viens de modifier le script car j'ai constaté que Domoticz veux le rainRate en 100ème de mm et pas en mm

Re: Weewx & Domoticz
Publié : 04 mars 2018, 23:18
par domcars0
@olivier81
Salut,
On dirait que le capteur Domoticz ne veux pas de nValue? T'as essayé:
Code : Tout sélectionner
tempdevice = UV_device_idx..'|'..indexUV
commandArray [8] = {['UpdateDevice'] = tempdevice }
Re: Weewx & Domoticz
Publié : 05 mars 2018, 18:59
par domcars0
Je viens de vérifier un peu plus sérieusement d'ou provenait le problème de la pluie au changement de jour, car même si ça fonctionnait pour moi , ça sentait fort la "bidouille".
En fait, dans Domoticz, le capteur de pluie attend la valeur des précipitations
de tous temps... Weewx ne doit donc pas envoyer
$day.rain.sum.formatted mais
$alltime.rain.sum.formatted
Il faut donc corriger le fichier domoticz.xml.tmpl en remplaçant :
<data realtime="Rain">$day.rain.sum.formatted<!--rain--></data>
par
<data realtime="Rain">$alltime.rain.sum.formatted<!--rain--></data>
(
J'ai modifié ce fichier dans le premier post de ce fil)
Attention! Pour ceux qui ont déjà utilisé le xml précédent il faut supprimer le capteur dans Domoticz et le recréer, on perd ainsi toutes les données précédentes

.
PS/ On peut tenter une bidouille pour ne pas perdre tous les enregistrements précédents : Avant de faire le changement il faut attendre un jour complet (en fait 24h x nombre de jours de logs en paramètre ) sans pluie (désolé pour les ch'ti

), sinon c'est très chiant, puis mettre en place le nouveau fichier domoticz.xml.tmpl .. tout à coup on va voir apparaître une précipitation digne du déluge... il faudra alors aller dans la base de données et mettre cette valeur de précipitations à toutes les entrées de la table Rain du device concerné. Ca devrait (peut-être) le faire. Ex: Si après la mise en place du nouveau domoticz.xml.tmpl, Domoticz affiche X.Y mm de pluie, alors on met à jour la table par : sqlite3> Update Rain Set Total=X.Y WHERE DeviceRowID=<idx_pluviometre> ;
Re: Weewx & Domoticz
Publié : 06 mars 2018, 21:22
par domopat24
Même pas un message d'erreur, par contre en mettant 00:00:02 ou 00:05:01 j'avais bien la valeur 5.1.
Je suis sous Windows10 avec WinSCP et DB Browser pour visualiser la base .
J'ai modifié le fichier domoticz.xml.tmp comme tu le préconises mais j'ai une erreur.
weewx[2853]: cheetahgenerator: Generate failed with exception '<class 'NameMapper.NotFound'>'
weewx[2853]: cheetahgenerator: **** Ignoring template /home/weewx/skins/Standard-FR/domoticz.xml.tmpl
weewx[2853]: cheetahgenerator: **** Reason: cannot find 'alltime'
Dans le sud-ouest aussi il pleut, ça permet de tester le pluviometre en attendant le soleil.
Re: Weewx & Domoticz
Publié : 06 mars 2018, 21:57
par domcars0
Tu as bien mis $alltime.rain.sum.formatted et pas alltime.rain.sum.formatted seulement?
Sinon tu as quelle version de weewx?
Re: Weewx & Domoticz
Publié : 07 mars 2018, 10:02
par domopat24
Oui, j'ai bien mis le dollar, au début j'ai corrigé mon fichier mais comme il y avait une erreur j'ai fait un copier/coller de ton code.
Pour Weewx, c'est la version 3.8.0.
Pour le doublon du cumul de la veille,il vient que j'avais commenté la RAZ de rain dans le fichier LUA.
C'était pour voir le comportement normal de Domoticz au changement de jour.
Bizarre ce double enregistrement et ce cumul négatif dans le log des dernières 24H de Domoticz.
La RAZ de rain au changement de jour supprime donc ce doublon.
Le 1er cumul enregistré du jour correspond à la dernière mesure de la veille entre 23.55.00 et 00.00.00 .
Donc le cumul du jour courant ne commence qu'à 00.05.00 et devrait intègrer la période entre 00.00.00 et 00.05.00.
Dans le traitement des données de la semaine, Domoticz commence la journée à 00.00.00 et récupère donc le cumul de la veille.
Avec le crontab à minuit on perd 5mn de cumul, effectivement, c'est pas rigoureux mais c'est aussi un problème chez moi.
Dans ma base Domoticz, les enregistrements ne sont pas tous calés pile poil, ils varient entre XX.XX.00 et XX.XX.02.
Il faudrait un libellé pour le dernier de la veille en 24.00.00 ou démarrer le jour courant à 00.05.00.
C'est mon analyse perso mais je n'ai pas de solution.
Bonne journée
Re: Weewx & Domoticz
Publié : 07 mars 2018, 11:50
par domcars0
Je ne comprends pas pourquoi tu as une erreur du generateur weewx sur le $alltime.rain.sum.formatted, j'ai aussi la V3.8.0 ?
J'ai oublié dans mon précédent post de dire que non seulement il faut modifier le fichier domoticz.xml.tmpl du serveur weewx , mais il faut aussi , bien sûr, virer la raz qui est faite dans le fichier script_time.weewx.lua du serveur domoticz c.à.d que :
Code : Tout sélectionner
-- Pluie Locale
thisday = tonumber(os.date("%d"))
if not ( rainrate == nil or rain == nil ) then
-- Si Chgt de jour on remet rain a zero
if not ( tonumber(day) == thisday ) then
rain = 0
end
tempdevice = rain_device_idx..'|0|'..rainrate..';'..rain
commandArray [3] = {['UpdateDevice'] = tempdevice }
end
devient
Code : Tout sélectionner
-- Pluie Locale
if not ( rainrate == nil or rain == nil ) then
tempdevice = rain_device_idx..'|0|'..rainrate..';'..rain
commandArray [3] = {['UpdateDevice'] = tempdevice }
end
NB: Le script du premier POST est à jour.
Re: Weewx & Domoticz
Publié : 08 mars 2018, 15:45
par domopat24
Dans un post précédent je n'avais pas tout mis du log de l'erreur de $alltime.
weewx[20087]: cheetahgenerator: Generate failed with exception '<class 'NameMapper.NotFound'>'
weewx[20087]: cheetahgenerator: **** Ignoring template /home/weewx/skins/Standard-FR/domoticz.xml.tmpl
weewx[20087]: cheetahgenerator: **** Reason: cannot find 'alltime'
weewx[20087]: **** Traceback (most recent call last):
weewx[20087]: **** File "/home/weewx/bin/weewx/cheetahgenerator.py", line 330, in generate
weewx[20087]: **** print >> _file, compiled_template
weewx[20087]: **** File "/usr/lib/python2.7/dist-packages/Cheetah/Template.py", line 1005, in __str__
weewx[20087]: **** rc = getattr(self, mainMethName)()
weewx[20087]: **** File "_home_weewx_skins_Standard_FR_domoticz_xml_tmpl.py", line 143, in respond
weewx[20087]: **** NotFound: cannot find 'alltime'
Peut-être que ce supplément d'infos va pouvoir te renseigner.
J'ai farfouillé sur le web mais je n'ai rien trouvé.
Dans les docs Weewx je n'ai pas vu d'infos concernant alltime par contre j'ai bien vu current,day,.......
PS: En ce moment pas de pluie, donc pas d'erreur de report!!!!!!