[PHP] Gestion Poéle à pellets Rika

Vous avez créé 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.
razorbak
Messages : 26
Inscription : 26 oct. 2016, 23:05

Re: Gestion Poéle à pellets Rika

Message par razorbak »

il faut que tu regardes le script de Celtic80 car moi je n'utilise pas domoticz
vinchz31
Messages : 312
Inscription : 21 nov. 2016, 07:51

Re: Gestion Poéle à pellets Rika

Message par vinchz31 »

Ok, je regarde ça !
J'ai déjà réussi à écrire le retour dans un fichier texte et à l'ouvrir en LUA.
Il ne me reste plus qu'à trouver comment le parser simplement.
Très bonne journée et encore merci pour ton aide !
vinchz31
Messages : 312
Inscription : 21 nov. 2016, 07:51

Re: Gestion Poéle à pellets Rika

Message par vinchz31 »

A propos, tu as réussi à envoyer des données pour modifier la configuration du poêle ?
razorbak
Messages : 26
Inscription : 26 oct. 2016, 23:05

Re: Gestion Poéle à pellets Rika

Message par razorbak »

oui. J'ai fait un script pour ca
vinchz31
Messages : 312
Inscription : 21 nov. 2016, 07:51

Re: Gestion Poéle à pellets Rika

Message par vinchz31 »

Je suis preneur si c'est possible... :D
vinchz31
Messages : 312
Inscription : 21 nov. 2016, 07:51

Re: Gestion Poéle à pellets Rika

Message par vinchz31 »

J'ai réussi à récupérer en parallèle toutes les infos dans domoticz grace au script de Celtic80.
Grace à vous deux ça devrait être parfait !!! :-)
vinchz31
Messages : 312
Inscription : 21 nov. 2016, 07:51

Re: Gestion Poéle à pellets Rika

Message par vinchz31 »

Bonsoir Razorbak, bonsoir Celtic 80,

Quelques news de mes avancées.
J'ai pu récupérer toutes les infos dont j'avais besoin en modifiant légèrement la dernière partie de ton script Celtic80 :

Code : Tout sélectionner

    $Extract_Format_JSON = file_get_contents($Fichier_Status);
    $JSON_PARSE = json_decode($Extract_Format_JSON, true);
		$MultiAirActif = $JSON_PARSE['controls']['convectionFan1Active'];
		$PoeleOnOff = $JSON_PARSE['controls']['onOff'];
		$Status_Chauf_Main = $JSON_PARSE['sensors']['statusMainState'];
		$Status_Chauf_Sub = $JSON_PARSE['sensors']['statusSubState'];
		$Conso_Pelet_Total = $JSON_PARSE['sensors']['parameterFeedRateTotal'];
		$Temp_Consigne = $JSON_PARSE['controls']['targetTemperature'];
J'ai ensuite simplement affecté les valeur récupérées à des variables Domoticz via des appels CURL sur des URL JSON :

Code : Tout sélectionner

		$Url = 'http://192.168.0.1:8080/json.htm?type=command&param=updateuservariable&idx=21&vname=POELE_SOUSETAT&vtype=0&vvalue='.$Status_Chauf_Sub;
		$curl = curl_init();
		curl_setopt($curl, CURLOPT_URL, $Url);
		$result1 = curl_exec($curl);
		curl_close($curl);
		
		$Url = 'http://192.168.0.1:8080/json.htm?		type=command&param=updateuservariable&idx=20&vname=POELE_ETAT&vtype=0&vvalue='.$Status_Chauf_Main;
		$curl = curl_init();
		curl_setopt($curl, CURLOPT_URL, $Url);
		$result1 = curl_exec($curl);
		curl_close($curl);

		$Url = 'http://192.168.0.1:8080/json.htm?type=command&param=updateuservariable&idx=25&vname=POELE_ONOFF&vtype=0&vvalue='.$PoeleOnOff;
		$curl = curl_init();
		curl_setopt($curl, CURLOPT_URL, $Url);
		$result1 = curl_exec($curl);
		curl_close($curl);

		$Url = 'http://192.168.0.1:8080/json.htm?type=command&param=updateuservariable&idx=22&vname=POELE_MULTIAIR&vtype=0&vvalue='.$MultiAirActif;
		$curl = curl_init();
		curl_setopt($curl, CURLOPT_URL, $Url);
		$result1 = curl_exec($curl);
		curl_close($curl);


		$Url = 'http://192.168.0.1:8080/json.htm?type=command&param=updateuservariable&idx=23&vname=POELE_CONSOTOTALE&vtype=0&vvalue='.$Conso_Pelet_Total;
		$curl = curl_init();
		curl_setopt($curl, CURLOPT_URL, $Url);
		$result1 = curl_exec($curl);
		curl_close($curl);
		
		$Url = 'http://192.168.0.1:8080/json.htm?type=command&param=updateuservariable&idx=24&vname=POELE_CONSIGNE&vtype=0&vvalue='.$Temp_Consigne;
		$curl = curl_init();
		curl_setopt($curl, CURLOPT_URL, $Url);
		$result1 = curl_exec($curl);
		curl_close($curl);
