Question dev core : Enumérer les commandes d'un type générique donné

Petite question aux développeurs du core (je n’ai pas accès au forum dev).

Je me suis fait un plugin rapide pour gérer le thermostat d’un de mes poele qui marche avec le module italien 4Heat. Le truc dialogue avec des messages barbare sur une socket, mais ça c’est facile et ça marche bien.

En fait je cherche à me faire des boutons + et - pour changer la consigne.

l’équipement poele contient une commande avec un type générique THERMOSTAT_SETPOINT.

comme il n’y a aucun commentaire dans le dev core, je n’arrive pas à comprendre les paramètres des méthodes liés à ce truc.

je cherche juste à faire un bout de code qui récupère le logicial ID correspondant de la commande sur l’équipement pour lire sa valeur et ajouter le step.

donc, la fonction execute() lance une fonction :

          $this->getEqLogic()->updatesetpoint(0.5);

après j’ai la fonction qui doit identifier la commande

et envoyer l’ordre :

public function updatesetpoint($step)
  {
    $id = $this->getId(); 
    $logicalid = $this->getLogicalId();
    $ip = $this->getConfiguration('ip');
    $_generic_type = 'THERMOSTAT_SETPOINT';
...
}

et là sauriez-vous quelle méthode appeler ? j’ai essyé pas mal de choses sans succès, je ne trouve pas comment syntaxer la recherche…

est-ce celle là qu’il faut utiliser et avec quelle syntaxe et avec quoi dans les variables ?

$cmds = cmd::byEqLogicIdAndGenericType($logicalid, $_generic_type, $_multiple, $_type, $this);
  

Salut,

Pas compris grand chose.
Il ne faut pas utiliser les generic_type dans ton propre code selon moi, tu connais tes commandes, c’est toi qui a défini tes logicalId donc récupères tes commandes directement

$eqLogic->getCmd('info', 'ma_commande');

ok … ça je sais faire effectivement, je cherchait à énumérer les commandes d’un type générique particulier sur un objet. je vais donc faire une boucle simple et tester la valeur, c’est plus générateur de charge, mais s’il n’y a pas d’accès direct aux recherches de commandes par type générique, c’est bon.

Salut,

Bien sûr que si :

merci, j’ai utilisé la commande et après moulte essais, j’ai réussi à la faire marcher…

Bonjour @neurall, je dispose du même module 4heat que vous, partageriez vous votre plugin ou pourriez vous svp m’expliquer comment faire pour piloter mon poele via jeedom ?
Merci d’avance

  1. installer le plugin via jeedom manuellement :

  2. activer le plugin et le mode debug, relancer le démon. il est prévu pour gérer plusieurs appareils, cependant je n’ai pas essayé.

  3. ajouter un objet en précisant :

Modèle → le mien est prévu pour piloter un godin artemis, il faut identifier les valeurs renvoyé par le poele, là je ne peux pas vous aider. à partir de là, vous créez un fichier avec le mapping à l’image de ceux existant dans le répertoire des profils (config/devices)

en mettant le plugin en mode debug, vous pouvez récupérer la liste complète des registres renvoyés par le poele. à la création de l’équipement dans jeedom, il crée une commande info par registre. à priori à partir du profil générique ça peut marcher sur les modèles de chaudiere à gaz, etc… en changeant les valeurs dans l’appli 4Heat il faut observer la valeur des registres et comment elles changent

Adresse ip → l’adresse ip fixée dans l’application.
voilà ce que ça donne avec un peu de réorganisation de l’affichage :

tout se pilote bien via scenario

voilà, je ne ferai pas de maintenance je n’ai pas le temps :slight_smile:

Ouah Enorme !!! Merci beaucoup je teste ça ce we
Bravo et merci pour le partage
++

Edit :
J’ai essayé d’installer le plugin et j’ai une erreur Plugin introuvable

Edit 2 : Je suis passé par le fichier zip directement depuis ton Github et ça fonctionne :slight_smile:

1 « J'aime »

j’ai fait une petite erreur dans le snapshot d’écran pour installer depuis github. je te conseille de garder ce lien car je fais des mises à jour de temps en temps … là j’ai ajouté une fonction pour viabiliser la connexion socket qui est pas au top sur cet équipement. pour éviter d’avoir des erreurs intempestive, j’ai mis une boucle d’essai complémentaire.

dans le snapshot que j’ai fait il fallait lire dans le champ id : jje4heat → jee4heat

Merci, du coup je repasse sur le lien vs fichier

L’installation semble avoir fonctionné mais je ne peux ajouter de nouvel équipement (contrairement à l’install via fichier) :

J’ai ce message d’erreur lorsque je nomme mon nouvel équipement et que je fais OK

EDIT : Tu as du faire une mise à jour et je te remercie car ça à l’air de fonctionner désormais
Je test en profondeur ce we comme prévu
Merci encore pour tout

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