Weewx & Domoticz sont dans un bateau ...

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
domopat24
Messages : 16
Inscription : 21 janv. 2018, 08:08

Re: Weewx & Domoticz

Message 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.
olivier81
Messages : 17
Inscription : 16 févr. 2018, 19:13

Re: Weewx & Domoticz

Message 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
UVOK.png (7.65 Kio) Consulté 8728 fois
Voilà mon dispositif avant que je ne l'alimente

Après alimentation via le script LUA
UVHS.png
UVHS.png (7.41 Kio) Consulté 8728 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
UVS.png (29.18 Kio) Consulté 8728 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
GenericUV.png (8.32 Kio) Consulté 8728 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.
domcars0
Messages : 238
Inscription : 18 févr. 2017, 20:23

Re: Weewx & Domoticz

Message 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 :|
La liberté a un prix... celui de l'effort.
domcars0
Messages : 238
Inscription : 18 févr. 2017, 20:23

Re: Weewx & Domoticz

Message 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 } 
 
La liberté a un prix... celui de l'effort.
domcars0
Messages : 238
Inscription : 18 févr. 2017, 20:23

Re: Weewx & Domoticz

Message 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 :cry: .

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 :lol: ), 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> ;
La liberté a un prix... celui de l'effort.
domopat24
Messages : 16
Inscription : 21 janv. 2018, 08:08

Re: Weewx & Domoticz

Message 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.
domcars0
Messages : 238
Inscription : 18 févr. 2017, 20:23

Re: Weewx & Domoticz

Message par domcars0 »

Tu as bien mis $alltime.rain.sum.formatted et pas alltime.rain.sum.formatted seulement?
Sinon tu as quelle version de weewx?
La liberté a un prix... celui de l'effort.
domopat24
Messages : 16
Inscription : 21 janv. 2018, 08:08

Re: Weewx & Domoticz

Message 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
domcars0
Messages : 238
Inscription : 18 févr. 2017, 20:23

Re: Weewx & Domoticz

Message 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.
La liberté a un prix... celui de l'effort.
domopat24
Messages : 16
Inscription : 21 janv. 2018, 08:08

Re: Weewx & Domoticz

Message 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!!!!!!
Répondre