Ce Forum passera en lecture seule en janvier 2020
Image
Merci de vous rendre sur https://community.jeedom.com maintenant pour vos prochains postes ;)

Script pour Gestion Chaudière Viessmann connecté

Réservé à l'utilisation et la programmation de scripts dans JEEDOM
Répondre
scotty92fr
Timide
Messages : 261
Inscription : 07 mars 2017, 20:31

Script pour Gestion Chaudière Viessmann connecté

Message par scotty92fr » 17 nov. 2017, 10:49

Bonjour,

Voici une humble contribution pour ceux qui, comme moi, ont une chaudière Viessmann connecté via le cloud VITODATA100/VITOTROL.

Code : Tout sélectionner

<?php
/* 
Script viessmann version 1.0 par Michel Manceron
Permet de recuperer et gerer au minima la commande de gestion du système de chauffage Viessmann Vitodata 100

	- Le script lancé sans parmètre : Récupération des données du chauffage (paramètre dans $DataIds) 
	- Envoyer une information au système de chauffage (par ex: passer en mode economique, ...  

le script  permet la récupération des informations dans un fichier au format JSON "viessmann.json" dans le même répertoire que fichier script "Viessmann.php"

le script est lancé par le plugin script

Update des informations:

					Nom : 			Update
					Type Script:	Script
					Type:			Action et défaut
					Requête:		/var/www/html/plugins/script/core/ressources/Viessman.php


le numéro de l'information est la clef pour y acceder: l'accès se fait par le plugin script, avec comme requete :
		"numInformation>Wert"

		exemple: 	Nom: 			Temp_Exterieur
					type Script: 	JSON
					Type:			info et Numérique
					Requête:		5373>Wert
					Options: 		https://AdresseJeedom/plugins/script/core/ressources/viessmann.json
					Unité:			°

Modification des paramètres:
		exemple: 
					Nom : 			Eco_on (Valeur de la commande : ModeEconomique)
					Type Script:	Script
					Type:			Action et défaut
					Requête:		/var/www/html/plugins/script/core/ressources/Viessman.php 7853=1 


Il est nécessaire de modifier la valeur des variables Users : $login, $Pass, $Installation
2017/11/17 - Version 1.0 Version initiale

*/
// Variable Users
$Login = "Adresse@Mail";
$Pass = "Password";
$Installation = "RéférenceDeInstallation";

// nom du fichier log
$filelog ='Script_Viessmann';
$directorylog= dirname(__FILE__)."/../../../../log";

// initialisation des variables
$InstallationID = '';
$AppareilID = '';

// Tableau des points d'information à interroger 
$DataIds = array();
array_push ($DataIds,104,111,245,5372,5373,5374,5385); // groupe Chaudière
array_push ($DataIds,5272,5273,5274,5276,5277,5279); // groupe Solaire
array_push ($DataIds,77,89,94,709,718,730,5376,6053,7853,7856); //groupe Chauffage
array_push ($DataIds,5280,5381,7179,7181); //groupe ECS
// Adresse de l'API 
$client = new SoapClient('https://www.viessmann.com/app_vitodata/VIIWebService-1.16.0.0/iPhoneWebService.asmx?WSDL');
$anlageID = 0;

/* fonction login 
 permet de se connecter à une installation. cette fonction récupère l'installationID et AppareilID

 retour de true/false suivant la connexion
*/

