Merger des équipements entre eux dans jMQTT

Bonjour,

j’ai plusieurs équipements (routeurs solaires pour les CEs et pompe) sur des topics: routeur/70, routeur/71, routeur/72, etc… Après moults réflexions, et aussi car je ne vois pas l’intérêt de ne pas les regrouper, je pensais à comment faire pour déplacer toutes les commandes d’un seul équipement vers un autre équipement afin de ne garder d’un topic routeur et chaque CE: On, Off, Puissance etc… dans le même équipement jmqqt.

Merci
XabiX


Mes infos de config
OS version: debian 11 on lxc
PHP version: 7.4.33
Python version: 3.9.2
Core version: 4.4.8.1 (V4-stable)
Nb lines in http.error: 27
Plugins: AdGuard autoconso calendar cozytouch delestage enedis energy3 envoy frigate homeconnect JeedomConnect jMQTT mail MeteoFull mode myBMW namesoftheday nut pimpJeedom rfxcom script simupre smartthings solcast telegram virtual weather

jMQTT: 23.11.8 (2024-06-08 14:14:45) branch: stable
Nb Errors or Warnings in jMQTT logs: 0 (level is none)
Daemon Status: Started (2024-07-03 14:20:03)
Nb eqBrokers: 1 / eqLogics: 94 / cmds: 2146

dans le topic routeur/70/# tu crée un template 70
tu crée les template 71 72 …

ensuite tu crée un équipement routeur/# dans lequel tu importe les templates 70 71 72 …

ça devrait fonctionner

1 « J'aime »

oui mais les commandes id changent et alors il faut mettre à jour tous les scénarios etc…

L’outil « Remplacer » du core est là pour ça

Hello,

Sinon, il est possible de faire un scenario avec un bloc code pour déplacer directement les commandes dans le nouvel équipement, par ex :

$source_eq = 42;
$dest_eq = 44;
foreach(cmd::byEqLogicId($source_eq) as $cmd) {
  $cmd->setEqLogic_id($dest_eq);
  $cmd->save();
}

C’est aussi possible commande par commande :

$source_cmd = 4242;
$dest_eq = 44;
$cmd = cmd::byId($source_cmd);
$cmd->setEqLogic_id($dest_eq);
$cmd->save();

Il faut bien évidement ajuster le topic de souscription de l’équipement cible.
Attention, les blocs ci-dessus n’ont pas été testés.

Bad