Un peu de lecture pour ceux que ça intéresse … Avec l’arrivée prochaine d’un nouveau module pour linky qui intègre zigbee et wifi
Norbert
Un peu de lecture pour ceux que ça intéresse … Avec l’arrivée prochaine d’un nouveau module pour linky qui intègre zigbee et wifi
Norbert
En précommande.
Bonjour,
N’ayant pas de Zigbee, et mon linky étant installé à 50 m de ma maison, le fait qu’il soit en wifi me tente bien (mais je serai en limite de portée).
Le suivi me fait cependant un peu peur.
50m, avec un module dans une boite derrière un disjoncteur qui draine pas mal de puissance … Ca parait quand meme chaud en WIFI
50 m je l’ai avec mon téléphone car la box est bien placé et vue dégagée (et la box bouygues est performante) . Mais en effet j’ai peur avec la proximité du matériel électrique.
Mets le module zigbee/wifi dans ton logement et tire 2 fils jusqu’au linky, c’est ce que j’ai fait.
A voir comment se passe l’alim de ces modules, moi j’ai un simple esp32, avec une carte de converssion de signal maison, et donc alimentée en 5V à part.
Je cherchais depuis longtemps un module autonome, wifi et mqtt.
Merci pour l’info.
Hello,
c’est alimenté par le compteur Linky, pas d’alim en plus de c que j’ai compris d’après la vidéo YouTube sur le produit
Et c’est d’ailleurs le problème qu’ils ont eu pour utiliser le Wi-Fi (alim linky faiblarde pour un module WiFi).
Alim nécessaire (par usb) uniquement pour les MAJ.
Je ne veux pas mélanger courants faibles / forts dans le même fourreau.
Je pourrais faire comme pour mon portail et mettre un fourreau dans le fourreau, mais j’ai un peu la flemme et il faudrait que je loue encore une aiguille.
Bonjour acheté et installé , toutes les données du compteur remontent .Configuré en zigbee ( Z2m),
Précommandé en décembre, reçu en juin comme prévu. Support réactif, la personne m’a répondu le jour meme.
Bonjour à tous,
J’ai un TICMeter (le modèle sans Tuya) que je n’ai pas encore trouvé le temps d’installer.
D’autres que @xav31190 ont-ils fait l’installation ?
Faut-il choisir Zigbee ou MQTT sur le TICMeter?
Merci de votre aide
Pour ma part, je l’ai mis en zigbee.Marche trés bien
Fonctionnement en mode WIFI + MQTT.
Virtuel + bloc code pour décoder le registre de Statuts (STGE) et les relais :