function login(){
	global $client,$anlage,$Login,$Pass,$Installation,$InstallationID,$AppareilID;
	$flag = false;

	$DataArray  = array('Benutzer'=> $Login, 
					'Passwort'=> $Pass,
					'Betriebssystem'=>'Debian9',
					'AppId'=>'Jeedom',
					'AppVersion'=>'1.0');
	$out = time()+30;
	while ( $out > time()) {
		try
		{
		    $response = $client->GetStateOfConnection();  
		    if ($response->GetStateOfConnectionResult->Ergebnis == 6) {
				$response = $client->login($DataArray);
				if ($response->LoginResult->Ergebnis == 0){
					write_log ('Connexion effectuées.');
					$response = $client->getDevices();
					foreach ($response->GetDevicesResult->AnlageListe as $key => $value) {
						if ($value->AnlageName == $Installation) {
							write_log ('installation : '. $value->AnlageId);
							$InstallationID = $value->AnlageId;
							foreach ($value->GeraeteListe as $key1 => $value1) {
								write_log ('Appareil : '. $value1->GeraetId );
								$AppareilID = $value1->GeraetId;
								$flag = true;
							}
						}
					}
				}
			}
		}

		catch (Exception $e){
			write_log ('Err: ('.$e->getCode().')'.$e->getMessage() );
		}
		if ($flag) {break;}
		sleep(5);
	}
return $flag;
}
/* fonction logout 
 permet de se déconnecter du système de chauffage

 pas de valeur de retour
*/

function logout(){
	global $client;
	$flag = false;
	$out = time()+30;
	while ( $out > time()) {
		try{
				$response = $client->logout();
			    if ($response->LogoutResult == 1 ) {
			      write_log ("Deconnexion du service");
			  	break;
			    }
			}
		 catch (Exception $e) {
		 		write_log ('Err: ('.$e->getCode().')'.$e->getMessage() );
		 }
		 sleep(5);
	}
}

/* fonction getInfoPoints 
 interroge le système de chauffage sur tous les noeuds disponible 
 retourne un tableau avec le Nom de l'information
*/
function getInfoPoints(){
	global $client,$InstallationID,$AppareilID;
	write_log ("Chargement des infos sur les noeuds de l'installation.");
  	$DataArray  = array(
					'AnlageId'=> $InstallationID, 
					'GeraetId'=> $AppareilID,
					);
  	$out = time()+30;
	while ( $out > time()) {
		try{
    		$response = $client->GetTypeInfo($DataArray);
    		foreach ($response->GetTypeInfoResult->TypeInfoListe->DatenpunktTypInfo as $key => $value) {
    			$table[$value->DatenpunktId] =array('Name' => $value->DatenpunktName, 
    												'iswriteable' => $value->IstSchreibbar
    												);
    		}
    		write_log ("  Nombre de noeuds : ".count($table));
    		break;
    	}
    	catch (Exception $e) {
			write_log ('Err: ('.$e->getCode().')'.$e->getMessage() );
		}
    	sleep(5);
    }

    return $table;
}
/* fonction refreshInfos 
 interroge les noeuds du système de chauffage  
 retourne un tableau avec le Nom de l'information et la valeur de chaque noeuds
*/
Function refreshInfos(){
	global $client,$InstallationID,$AppareilID,$TableInfo,$DataIds;
	write_log ("Demande de rafraichissement des données....");
  	$DataArray  = array(
					'AnlageId'=> $InstallationID, 
					'GeraetId'=> $AppareilID,
					'DatenpunktIds' => $DataIds 
					);
	$response = $client->RefreshData($DataArray);
	$DataArray_temp  = array(
					'AktualisierungsId'=> $response->RefreshDataResult->AktualisierungsId, 
					);
	$flag = false;
	$out = time()+90;
	while ( $out > time()) {
			$response1 = $client->RequestRefreshStatus ($DataArray_temp );
			write_log ("Status de la demande de rafraichissement : ".status2string($response1->RequestRefreshStatusResult->Status));
			if ($response1->RequestRefreshStatusResult->Status == 4) {
				$flag = true;
				break; 
			}
			sleep(5);
			
		}	
	//sleep(30);
  	if ($flag){
  		$flag = false;
		if ($response->RefreshDataResult->Ergebnis == 0) {
			$out = time()+90;
			while ( $out > time()) {
				$response = $client->GetData($DataArray);
				if ($response->GetDataResult->Ergebnis == 0) {
					foreach ($response->GetDataResult->DatenwerteListe->WerteListe as $key => $value) {
						$Table[ $value->DatenpunktId ]=array (
								"Wert" 		  => $value->Wert,
								"Zeitstempel" => $value->Zeitstempel,
								"Name" => $TableInfo[$value->DatenpunktId]['Name'],
								"iswriteable" =>$TableInfo[$value->DatenpunktId]['iswriteable']
							);
						}
						write_log ("rafraichissement des données effectuées");
						$flag = true;
						break;
					}
					sleep(5);
			
				}
		}
		if (!$flag){
			write_log ("intérrogation des noeuds impossible !");
		}
	
	}
	else
  	{
  		write_log ("demande de rafraichissement non aboutie !");
  	}
	return $Table;
}

