Page 7 sur 16
Re: Keros : Mon projet, mon matos & des infos
Publié : 05 mai 2021, 16:36
par Doudy
Hou la la
Ca m'a l'air compliqué tout ça !
Je vais étudier cela à mon aise.
Merci
Re: Keros : Mon projet, mon matos & des infos
Publié : 06 mai 2021, 12:50
par Keros
C'est différent, oui, mais pas forcément beaucoup plus compliqué.
La gymnastique est différente par rapport au LUA.
Re: Keros : Mon projet, mon matos & des infos
Publié : 06 mai 2021, 14:04
par lost
Keros a écrit : 04 mai 2021, 22:16
@Lost, c'est vrai que le DzVents est un peu déroutant par rapport au LUA concernant le bloc Trigger. J'ai eu un petit peu de mal à l'assimiler.
Hello,
Pour ma part, je dirais que sur les exemples (pourtant simples) du wiki je n'ai absolument pas compris le lien trigger/execute.
Pourtant, je vis de faire du soft depuis 26 ans! Certes, c'est du "logiciel de base" (démarrage processeur/BSP...) donc au ras du matériel et en écrit C (pas vraiment le cadre d'application pour de l'objet, même en C++ ou on ne maitrisera jamais assez son utilisation mémoire, je n'ai donc vraiment pas la tête formatée à cela) avec un soupçon d'assembleur, mais en général j'arrive quand même à rentrer sans trop de problème dans des langages nouveaux. Le seul truc qui me pose problème, bien souvent, c'est de ne pas avoir à tout faire moi-même (bien souvent, je n'ai même pas une libc à dispo)!
Re: Keros : Mon projet, mon matos & des infos
Publié : 06 mai 2021, 22:29
par Keros
Je vais tenter une explication :
Code : Tout sélectionner
return {
on = {
devices = { 'bouton1', 'bouton2'},
timer = { 'every hour' },
httpResponses = { 'Json-devices' }
},
execute = function(domoticz, item)
if item.trigger == 'bouton1' then
domoticz.log("J'ai appuyer sur le bouton 1 !!", dz.LOG_INFO)
elseif item.trigger == 'bouton2' then
domoticz.log("J'ai appuyer sur le bouton 1 !!", dz.LOG_INFO)
end
if (item.isTimer) or (item.isDevice) then
domoticz.openURL({
url = 'http://127.0.0.1:8080/json.htm?type=devices',
callback = 'Json-devices'
})
end
if (item.isHTTPResponse) then
if (item.ok) then
domoticz.log("J'ai bien reçu un Json !!", dz.LOG_INFO)
end
end
end
}
En premier, on définit quels déclencheurs vont exécuter le script. Dans ce cas d'exemple, il y a :
- Des dispositifs : bouton1 et bouton2
- Un timer qui sera toutes les heures
- Une réponse HTTP que j'ai appelé Json-devices
Dès que l'un des déclencheurs va se produire, l'exécute sera lancé avec :
- domoticz qui sera le nom de la variable utiliser pour nommer DomoticZ (certains l'appel juste dz car c'est plus rapide à écrire)
- item qui sera le déclencheur qui aura lancé l'exécution.
Ta partie "script" commence à partir de là.
Je fais faire des choses différentes en fonction du nom du déclencheur (item.trigger).
Ensuite, si le déclencheur est un Dispositif ou un Timer, alors je lance une requète Json. Mais une fois l'url lancée, on "arrête" le script.
On attend la réponse, pour utiliser le déclencheur HttpResponses et faire la dernière partie du script.
**********
J'ai essayé de présenter plusieurs possibilités de lancement. Alors oui, dans cet exemple, je ne fais rien avec le retour des infos du Json : c'est pour un principe.
Keros : Mon projet, mon matos & des infos
Publié : 06 mai 2021, 23:29
par pierrotori
Bonsoir
Pareil j'ai tout migré sous Dzvents et supprime les blocky ainsi que les scripts dans l'interface il y a un an
Tous les scripts sont dans le répertoire script par contre j'ai gardé la notion de script device ou timer avec la codification d_ ou t_ peut être je devrais faire comme toi fusionner certains scripts par service ou fonction, pour avoir moins de script
En tout cas le Dzvents est assez simple à comprendre et à écrire. Du coup beaucoup plus simple de remettre le nez dedans 1an après
Pourrais tu m'en dire plus sur ce sujet Sur sauvegarde sur NAS - Hebdomadaire
Je sauvegarde tout le contenu de mon système sur un partage CIFS de mon NAS
Tu sauvegardes avec BackinTime l'os complet avec domoticz sur ton nas avec BackinTime . est ce possible de le faire avec rsync ?
as tu fait un essai avec un retour sur une sauvegarde complète OS faite sur ton NAS ?
question par rapport à ton explication au dessus :
quel est la subtilité entre item.trigger et item.isdevice ?
J’essaie d’y repondre aussi
Item.trigger retourne le nom de la device qui a bouge
Item.isdevice permet de savoir si c’est une device qui a declenche le script
Re: Keros : Mon projet, mon matos & des infos
Publié : 07 mai 2021, 22:21
par Keros
Avec BackInTime, je sauvegarde mes dossiers Home et Etc. Cela m'a déjà permis de remonter un système avec mes données et les configurations que j'avais faites. La sauvegarde sur NAS qui prend la partition est une deuxième sécurité.
Re: Keros : Mon projet, mon matos & des infos
Publié : 07 mai 2021, 23:20
par Flying Domotic
Doudy a écrit : 05 mai 2021, 08:58
Bonjour,
J'ai régulièrement (plusieurs fois par jour) le message :
Code : Tout sélectionner
2021-05-04 23:00:13.444 Error: EventSystem: Warning!, lua script /home/pi/domoticz/scripts/lua/script_time_openMeteo.lua has been running for more than 10 seconds
Si j'ai bien lu, il faudrait donc transposer ce lua en dzvents !
Y-a-t 'il un moyen aisé de le faire ?

En dehors de la cause proposée, il arrive aussi qu'un backup se lance en parallèle, et soit la cause du ralentissement de Domoticz/verrouillage de la base.
J'ai réglé ce type de souci en passant de RPi3/SD sur RPi4/M2 NVME (backup de 25 secondes à 0.1 secondes). Ca change vraiment la vie

Re: Keros : Mon projet, mon matos & des infos
Publié : 08 mai 2021, 07:54
par Keros
C'est vrai que je n'avais pas pensé aux sauvegardes automatiques. Il faut bien quelques secondes pour copier 50 Mo ...
Je vais regarder pour décaler mes scripts d'une ou deux minutes : je l'avais déjà fait pour certain car je pouvais avoir plusieurs requêtes Json en même temps.
Merci Flying Domotic
Re: Keros : Mon projet, mon matos & des infos
Publié : 08 mai 2021, 19:12
par pierrotori
avez vous automatisé la restauration de la sauvegarde de l'OS du nas sur une nouvelle carte SD ou un disque ?
Re: Keros : Mon projet, mon matos & des infos
Publié : 08 mai 2021, 21:23
par Keros
Dans quel sens tu voulais l'automatisé ?
Si je dois restaurer l'image du NAS, c'est que tout le système est tombé : je suis obligé de passer par un autre système.
Ca revient à remettre une image sur un disque : une ligne de commande suffit.