Gestion Poéle à pellets Rika

Vous avez crée un script lua dont vous êtes fier, un .sh génial, un programme python hors du commun, un tuto , c'est ici que vous pouvez les partager.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
Celtic80
Messages : 10
Inscription : 01 oct. 2016, 21:50

Gestion Poéle à pellets Rika

Messagepar Celtic80 » 01 oct. 2016, 22:33

Bonjour à tous ;

Je suis utilisateur de Domoticz depuis peu pour le début de la domotisation de ma maison ! ( 2 ampoules et un chauffage pour l' instant )
Et ce forum est une grande source d' exemple concret .( Merci à vous ) Et maintenant à moi de me lancer.

Donc je possède un Poêle à pellets de marque Rika et depuis deux semaines j' ai investi dans la clé FIRENET ( gestion par le net ); Mais autant que ça travaille avec domoticz ! Pour l' instant je n' est eu le temps de travailler que la récupération des données mais à terme je vais envoyé des trames via domoticz pour le pilotage complet.

Donc pour commencer j' ai crée un matériel Dummy :
Materiel.jpg
Materiel.jpg (11.91 Kio) Consulté 3709 fois


ensuite j' ai crée des capteurs virtuels

Temp Consigne.jpg
Temp Consigne.jpg (18.4 Kio) Consulté 3709 fois
Sonde Temp.jpg
Sonde Temp.jpg (15.79 Kio) Consulté 3709 fois
Conso av Entre.jpg
Conso av Entre.jpg (18.01 Kio) Consulté 3709 fois
Conso Total.jpg
Conso Total.jpg (17.28 Kio) Consulté 3709 fois


Ensuite je lance mon programme php via crontab toutes les deux minutes ( il va falloir installer php sur votre franboise ! )
Rika_Get.php

Code : Tout sélectionner

#!/usr/bin/php
<?php
//---------------------------------
//-- Script de récupération de données pour poéles à pellets Rika via FIRENET
//-- Auteur : Celtic80
//-- Date : 1 octobre 2016
//-- Modifiez vos codes acces au site et l adresse IP du Raspberry
//---------------------------------

# Rika_Get.php

// Pour régler le probléme dans Domoticz   :   /usr/bin/php^M: bad interpreter: No such file or directory
// sed -i -e 's/\r$//' /home/pi/domoticz/scripts/php/Rika_Get.php

// Dev mode ON :)
$mod_debug = false;          // Mettre a true en mode developpement
if($mod_debug){
   error_reporting(E_ALL);  // On affiche les erreurs php
   ini_set("display_errors", 1); // On affiche les erreurs php
}
$display_result = true;


//UserName et Password pour l' acces
$rika_username = 'VotreAdresseMailPourAccesSiteRika';
$rika_password = 'MotDePasseDuSiteRika';
$rika_Numero_Identification = 'NumeroIdentificationDonnéParVotrePoéle';
$Domoticz_URL = 'IPduRaspberry:Port';


// Demande l' heure UNIX pour l' envoi sur l' URL (ne pas corriger heure ete/hiver sinon ne fonctionne plus)
$string = " \r\n";
echo nl2br($string);
$UnixDate = time();
echo 'unix Time : '.$UnixDate;
$string = " \r\n";
echo nl2br($string);

$timeout1 = 30;
$timeout2 = 10;
$Conso_Pelet_2015 = 2062;    // ici je gere mes consos par année

// cookie file name/location
$path_cookie = 'Cookie_connexion_Rika.txt';
$StatusFile = "status.json";


/**************************************************
Première requête : Connexion sur site principal
**************************************************/
$string = " \r\n";
echo nl2br($string);
echo ' Now Phase 1 ! ';
$string = " \r\n";
echo nl2br($string);

//login form action url
$url = 'https://www.rika-firenet.com/web/login';
$postinfo = "email=".$rika_username."&password=".$rika_password;


$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FAILONERROR, true);

curl_setopt($ch, CURLOPT_COOKIEJAR, $path_cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $path_cookie); // file to read cookies in
//set the cookie the site has for certain features, this is optional
curl_setopt($ch, CURLOPT_COOKIE, "cookiename=0");
curl_setopt($ch, CURLOPT_USERAGENT,
    "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, $_SERVER['REQUEST_URI']);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postinfo);
$return = curl_exec($ch);

// Retourne le numéro d'erreur de la dernière opération cURL. 
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);

if ($curl_errno > 0) {
echo "cURL Error ($curl_errno): $curl_error\n";
exit;                                               // mettre en veille en mode développement
}
else
{
echo "Data received phase 1 : $return\n";
}

curl_close($ch);
$string = " \r\n";
echo nl2br($string);

/**************************************************
Seconde requête : Récupération du contenu
**************************************************/
$string = "\r\n Now Phase 2 ! \r\n";
echo nl2br($string);

$api_url = 'https://www.rika-firenet.com/api/client/'.$rika_Numero_Identification.'/status?nocache='.$UnixDate.'970';


//  Initiate curl
$ch = curl_init();

// Options
curl_setopt($ch, CURLOPT_URL, $api_url); // set url
$fp = fopen ($StatusFile,"w");

curl_setopt($ch, CURLOPT_USERAGENT,
    "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout2); // 10s timeout time for cURL connection
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // allow https verification if true
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // check common name and verify with host name
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "VeriSignClass3PublicPrimaryCertificationAuthority-G5.pem"); // allow ssl cert direct comparison
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_COOKIEFILE, $path_cookie); // file to read cookies in
curl_setopt($ch, CURLOPT_FILE, $fp);

$fp = fopen ($StatusFile,"w");
curl_setopt($ch, CURLOPT_FILE, $fp);

// Execution
$data = curl_exec($ch);

// Retourne le numéro d'erreur de la dernière opération cURL. 
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);

// close cURL connection, save cookie file, free up system resources
curl_close($ch);

if ($curl_errno > 0) {
echo "cURL Error ($curl_errno): $curl_error\r\n";
$string = " \r\n";
echo nl2br($string);
exit;                        // mettre en veille en mode développement !
}
else
{
echo "Data received phase 2 : $data\r\n";
$string = " \r\n";
echo nl2br($string);
}

// Verifie si le fichier telecharger est vide si oui exit sinon parse
$File_Data = file_get_contents($StatusFile);

if (!$File_Data || strlen($File_Data) == 0)
{
  exit;
}
else
{

$json = file_get_contents($StatusFile);
$parsed_json = json_decode($json, true);
$Allum_Eteint = $parsed_json['controls']['onOff'];
$Temp_Consigne = $parsed_json['controls']['targetTemperature'];
$Status_Chauf_Main = $parsed_json['sensors']['statusMainState'];
$Status_Chauf_Sub = $parsed_json['sensors']['statusSubState'];
$Temp_Bureau = $parsed_json['sensors']['inputRoomTemperature'];
$Conso_Pelet_Total = $parsed_json['sensors']['parameterFeedRateTotal'];
$Avant_Entretien = $parsed_json['sensors']['parameterFeedRateService'];

/*
Eteint :
Allumé et éteint          : main = 1 sub = 0 ;     // en arret
allumé et veille          : main = 1 sub = 3 ;     // en veille
Allumé et allumage          : main = 2 sub = 6 ;
Allumé et Demarrage       : main = 3 sub = 1 ;
Allumé et Controle          : main = 4 sub = 4 ;     // en fonction total
Allumé et Fin de combustion : main =6
*/
if ($Allum_Eteint == false)
{
$string = " \r\n";
echo nl2br($string);
echo 'Poéle éteint : '.$Allum_Eteint;
$string = " \r\n";
echo nl2br($string);
}
else
{
if ($Status_Chauf_Main == '1')
{
if($Status_Chauf_Sub == '3')
{
$string = " \r\n";
echo nl2br($string);   
echo 'Poéle en fonction et en Veille';
$string = " \r\n";
echo nl2br($string);
}
else
{
$string = " \r\n";
echo nl2br($string);   
echo 'Poéle en fonction et en Chauffe';
$string = " \r\n";
echo nl2br($string);
}
}
else
if ($Status_Chauf_Main == '2')
{
$string = " \r\n";
echo nl2br($string);   
echo 'Allumage du Poéle';
$string = " \r\n";
echo nl2br($string);
}
else
if ($Status_Chauf_Main == '3')
{
$string = " \r\n";
echo nl2br($string);   
echo 'Démarrage de Chauff. du Poéle';
$string = " \r\n";
echo nl2br($string);
}
else   
if ($Status_Chauf_Main == '4')
{
$string = " \r\n";
echo nl2br($string);   
echo 'Poéle en Chauffe';
$string = " \r\n";
echo nl2br($string);   
}
else
if ($Status_Chauf_Main == '6')
{
$string = " \r\n";
echo nl2br($string);   
echo 'Fin de Combustion';
$string = " \r\n";
echo nl2br($string);   
}
   
}

$string = " \r\n";
echo nl2br($string);
echo 'Temperature bureau : '.$Temp_Bureau.' °';
$string = " \r\n";
echo nl2br($string);
echo 'Temp_Consigne : '.$Temp_Consigne.' °';
$string = " \r\n";
echo nl2br($string);
$Conso_Pelet_Total = $Conso_Pelet_Total - $Conso_Pelet_2015;
echo 'Conso Pelet Total : '.$Conso_Pelet_Total.' Kg';
$string = " \r\n";
echo nl2br($string);
echo 'Reste avant Entretien : '.$Avant_Entretien.' Kg';
$string = " \r\n";
echo nl2br($string);

}
//Ferme le flux sur le fichier
fclose($fp);

// Test la réussite de la connection
if (!$data)
   exit("\r\n Une erreur est survenue pendant l'éxecution de la session cURL \r\n");

/**************************************************
Derniére requête : Déconnexion
**************************************************/
$string = " \r\n";
echo nl2br($string);
$string = "\r\n Now Phase 3 ! \r\n";
echo nl2br($string);

$url = 'https://www.rika-firenet.com/web/logout';

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout2);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout2);

if (preg_match('`^https://`i', $url))
{
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
}

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);

curl_exec($ch);
curl_close($ch);

unlink($path_cookie);  // Supprime le fichier cookie

$string = "Logout ! \r\n";
echo nl2br($string);

/**************************************************
Envoi des donées vers Domoticz
**************************************************/
$string = " \r\n";
echo nl2br($string);
$string = "\r\n Now Send Data ! \r\n";
echo nl2br($string);

/*----------------------------------------------------------------
     USERVARIABLENAME with the name of your variable
     USERVARIABLETYPE according to the table from "Store a new variable"
     USERVARIABLEVALUE with the new value
   
    Where type is 0 to 4:

0 = Integer, e.g. -1, 1, 0, 2, 10
1 = Float, e.g. -1.1, 1.2, 3.1
2 = String
3 = Date in format DD/MM/YYYY
4 = Time in 24 hr format HH:MM

$Allum_Eteint = $parsed_json['controls']['onOff'];                       // idx =
$Temp_Consigne = $parsed_json['controls']['targetTemperature'];          // idx = 0014089 / 58 / Température Désirée Poéle
$Status_Chauf = $parsed_json['sensors']['statusSubState'];               // idx =
$Temp_Bureau = $parsed_json['sensors']['inputRoomTemperature'];          // idx = 1408A   / 59 / Température Bureau / Cuisine
$Conso_Pelet_Total = $parsed_json['sensors']['parameterFeedRateTotal'];  // idx = 1408D   / 62 / Conso. Pellets Total
$Avant_Entretien = $parsed_json['sensors']['parameterFeedRateService'];  // idx = 1408C   / 61 / Conso. Pellets avant Entretien

Lancer par Crontab -e
#        * /2 * * * * i/domoticz/scripts/php/Rika.php

-----------------------------------------------------------------*/
//$Url_Send = 'http://'.$Domoticz_URL.'/json.htm?type=command&param=udevice&idx=59&nvalue=0&svalue=19';   // Custom Sensor
$Url_Send_Consigne = 'http://'.$Domoticz_URL.'/json.htm?type=command&param=udevice&idx=58&nvalue=0&svalue='.$Temp_Consigne;   // Temperature Sensor
$Url_Send_Bureau = 'http://'.$Domoticz_URL.'/json.htm?type=command&param=udevice&idx=59&nvalue=0&svalue='.$Temp_Bureau;   // Temperature Sensor
$Url_Entretien = 'http://'.$Domoticz_URL.'/json.htm?type=command&param=udevice&idx=61&svalue='.$Avant_Entretien;  // Counter
$Url_Send_Total = 'http://'.$Domoticz_URL.'/json.htm?type=command&param=udevice&idx=62&svalue='.$Conso_Pelet_Total;  // Counter

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $Url_Send_Consigne);
$result1 = curl_exec($curl);
echo 'Temp Consigne : '.$Temp_Consigne;
$string = " \r\n";
echo nl2br($string);
curl_close($curl);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $Url_Send_Bureau);
$result2 = curl_exec($curl);
echo 'Bureau : '.$Temp_Bureau;
$string = " \r\n";
echo nl2br($string);
curl_close($curl);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $Url_Entretien);
$result3 = curl_exec($curl);
echo 'Av entretien : '.$Avant_Entretien;
$string = " \r\n";
echo nl2br($string);
curl_close($curl);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $Url_Send_Total);
$result4 = curl_exec($curl);
echo 'Conso Tot : '.$Conso_Pelet_Total;
curl_close($curl);

?>


Voila c' est fini pour aujourd'hui . Je verrais si j' ai le temps de finir et de poster le reste .
Si vous avez des idées ou modifications possible n' hésitez pas .
Merci !

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


razorbak
Messages : 18
Inscription : 26 oct. 2016, 23:05

Re: Gestion Poéle à pellets Rika

Messagepar razorbak » 26 oct. 2016, 23:11

ohhhh un copain.
J'ai fait exactement pareil hier soir et mince j'ai pas vu ton code et j'ai tout refait :)
J'ai aussi une fonction pour configurer le poele (reglage de la puissance juste pour tester) car idealement je veux aller plus loin.

J'ai repris le code un thermostat PID (d'une autre solution de domotique) avec apprentissage auto de coeff de chauff et isolation d'une solution domotique qui marche HYPER bien avec mes radiateurs electriques MAIS je veux reduire les allumages / extinction en regulant la puissance au lieu de faire marche à fond et eteint.

Du coup, avec ce code modifié, en fonction de la temp exterieure, interieure, la consigne et les coefficients il determine la puissance de chauffe necessaire sur la periode de temps (configurable c'est le cycle)
Du coup je compte prendre cette info pour indiquer au poele sa puissance entre 30 et 100.
Le gros avantage est la temperature est toujours hyper proche de la consigne et les allumages extinctions reduits. Mon poele a un rendement a peu pres equivalent (d'apres les specs ...) entre 30 et 100% de puissance donc c'est bon.

razorbak
Messages : 18
Inscription : 26 oct. 2016, 23:05

Re: Gestion Poéle à pellets Rika

Messagepar razorbak » 26 oct. 2016, 23:22

sinon par rapport à ton code.
Il est très bien (pour moi mais je ne suis pas un pro) sauf peut être que tu devrais utiliser des functions pour le rendre plus lisible

et ensuite, je n'ai pas encore regarder la communication entre poele et serveur (en fait si mais https) mais idealement je voudrai essayer de me passer du cloud rika.

Si tu connais l'IP de ton poele, tu verras que le module wifi est de type SPWF01S (il y a un service web qui tourne sur la cle)
C'est une interface wifi <-> at

Je vais peut etre tenter une attaque man in the middle pour voir le traffic entre ce module et le site

razorbak
Messages : 18
Inscription : 26 oct. 2016, 23:05

Re: Gestion Poéle à pellets Rika

Messagepar razorbak » 26 oct. 2016, 23:33

pour l'etat du poele tu as plus de detail dans le code de la page web :

if (mainState == 1) {
if (subState == 0)
return ["/images/status/Visu_Off.svg", "Stove off"];
else if (subState == 1)
return ["/images/status/Visu_Standby.svg", "Standby"];
else if (subState == 2)
return ["/images/status/Visu_Standby.svg", "External Request"];
else if (subState == 3)
return ["/images/status/Visu_Standby.svg", "Standby"];
return ["/images/status/Visu_Off.svg", "Substate Unknown"];
}
else if (mainState == 2)
return ["/images/status/Visu_Ignition.svg", "Ignition on"];
else if (mainState == 3)
return ["/images/status/Visu_Ignition.svg", "Starting up"];
else if (mainState == 4)
return ["/images/status/Visu_Control.svg", "Running"];
else if (mainState == 5) {
if (subState == 3 || subState == 4)
return ["/images/status/Visu_Clean.svg", "Big Clean"];
else
return ["/images/status/Visu_Clean.svg", "Clean"];
}
else if (mainState == 6)
return ["/images/status/Visu_BurnOff.svg", "Burn off"];
else if (mainState == 11 || mainState == 13 || mainState == 14 || mainState == 16 || mainState == 17 || mainState == 50)
return ["/images/status/Visu_SpliLog.svg", "Split log check"];
else if (mainState == 20 || mainState == 21)
return ["/images/status/Visu_SpliLog.svg", "Split log mode"];
return ["/images/status/Visu_Off.svg", "Unknown"];

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Celtic80
Messages : 10
Inscription : 01 oct. 2016, 21:50

Re: Gestion Poéle à pellets Rika

Messagepar Celtic80 » 27 oct. 2016, 00:04

Salut ;
Merci pour toutes ces infos ( je suis passés à coté dans le code ) .
Sinon il est vrai que mon poêle ne travaille pas avec une puissance de chauffe mais une température mais quand j' aurai fini mon code post ,on pourra envoyé quasiment tout !
Voici les données que l' on peux modifié :

operatingMode=2// Mode confort de fonctionnement 1 Auto / 2 Confort
heatingPower=70// Puissance du poéle
targetTemperature=18// Temperature de consigne
onOff=true// Mise en marche
heatingTimesActive=true
heatingTimesActiveForComfort=false// Plages horaires on/Off
setBackTemperature=15// Température de maintien [°C]
convectionFan1Active=false// Convection Multi Air 1
convectionFan1Level=0
convectionFan1Area=0
convectionFan2Active=false// Convection Multi Air 2
convectionFan2Level=0
convectionFan2Area=0
frostProtectionActive=false// Mode hors gel
frostProtectionTemperature=4// Temperature du Mode Hors Gel
revision=1474909416// Unix Time

J ' ai vu le site du poêle via son ip et l' on peux modifié beaucoup de chose mais ne saurait pas le faire et peur de crash ma clé ...
En ce qui concerne de communiquer avec le poêle directement cela serait mieux mais je ne suis pas assez expert pour cela ! (Man in the middle)

razorbak
Messages : 18
Inscription : 26 oct. 2016, 23:05

Re: Gestion Poéle à pellets Rika

Messagepar razorbak » 27 oct. 2016, 00:18

j'ai l'impression que depuis la version 2.16 l'hysteris a changé. Je suis pour le moment en mode température comme toi mais il s'allume et s'eteint plus souvent. J'ai aussi des virtuels pour tracker ca. Je vais voir ca dans les prochains jours avec l'historique.

Sinon je vais regarder pour capturer le flux entre poele et serveur et te poster un dump si j'y arrive

Celtic80
Messages : 10
Inscription : 01 oct. 2016, 21:50

Re: Gestion Poéle à pellets Rika

Messagepar Celtic80 » 27 oct. 2016, 19:05

Salut ;
Voici un site qui en parle dans les dernières pages :
http://www.domotique-fibaro.fr/index.ph ... ets/page-9

razorbak
Messages : 18
Inscription : 26 oct. 2016, 23:05

Re: Gestion Poéle à pellets Rika

Messagepar razorbak » 27 oct. 2016, 19:35

oui en fait c'est moi :) J'ai 2 pseudos différents

vinchz31
Messages : 50
Inscription : 21 nov. 2016, 07:51

Re: Gestion Poéle à pellets Rika

Messagepar vinchz31 » 26 nov. 2016, 18:30

Bonjour,

J'ai un poêle Rika Rocco et suis très interessé pour récupérer le status de poêle.
Je n'y connais rien en curl mais j'ai essayé après avoir installé Php sur mon Rapsberry de faire tourner le script proposé (après avoir valorisé les variables avec mes infos).

Premier souci, après quelques recherches, j'ai dû remplacer
curl_setopt($ch, CURLOPT_REFERER, $_SERVER['REQUEST_URI']);
par
curl_setopt($ch, CURLOPT_REFERER, @$_SERVER['REQUEST_URI']);
...sinon j'obtenais le message : "PHP Notice: Undefined index: REQUEST_URI in /home/pi/domoticz/scripts/Php/rika.php on line 75" (même si le reste du script continuait de s'executer).

A présent le script tourne sans erreur mais je n'obtiens aucun retour.
J'ai un fichier JSON qui est bien créé dans le répertoire et qui contient "Authorisation required!"

Je suppose donc que j'ai un problème pour l'authentification (pourtant j'ai bien positionné mes infos de connexion) mais ne connaissant pas le curl, j'ai du mal à voir d'où vient le soucis.

Voici le retour que me fait le script lorsqu'il tourne :

---------------------
root@raspberrypi:/home/pi/domoticz/scripts/Php# php rika.php

<br />
unix Time : 1480181047 <br />
<br />
Now Phase 1 ! <br />
Data received phase 1 : Found. Redirecting to /web/login
<br />
<br />
Now Phase 2 ! <br />
Data received phase 2 : 1
<br />
<br />
Poéle éteint : <br />
<br />
Temperature bureau : ° <br />
Temp_Consigne : ° <br />
Conso Pelet Total : -2062 Kg <br />
Reste avant Entretien : Kg <br />
<br />
<br />
Now Phase 3 ! <br />
Logout ! <br />
<br />
<br />
Now Send Data ! <br />
Temp Consigne : <br />
Bureau : <br />
Av entretien : <br />
Conso Tot : -2062

---------------------

Pouvez-vous me donner un coup de main pour arriver à le faire fonctionner ?
En vous remerciant par avance !
Très bonne soirée !

razorbak
Messages : 18
Inscription : 26 oct. 2016, 23:05

Re: Gestion Poéle à pellets Rika

Messagepar razorbak » 26 nov. 2016, 18:59

Essaye ca en changeant mail / password et poel number
poel number est ce que tu vois dans l'url dans ton navigateur apres stove

Tu me diras

Code : Tout sélectionner

<?php

$now = round(microtime(true)*1000,0);

$mail = 'XXXXX';
$password = 'XXXX'';
$poel_number = '123456'';

$on = false;

$login_url = 'https://www.rika-firenet.com/web/login';
$log = 'https://www.rika-firenet.com/api/client';
$get = 'https://www.rika-firenet.com/api/client/'.$poel_number.'/status?nocache=';

echo date("Y-m-d H:i:s")."\n";

$connect_sid = login();

$status = get_status('connect.sid='.$connect_sid);
$status_array = json_decode($status,true);

var_dump($status_array);

function login ()

   {
      global $login_url,$mail,$password;
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $login_url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_HEADER, 1);
      curl_setopt($ch, CURLOPT_POST,           1 );
      curl_setopt($ch, CURLOPT_POSTFIELDS,'email='.$mail.'&password='.$password);
      curl_setopt($ch, CURLOPT_HTTPHEADER,array('Content-Type: application/x-www-form-urlencoded'));

      $result=curl_exec ($ch);

      preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $result, $matches);        // get cookie
      $cookies = array();
         foreach($matches[1] as $item)
            {
                parse_str($item, $cookie);
                $cookies = array_merge($cookies, $cookie);
            }
      return $cookies['connect_sid'];
   }
function get_status($cookie)
   {

      global $get,$now;
      $c = curl_init();
      curl_setopt($c, CURLOPT_URL, $get.$now);
      curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($c, CURLOPT_COOKIE, $cookie);
      curl_setopt($c, CURLOPT_HEADER, false);
      $result=curl_exec ($c);

      return $result;
   }
?>


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.



Revenir vers « La Bibliothèque Scripts et Tutos »

Qui est en ligne ?

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