Bonjour,
la réponse est non, rien ne sert de réinventer la roue lorsque l’appareil est déjà suffisamment smart.
C’est le cas pour bon nombre de chauffe-eau aujourd’hui.
bonne journée
C’est ce que je me disais, par ailleurs, une mauvaise programmation côté IPXV5 pourrait impliquer un mauvais fonctionnement, voir des risques…
de plus ces appareils gérent eux-mêmes les cycles anti légionelles selon les habitudes de consommation.
Si on coupe manuellement l’alimentation, on les empêche de faire la chauffe nécessaire, c’est dangereux.
C’est exactement à cela que je pensais en évoquant les risques potentiels…
Merci François, cela conforte l’idée que je commençais à me faire dernièrement et puis surtout, je libère un relai pour un usage plus marrant !
L’utilisation d’un contact NF d’un relais peut servir pour des équipements qui peuvent basculer entre deux modes. Moi j’utilise les 3 contacts des relais (donc NF inclus) pour la VMC (bascule entre vitesse 1 et vitesse 2) et pour une porte automatique intérieure (bascule entre mode automatique et sortie seule).
les relais inverseurs sont aussi utilisés pour des VR, alarme coupure du secteur si pas de X-PSU20, …
Ah ok, merci @jeff850 ; je comprends mieux. J’ai aussi une VMC qui fonctionne sur ce mode. Pas mal d’avoir un bouton poussoir proche de la cuisine pour activer l’un de ces modes…
Est ce que par exemple, je pourrais piloter deux ampoules (une rouge, une verte) en fonction de l’activation ou non du système d’alarme.
Ou par exemple d’un mode jour et un mode nuit…
Tout cela pour avoir un retour visible dans l’habitation de l’état du système.
Ou bien je me trompe…
oui, vous pouvez même piloter une led RGB avec 2 résistances et l’insérer où vous souhaitez.
Elle changera de couleur selon la position du relais.
Génial, via ce mode de fonctionnement alors en effet, pas mal d’usages que je n’avais pas imaginés puisque mal compris deviennent envisageables…
Ceci pourrait aller de paire et consolider le clavier homemade discuté par ailleurs !
EDIT : Messages déplacé depuis le sujet suivant :
Mmm mmm très très interessant !
Je cherche à faire la même chose mais complètement à l’envers.
Pour des raisons purement esthétiques, je voulais consacrer 6 entrées d’une X-24D pour fabriquer un clavier dans le même style que mes interrupteurs poussoirs. Ça donnerait ceci.
Ça devrait être possible avec quelques variables et les logiques combinatoires…
Sachant que je ne cherche pas un haut niveau de sécurité. Celui en haut à gauche pourrait être « Annuler », celui en bas à droite « Valider ». J’aurais donc un code à 4 chiffres mais potentiellement plus avec une redondance par exemple…
Qu’en dites vous ?
David
Bonjour,
vous pouvez effectivement combiner un compteur et des objets fonctions.
la première touche appuyée a sa valeur multipliée par 1000, la seconde par 100, la troisième par 10, et la 4ème par 1.
Vous additionnez le tout puis comparez à un code préenregistré dans une analogique.
Les 2 boutons restant sont pour annul et envoi par exemple.
Cela vous permet 44 combinaisons, soit 256 combinaisons.
Vous pouvez également jouer avec des double clicks, appuis courts, appuis longs.
Une dernière méthode simple consisterait à vérifier la séquence des 4 touches avec un compteur et quelques ANA8 virtuelles, mais dans ce cas un changement de code implique une reprogrammation.
Bonne journée
Bonjour David,
c’est hors sujet, mais voici une piste solide pour avancer avec votre clavier homemade :
Vous pourrez créer autant de codes souhaités, sur 4 digits, chaque code étant composé de chiffres 1, 2, 3 ou 4, avec des répétitions possibles. Il y a donc 256 combinaisons.
créer les éléments suivants sur ipx v5 :
- une ANA16 nommée rang
- une ana8 nommée userkey
- une ana16 nommée sequenceAttendue
- un compteur cpt1 de 0 à 4, set=0, step=1
- un compteur usercpt qui calculera la séquence entrée, set=0
- une fonction fx1 ==> formula: $rang$ * $userkey$
Créer les liens suivants :
- fx1.result lié avec usercpt.step
- créer un comparateur nommé CompCode1 et lier usercpt.valeur à l’entrée A, lier la variable sequenceattendue1 à l’entrée B, régler l’opérateur sur A==B
Vous pourrez créer plusieurs variables sequenceAttendue x et 1 comparateur par code valide, la sortie de chaque comparateur sera liée ou associée à une règle pour action si vous souhaitez une exécution sans validation par la touche Entrée.
Le moteur de scénario (règles non testées):
je suppose 4 touches ayant respectivement les valeurs 1,2,3,4 connectées sur ED1,…ED4, une touche RàZ (sur ED5) et une touche entrée sur ED6, une led verte, une led rouge (sur relais ou sortie collecteur ouvert)
// appuis touches
ed1 ou ed2 ou ed3 ou ed4 on cpt1.inc
//calcul rang
cpt1.value==1 setval 1000 rang
cpt1.value==2 setval 100 rang
cpt1.value==3setval10 rang
cpt1.value==4 setval 1 rang
//valeur de la touche
ed1 setval 1 userkey on usercpt.inc
ed2 setval 2 userkey on usercpt.inc
ed3 setval 3 userkey on usercpt.inc
ed4 setval 4 userkey on usercpt.inc
//touchesuppr
ed5 on cpt1.set
//à ce moment la fx1 contient $rang$*$userkey$ correct
//la sortie d’un comparateur bascule à ON si code valide
//raz
cpt1.value==5 on cpt1.set usercpt.set setval 0 rang
//Validation (facultative)
ed6ETcompcode1ONLed verte+ action1
ed6ETcompcode2 ONLed verte+ action2
//entrée erronée
ed6ETNONcompcode2ETNONcompcode x ONLed rouge+ action erreur
Sans les règles de validation, les comparateurs passeront automatiquement à ON lorsque les 4 bonnes touches auront été pressées dans l’ordre.
Pour compliquer la vie aux cambrioleurs en n’automatisant pas le nombre de digits, les règles de validation pourront être mises en place pour lancer des actions spécifiques.
Remarque : pour des codes avec plus de digits, il suffit de rajouter des règles pour augmenter la valeur de rang (10000, 100000, 1000000, …) et de réinitialiser cpt1 au delà de 5.
Je n’ai pas testé ![]()
Bonne journée
Bonjour @fgtoul,
Merci infiniment pour cette réponse très élaborée !
En effet c’est hors sujet, on peut déplacer ces éléments de discussion vers le fil qui traite de ma maison.
Il y a encore beaucoup à faire mais je serais très heureux de partager les éléments de mon système petit à petit. J’ai un peu plus de temps maintenant, ça devrait avancer plus rapidement. En tout cas tout a été ramené à la GTL maintenant.
Je vous laisse déplacer le sujet pour donner suite sans parasiter celui ci ?
Bone journée,
David
Finalement, après tout ce temps, la hotte est intégrée à la plaque de cuisson en 32 A.
Le problème est donc réglé ![]()
Dire qu’un an plus tard, je n’ai toujours pas d’interrupteur dans cette maison !
Mon conjoint en a un peu ras la casquette. Pour lui faire plaisir j’en installe deux principaux, pour le salon et pour la chambre dressing sdb.
Ca me laissera une petite respiration pour tester d’autres capacités plus marrantes avec la V5 !
Merci @fgtoul, c’est plus propre ici en effet !
Je vais tester cet après-midi avec un peu de chance !
Bonjour David,
Voici un widget spécifique à votre clavier 4 digits.
Ce widget permet de composer un code avec les valeurs autorisées (1 à 4) et de l’envoyer dans une Analogique virtuelle 16 bits (l’id doit correspondre à sequenceAttendue dans les règles proposées plus haut).
Lors le l’envoi d’un nouveau code, un voyant s’allume 1 seconde en vert en cas de réussite, en rouge en cas d’échec (mauvais id par exemple). Des infos de débogage sont envoyées à la console du navigateur (accessible par F12)
Bien sûr, ce widget sera placé sur un dashboard protégé (root, admin)

