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

Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
rimram31
Messages : 659
Inscription : 04 oct. 2015, 11:22
Localisation : Toulouse

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

Message 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.
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
cyberbob
Messages : 511
Inscription : 28 nov. 2016, 19:43
Localisation : Belgique

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

Message 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 ?
Domoticz Stable V4.9700 sur Synology DSM 6.2 / 2 x RFlink V48.4 - 433.92MHz(Dio/Chacon) & 433.42MHz(RTS) / Script en LUA & Blocky
rimram31
Messages : 659
Inscription : 04 oct. 2015, 11:22
Localisation : Toulouse

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

Message 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.
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

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

Message 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.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
Répondre