Toutes les variables sont récupérées ainsi :
Variables.jpg
Variables.jpg (35.1 Kio) Consulté 10974 fois
J’exécute ensuite un Script_Time en LUA qui parse ces valeurs et me déclenche un extracteur d'air (bouche d'aspiration au-dessus du poêle) quand le poêle est en route :

Code : Tout sélectionner

commandArray = {}

	NOM_INTERRUPTEUR_PILOTAGE_EXTRACTEURAIR = 'Extracteur-Air'
	
	
		
	-- ----------------------------------------------------------------------------------
	-- --Récupération de toutes les variables Domoticz servant au script et remise à 0 --
	-- ----------------------------------------------------------------------------------
	POELE_ONOFF = tonumber(uservariables['POELE_ONOFF'])
	POELE_CONSIGNE = tonumber(uservariables['POELE_CONSIGNE'])               
	POELE_CONSOTOTALE = tonumber(uservariables['POELE_CONSOTOTALE'])               
	POELE_MULTIAIR = tonumber(uservariables['POELE_MULTIAIR'])           
	POELE_SOUSETAT = tonumber(uservariables['POELE_SOUSETAT'])          
	POELE_ETAT = tonumber(uservariables['POELE_ETAT'])   

	

	if POELE_ONOFF == 0 then
		print('Poele Eteint')
	else
		print('Poele allume')
		if POELE_ETAT == 1 then
			if POELE_SOUSETAT == 0 then
				print('... en cours d extinction')
			end
			if POELE_SOUSETAT == 3 then
				print('... en veille')
			end
		end
		if POELE_ETAT == 2 then
			if POELE_SOUSETAT == 6 then
				print('... en cours d allumage')
			end
		end
		if POELE_ETAT == 3 then
			if POELE_SOUSETAT == 1 then
				print('... en cours de demarrage')
			end
		end
		if POELE_ETAT == 4 then
			if POELE_SOUSETAT == 4 then
				print('... en chauffe - controle')
			end
		end
		if POELE_ETAT == 6 then
			print('Fin de combustion')
		end
	end	


	print('POELE_ONOFF : ' ..POELE_ONOFF)
		print('POELE_ETAT : ' ..POELE_ETAT)
			print('POELE_SOUSETAT : ' ..POELE_SOUSETAT)
	
 
	if (POELE_ONOFF ==1  and POELE_ETAT == 4 and (POELE_SOUSETAT == 4 or POELE_SOUSETAT == 3)) then
		print('Poele en fonctionnement - activation de l extracteur d air')
		commandArray[NOM_INTERRUPTEUR_PILOTAGE_EXTRACTEURAIR] = 'On'
	else
		print('Poele inactif - desactivation de l extracteur d air')
		commandArray[NOM_INTERRUPTEUR_PILOTAGE_EXTRACTEURAIR] = 'Off'
	end

 
return commandArray

Voilà, merci beaucoup à Celtic80 pour ton script et à toi Razorbak dans l'aide du debug pour faire fonctionner le script php !
Razorback, as-tu la possibilité de m'expliquer comment piloter à présent le poêle en lui passant des commandes (je souhaiterais notament pouvoir le mettre en on/off, etc.) en fonction de la température récupérée dans la maison...

Merci d'avance et très bonne soirée !!!
Dernière modification par vinchz31 le 05 déc. 2016, 14:04, modifié 1 fois.
vinchz31
Messages : 312
Inscription : 21 nov. 2016, 07:51

Re: Gestion Poéle à pellets Rika

Message par vinchz31 »

C'est bon, en cherchant j'ai réussi à retrouver la commande POST à passer en curl pour commander le poêle (merci Fiddler !).
J'ai réussi à scripter ça en Php et à l'appeler via Domoticz en faisant exécuter le script à un bouton de Push que j'active.

Lorsqu'activé, le script va récupéré via un curl sur un appel JSON les valeurs de variables dans Domoticz (exemple: CMD-ON-OFF-POELE = 1 indique qu'on souhaite allumer le poêle) et prend ces valeurs pour constituer les commandes qui sont passées en POST au poêle...

Ca a été un peu compliqué mais j'y suis arrivé... :D :D :D
Très bonne journée !
Celtic80
Messages : 10
Inscription : 01 oct. 2016, 21:50

Re: Gestion Poéle à pellets Rika

Message par Celtic80 »

Bonjour et merci pour vos retours( un peu tard désolé).
Si quelqu'un peu mettre son script pour le post vers le poêle ce serait cool.
Merci à vous
reiger123
Messages : 5
Inscription : 03 oct. 2017, 07:48

Re: Gestion Poéle à pellets Rika

Message par reiger123 »

I'm sorry to respond to this topic in English but Google Translate makes a mess of things when translating from English to French. I'm investigating the
Rika Firenet Wifi USB device. I'm wondering if anyone tried connecting the Rika module to a computer. I'd like to know which chipset it's using.

Does anyone have a Rika Firenet Wifi USB device? Can you discover the chipset using Windows Device Manager and share it with me?
Répondre