Page 1 sur 1

IDs des sondes qui changent lors d'un changement de batterie ...

Publié : 27 août 2018, 11:43
par rimram31
Bonjour,

L'éternel problème (pour moi) de changement de pile/recharge d'une sonde (type oregon) qui entraine la déclaration d'un nouveau capteur et du coup un nouvel ID.

Pas de problème pour l'historique du capteur en faisant "remplacer" et en ayant pris soin auparavant de sauver le nom du capteur, la modification se fait assez facilement. Par contre gros souci lorsqu'on a utilisé d'autres système domotiques liés, je m'explique:

J'utilise un domoticz pi + un domoticz "slave" sur un pc (un nuc en réalité) + imperihome + alexa maintenant + accessoirement (mais pas nécessaire) un home assistant. Dans tout ces systèmes dépendants, si je veux "exporter" une sonde de T type Oregon, elle sera connue sous imperihome, dz slave ... par son ID, souci chaque fois que je dois changer de piles, l'ID change et du coup cette sonde sur tous les systèmes "externes" devient inconnue.

Jusqu'à présent je n'utilisais qu'imperihome, de temps en temps je devais faire quelques manip pour redéfinir ma/mes sondes reinitialisées, déjà pas glop mais maintenant j'utilise de plus en plus mon dz "secondaire" mais aussi Alexa depuis quelques temps (les sondes de T sont connues par leur ID). Bref, ça va devenir totalement ingérable.

Des idées ?

J'avais pensé un temps dupliquer tous mes capteurs par des capteur virtuels sur le dz "source" et lier ensuite les virtuels, avantage une seule modification (pour n "slaves") par capteur. J'ai aussi lu des manips sur la db ou après reinit + suppression de l'ancien on remet l'id d'origine.

Franchement pénible de ne pas pouvoir gérer "ses propres id" sous dz a moins que ça ait changé entre temps ?

Là, a chaud, l'idée la moins bete qui me vient serait d'écrire un script pour assister a la manip. avec modifications sqlite.

Re: IDs des sondes qui changent lors d'un changement de batterie ...

Publié : 27 août 2018, 12:18
par cyberbob
rimram31 a écrit :...
Des idées ?

J'avais pensé un temps dupliquer tous mes capteurs par des capteur virtuels sur le dz "source" et lier ensuite les virtuels, avantage une seule modification (pour n "slaves") par capteur. J'ai aussi lu des manips sur la db ou après reinit + suppression de l'ancien on remet l'id d'origine.

Franchement pénible de ne pas pouvoir gérer "ses propres id" sous dz a moins que ça ait changé entre temps ?

Là, a chaud, l'idée la moins bete qui me vient serait d'écrire un script pour assister a la manip. avec modifications sqlite.
Cette soluce que tu décrit ne serais pas la soluce la plus simple ?
Donc un script Lua "device" qui recopie la valeur de la sonde vers une sonde virtuelle, et lors du changement de pile en faisant "remplacer", peut importe si l'id change, ce seras la sonde virtuelle qui sera utilisée partout ailleurs et dont l'id ne changeras jamais ?
Mais une chose est a vérifier, lors du changement de sonde, en gardant le même nom, est ce que le script prendra la nouvelle sonde ?

Re: IDs des sondes qui changent lors d'un changement de batterie ...

Publié : 27 août 2018, 13:28
par rimram31
cyberbob a écrit :Cette soluce que tu décrit ne serais pas la soluce la plus simple ?
...
C'est là ou domoticz est pas très cohérent ... car en lua on va pouvoir manipuler par le nom de device et non l'id ... Effectivement l'idée a laquelle je pensais est de doubler chaque capteur + le script device qui fera l'update du device lié (mais quel device virtuel faut-il créer pour un capteur de T ?). Là "tout marche" sans modifications avec le "remplacer" + reprise du nom du device qui lui sera "conservé" par le script.

Si on a un device toto -> le device physique devient par exemple _realToto et on créé un device virtuel qui reprend le nom toto Un script device fait un if devicechanged['_realToto_Temperature'] => commandArray[vitrtualDeviceIdx] = { ['UpdateDevice'] = vitrtualDeviceIdx..'|0|'..temp } (si j'en crois https://www.domoticz.com/wiki/Events :)

Quand je change mes batteries et que je fait un "remplacer" + copier le nom (_realToto), le virtual lié n'a pas bougé et le script continue de fonctionner. Juste dommage de devoir dupliquer un device (et son historique) pour contourner le pb.

Re: IDs des sondes qui changent lors d'un changement de batterie ...

Publié : 27 août 2018, 13:52
par thier
En lua il existe la fonction otherdevices_idx qui récupère l'idx d'un device. Il suffit de conserver le même nom de device au changement de piles.
local idxcuisine = otherdevices_idx['temperature cuisine'] par exemple pour une sonde qui s'appelle température cuisine.