Bonsoir,OUARZA a écrit : ↑02 oct. 2019, 20:58Bonsoir à tous,
Je précise, j'ai beaucoup de mal avec le code
Je cherche à récupérer une valeur dans une commande. Je pense qu'il faut utiliser le bloc code, c'est pour cela que je poste ici, mais sans certitude.
Voici la commande:Je souhaite par exemple récupérer la température pour l'intégrer dans une commande via event (ou via une variable si on doit passer obligatoirement par une variable).Code : Tout sélectionner
Résultat de la commande : ['20:53 02-10 true','BSH.Common.Status.DoorState','BSH.Common.EnumType.DoorState.Locked','BSH.Common.Status.LocalControlActive','','BSH.Common.Status.RemoteControlStartAllowed','1','BSH.Common.Status.OperationState','BSH.Common.EnumType.OperationState.Run','BSH.Common.Status.RemoteControlActive','1','Programme',Délicat/Soie,LaundryCare.Washer.Option.Temperature,LaundryCare.Washer.EnumType.Temperature.GC30,LaundryCare.Washer.Option.SpinSpeed,LaundryCare.Washer.EnumType.SpinSpeed.RPM600,LaundryCare.Washer.Option.IDos1DosingLevel,LaundryCare.Washer.EnumType.IDosingLevel.Off,LaundryCare.Washer.Option.IDos2DosingLevel,LaundryCare.Washer.EnumType.IDosingLevel.Off,LaundryCare.Washer.Option.Prewash,,LaundryCare.Washer.Option.RinsePlus1,,LaundryCare.Common.Option.VarioPerfect,LaundryCare.Common.EnumType.VarioPerfect.Off]
LaundryCare.Washer.EnumType.Temperature.GC30 ==> LaundryCare.Washer.EnumType.Temperature.GCXX
Le place des chiffres de la température n'est pas toujours au même rang.
Faut-il utiliser preg_match ?
Pourriez-vous me conseiller ?
Merci par avance.
Mathieu
J'ai fait cela
Code : Tout sélectionner
$cmd = cmd::byString("#[Cellier][Machine à laver][Infos]#");
$value = $cmd->execCmd();
$value_array = explode(",",$value);
$compt = array_search("LaundryCare.Washer.Option.Temperature",$value_array) + 1;
$Temp = str_replace("LaundryCare.Washer.EnumType.Temperature.GC","",$value_array[$compt]);
$scenario->setData("Mal_Temp", $Temp);
Comment faire ?
Merci