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]
vinchz31
Messages : 103
Enregistré le : 21 nov. 2016, 07:51

Re: Gestion Poéle à pellets Rika

Message par vinchz31 » 26 nov. 2016, 19:42

Merci beaucoup Razorbak pour ton aide !
Alors je viens de tester en positionnant bien les infos (j'ai bien regardé l'ID qui était déjà le bon et correspondait bien à ce qu'on trouve après stove).

Voici le retour du script :
2016-11-26 18:41:14
NULL

NB, j'ai remplacé
$password = 'XXXX'';
$poel_number = '123456'';
Par
$password = 'XXXX';
$poel_number = '123456';
(j'ai enlevé le double ' pour le remplacer par un simple)


:(
Dis moi si ça te parle...
Merci d'avance et très bonne soirée !*

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 : 22
Enregistré le : 26 oct. 2016, 23:05

Re: Gestion Poéle à pellets Rika

Message par razorbak » 26 nov. 2016, 19:45

ok y'a un pb. Je vais te poster un code avec plus de log plus tard. A mon avis il y a un pb d'authentification

vinchz31
Messages : 103
Enregistré le : 21 nov. 2016, 07:51

Re: Gestion Poéle à pellets Rika

Message par vinchz31 » 26 nov. 2016, 20:02

Merci beaucoup !

razorbak
Messages : 22
Enregistré le : 26 oct. 2016, 23:05

Re: Gestion Poéle à pellets Rika

Message par razorbak » 26 nov. 2016, 20:12

tu as aussi changé le mail ?

Esaye avec cette nouvelle fonction de login

Code : Tout sélectionner


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);

		var_dump($result);

		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'];
	}

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.


vinchz31
Messages : 103
Enregistré le : 21 nov. 2016, 07:51

Re: Gestion Poéle à pellets Rika

Message par vinchz31 » 26 nov. 2016, 20:19

Oui j'ai changé le mail . password + Id du poêle (et j'ai bien contrôlé pour être sûr de ne pas avoir fait d'erreur).
Voici le retour avec la nouvelle fonction de login :


pi@raspberrypi:~/domoticz/scripts/Php $ php testrika.php
2016-11-26 19:17:27
string(453) "HTTP/1.1 302 Found
Server: Cowboy
Connection: keep-alive
X-Powered-By: Express
Location: /web/login
Vary: Accept, Accept-Encoding
Content-Type: text/plain; charset=utf-8
Content-Length: 32
Set-Cookie: connect.sid=s%3AHD9yoNq0yy3V5sg21vwdt3rDQHaGP4yo.vWzE8UIXPQI7CHlzgqtJI3%2FG7gw2HSc3%2FZV%2FXkSClyI; Path=/; E xpires=Sat, 10 Dec 2016 19:17:28 GMT; HttpOnly
Date: Sat, 26 Nov 2016 19:17:28 GMT
Via: 1.1 vegur

Found. Redirecting to /web/login"
PHP Fatal error: Call to undefined function get_status() in /home/pi/domoticz/scripts/Php/testrika.php on line 22

vinchz31
Messages : 103
Enregistré le : 21 nov. 2016, 07:51

Re: Gestion Poéle à pellets Rika

Message par vinchz31 » 26 nov. 2016, 21:08

J'ai fait un echo du $connect_sid qui est dans la commande $status = get_status('connect.sid='.$connect_sid) et qui fait suite à la commande $connect_sid = login();

Ca me donne :
Connect SID = s:ng6LvfM1su8LWCNTt-f3JNbcOcN29dBv.OSUZx//lFw3fLOWvCYWftvMevM02kCOUGsohgQOaZ5Y

Si ça peut aider ;)

Très bonne soirée :::

razorbak
Messages : 22
Enregistré le : 26 oct. 2016, 23:05

Re: Gestion Poéle à pellets Rika

Message par razorbak » 26 nov. 2016, 22:53

bon a priori l'anthentification est bonne
Par contre je suis surpris de cette erreur :

Code : Tout sélectionner

PHP Fatal error: Call to undefined function get_status() in /home/pi/domoticz/scripts/Php/testrika.php on line 22
Normal que cela ne marche pas du coup
Est-ce que tu as bien fait un copié/collé ?

tu as bien la fonction dans ton code ?

vinchz31
Messages : 103
Enregistré le : 21 nov. 2016, 07:51

Re: Gestion Poéle à pellets Rika

Message par vinchz31 » 26 nov. 2016, 23:04

