Plugin Thermostat | Amélioration du mode temporel

Bonjour,

J’utilise le plugin Thermostat pour le chauffage, car il a beaucoup d’avantages.
Seulement, j’utilise un poêle à granulé comme chauffage et cet appareil ne supporte pas les arrêts / marche trop régulier.
Le plugin thermostat propose 2 modes hystérésis et temporel.
-Le mode hystérésis, c’est la simplicité mais pas l’économie de chauffage, de plus il manque l’information essentiel pour le poêle, c’est la puissance nécessaire pour le prochain cycle.
Car j’ai la possibilité de modifier les niveaux de puissance de chauffe avec jeedom avec mon plugin hottoh.
-Le mode temporel: Fonctionnement sur des cycle de chauffe. Afin d’éviter les arrêt / marche, j’ai choisi un réglage temps de chauffe min 90 avec un cycle long de 60 min.
Le problème, comme le cycle est long et la chauffe de la pièce est rapide, le cycle reste à 100% sur un cycle et s’arrête brutalement après avoir dépassé la consigne.
Si je met un cycle plus court. Cycle de 15 min.
Lorsque j’atteins la consigne ou presque en fonction des coefs le cycle se coupe avec les pulls. Et je retombe a nouveau a des arrêts/ marche trop fréquent.

Du coup, j’ai commencé à modifier le plugin pour stopper les arrêts du thermostat avec le pull des cycles. Et j’ai rajouté une condition sur l’arrêt du cycle.
Le cycle ce lance désormais si il est supérieur au temps de chauffe min défini et s’arrête si le cycle d’avant est en mode chauffage et que la puissance est inférieur à 1

Ce qui me permet d’obtenir un résultat cohérent et un arrêt en douceur grâce au retour de la puissance.
Ci dessous un exemple de courbe que j’obtiens:


Et d’éviter ceci sans les modifications:

Je pense que je ne suis pas le seul à vouloir utiliser le plugin thermostat avec un poele a granulé. Et également préserver la duré de fonctionnement de celui ci.
Cette modification peut apporter un résultat bien meilleur pour le fonctionnement de ce type de chauffage.
Mais, cela m’oblige à rester sur une ancienne version du plugin, ou de faire une modification à chaque mise à jour.
Qu’en pensez vous?

Merci

Salut,

La modification est interessante, tu as rajouté une option pour que ca ne soit pas actif par defaut ? Si oui je veux bien la modification pour l’integrer en beta.

Je viens de rajouté l’option que je viens de nommé pour le moment:
-Limite les cycles marche/arrêt incessants (pellet, gaz, fioul) et PID option non cocher par défaut

Que penses tu du texte et de son emplacement?

J’ai rajouté PID, car l’intérêt de cette option est d’utiliser le retour de la puissance pour faire de la régulation. Sauf que je ne voulais pas Mettre 3 lignes de texte. PID est plus court que modulation ou régulation de la puissance.

Les modifications je les présentes sur ce topic?

Ca me semble bien pour le nom de l’option. Oui oui tu peux ici pas de soucis c’est privé.

Voici les modifications a apportés au plugin:
- desktop/php/thermostat.php
Ligne: 338 Ajout du checkbox pour la configuration

                            <label class="col-sm-2 control-label">{{Limite les cycles marche/arrêt incessants (pellet, gaz, fioul) et PID}}</label>
							<div class="col-sm-2">
								<input type="checkbox" class="eqLogicAttr" data-l1key="configuration" data-l2key="stove_boiler" />
							</div>

- core/class/thermostat.class.php
Ligne: 312 Remplacement de la condition par

		if (($thermostat->getConfiguration('stove_boiler') == 0 && $temporal_data['power'] < $thermostat->getConfiguration('minCycleDuration', 5)) || (($thermostat->getConfiguration('lastState') == 'heat' && $temporal_data['power'] < 1) || ($thermostat->getConfiguration('lastState') != 'heat' && $temporal_data['power'] < $thermostat->getConfiguration('minCycleDuration', 5)))) {

Ligne 319: Remplacement la condtion ($duration > 0 && $duration < $cycle)

		if ($duration > 0 && $duration < $cycle) {
        	if($thermostat->getConfiguration('stove_boiler') == 0)
				$thermostat->reschedule(date('Y-m-d H:i:s', strtotime('+' . round($duration) . ' min ' . date('Y-m-d H:i:s'))), true);
          	else
              	$thermostat->reschedule(null, true);
		}

Il reste à traduire le texte du checkbox dans toutes les langues.

Merci

Salut,

Super merci pour le code c’est ajouté en beta, si tu veux tester, je passerai en stable dès que tu m’auras validé.

Ok, Merci Loic, je passe le plugin en béta.
Il va falloir attendre quelques jours de chauffe pour valider.

Attend demain par contre la beta mets 24h a a arriver sur le market.

Ok, par contre, je ne vois pas comment, je peut passer le plugin en Beta. Comme je ne suis pas Beta-testeur, est ce que j’ai ce pouvoir?

Tu repasse par le market et normalement tu as le choix de réinstaller le plugin beta / stable

Merci bbreton, la case accès au plugin beta était décoché sur mon compte du market.

Bonjour,

Après plusieurs jour de chauffe en béta, le fonctionnement est ok.
Est ce que c’est possible cependant de corriger l’affichage afin de mettre l’option sur la même ligne que le cycle:


- desktop/php/thermostat.php
Il suffit de supprimer ligne 336 et 337:

						</div>
						<div class="form-group engine temporal">

- core/class/thermostat.class.php
Egalement possible de rajouter la puissance dans le calcul de celui ci dans les logs, plus pratique que de sortir la calculette a chaque cycle :wink:
Ligne 641

log::add('thermostat', 'debug', $this->getHumanName() . ' : Power calcul : (' . $diff_in . ' * ' . $coeff_in . ') + (' . $diff_out . ' * ' . $coeff_out . ') + ' . $offset);

Par :

log::add('thermostat', 'debug', $this->getHumanName() . ' : Power calcul : (' . $diff_in . ' * ' . $coeff_in . ') + (' . $diff_out . ' * ' . $coeff_out . ') + ' . $offset .' = '.$power);

J’ai vu la mise à jour sur le changelog
Est ce possible de rajouter un c à @Pierrik par @Pierrick :wink:

Merci

Merci pour le retour, c’est corrigé. Et désolé pour le c

Pas de problème