/* fonction WriteData 
 demande la modification d'une valeur d'un noeud du système de chauffage  
 retourne un tableau avec le Nom de l'information et la valeur de chaque noeuds
*/

function WriteData( $point,$Data){
	global $client,$InstallationID,$AppareilID;
	write_log ("Demande de rafraichissement des données....");
  	$DataArray  = array(
					'AnlageId'=> $InstallationID, 
					'GeraetId'=> $AppareilID,
					'DatapointId' => $point,
      				'Wert' => $Data
					);
  	write_log ('ecriture => '.$point.' => '.$Data );
	$response = $client->WriteData($DataArray);
	$DataArray_temp  = array(
					'AktualisierungsId'=> $response->WriteDataResult->AktualisierungsId, 
					);
	$response1 = $client->RequestWriteStatus ($DataArray_temp);
	$flag = false;
	$out = time()+90;
	while ( $out > time()) {
			$response1 = $client->RequestWriteStatus ($DataArray_temp);
			write_log ("Status de la demande d'écriture : ".status2string($response1->RequestWriteStatusResult->Status));
			if ($response1->RequestWriteStatusResult->Status == 4) {
					write_log ("Donnée Mise à jour : $point = $Data");
					$flag = true;
					break;
				} 
			else {
						
			}
			sleep(5);
		}
	return $flag;		
}
	
/* fonction write_json 
ecrit le tableau des données en JSON dans le fichier Viessmann.json  
ne retourne aucune valeur
*/
function write_json( $Chaine )
	{
		write_log ("Mise a jour du json");
  		$file = dirname(__FILE__)."/viessmann.json";
		if (!file_exists($file)) touch($file);
		$fh = fopen($file, 'w+');
		fwrite($fh, $Chaine);
		fclose($fh);
	}
/* fonction status2string 
transforme le code de status en texte lisible 
retourne le texte si reconnus, sinon la valeur 
*/
function status2string($status){
	switch ($status) {

				case '1':
				case 1: $st = "prise en compte";
						break;
				case '3':
				case 3: $st = "traitement en cours";
						break;
				case '4':
				case 4: $st = "traitement effectué";
						break;
				default: $st = $status;
						break;
			};
			return $st;
}
/* fonction write_log
Permet d'écrire un message dans le fichier log.
*/
function write_log ($message)
{
	global $filelog,$directorylog;
    $logfile = $directorylog."/".$filelog;
  	$dt = (new \DateTime())->format('Y-m-d H:i:s');
    if (!file_exists($logfile)) {touch($logfile);};
  	$myfile = fopen($logfile, "a");
	fwrite($myfile, "\n". $dt.": ".$message);
	fclose($myfile);
}
//Main
// traitement des paramêtres 
if (isset($argv)) {
     foreach ($argv as $arg) {
         $argList = explode('=', $arg);
         if (isset($argList[0]) && isset($argList[1])) {
             $_GET[$argList[0]] = $argList[1];
             write_log("Paramètre ".$argList[0]."=".$argList[1]);
         }
     }
 }