Bonsoir Razorbck,

Et non !!! En recopiant la fonction login, j'ai supprimé la fonction get_status (je ne me suis pas posé de question et je n'ai pas vérifié car je croyais que c'était une fonction du système ;) ).
Donc une fois remise, ça marche beaucoup mieux !!!

J'obtiens à présent :

2016-11-26 22:03:22
string(453) "HTTP/1.1 302 Found
Server: Cowboy
Connection: keep-alive
X-Powered-By: Express
Location: /web/login
Vary: Accept, Accept-Encoding
Content-Type: text/plain; charset=utf-8
Content-Length: 32
Set-Cookie: connect.sid=s%3AEaPBSRzDirFHF8bEaxTe01MWa-ctnWa0.Cxh%2BM%2FyPsQUbHwHc1uvpSBw04ipNb2tpd%2FXfzR9LYGc; Path=/; Expires=Sat, 10 Dec 2016 22:03:23 GMT; HttpOnly
Date: Sat, 26 Nov 2016 22:03:23 GMT
Via: 1.1 vegur

Found. Redirecting to /web/login"
NULL

Voilà... Tu me diras ce que tu en penses...
Très bonne soirée et encore merci pour ton aide précieuse !

razorbak
Messages : 22
Enregistré le : 26 oct. 2016, 23:05

Re: Gestion Poéle à pellets Rika

Message par razorbak » 26 nov. 2016, 23:17

mieux mais pas encore bon car tu devrais avoir les infos de ton poele en retour

essaye avec ca en fonction get_status

Code : Tout sélectionner

function get_status($cookie)
	{

		global $get,$now;
		$c = curl_init();
		curl_setopt($c, CURLOPT_URL, $get);
		curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($c, CURLOPT_COOKIE, $cookie);
		curl_setopt($c, CURLOPT_HEADER, false);
		curl_setopt($c, CURLOPT_VERBOSE, true);
		//$val = curl_getinfo($c);
		//var_dump($val);
		$result=curl_exec ($c);

		return $result;
	}

vinchz31
Messages : 103
Enregistré le : 21 nov. 2016, 07:51

Re: Gestion Poéle à pellets Rika

Message par vinchz31 » 27 nov. 2016, 07:53

ALors y'a eu du mieux mais je n'avais toujours pas les infos et il était indiqué :
HTTP/1.1 401 Unauthorized

Donc a priori il y avait encore un problème d'autorisation ;)

J'ai donc essayé de regarder où ça pouvait poser souci dans mes paramètres.
J'avais le mot de passe (généré par mon gestionnaire de mots de passe) suivant : lS7(jz+0sm2P]hR
Je me suis dit que les caractères spéciaux pouvaient peut-être poser souci dans la définition du mot de passe
$password = 'lS7(jz+0sm2P]hR';

J'ai donc remplacé par un mot de passe simple sur le site et dans mon script et là...
...miracle !!! Ca fonctionne !

Je récupère toutes les infos :


-------------------------------------------------------------------------------------------------
pi@raspberrypi:~/domoticz/scripts/Php $ php testrika.php
2016-11-27 06:49:54
string(453) "HTTP/1.1 302 Found
Server: Cowboy
Connection: keep-alive
X-Powered-By: Express
Location: /web/summary
Vary: Accept, Accept-Encoding
Content-Type: text/plain; charset=utf-8
Content-Length: 34
Set-Cookie: connect.sid=s%3AXL6HqKQjte8VaHxttTUsPhh6B8o1JrV6.uRg0e0Gi%2FTME94fOMmELUWrou9MIyF2cEC1xELf8okU; Path=/; Expires=Sun, 11 Dec 2016 06:49:54 GMT; HttpOnly
Date: Sun, 27 Nov 2016 06:49:54 GMT
Via: 1.1 vegur