<style>
.digit {
font-size: 18px;
margin: 5px;
width:30px;
text-align: center;
}
.bton {
font-size: 14px;
margin-top: 5px;
padding: 5px 10px;
border: none;
border-radius: 5px;
cursor: pointer;
}
.led {
width: 10px;
height: 10px;
border-radius: 50%;
background-color: #999;
position: absolute;
top: 2px;
right:10px;
}
}
</style>
<div id="led1" class="led"></div>
<input type="number" class='digit' id="i1" min='0' max='4' required>
<input class='digit' type="number" id="i2" min='0' max='4' required>
<input class='digit' type="number" id="i3" min='0' max='4' required>
<input class='digit' type="number" id="i4" min='0' max='4' required><br><br>
<button class='widget-color bton neumorphism no-hover' onclick="envoyerValeur1()">ENVOI</button>
<script>
var monCodeId=262217;
var monDigit1 = 1;
var monDigit2 = 1;
var monDigit3 = 1;
var monDigit4 = 1;
window.GCE_Refresh.push(function(data) { //IMPORTANT: biding refresh function to the WebSocket
// received all IO and ANA that change in the V5 as an object
// ex for IO: { _id: 65536, on: true }
// ex for ANA: { _id: 196608, value: 1 }
switch (data['_id']) {
case monCodeId:
console.log("Json reçu:", data);
decomposeNumber(data.value);
break;
}
});
function init3() {
GCE_API.get('/api/core/ana/'+monCodeId).then((ret) => {
console.log("OK ", ret);
decomposeNumber(ret.value);
}).catch((err) => {
console.error("KO ", err);
});
}
function decomposeNumber(code) {
monDigit1 = Math.floor(code / 1000);
monDigit2 = Math.floor((code % 1000) / 100);
monDigit3 = Math.floor((code % 100) / 10);
monDigit4 = code % 10;
document.getElementById("i1").value = monDigit1;
document.getElementById('i2').value = monDigit2;
document.getElementById('i3').value = monDigit3;
document.getElementById('i4').value = monDigit4;
}
function changeColor(ok) {
var div = document.getElementById("led1");
div.style.backgroundColor = ok ? "#1fdb49" : "red";
setTimeout(function() {
div.style.backgroundColor = "#999"; }, 1000);
}
function envoyerValeur1() {
var i1 = parseInt(document.getElementById('i1').value) || 1;
var i2 = parseInt(document.getElementById('i2').value) || 1;
var i3 = parseInt(document.getElementById('i3').value) || 1;
var i4 = parseInt(document.getElementById('i4').value) || 1;
var valeurCalculee = i1 * 1000 + i2 * 100 + i3 * 10 + i4;
GCE_API.put('/api/core/ana/'+monCodeId, {value: valeurCalculee}).then((ret) => {
changeColor(true);
console.log("OK ", ret);
console.log("Valeur envoyée:", valeurCalculee);
}).catch((err) => {
changeColor(false);
console.error("KO ", err);
});
}
setTimeout(init3,50);
</script>
Changez la valeur de la variable monCodeId avec l’id de l’analogique virtuelle sequenceAttendue.
Bonne journée
Merci infiniment @fgtoul, je ne pourrais pas m’y remettre avant début janvier mais évidement je donnerais des nouvelles de l’avancée et du résultat !
Bonjour @fgtoul,
J’ai installé quelques uns de mes premiers boutons poussoirs « classiques » et je viens de recevoir mon interrupteur DIY pour le clavier. Je vais pouvoir tester cette semaine ![]()
Je reviens vite avec j’espère de bons résultats ! Je vais tâcher d’être un bon élève et de suivre pas à pas tes conseils 8
A plus tard,
David