//traitement principal
try {
  	if (login()) { 
  		$TableInfo =  getInfoPoints(); 
  		if (is_array($TableInfo)){	
			if (isset($argList[0]) && isset($argList[1])) {  
					if (!(writedata($argList[0],$argList[1]))) {write_log("Ecriture impossible de la valeur demandée");} ;
				}
			$Info=refreshInfos();
			if (is_array($Info)){
				$filejson = json_encode($Info);
				write_json ($filejson);
			}
			logout();
			}
		}
	
	else{
		 	write_log("Connexion impossible !");
		}
	
	echo "Ok";
} 
catch (Exception $e) {
	 write_log ('Exception : ligne='.$e->getLine().'('. $e->getCode().')'. $e->getMessage());
 	 //$trace = $e->getTrace();
 	 //write_log (print_r( $trace,true));
 	 //$a = print_r(get_defined_vars(), true);
	 //write_log ($a);
 	 echo "Erreur, voir $filelog";
}
//garbage
write_log ('--------------------------------------------------------------------------');
unset ( $TableInfo,$Info,$filejson,$Login,$Pass,$Installation,$InstallationID,$AppareilID,$DataIds,$anlageID,$anlage,$filelog,$directorylog);

Ce script permet recevoir dans Jeedom, par le biais d'un fichier JSON, les données du système de chauffage.
il peut aussi paramétrer certain paramètre comme par exemple passer en mode économique ou réception.

ATTENTION: Ce script est adapté à mon système, chaque système peut être différent le numéro de noeud d'information peut ne
pas correspondre donc attention à la modification de paramètre.

3 informations sont a modifier dans le script : login, mot de passe et la référence de l'installation.
La mise en place se fait via le plugin Script.
  • Exécuter la mise à jour des information il suffit de lancer le script
    par ex: /var/www/html/plugins/script/core/ressources/Viessmann.php
  • Récupérer chaque information nécessaire, il faut créer une info JSON en mettant "le numéro du nœud d'information>Wert"
    par ex: pour une température extérieur la requête est :

    Code : Tout sélectionner

    5373>Wert
    , 5373 étant le nœud d'information. et l'option est

    Code : Tout sélectionner

    https://AdresseJeedom/plugins/script/core/ressources/viessmann.json
  • Modifier un paramètre il suffit de lancer le script avec comme paramètre le "numéro du noeud d'information=valeur" par exemple pour passer en mode économique (sur mon système) il faut lancer :

    Code : Tout sélectionner

    /var/www/html/plugins/script/core/ressources/Viessmann.php 7853=1 
Avec l'aide du plugin Widget, on peut obtenir ce résultat:
Capture d’écran 2017-11-17 à 10.47.38.png
Capture d’écran 2017-11-17 à 10.47.38.png (33.73 Kio) Consulté 5470 fois
Jeedom 4.0.19 DIY RPI3/SSD , Zwave - Rfxcom - ...

TaG
Actif
Messages : 1152
Inscription : 26 oct. 2016, 11:02

Re: Script pour Gestion Chaudière Viessmann connecté

Message par TaG » 17 nov. 2017, 11:47

Hello,

Merci pour ces informations, je ne l'ai pas encore lu, mais c'est pour pouvoir le retrouver facilement !!!!

Avatar de l’utilisateur
Geomium
Timide
Messages : 318
Inscription : 16 août 2014, 15:06
Localisation : Rhône

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Geomium » 17 nov. 2017, 12:44

Salut,

Un grand merci à toi c'est génial ! J'ai testé et je valide :D
J'ai juste commenté la ligne des points d'information à interroger du groupe solaire car je n'en suis pas équipé et cela créait une erreur.

Comment faire pour afficher quelque part la liste complète des nœuds ?
J'en ai 317, et j'aimerai trouver les numéros correspondants à mon deuxième circulateur.


scotty92fr
Timide
Messages : 261
Inscription : 07 mars 2017, 20:31

Re: Script pour Gestion Chaudière Viessmann connecté

Message par scotty92fr » 17 nov. 2017, 13:53