$STGE_hexa = cmd::byString('#[Fluides][TicMeter][Registre de Statuts (STGE)]#')->execCmd();
$STGE_bin = substr(str_repeat('0', 32) . base_convert($STGE_hexa, 16, 2), -32, 32);
$scenario->setLog($STGE_hexa . ' ==> ' . $STGE_bin);
$scenario->setLog($STGE_bin);
$STGE01 = substr($STGE_bin, -1); //bit 0
$STGE02 = substr($STGE_bin, -4, 3); //bits 1 à 3
$STGE03 = substr($STGE_bin, -5, 1); // bit 4
$STGE04 = substr($STGE_bin, -6, 1); // bit 5
$STGE05 = substr($STGE_bin, -7, 1); // bit 6
$STGE06 = substr($STGE_bin, -8, 1); // bit 7
$STGE07 = substr($STGE_bin, -9, 1); // bit 8
$STGE08 = substr($STGE_bin, -10, 1); // bit 9
$STGE09 = substr($STGE_bin, -14, 4); // bits 10 à 13
$STGE10 = substr($STGE_bin, -16, 2); // bits 14 et 15
$STGE11 = substr($STGE_bin, -17, 1); // bit 16
$STGE12 = substr($STGE_bin, -18, 1); // bit 17
$STGE13 = substr($STGE_bin, -19, 1); // bit 18
$STGE14 = substr($STGE_bin, -21, 2); // bits 19 et 20
$STGE15 = substr($STGE_bin, -23, 2); // bits 21 et 22
$STGE16 = substr($STGE_bin, -24, 1); // bit 23
$STGE17 = substr($STGE_bin, -26, 2); // bits 24 et 25
$STGE18 = substr($STGE_bin, -28, 2); // bits 26 et 27
$STGE19 = substr($STGE_bin, -30, 2); // bits 28 et 29
$STGE20 = substr($STGE_bin, -32, 2); // bits 30 et 31
$scenario->setLog($STGE20.$STGE19.$STGE18.$STGE17.$STGE16.$STGE15.$STGE14.$STGE13.$STGE12.$STGE11.$STGE10.$STGE09.$STGE08.$STGE07.$STGE06.$STGE05.$STGE04.$STGE03.$STGE02.$STGE01);
// Contact sec ==> 0=fermé / 1=ouvert
if ($STGE01) {
$position = 'Ouvert';
} else {
$position = 'Fermé';
}
cmd::byString('#[Fluides][STGE_decode][Contact sec]#')->event($position);
/* Organe de coupure ==> 0=fermé
1=ouvert sur surpuissance
2=ouvert sur surtension
3=ouvert sur délestage
4=ouvert sur ordre CPL ou Euridis
5=ouvert sur une surchauffe avec une valeur du courant supérieure au courant de commutation maximal
6=ouvert sur une surchauffe avec une valeur de courant inférieure au courant de commutation maximal
*/
$oDc = base_convert($STGE02, 2, 10);
switch ($oDc) {
case 0:
$position = 'Fermé';
break;
case 1:
$position = 'Ouvert sur surpuissance';
break;
case 2:
$position = 'Ouvert sur surtension';
break;
case 3:
$position = 'Ouvert sur délestage';
break;
case 4:
$position = 'Ouvert sur ordre CPL ou Euridis';
break;
case 5:
$position = 'Ouvert sur une surchauffe avec une valeur du courant supérieure au courant de commutation maximal';
break;
case 6:
$position = 'Ouvert sur une surchauffe avec une valeur de courant inférieure au courant de commutation maximal';
break;
default:
$position = 'Indéterminé';
}
cmd::byString('#[Fluides][STGE_decode][Organe de coupure]#')->event($position);
// État du cache-bornes distributeur ==> 0=fermé / 1=ouvert
if ($STGE03) {
$position = 'Ouvert';
} else {
$position = 'Fermé';
}
cmd::byString('#[Fluides][STGE_decode][État du cache-bornes distributeur]#')->event($position);
// Non utilisé 01
cmd::byString('#[Fluides][STGE_decode][Non utilisé 01]#')->event($STGE04);
// Surtension sur une des phases ==> 0=pas de surtension / 1=surtension
if ($STGE05) {
$position = 'Surtension';
} else {
$position = 'Pas de surtension';
}
cmd::byString('#[Fluides][STGE_decode][Surtension sur une des phases]#')->event($position);
// Dépassement de la puissance de référence ==> 0=pas de dépassement / 1=dépassement en cours
if ($STGE06) {
$position = 'Dépassement en cours';
} else {
$position = 'Pas de dépassement';
}
cmd::byString('#[Fluides][STGE_decode][Dépassement de la puissance de référence]#')->event($position);
// Fonctionnement Prod ou Conso ==> 0=consommateur / 1=producteur
if ($STGE07) {
$position = 'Producteur';
} else {
$position = 'Consommateur';
}
cmd::byString('#[Fluides][STGE_decode][Fonctionnement Prod ou Conso]#')->event($position);
// Sens de l’énergie active ==> 0=énergie active positive / 1=énergie active négative
if ($STGE08) {
$position = 'Négative';
} else {
$position = 'Positive';
}
cmd::byString('#[Fluides][STGE_decode][Sens de l’énergie active]#')->event($position);
/* Tarif en cours sur le contrat fourniture ==> 0=énergie ventilée sur Index 1
1=énergie ventilée sur Index 2
2=énergie ventilée sur Index 3
3=énergie ventilée sur Index 4
4=énergie ventilée sur Index 5
5=énergie ventilée sur Index 6
6=énergie ventilée sur Index 7
7=énergie ventilée sur Index 8
8=énergie ventilée sur Index 9
9=énergie ventilée sur Index 10
*/
$index = base_convert($STGE09, 2, 10) + 1;
$position = 'Energie ventilée sur Index ' . $index;
cmd::byString('#[Fluides][STGE_decode][Tarif en cours sur le contrat fourniture]#')->event($position);
/* Tarif en cours sur le contrat distributeur ==> 0=énergie ventilée sur Index 1
1=énergie ventilée sur Index 2
2=énergie ventilée sur Index 3
3=énergie ventilée sur Index 4
*/
$index = base_convert($STGE10, 2, 10) + 1;
$position = 'Energie ventilée sur Index ' . $index;
cmd::byString('#[Fluides][STGE_decode][Tarif en cours sur le contrat distributeur]#')->event($position);
// Mode dégradée de l’horloge ==> 0=horloge correcte / 1=horloge en mode dégradée
if ($STGE11) {
$position = 'Horloge en mode dégradée';
} else {
$position = 'Horloge correcte';
}
cmd::byString('#[Fluides][STGE_decode][Mode dégradée de l’horloge]#')->event($position);
// État de la sortie télé-information ==> 0=mode historique / 1=mode standard
if ($STGE12) {
$position = 'Mode standard';
} else {
$position = 'Mode historique';
}
cmd::byString('#[Fluides][STGE_decode][État de la sortie télé-information]#')->event($position);
// Non utilisé 02
cmd::byString('#[Fluides][STGE_decode][Non utilisé 02]#')->event($STGE13);
/* État de la sortie communication Euridis ==> 00=désactivée
01=activée sans sécurité
11=activée avec sécurité
*/
switch ($STGE14) {
case '00':
$position = 'Désactivée';
break;
case '01':
$position = 'Activée sans sécurité';
break;
case '11':
$position = 'Activée avec sécurité';
break;
default:
$position = 'Indéterminé';
}
cmd::byString('#[Fluides][STGE_decode][État de la sortie communication Euridis]#')->event($position);
/* Statut du CPL ==> 00=New/Unlock
01=New/Lock
10=Registered
*/
switch ($STGE15) {
case '00':
$position = 'New/Unlock';
break;
case '01':
$position = 'New/Lock';
break;
case '10':
$position = 'Registered';
break;
default:
$position = 'Indéterminé';
}
cmd::byString('#[Fluides][STGE_decode][Statut du CPL]#')->event($position);
// Synchronisation CPL ==> 0=compteur non synchronisé / 1=compteur synchronisé
if ($STGE16) {
$position = 'Compteur synchronisé';
} else {
$position = 'Compteur non synchronisé';
}
cmd::byString('#[Fluides][STGE_decode][Synchronisation CPL]#')->event($position);
/* Couleur du jour tempo ==> 0=Pas d‘annonce
1=Bleu
2=Blanc
3=Rouge
*/
$cJt = base_convert($STGE17, 2, 10);
switch ($cJt) {
case 0:
$position = 'Pas d‘annonce';
break;
case 1:
$position = 'Bleu';
break;
case 2:
$position = 'Blanc';
break;
case 3:
$position = 'Rouge';
break;
default:
$position = 'Indéterminé';
}
cmd::byString('#[Fluides][STGE_decode][Couleur du jour tempo]#')->event($position);
/* Couleur du lendemain tempo ==> 0=Pas d‘annonce
1=Bleu
2=Blanc
3=Rouge
*/
$cLt = base_convert($STGE18, 2, 10);
switch ($cLt) {
case 0:
$position = 'Pas d‘annonce';
break;
case 1:
$position = 'Bleu';
break;
case 2:
$position = 'Blanc';
break;
case 3:
$position = 'Rouge';
break;
default:
$position = 'Indéterminé';
}
cmd::byString('#[Fluides][STGE_decode][Couleur du lendemain tempo]#')->event($position);
/* Préavis pointes mobiles ==> 0=pas de préavis en cours
1=préavis PM1 en cours
2=préavis PM2 en cours
3=préavis PM3 en cours
*/
$pPm = base_convert($STGE19, 2, 10);
switch ($pPm) {
case 0:
$position = 'Pas de préavis en cours';
break;
case 1:
$position = 'Préavis PM1 en cours';
break;
case 2:
$position = 'Préavis PM2 en cours';
break;
case 3:
$position = 'Préavis PM3 en cours';
break;
default:
$position = 'Indéterminé';
}
cmd::byString('#[Fluides][STGE_decode][Préavis pointes mobiles]#')->event($position);
/* Pointe mobile (PM) ==> 0=pas de pointe mobile
1=PM1 en cours
2=PM2 en cours
3=PM3 en cours
*/
$pPm = base_convert($STGE19, 2, 10);
switch ($pPm) {
case 0:
$position = 'Pas de pointe mobile';
break;
case 1:
$position = 'PM1 en cours';
break;
case 2:
$position = 'PM2 en cours';
break;
case 3:
$position = 'PM3 en cours';
break;
default:
$position = 'Indéterminé';
}
cmd::byString('#[Fluides][STGE_decode][Pointe mobile (PM)]#')->event($position);
$relais_deci = cmd::byString('#[Fluides][TicMeter][RELAIS]#')->execCmd();
$relais_bin = substr(str_repeat('0', 8) . base_convert($relais_deci, 10, 2), -8, 8);
//$relais_bin = '10101101';
$scenario->setLog($relais_deci . ' ==> ' . $relais_bin);
$scenario->setLog($relais_bin);
$message = '';
for ($i = 1; $i <= 8; $i++) {
$bit = substr($relais_bin, -$i, 1);
$message = $bit . $message;
$id = 21228 + $i;
cmd::byId($id)->event($bit);
}
$scenario->setLog($message);