Ce plugin permet de récupérer et modifier les informations de température, référence et d’ouverture de fenêtres à partir des vannes ELV/eQ-3/Conrad compatible Max! Cube.
Pour info, ces thermostat sont plutôt fiable, avec un protocole ouvert et parmi les moins cher du marché.
Où acheter ?
Ces devices sont livrés en kit "ARR" ou préfabriqué:
- La passerelle 868 <=> Ethernet à 40€: http://www.elv.de/max-cube-lan-gateway-arr-bausatz.html
- La valve à 20€: http://www.elv.de/max-heizkoerperthermo ... usatz.html
- Le contacteur de fenêtres à 15€: http://www.elv.de/max-fensterkontakt-arr.html
- Le thermostat ambiant à 20€: http://www.elv.de/max-wandthermostat-arr-bausatz-1.html
Tout est fourni en kits, j’ai mis 8h pour monter mes 26 devices. Sinon, prévoir 20% plus cher pour avoir tout monté.
Exemples
- Montage d’un thermostat
- Valve posée
- Montage d’un window sensor (livré avec boitiers blanc et marron)
Avis
Ces thermostat sont plutôt fiable, avec un protocole ouvert et parmi les moins cher du marché.
Ces valves sont compatible avec un paquet de corps thermostatique, en particulier les danfoss RA, RAV, RAVL. Je conseille d’ailleurs vivement d’avoir des corps danfoss, ce sont les meilleurs, une grande marque réputée et bizarrement moins chers que le "noname" dans les magasins de bricolage type "bricodepot" (j’ai payé les miens environ 20€ pièce + 4h de main d’oeuvre plombier pour 9 radiateurs).
Un petit truc à savoir sur le 868mhz: chaque device ne peux emmètre plus de 36sec/heure (1% duty cycle). Donc il faut faire attention pendant ses tests de ne pas "bourinner" pour rien, sous peine de devoir attendre un certain temps avant de pouvoir émettre de nouveau Un reboot suffit à corriger ça.
A noter qu’il est préférable d’avoir un thermostat par pièces si vous voulez récupérer les informations de température en temps réel (la valve a un thermomètre interne mais n’envoie pas l’information assez régulièrement pour que ce soit fiable).
Si vous n'en voulez pas un par pièce, alors fiez vous UNIQUEMENT au %age d'ouverture des vannes dans un scénario pour piloter votre chaudière (exemple: si somme de toute les ouverture > 200 OU maximum ouverture sur une des valve > 50 alors chaudière ON)
Si vous avez des soucis de longueur de débattement de la valve (erreur F2 et F3), ajoutez une pièce de 2 ou 5 centimes d'euro.
Il est possible de relier le thermostat maxcube à un thermostat du plugin "thermostat" de jeedom (pas vraiment utile, pour le design dans mon cas)
Avis après 2ans d'utilisation: viewtopic.php?f=133&t=11227&start=440#p534093
Configuration
Sur chacun de ces devices, on peux récupérer/modifier:
- Valve ⇒ Pourcentage d’ouverture de la valve, référence, dernière température envoyée (PAS TEMPS REEL, valeur lors du dernier déplacement de la valve, utilisez un thermostat pour avoir la température temps réél)
- Contacteur de fenêtre ⇒ fenêtre ouverte/fermée
- Thermostat ⇒ référence, température ambiante temps réél, modes
On peux se connecter à plusieurs cubes en même temps (et même déplacer un device d'un cube à l'autre sans perdre la config)
Attention: Il faut nodejs 5.10.0 minimum. Si vous n'avez pas cette version (node -v en console pour avoir la version), alors soit:
- vous changez de distrib ou vous l'upgradez
- vous installez une version récente à la main
Code : Tout sélectionner
apt-get remove node
apt-get install nodejs
ln -s /usr/bin/nodejs /usr/bin/node
FAQ
Je ne vois aucun objet maxcube !
- ajoutez les via l'outil officiel https://max.eq-3.de/login.jsp
- assurez vous que l'outil officiel est éteint après tout les ajouts
- vérifier qu'il y a bien quelque-chose sur "voir config json" dans la config du plugin
- vérifier que l’adresse interne est bien configurée dans l'admin de jeedom (section réseau)
Exemple de scénario pour déclencher la chaudière
Code : Tout sélectionner
- Programmation : * * * * *
- Evènement : #[SDB][Thermostat][Consigne]#
- Evènement : #[Salon][Thermostat][Consigne]#
- Evènement : #[Cuisine][Thermostat][Consigne]#
- Evènement : #[Chambre 1][Thermostat][Consigne]#
- Evènement : #[Chambre 2][Thermostat][Consigne]#
- Evènement : #[Chambre 3][Thermostat][Consigne]#
- Evènement : #[WC][Thermostat][Consigne]#
CODE:
$thermostats = array("[Salon][Thermostat]",
"[SDB][Thermostat]",
"[Cuisine][Thermostat]",
"[Chambre 1][Thermostat]",
"[Chambre 2][Thermostat]",
"[Chambre 3][Thermostat]");
$chaudiere = 0;
$scenario->setData("chaudiere", $chaudiere);
foreach ($thermostats as $thermostat) {
$consigne_cmd = cmd::byString('#' . $thermostat . '[Consigne]#');
$setpoint = $consigne_cmd->execCmd();
$temp_cmd = cmd::byString('#' . $thermostat . '[Température]#');
$temp = $temp_cmd->execCmd();
$temp_difftime = ((new DateTime(date("Y-m-d H:i:s")))->getTimestamp() - (new DateTime($temp_cmd->getCollectDate()))->getTimestamp());
if ($temp != 0 && $temp < $setpoint - 0.5 && $temp_difftime < 1800) {
$eq = explode("/", str_replace("[", "", str_replace("]", "", str_replace("][", "/", $thermostat))));
$scenario->setData("last_heat_" . strtolower(str_replace(" ", "_", $eq[0])), date("Y-m-d H:i:s"));
$chaudiere += $setpoint - $temp;
}
}
$scenario->setData("chaudiere", $chaudiere);
FINCODE
SI variable(chaudiere) > 0.6
ALORS #[SDB][Chaudière][On]#
FINSI
SI variable(chaudiere) == 0
ALORS #[SDB][Chaudière][Off]#
FINSI