Geomium,

Voici le script qui m'a permis de déterminé la liste des points. il créer un fichier "viessmannDefinition.csv" qui reprend la liste des points d'information.
Ce fichier se trouvera dans le même répertoire que le script après l’exécution

Code : Tout sélectionner

<?php
$Login = "Login@email";
$Pass = "password";
$Installation = "installationID";
$InstallationID = '';
$AppareilID = '';

if (isset($argv)) {
     foreach ($argv as $arg) {
         $argList = explode('=', $arg);
         if (isset($argList[0]) && isset($argList[1])) {
             $_GET[$argList[0]] = $argList[1];
         }
     }
 }

$client = new SoapClient('http://www.viessmann.com/app_vitodata/VIIWebService-1.16.0.0/iPhoneWebService.asmx?WSDL');
$anlageID = 0;
function login(){
	global $client,$anlage,$Login,$Pass,$Installation,$InstallationID,$AppareilID;
	$flag = false;

	$DataArray  = array('Benutzer'=> $Login, 
					'Passwort'=> $Pass,
					'Betriebssystem'=>'Debian9',
					'AppId'=>'Jeedom',
					'AppVersion'=>'1.0');
    
    $response = $client->GetStateOfConnection();
    if ($response->GetStateOfConnectionResult->Ergebnis == 6) {
		$response = $client->login($DataArray);
		if ($response->LoginResult->Ergebnis == 0){
			$response = $client->getDevices();
			foreach ($response->GetDevicesResult->AnlageListe as $key => $value) {
				if ($value->AnlageName == $Installation) {
					echo '<br>installation trouvé : '. $value->AnlageId ;
					$InstallationID = $value->AnlageId;
					foreach ($value->GeraeteListe as $key1 => $value1) {
						echo '<br>Appareil trouvé : '. $value1->GeraetId .'<br>';
						$AppareilID = $value1->GeraetId;
						$flag = true;
						}

					}
			}
		}
	}
return $flag;
}

function logout(){
	global $client;
	$response = $client->logout();
    if ($response->LogoutResult == 1 ) {
      echo "Deconnexion réussi";
    }
}





function getInfoPoint2csv(){
	global $client,$InstallationID,$AppareilID;
	echo "Chargement des infos sur les points";
  	$DataArray  = array(
					'AnlageId'=> $InstallationID, 
					'GeraetId'=> $AppareilID,
					);
    $response = $client->GetTypeInfo($DataArray);
  	$file = dirname(__FILE__)."/viessmannDefinition.csv";
	if ((file_exists($file))) {
				echo "Supression du fichier 'viessmannDefinition.csv'";
      			unlink($file);
      		}
     echo  "création de fichier 'viessmannDefinition.csv'";
     touch($file);

	$fh = fopen($file, 'a');
	$line = 'DatenpunktId;DatenpunktName;DatenpunktTyp;DatenpunktTypWert;MinimalWert;MaximalWert;EinheitBezeichnung;DatenpunktGruppe;HeizkreisId;Auslieferungswert;IstLesbar;IstSchreibbar'."\n";
    fwrite($fh, $line);
      foreach ($response->GetTypeInfoResult->TypeInfoListe->DatenpunktTypInfo as $key => $value) {
      	$line ='' ;
        $line .= "$value->DatenpunktId".';';
      	$line .= "$value->DatenpunktName".';';
      	$line .= "$value->DatenpunktTyp".';';
      	$line .= "$value->DatenpunktTypWert".';';
      	$line .= "$value->MinimalWert".';';
      	$line .= "$value->MaximalWert".';';
      	if (isset($value->EinheitBezeichnung)) {$line .= $value->EinheitBezeichnung.';';} else {$line .=';';}
      	$line .= $value->DatenpunktGruppe.';';
      	$line .= $value->HeizkreisId.';';
      	$line .= $value->Auslieferungswert.';';
      	$line .= $value->IstLesbar.';';
      	$line .= $value->IstSchreibbar.';';
      	$line .= "\n";
      	fwrite($fh, $line);
    	$table[$value->DatenpunktId] =array('Name' => $value->DatenpunktName, );
    	if ($value->DatenpunktId == '2871') {
    			echo '<pre>';print_r($value);echo '</pre>';
    	}
    }
  	fclose($fh);
    //return $table;
}
if (!isset($argList[1])){	
  	if (login()) {
	    getInfoPoint2csv();
    	logout();
    }
}
?>
Les textes sont en Allemand donc pour moi Google traduction était mon amis. Dans la liste certains des points d'informations sont composé comme suit "NumPointInfo-xx". Ce ne sont pas des points d'informations mais la liste des valeurs possible pour la valeur principale NumPointInfo valeur XX.
Jeedom 4.0.19 DIY RPI3/SSD , Zwave - Rfxcom - ...