Found. Redirecting to /web/summary"
* Hostname was found in DNS cache
* Trying 46.51.171.127...
* Connected to http://www.rika-firenet.com (46.51.171.127) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: none
CApath: /etc/ssl/certs
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* Server certificate:
* subject: CN=*.rika-firenet.com
* start date: 2015-12-28 09:23:24 GMT
* expire date: 2018-12-30 02:20:25 GMT
* subjectAltName: http://www.rika-firenet.com matched
* issuer: C=US; O=GeoTrust Inc.; CN=RapidSSL SHA256 CA - G3
* SSL certificate verify ok.
> GET /api/client/26234636/status?nocache= HTTP/1.1
Host: http://www.rika-firenet.com
Accept: */*
Cookie: connect.sid=s:XL6HqKQjte8VaHxttTUsPhh6B8o1JrV6.uRg0e0Gi/TME94fOMmELUWrou9MIyF2cEC1xELf8okU

< HTTP/1.1 200 OK
* Server Cowboy is not blacklisted
< Server: Cowboy
< Connection: keep-alive
< X-Powered-By: Express
< Content-Type: application/json; charset=utf-8
< Content-Length: 1084
< Etag: W/"43c-ebzoiu/13ttn2+oQOsdV8A"
< Vary: Accept-Encoding
< Date: Sun, 27 Nov 2016 06:49:55 GMT
< Via: 1.1 vegur
<
* Connection #0 to host http://www.rika-firenet.com left intact
array(7) {
["name"]=>
string(12) "Poêle salon"
["stoveID"]=>
string(8) "26234636"
["lastSeenMinutes"]=>
int(0)
["lastConfirmedRevision"]=>
int(1480197954)
["controls"]=>
array(16) {
["revision"]=>
int(1480197954)
["onOff"]=>
bool(true)
["operatingMode"]=>
int(2)
["heatingPower"]=>
int(50)
["targetTemperature"]=>
int(20)
["heatingTimesActive"]=>
bool(false)
["heatingTimesActiveForComfort"]=>
bool(true)
["setBackTemperature"]=>
int(12)
["convectionFan1Active"]=>
bool(true)
["convectionFan1Level"]=>
int(5)
["convectionFan1Area"]=>
int(0)
["convectionFan2Active"]=>
bool(false)
["convectionFan2Level"]=>
int(0)
["convectionFan2Area"]=>
int(0)
["frostProtectionActive"]=>
bool(false)
["frostProtectionTemperature"]=>
int(4)
}
["sensors"]=>
array(22) {
["statusError"]=>
int(0)
["statusWarning"]=>
int(0)
["statusService"]=>
int(0)
["statusMainState"]=>
int(3)
["statusSubState"]=>
int(2)
["statusFrostStarted"]=>
bool(false)
["inputFlameTemperature"]=>
int(326)
["inputRoomTemperature"]=>
int(20)
["inputExternalRequest"]=>
bool(true)
["outputDischargeMotor"]=>
int(0)
["outputInsertionMotor"]=>
int(0)
["outputIDFan"]=>
int(1400)
["outputAirFlaps"]=>
int(0)
["outputIgnition"]=>
bool(false)
["parameterStoveTypeNumber"]=>
int(4)
["parameterVersionMainBoard"]=>
int(216)
["parameterVersionTFT"]=>
int(216)
["parameterRuntimePellets"]=>
int(164)
["parameterRuntimeLogs"]=>
int(0)
["parameterFeedRateTotal"]=>
int(165)
["parameterFeedRateService"]=>
int(535)
["parameterOnOffCycles"]=>
int(11)
}
["stoveType"]=>
string(13) "ROCO MultiAir"
}
------------------------------------------------------------------------


Et ton script initial a marché du premier coup en me renvoyant les infos suivantes :


----------------------------------------------------------------------
pi@raspberrypi:~/domoticz/scripts/Php $ php rika.php
<br />
unix Time : 1480229506 <br />
<br />
Now Phase 1 ! <br />
https://www.rika-firenet.com/web/login email=vincent.zemb@free.fr&password=zvdk0612 Data received phase 1 : Found. Redirecting to /web/summary
<br />
<br />
Now Phase 2 ! <br />
Data received phase 2 : 1
<br />
<br />
Démarrage de Chauff. du Poéle <br />
<br />
Temperature bureau : 20 ° <br />
Temp_Consigne : 20 ° <br />
Conso Pelet Total : -1897 Kg <br />
Reste avant Entretien : 535 Kg <br />
<br />
<br />
Now Phase 3 ! <br />
Logout ! <br />
<br />
<br />
Now Send Data ! <br />
Temp Consigne : 20 <br />
Bureau : 20 <br />
Av entretien : 535 <br />
Conso Tot : -1897pi@raspberrypi:~/domoticz/scripts/Php $
----------------------------------------------------------------------


Merci beaucoup !
Il me reste plus qu'à récupérer ces valeurs dans des variables Domoticz...
...comment est-ce que tu procèdes pour les transmettre ?

Très bonne journée et encore un grand 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.


Répondre