POST HTTP vers virtuel Jeedom

Bonjour @seb821,

J’ai pas mal avancé également de mon coté, j’ai fait le choix d’utiliser le plugin « http remote event » qui me permet d’avoir des équipements ce mettant a jour via requette post http.

Il me restait donc a gérer la partie script pour mettre a jour les valeurs de mes virtuels. Voila mon code, qui dois surement pouvoir être optimisé mais qui a le mérite de bien fonctionner et de ne pas alourdir mon serveur.

//On enregistre le declencheur dans une variable
$trigger=$scenario->getRealTrigger();
$cmdtrigger=cmd::byString($trigger)->getName();
//$scennario->setLog("lancement du scenario par : $cmdtrigger"); //debug


if ($sc->getTrigger('#[Energie][PostHTTP|Fronius-CurrentDataPowerflow][CurrentDataPowerflow]#')) {
	$cmd = cmd::byString("#[Energie][PostHTTP|Fronius-CurrentDataPowerflow][CurrentDataPowerflow]#");
	$CurrentDataPowerflow = $cmd->execCmd();

	// On le décode
	$CurrentDataPowerflow = utf8_encode($CurrentDataPowerflow);
//  	$scenario->setLog('Data :'.$CurrentDataPowerflow); //debug
	$results = json_decode($CurrentDataPowerflow, true);
  
	if(is_array($results)){
		// on créé les variable
		$E_Day = $results['Body']['Site']['E_Day'];
		$E_Total = $results['Body']['Site']['E_Total'];
		$E_Year = $results['Body']['Site']['E_Year'];
		$Mode = $results['Body']['Site']['Mode'];
		$P_Akku = $results['Body']['Site']['P_Akku'];
		$P_Grid = $results['Body']['Site']['P_Grid'];
		$P_Load = $results['Body']['Site']['P_Load'];
		$P_PV = $results['Body']['Site']['P_PV'];
		$rel_Autonomy = $results['Body']['Site']['rel_Autonomy'];
		$rel_SelfConsumption = $results['Body']['Site']['rel_SelfConsumption'];

//		$scenario->setLog('E_Day: '.$E_Day .', E_Total: '.$E_Total .', E_Year: '.$E_Year .', Mode: '.$Mode .', P_Akku: '.$P_Akku .', P_Grid: '.$P_Grid .', P_Load: '.$P_Load .', P_PV: '.$P_PV .', rel_Autonomy: '.$rel_Autonomy .', rel_SelfConsumption: '.$rel_SelfConsumption); //debug
    
		// on met a jour les info du virtuel
		cmd::byString('#[Energie][P|Fronius-CurrentDataPowerflow][E_Day]#')->event(($E_Day));
    	cmd::byString('#[Energie][P|Fronius-CurrentDataPowerflow][E_Total]#')->event(($E_Total));
    	cmd::byString('#[Energie][P|Fronius-CurrentDataPowerflow][E_Year]#')->event(($E_Year));
 		cmd::byString('#[Energie][P|Fronius-CurrentDataPowerflow][Meter_Location]#')->event(($Meter_Location));
		cmd::byString('#[Energie][P|Fronius-CurrentDataPowerflow][Mode]#')->event(($Mode));
    	cmd::byString('#[Energie][P|Fronius-CurrentDataPowerflow][P_Akku]#')->event(($P_Akku));
    	cmd::byString('#[Energie][P|Fronius-CurrentDataPowerflow][P_Grid]#')->event(($P_Grid));
 		cmd::byString('#[Energie][P|Fronius-CurrentDataPowerflow][P_Load]#')->event(($P_Load));
    	cmd::byString('#[Energie][P|Fronius-CurrentDataPowerflow][P_PV]#')->event(($P_PV));
    	cmd::byString('#[Energie][P|Fronius-CurrentDataPowerflow][rel_Autonomy]#')->event(($rel_Autonomy));
 		cmd::byString('#[Energie][P|Fronius-CurrentDataPowerflow][rel_SelfConsumption]#')->event(($rel_SelfConsumption));
    }


} else if ($sc->getTrigger('#[Energie][PostHTTP|Fronius-CurrentDataMeter][CurrentDataMeter]#')) {
  	$cmd = cmd::byString("#[Energie][PostHTTP|Fronius-CurrentDataMeter][CurrentDataMeter]#");
	$CurrentDataMeter = $cmd->execCmd();

  // On le décode
	$CurrentDataMeter = utf8_encode($CurrentDataMeter);
//	$scenario->setLog('CurrentDataMeter :'.$CurrentDataMeter); //debug
	$results = json_decode($CurrentDataMeter, true);
  
	if(is_array($results)){
		// on crré les variable
		$Current_AC_Phase_1 = $results['Body']['0']['Current_AC_Phase_1'];
		$Current_AC_Sum = $results['Body']['0']['Current_AC_Sum'];
		$EnergyReactive_VArAC_Phase_1_Consumed = $results['Body']['0']['EnergyReactive_VArAC_Phase_1_Consumed'];
		$EnergyReactive_VArAC_Phase_1_Produced = $results['Body']['0']['EnergyReactive_VArAC_Phase_1_Produced'];
		$EnergyReactive_VArAC_Sum_Consumed = $results['Body']['0']['EnergyReactive_VArAC_Sum_Consumed'];
		$EnergyReactive_VArAC_Sum_Produced = $results['Body']['0']['EnergyReactive_VArAC_Sum_Produced'];
		$EnergyReal_WAC_Minus_Absolute = $results['Body']['0']['EnergyReal_WAC_Minus_Absolute'];
		$EnergyReal_WAC_Phase_1_Consumed = $results['Body']['0']['EnergyReal_WAC_Phase_1_Consumed'];
		$EnergyReal_WAC_Phase_1_Produced = $results['Body']['0']['EnergyReal_WAC_Phase_1_Produced'];
		$EnergyReal_WAC_Plus_Absolute = $results['Body']['0']['EnergyReal_WAC_Plus_Absolute'];
		$EnergyReal_WAC_Sum_Consumed = $results['Body']['0']['EnergyReal_WAC_Sum_Consumed'];
		$EnergyReal_WAC_Sum_Produced = $results['Body']['0']['EnergyReal_WAC_Sum_Produced'];
		$Frequency_Phase_Average = $results['Body']['0']['Frequency_Phase_Average'];
		$Meter_Location_Current = $results['Body']['0']['Meter_Location_Current'];
		$PowerApparent_S_Phase_1 = $results['Body']['0']['PowerApparent_S_Phase_1'];
		$PowerApparent_S_Sum = $results['Body']['0']['PowerApparent_S_Sum'];
		$PowerFactor_Phase_1 = $results['Body']['0']['PowerFactor_Phase_1'];
		$PowerFactor_Sum = $results['Body']['0']['PowerFactor_Sum'];
		$PowerReactive_Q_Phase_1 = $results['Body']['0']['PowerReactive_Q_Phase_1'];
		$PowerReactive_Q_Sum = $results['Body']['0']['PowerReactive_Q_Sum'];
		$PowerReal_P_Phase_1 = $results['Body']['0']['PowerReal_P_Phase_1'];
		$PowerReal_P_Sum = $results['Body']['0']['PowerReal_P_Sum'];
		$TimeStamp = $results['Body']['0']['TimeStamp'];
      
//		$scenario->setLog('Current_AC_Phase_1: '.$Current_AC_Phase_1 .', Current_AC_Sum: '.$Current_AC_Sum .', EnergyReactive_VArAC_Phase_1_Consumed: '.$EnergyReactive_VArAC_Phase_1_Consumed .', EnergyReactive_VArAC_Phase_1_Produced: '.$EnergyReactive_VArAC_Phase_1_Produced .', EnergyReactive_VArAC_Sum_Consumed: '.$EnergyReactive_VArAC_Sum_Consumed .', EnergyReactive_VArAC_Sum_Produced: '.$EnergyReactive_VArAC_Sum_Produced .', EnergyReal_WAC_Minus_Absolute: '.$EnergyReal_WAC_Minus_Absolute .', EnergyReal_WAC_Phase_1_Consumed: '.$EnergyReal_WAC_Phase_1_Consumed .', EnergyReal_WAC_Phase_1_Produced: '.$EnergyReal_WAC_Phase_1_Produced .', EnergyReal_WAC_Plus_Absolute: '.$EnergyReal_WAC_Plus_Absolute .', EnergyReal_WAC_Sum_Consumed: '.$EnergyReal_WAC_Sum_Consumed .', EnergyReal_WAC_Sum_Produced: '.$EnergyReal_WAC_Sum_Produced .', Frequency_Phase_Average: '.$Frequency_Phase_Average .', Meter_Location_Current: '.$Meter_Location_Current .', PowerApparent_S_Phase_1: '.$PowerApparent_S_Phase_1 .', PowerFactor_Sum: '.$PowerFactor_Sum .', PowerFactor_Phase_1: '.$PowerFactor_Phase_1 .', PowerFactor_Sum: '.$PowerFactor_Sum .', PowerReactive_Q_Phase_1: '.$PowerReactive_Q_Phase_1 .', PowerFactor_Sum: '.$PowerFactor_Sum .', PowerReactive_Q_Phase_1: '.$PowerReactive_Q_Phase_1 .', PowerReactive_Q_Sum: '.$PowerReactive_Q_Sum .', PowerReal_P_Phase_1: '.$PowerReal_P_Phase_1 .', PowerReal_P_Sum: '.$PowerReal_P_Sum .', TimeStamp: '.$TimeStamp); //debug
      
      
		// on met a jour les info du virtuel
		cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][Current_AC_Phase_1]#')->event(($Current_AC_Phase_1));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][Current_AC_Sum]#')->event(($Current_AC_Sum));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][EnergyReactive_VArAC_Phase_1_Consumed]#')->event(($EnergyReactive_VArAC_Phase_1_Consumed));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][EnergyReactive_VArAC_Phase_1_Produced]#')->event(($EnergyReactive_VArAC_Phase_1_Produced));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][EnergyReactive_VArAC_Sum_Consumed]#')->event(($EnergyReactive_VArAC_Sum_Consumed));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][EnergyReactive_VArAC_Sum_Produced]#')->event(($EnergyReactive_VArAC_Sum_Produced));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][EnergyReal_WAC_Minus_Absolute]#')->event(($EnergyReal_WAC_Minus_Absolute));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][EnergyReal_WAC_Phase_1_Consumed]#')->event(($EnergyReal_WAC_Phase_1_Consumed));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][EnergyReal_WAC_Phase_1_Produced]#')->event(($EnergyReal_WAC_Phase_1_Produced));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][EnergyReal_WAC_Plus_Absolute]#')->event(($PWLedstate));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][EnergyReal_WAC_Sum_Consumed]#')->event(($EnergyReal_WAC_Sum_Consumed));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][EnergyReal_WAC_Sum_Produced]#')->event(($EnergyReal_WAC_Sum_Produced));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][Frequency_Phase_Average]#')->event(($Frequency_Phase_Average));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][Meter_Location_Current]#')->event(($Meter_Location_Current));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][PowerApparent_S_Phase_1]#')->event(($PowerApparent_S_Phase_1));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][PowerApparent_S_Sum]#')->event(($PowerApparent_S_Sum));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][PowerFactor_Phase_1]#')->event(($PowerFactor_Phase_1));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][PowerFactor_Sum]#')->event(($PowerFactor_Sum));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][PowerReactive_Q_Phase_1]#')->event(($PowerReactive_Q_Phase_1));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][PowerReactive_Q_Sum]#')->event(($PowerReactive_Q_Sum));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][PowerReal_P_Phase_1]#')->event(($PowerReal_P_Phase_1));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][PowerReal_P_Sum]#')->event(($PowerReal_P_Sum));
      	cmd::byString('#[Energie][P|Fronius-CurrentDataMeter][TimeStamp]#')->event(($TimeStamp));
    }

} else if ($sc->getTrigger('#[Energie][PostHTTP|Fronius-CurrentDataInverter][CurrentDataInverter]#')) {
	$cmd = cmd::byString("#[Energie][PostHTTP|Fronius-CurrentDataInverter][CurrentDataInverter]#");
	$CurrentDataInverter = $cmd->execCmd();

	// On le décode
	$CurrentDataInverter = utf8_encode($CurrentDataInverter);
//  	$scenario->setLog('PostData :'.$CurrentDataInverter); //debug
	$results = json_decode($CurrentDataInverter, true);
  
	if(is_array($results)){
		// on crré les variable
		$DAY_ENERGY = $results['Body']['DAY_ENERGY']['Values']['1'];
		$PAC = $results['Body']['PAC']['Values']['1'];
		$TOTAL_ENERGY = $results['Body']['TOTAL_ENERGY']['Values']['1'];
		$YEAR_ENERGY = $results['Body']['YEAR_ENERGY']['Values']['1'];

//		$scenario->setLog('DAY_ENERGY: '.$DAY_ENERGY .', PAC: '.$PAC .', TOTAL_ENERGY: '.$TOTAL_ENERGY .', YEAR_ENERGY: '.$YEAR_ENERGY); //debug
    
		// on met a jour les info du virtuel
		cmd::byString('#[Energie][P|Fronius-CurrentDataInverter][DAY_ENERGY]#')->event(($DAY_ENERGY));
    	cmd::byString('#[Energie][P|Fronius-CurrentDataInverter][PAC]#')->event(($PAC));
    	cmd::byString('#[Energie][P|Fronius-CurrentDataInverter][TOTAL_ENERGY]#')->event(($TOTAL_ENERGY));
 		cmd::byString('#[Energie][P|Fronius-CurrentDataInverter][YEAR_ENERGY]#')->event(($YEAR_ENERGY));
    }
 
} else if ($sc->getTrigger('user') || $sc->getTrigger('schedule')) {
  
}

Concernant la charge, je tourne sur une VM bien dimensionné, donc peux de crainte de ce coté la pour le moment mais je vais surveiller.

Merci