Avatar de l’utilisateur
Geomium
Timide
Messages : 318
Inscription : 16 août 2014, 15:06
Localisation : Rhône

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Geomium » 17 nov. 2017, 14:24

Magnifique merci !
Quand je pense que l'application officielle sur Android met de longues minutes à s'actualiser je suis juste bluffé par ton script.
Et ça évite de passer au knx ou au modbus ou au montage maison qui communique en liaison série avec des diodes.
Pour une fois je m’accommoderai parfaitement de passer par le cloud :lol:
Reste plus qu'à bosser pour tout intégrer dans Jeedom, je ferai un retour ASAP.
Merci encore.


scotty92fr
Timide
Messages : 261
Inscription : 07 mars 2017, 20:31

Re: Script pour Gestion Chaudière Viessmann connecté

Message par scotty92fr » 17 nov. 2017, 15:07

Pour l'intégration, voici les images que j'ai utilisé. Amuse toi bien.
Viessmann.zip
(26 Kio) Téléchargé 275 fois
Jeedom 4.0.19 DIY RPI3/SSD , Zwave - Rfxcom - ...

TaG
Actif
Messages : 1152
Inscription : 26 oct. 2016, 11:02

Re: Script pour Gestion Chaudière Viessmann connecté

Message par TaG » 17 nov. 2017, 16:54

Re,

Il faut donc la carte LON dans la chaudière et le boitier vitotrol pour la partie internet.
Je n'ai aucun des deux, de mémoire, ça coutait un oeil cette histoire.

Je vais voir ce que je peux trouver :).

J'ai une Vitodens 222-W, je pense que ça doit le faire ;)

TaG
Actif
Messages : 1152
Inscription : 26 oct. 2016, 11:02

Re: Script pour Gestion Chaudière Viessmann connecté

Message par TaG » 17 nov. 2017, 17:28

A priori il faut le vitocom 100. reste à trouver comment se le procurer !

PhoBoS88
Timide
Messages : 34
Inscription : 13 nov. 2017, 21:01

Re: Script pour Gestion Chaudière Viessmann connecté

Message par PhoBoS88 » 17 nov. 2017, 17:54

Re Bonjour Scotty,

Je te confirme que tout est OK de mon coté également ! Beau boulot et merci

Avatar de l’utilisateur
Geomium
Timide
Messages : 318
Inscription : 16 août 2014, 15:06
Localisation : Rhône

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Geomium » 17 nov. 2017, 17:58

@TaG oui c'est bien le Vitocom 100 type Lan1 que j'ai. Il me semble qu'il existe en wifi.
Il m'a coûté un bras lol, genre dans les 500€ si mes souvenirs sont exacts. Ultra chère quand on voit la qualité médiocre de leur appli.
J'étais prêt à me lancer dans cette solution bien moins onéreuse : http://easydomoticz.com/forum/viewtopic.php?f=17&t=1955
Mais faut adapter à Jeedom.
J'ai une Vitodense 222-F


TaG
Actif
Messages : 1152
Inscription : 26 oct. 2016, 11:02

