Incohérence de commandes suite à plusieurs mise à jour

Bonjour,

Suite à diverses mise à jour du plugin, je me suis retrouvé avec des conditions qui ne fonctionnaient plus, comme la fermeture des volets en Azimut s’il faut trop chaud l’été, ou si la température est en dessus de 0 en hiver.

Du coup, je n’utilisais plus que le mode jour / nuit normal avec un délai au coucher de soleil.

Après le passage en V4, je me suis retrouvé avec des icônes qui ne s’affichaient plus.

Au final, voilà ce que ça donne entre mes anciennes configuration à gauche et une nouvelle que j’ai créée avec la version « 2020-12-30 05:49:32 » du plugin.

Il y a moins de commande dans la nouvelle, et les icones s’affichent bien comme des volets.

Par contre, l’état du volet ne remonte pas, ça reste à 0 :

Dans les commandes des anciennes configurations, l’état des volets est configuré en string, alors qu’il est en numeric dans la nouvelle.

Et si je clic sur « tester » dans la nouvelle commande, ça ne m’affiche aucune valeur…

Du coup, je me retrouve bloqué…

Pouvez-vous me dire quel est le type normal de l’état du volet ?

Si je supprime complétement le plugin et le réinstalle, ça corrigera le problème ou je vais au contraire me retrouver dans le cas de la création de la nouvelle configuration, et donc, ne plus pouvoir faire fonctionner mes volets en automatique ?

Merci !

À tu mis à jour les paramètres du mode azimuts.
Les dernière grosse mise à jours portait sur le calcul de l’ombrage par le toit

Concernant le mode Azimut, ça à l’air d’être bon d’après mes tests de ce matin.

Je n’avais pas eu le temps de m’y pencher depuis le temps, mais avec une variable « test » que j’ai ajouté dans les conditions de température extérieur pour pouvoir forcer des valeurs, j’avais bien le volet qui se fermait avec un pourcentage correspondant au calcul, et il se rouvrait quand la condition n’était plus vraie.

Je dois juste revoir les valeurs je pense car au début sans les changer, le volet s’est fermé à 1% et après correction des valeurs (j’avais toujours celle de l’ancienne version à la base), le volet ne se fermait plus qu’à 6%, mais c’était encore trop bas je trouve.

le gros souci que j’ai, c’est concernant la commande « Etat du volet » qui est en string dans les zones que j’utilise pour mes volets depuis 2 ans, et ça retourne bien la valeur de la position du volet (99 = ouvert) :

Mais comme on peut voir dans l’impression d’écran de mon premier message, lorsque je créé une nouvelle zone, l’état du volet est en numeric avec des champs de valeur mini et max (que j’ai réglé sur 0 et 99 mais que je n’ai pas dans mes anciennes configurations de zone).

Et là, l’état du volet ne remonte pas, ça n’affiche rien.

Dans une ancienne version du plugin, avant de pouvoir régler la valeur max du volet à 99, j’avais modifié en dur dans un fichier du plugin la valeur 100 par 99 pour que ça puisse fonctionner avec mes relais Fibaro.

Je ne sais pas si ça a pu me garder ce fichier modifié, mais je pense que s’il a été modifié depuis, ça aurait dû l’écraser avec le nouveau fichier.

J’ai du mal à comprendre pourquoi l’état du volet est en string dans les anciennes zones et que ça me le crée en numéric quand j’en crée une nouvelle.

Normalement cette configuration fonctionne sans problème

Par contre en action met tu la formule pour limiter les plage de descente.
Si oui faut l’adapter pour être divisible par 3

Bonjour,

Dans les actions de la zone « bureau », je n’utilise pas le mode Azimut.

J’utilise donc que les actions monter et descendre sans formule.

La zone test n’a pas d’action pour le moment.

Pour les zones qui utilisent le mode Azimut, je n’ai pas de formule non plus, j’utilise en action la commande positionnement avec la valeur de la commande qui correspond au « Ratio Vertical ».

Sinon, pour mon souci de retour d’état du volet sur la nouvelle zone « test », j’utilise la commande « état » du volet pour l’objet état réel :

On voit que la commande « Etat du volet » de la zone « test » est en numeric et il n’y a rien dans « Date collecte » et « Date valeur » :

Dans la zone « Bureau » qui utilise l’état du même volet, « L’état du volet » est en string et j’ai bien des dates dans « Date collecte » et « Date valeur » :

Quand je regarde le code du plugin, on vient bien créer cette commande en numeric :

$this->AddCommande("Etat du volet","position","info","numeric",1,'GENERIC_INFO','core::shutter');

Mais qu’elle soit en numéric ou string, est-ce que ça change quelque chose réellement ? A part peut-être le fait de pouvoir afficher une icone de type « shutter » ou non.

Si je ne dis pas de bétise, c’est mis à jour avec cette fonction :

	public function CheckRealState($Hauteur) {  
		if($this->getConfiguration('InverseHauteur'))	
			$Hauteur=$this->HauteurInverse($Hauteur);
		log::add('Volets','info',$this->getHumanName().'[Etat] : Changement de l\'état réel du volet => '.$Hauteur.'%');
		if(cache::byKey('Volets::ChangeState::'.$this->getId())->getValue(false)){
			log::add('Volets','debug',$this->getHumanName().'[Etat] : Le changement d\'état est autorisé');
			if($Hauteur == cache::byKey('Volets::CurrentState::'.$this->getId())->getValue(0))
				cache::set('Volets::ChangeState::'.$this->getId(),false, 0);
		}else{
			log::add('Volets','debug',$this->getHumanName().'[Etat] : Le changement d\'état n\'est pas autorisé');
			//if($Hauteur != $this->getCmd(null,'position')->execCmd())
				$this->GestionManuel();
		}
		$this->checkAndUpdateCmd('position',$Hauteur);
	}

Qui semble être lancée dans celle ci :

public static function pull($_option) {
		$Volet = Volets::byId($_option['Volets_id']);
		if (is_object($Volet) && $Volet->getIsEnable()) {
			$Event = cmd::byId($_option['event_id']);
			if(is_object($Event)){
				switch($Event->getlogicalId()){
					case 'azimuth360':
						$Volet->GestionAzimute($_option['value']);
					break;
					default:
						if ($Event->getId() == str_replace('#','',$Volet->getConfiguration('RealState'))){
							$Volet->CheckRealState($_option['value']);
						}else{
							$Volet->GestionEvenement($Event->getId());
						}
					break;
				}
			}
		}
	}

Et on retrouve aussi la gestion dans le démon je pense :

				$listener = listener::byClassAndFunction('Volets', 'pull', array('Volets_id' => $this->getId()));
				if (!is_object($listener)){
				 	$listener = new listener();
					$listener->setClass('Volets');
					$listener->setFunction('pull');
					$listener->setOption(array('Volets_id' => $this->getId()));
				}
				$listener->emptyEvent();				
				if ($this->getConfiguration('RealState') != ''){
					$listener->addEvent($this->getConfiguration('RealState'));
					$RealState=cmd::byId($this->getConfiguration('RealState'));
					if(is_object($RealState)){
						$Hauteur = $RealState->execCmd();
						if($this->getConfiguration('InverseHauteur'))	
							$Hauteur=$this->HauteurInverse($Hauteur);
						$this->checkAndUpdateCmd('position',$Hauteur);
					}					
				};

Du coup, pourquoi je n’ai aucune valeur qui remonte quand la commande « état du volet » est en Numeric, je ne comprends pas…

Bonjour,

Apparemment, l’état du volet est mis à jour sur changement de valeur, ce matin, j’ai bien un retour qui s’est fait à l’heure d’ouverture des volets :

1

Du coup, c’est rassurant, si je dois refaire mes configurations de zone pour avoir les bonnes icones (shutter) qui s’affichent pour les anciennes zones.

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.