Création de widgets

Il n’est compatible qu’avec le plugin thermostat

bien dommage, et je suppose que l’adaptation est Conséquente ? les sources sont-elles libre ?

Oui les sources sont libres.

1 « J'aime »

Un lien direct peut être ? comment voyez-vous cette adaptation ?

Le lien est dans le message de Salvialf : Jeedom Market
Il suffit de télécharger les sources (en étant connecté) autrement il est possible de le télécharger depuis Jeedom dans le market.
Il faut retirer toutes les liaisons vers les plugin agenda et thermostat et lui passer les différentes consignes en paramètres.

Je me répète mais tu ne sais pas naviguer dans l’arborescence Jeedom comment veux-tu faire un plugin ou même un widget ?

Faux

La liaison de plusieurs commandes c’est compliqué.

…ou tu ne te rends pas compte du boulot que c’est !

Je ne connaissais pas l’existence de ce plugin jeexplorer tous simplement.

Pour le boulot non, mais je peux toujours regarder !

On voit bien qu’il n’y a pas que ça…

Bref j’arrêtes de retourner le couteau. Désolé c’était pas pour être désagréable mais pour essayer d’aider… J’espère sincèrement qui tu arriveras à tes fins et que la communauté pourra en profiter.

Bon courage

3 « J'aime »

Bonjour,

@Salvialf mea-culpa, après avoir durant la nuit, passé quelques heures à décortiquer, étudier et essayer de comprendre le fonctionnement du plugin, je comprends mieux vos appréhensions.

Je dois le reconnaitre il faut être initié, voir du métier pour en arriver là.

C’est une usine a gaze ce truc !

Avantage, @Salvialf, @supradolph vous avez gagné tous mon respect, et je cerne un peu mieux les besoins.

Alors n’étant pas capable de cette prouesse, je propose mon aide, que ce soit pour la création d’images, ou détail des commandes liées à l’API viessmann, a qui voudra se lancer dans l’aventure.

Je pense qu’un tel plugin ravirait la communauté Jeedom\Viessmann.

Bien cordialement.

Pour info ma dernière version du plugin fait quelque chose de très proche puisque je m’en suis inspiré [Plugin Tiers] thermoAlternateView - #62 par supradolph.

Mais il reste basé sur le plugin thermostat…

3 « J'aime »

Bonsoir,

Très jolie travail !

Si je vous donne les informations nécessaires une adaptation Basic pour mon cas est-elle possible ?

1 « J'aime »

C’est possible mais ça reste assez complexe puisque tout le coeur de ce design est basé sur le plugin thermostat. Ce plugin est trop complexe pour ton besoin au final.
Mais je ne me vois pas passer au moins une journée de travail pour le réaliser (c’est grosso modo ce qu’à représenté cette simple adaptation du plugin) sachant que ça ne me servira pas et surement à très peux de monde. Après je peux me le garder dans un coin de la tête.

Pour résumer toute les requête font référence à des scripts PHP

Exemple :

Pour récupérer la consigne de jour il faut pointer sur un script nommé GetNormalProgramTemperature.php

Ce script contient :

<?php

include __DIR__.'/bootstrap.php';

echo $viessmannApi->getNormalProgramTemperature();

Pour modifier la consigne de jour il faut pointer sur un script nommé SetNormalProgramTemperature.php

Ce script contient :

<?php

include __DIR__.'/bootstrap.php';

$viessmannApi->setNormalProgramTemperature($argv[1], 0);

C’est comme ça pour tout, consigne de nuit, mode eco, mode confort etc….

Un explorer de fichier pourrait être intéressant pour aller pointer sur le bon PHP

Qu’en pensez-vous ?

Chapeau l’artiste !!! Bravo c’est magnifique !

:clap:t4: :clap:t4: :clap:t4:

1 « J'aime »

Je ne connais pas votre système de chauffage ni l’intégration souhaitée de la domotique. Mais le plus simple serait peut être d’utiliser votre API dans le plugin script et de gérer votre chauffage via le plugin thermostat.
Le plugin thermostat à besoin à minima de :

  • Une consigne de chauffe (mode confort)
  • Une consigne de radiateur éteint (mode éteint ou HG)
  • La température de la pièce (une sonde de température qui remonte à Jeedom)

Avec tout ça il est possible d’utiliser la puissance de Jeedom pour gérer le chauffage.

Le plugin thermostat ne convient pas car l’api ne récupère pas les infos directement de la chaudière, mais via le web par l’intermédiaire d’un boitier wifi connecté à la chaudière et envoyé sur un cloud dédié chez Viessmann (Voir application ViCare).

De mon côté j’ai un peu avancé sur la gestion de la consigne de jour, ma démarche rejoint vote idée.
Ça fonctionne (ne riez pas c’est basique, je débute) :innocent:

1.1) Création d’un script (plugin Script) nommé ScriptConsigneChauffageJour.
Catégorie : Chauffage et bien sûr activé.

1.2) Création d’une commande script (plugin Script) nommé CmdScriptConsigneChauffageJour.
Type script : Script.
Type : Action et Curseur
Requête : /var/www/html/plugins/script/core/ressources/viessmann/example/SetNormalProgramTemperature.php #slider#.
#slider# a été ajouté à la fin du chemin, à vérifier si nécessaire.

Ce script pointe comme expliquer dans mon poste précédent, sur un script PHP.

2.1) Création d’une information virtuelle (plugin virtuel) nommée InfoConsigneChauffageJour.
Sous-Type : info et Numérique.
Cette info sert juste à permettre la création d’une commande virtuelle. Je l’ai donc cachée.

2.2) Création d’une commande virtuelle (plugin virtuel) nommé CmdConsigneChauffageJour.
Sous-Type action et curseur
Valeur : InfoConsigneChauffageJour (mon info virtuelle).
Nom Information : #[Aucun][ScriptConsigneChauffage][CmdScriptConsigne]# (ma commande de script).
Option : Min : 7, Max : 35 (valeurs du slider).

Voilà ce n’est pas très jolie et pas pratique, mais ça fonctionne.

Je m’arrache les cheveux à essayer d’adapter le script ci-dessous pour remplacer mon slider par des boutons, si vous pouviez m’aider ?

<div class="tooltips cmd cmd-widget" data-type="action" data-subtype="slider" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#">

<div style="width:60px; height:50px; " class="cmd reportModeHidden cmd-widget" data-type="action" data-subtype="other" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#">
<a class="btn btn-sm action cmdName tooltips" title="#name#" style="border-color:rgba(0,0,0,0)!important"></a>
<!-- Ne Pas Supprimer -->
<script class="createWidgetInfo" type="text/javascript">//<![CDATA[{"type":"1","version":"1","image1":"moins.png","image2":"plus.png"}]]></script>
<!-- Ne Pas Supprimer -->
<script>
var srcImgPlus = 'plugins/widget/core/template/dashboard/cmd.action.other.Plus_Moins/plus.png';
var srcImgMoins = 'plugins/widget/core/template/dashboard/cmd.action.other.Plus_Moins/moins.png';
var taille = 'widht=40px height=40px';

if(jeedom.cmd.normalizeName('#name#') == 'plus'){
$('.cmd[data-cmd_uid=#uid#] .btn').append('<img src="'+srcImgPlus+'" '+taille+'>');
}
if(jeedom.cmd.normalizeName('#name#') == 'moins'){
$('.cmd[data-cmd_uid=#uid#] .btn').append('<img src="'+srcImgMoins+'" '+taille+'>');
}
$('.cmd[data-cmd_uid=#uid#]:last .action').on('click', function () {
jeedom.cmd.execute({id: '#id#'});
});
</script>
</div>

Ce script doit venir modifier la variable $argv[1] du script PHP, SetNormalProgramTemperature.php déclaré dans la commande de mon script CmdScriptConsigneChauffageJour (plugin Script).

Je remets le contenu du script PHP, SetNormalProgramTemperature.php

<?php

include __DIR__.'/bootstrap.php';

$viessmannApi->setNormalProgramTemperature($argv[1], 0);

Bonjour,

J’ai édité mon précédent poste pour un peu plus de clarté.

J’espéré m’être clairement exprimé et trouvé de l’aide.

Bien cordialement.

Tu pars sur la bonne approche si tu veux utiliser ta chaudière telle qu’elle est prévue.
L’approche que j’avait décrite est différente c’est Jeedom qui gèrerait les cycles de chauffe et non pas que la consigne.

Pour remplacer un slider par des boutons :

Merci pour votre commentaire.

Je n’ai pas compris comment appliquer le widget pour remplacer mon slider.

Ce widget doit remplacer mon info virtuelle et ma commande virtuelle ?

Le widget

Type : Action

Sous-Type : Défaut

Appliqué sur ScriptConsigneChauffageJour.

Mais après je ne vois pas ?

J’ai beau relire la documentation jeedom, il y quelque chose que je n’ai pas compris.

Pour la création de mon widget je passe par Outils => Widgets => Ajouter.

A ce moment-là je ne trouve pas les fonctionnalités que vous monté dans votre capture.