Re: Script pour Gestion Chaudière Viessmann connecté

Message par TaG » 17 nov. 2017, 18:11

Merci pour ta confirmation, ma carte est de ce format :
Image

Oui, il existe un câble un peu plus propre qu'un mec fabrique et vends également. https://openv.wikispaces.com/Bauanleitung+USB


Ainsi qu'une attente sur un retour de la solution opentherm Gateway cf :
viewtopic.php?f=84&t=21126

Le vitocom, je vois effectivement des témoignages dans tes prix, la je n'ai pas le budget pour ça malheureusement. La gateway opentherm à 30€ m'irait bien plus :) :D

scotty92fr
Timide
Messages : 261
Inscription : 07 mars 2017, 20:31

Script pour Gestion Chaudière Viessmann connecté

Message par scotty92fr » 17 nov. 2017, 19:59

@Tag Je confirme j’ai aussi payé un bras pour le ‘Vitocom 100 lan’ et moyennement satisfait mais ça prend une autre dimension avec Jeedom, comme par exemple réduction des qu’il n’y a plus personne à la maison ...
J’ai fait des widget pour gérer la tuile comme par exemple le mode réception et/ou Économique peut être lancer par jeedom.


Envoyé de mon iPhone en utilisant Tapatalk
Jeedom 4.0.19 DIY RPI3/SSD , Zwave - Rfxcom - ...

TaG
Actif
Messages : 1152
Inscription : 26 oct. 2016, 11:02

Re: Script pour Gestion Chaudière Viessmann connecté

Message par TaG » 17 nov. 2017, 22:00

Je ne dis pas le contraire.

C'est sur que le pilotage via l'infrarouge donne envie car peu coûteux en proportion.

Mais oui beaucoup de choses à adapter !!!

J'attends un retour sur un tarif et j'aviserai ;)!

Avatar de l’utilisateur
Geomium
Timide
Messages : 318
Inscription : 16 août 2014, 15:06
Localisation : Rhône

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Geomium » 18 nov. 2017, 13:22

Hello,

j'ai bossé sur la liste des nœuds pour ma chaudière 222-F équipée de deux circuits de chauffage avec chacun son thermostat d'ambiance.
Je ne l'ai pas fini mais je la met en pièce jointe, si ça peut servir à d'autres en attendant d'avoir le temps de tout essayer.
ID Viessmann1.jpg
ID Viessmann1.jpg (765.8 Kio) Consulté 5394 fois
ID Viessmann2.jpg
ID Viessmann2.jpg (688.39 Kio) Consulté 5394 fois
ID Viessmann3.jpg
ID Viessmann3.jpg (292.7 Kio) Consulté 5394 fois


xavierg
Timide
Messages : 75
Inscription : 27 nov. 2014, 23:13

Re: Script pour Gestion Chaudière Viessmann connecté

Message par xavierg » 20 nov. 2017, 16:26

Geomium a écrit :
17 nov. 2017, 17:58
@TaG oui c'est bien le Vitocom 100 type Lan1 que j'ai. Il me semble qu'il existe en wifi.
Ils vendent maintenant le Vitoconnect 100 qui est en wifi. il est à 200€ au tarif "public". Il se connecte toujours en Infrarouge sur la chaudière.

Code : Tout sélectionner

Vitocom 100, type LAN 1 avec module de communication* Pilotage et surveillance de votre installation de chauffage à distance depuis votre smartphone ou internet. Ref Z011224 - 460€

Vitoconnect 100, type OPTO1* Interface Wi-Fi pour le pilotage et la surveillance à distance de l’installation de chauffage. Ref Z014493 - 199€ 
je suis de commander une nouvelle chaudière donc je ne pourrais pas tester avant 1 mois ...

GregW
Timide
Messages : 4
Inscription : 04 mars 2016, 10:41

Re: Script pour Gestion Chaudière Viessmann connecté

Message par GregW » 27 nov. 2017, 14:27

Bonjour à tous,

Je suis nouveau sur Jeedom et novice pour tout ce qui concerne la programmation en général.
Je dispose d'une chaudière Viessmann 222 F et du boitier vitotrol. Depuis mon application iOS j'accède sans problème aux informations.
Je suis donc intéressé par le script de scotty92fr pour l'intégrer à Jeedom.
J'ai créé 2 scripts cf sceenshot:
Capture d’écran 2017-11-27 à 14.05.18.png
Capture d’écran 2017-11-27 à 14.05.18.png (243.91 Kio) Consulté 5317 fois
J'ai configuré les 3 variables comme ci-desssous:
Capture d’écran 2017-11-27 à 14.16.11.png
Capture d’écran 2017-11-27 à 14.16.11.png (34.48 Kio) Consulté 5317 fois
Ensuite, sur le dashboard, je click sur le bouton update:
Capture d’écran 2017-11-27 à 14.18.14.png
Capture d’écran 2017-11-27 à 14.18.14.png (21.57 Kio) Consulté 5317 fois
pas d'erreur à priori mais aucune information ne remonte. En allant voir les logs, sur le log du plugin script j'ai Result ok pour l'execution du script. Dans le log du script j'ai Connexion impossible! J'ai vérifié les logins et mot de passe, ils sont bons, j'ai essayé d'ajouté un espace dans le numéro d'installation en 8eme position car sur l'appli iOS il semble y en avoir un., mais sans plus de résultat. J'ai remplacer les " par des ' sans plus de résultat. Auriez vous une idée?

Avatar de l’utilisateur
Geomium
Timide
Messages : 318
Inscription : 16 août 2014, 15:06
Localisation : Rhône

Re: Script pour Gestion Chaudière Viessmann connecté

Message par Geomium » 27 nov. 2017, 14:46

Salut,

il doit forcément y avoir une erreur d'authentification. Pour moi le numéro d'installation est un nom, ex: toto.
Quand je me connecte au cloud https://vitodata100.viessmann.com/VD100 ... Login.aspx je vois le nom de mon installation en première page. C'est bien ça que tu as mis ?
Il faut bien les guillemets (") pour entourer les paramètres.
Envois nous les logs du script.
Ensuite il vaut mieux séparer en deux équipements distincts le script qui va récupérer les infos et créer le JSON, et le script type JSON qui va le lire.
Il faut actualiser le second après que le premier ai terminé.


GregW
Timide
Messages : 4
Inscription : 04 mars 2016, 10:41

Re: Script pour Gestion Chaudière Viessmann connecté

Message par GregW » 28 nov. 2017, 11:54

Bonjour Geomium

Merci pour ta réponse, effectivement, je constate que j'ai un boitier vitoconnect et non pas vitocom et donc je n'arrive pas à enregistrer mon installation sur le site que tu m'indiques. Je vais continuer à chercher.

TaG
Actif
Messages : 1152
Inscription : 26 oct. 2016, 11:02

Re: Script pour Gestion Chaudière Viessmann connecté

Message par TaG » 29 nov. 2017, 14:49

Hello,

J'ai vu ceci sur domoticz concernant le vitoconnect, le mec du premier post a posté d'autres messages en indiquant une url :

https://easydomoticz.com/forum/viewtopi ... &start=250

J'ai une proposition pour un vitoconnect 100( Wifi) mais si ça ne passe pas dans jeedom, ça ne m'est pas utile.
ça semble possible vu le post sur domoticz

TaG
Actif
Messages : 1152
Inscription : 26 oct. 2016, 11:02

Re: Script pour Gestion Chaudière Viessmann connecté

Message par TaG » 29 nov. 2017, 14:57

auto reply, sur les pages suivantes, le mec a bien avancé et a priori, ça semble possible de faire un paquet de truc !!

Répondre

Revenir vers « [Plugin officiel] Scripts »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités