Homidom interface cliente Web ?

Un problème avec une interface cliente existante, c'est ici qu'il faut en parler.

Modérateur: HoMIDoM

Re: Homidom interface cliente Web ?

Messagede lejohnn » 21 Mai 2012, 19:59

J'ai trouvé ! :idea:
homidom\HoMIWeB\David\Site\include_php\homisoap.php
cela fonctionne nickel !

pour info, mais pas bloquant:
Code: Tout sélectionner
public function RunMacro($Id){
        if($this->_connecte) {
            $reponse= $this->_client->RunMacro(array('IdSrv'=>"$this->_idserver", 'Id'=>"$Id")); // change $id en $ID
            return ""; //$reponse->RunMacroResult; 
        } else {
            return "";
        }

la variable a une maj sur le "I" et peut etre plus ennuyeux, le RunMacroResult plante, je l'ai donc commente pour pouvoir m'en servir quand meme :mrgreen:
Je me fais une toute petite interface avec ca, en attendant la votre ! :D
lejohnn
Membre un peu timide !
 
Messages: 6
Inscription: 27 Avr 2012, 17:13

Publicité

La publicité est nécessaire car elle permet de pérenniser ce site, son hébergement, ses contributions ... Vous pouvez aussi faire un don pour le soutenir (cliquez sur ce texte). Pensez aux revues que vous économisez en lisant régulièrement Touteladomotique.com ...

Publicité
 

Re: Homidom interface cliente Web ?

Messagede davidinfo » 21 Mai 2012, 20:12

Ça c'était juste un test que j'avais fait :)
Je suis en train de récupérer les sources complètes de la vrai interface. Je mettrais le lien vers les sources dés que possible.
HoMIDoM- Le système complet et gratuit de domotique pour la maison (Domos)
Avatar de l’utilisateur
davidinfo
Dieu de domotique
 
Messages: 1034
Inscription: 19 Oct 2008, 23:49
Localisation: Algrange (57)

Re: Homidom interface cliente Web ?

Messagede davidinfo » 15 Juin 2012, 14:29

salut, Juste pour savoir si tu as eu le temps de faire une petite interface web de ton coté ?
si oui, est elle fonctionnelle ?
Car on pourrait l'intégrer dans la solution avec celle en cours de dev :)
HoMIDoM- Le système complet et gratuit de domotique pour la maison (Domos)
Avatar de l’utilisateur
davidinfo
Dieu de domotique
 
Messages: 1034
Inscription: 19 Oct 2008, 23:49
Localisation: Algrange (57)

Re: Homidom interface cliente Web ?

Messagede lejohnn » 29 Juin 2012, 18:22

salut,
excuses moi pour le delais, je n'avais pas fait attention !
pas de probleme, mais c'est du mini / mini !
Je ne pense pas que tu puisses en faire grand chose mais je te le donne sans soucis :). tu me donnes ton @mail en MP?
lejohnn
Membre un peu timide !
 
Messages: 6
Inscription: 27 Avr 2012, 17:13

Re: Homidom interface cliente Web ?

Messagede davidinfo » 02 Juil 2012, 15:24

Pas de soucis :)
Tu peux utiliser le mail contact@homidom.com.
HoMIDoM- Le système complet et gratuit de domotique pour la maison (Domos)
Avatar de l’utilisateur
davidinfo
Dieu de domotique
 
Messages: 1034
Inscription: 19 Oct 2008, 23:49
Localisation: Algrange (57)

Re: Homidom interface cliente Web ?

Messagede HarleyZard » 16 Juil 2012, 09:15

Hello tous,

Depuis peu je me suis créé une mini interface en php pour accéder au serveur soap.
Ca marche plutôt bien pour tout ce qui est récupération des infos de sondes et détecteur. Bravo pour le taff sur le serveur soap !!! :D

Mais depuis peu j'essai d'activer des prises X10 (en cliquant sur une image).
Donc j'appelle la méthode ExecuteDevicecommand, en passant l'id du device et la commande "ON" (j'ai tenté aussi avec "1").

Mais j'ai l'erreur suivante dans les logs :

Code: Tout sélectionner
15/07/2012 00:00:47   ERREUR   SERVEUR   ExecuteDevicecommand   Erreur lors du traitemant du Sub ExecuteDeviceCommand: System.MissingMemberException: No default member found for type 'APPAREIL'.

   at Microsoft.VisualBasic.CompilerServices.Symbols.Container.GetMembers(String& MemberName, Boolean ReportErrors)

   at Microsoft.VisualBasic.CompilerServices.NewLateBinding.CallMethod(Container BaseReference, String MethodName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, BindingFlags InvocationFlags, Boolean ReportErrors, ResolutionFailure& Failure)

   at Microsoft.VisualBasic.CompilerServices.NewLateBinding.ObjectLateCall(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, Boolean IgnoreReturn)

   at Microsoft.VisualBasic.CompilerServices.Versioned.CallByName(Object Instance, String MethodName, CallType UseCallType, Object[] Arguments)

   at HoMIDom.HoMIDom.Server.ExecuteDeviceCommand(String IdSrv, String DeviceId, DeviceAction Action)
J'ai l'impression que je ne passe pas la bonne commande.
Quelqu'un aurait une idée ?

Sinon si ça vous intéresse, je termine juste cette petite partie "commande", et ensuite je met à dispo le code.

Merci !
HarleyZard
Membre Actif
 
Messages: 28
Inscription: 12 Mai 2012, 12:27

Re: Homidom interface cliente Web ?

Messagede davidinfo » 16 Juil 2012, 10:45

Pour la partie executeDeviceCommand, en fait il faut passer une classe de type deviceaction et non directement la commande :
Public Class DeviceAction
Public Property Nom() As String
Public Property Parametres() As List(Of Parametre)
Public Class Parametre
Public Property Nom() As String
Public Property Type() As String
Public Property Value() As Object
End Class
End Class
Dim x As New DeviceAction
x.Nom = "ON"
ExecuteDeviceCommand(IdSrv, _DeviceId, x)

et on peut ajouter Ă  X des parametres (valeur du DIM...)
Dim param As New DeviceAction.Parametre
param.Value = "xxxx"
x.Parametres.Add(param)

et tu as une fonction dispo en SOAP qui te liste les commandes dispo pour un device donné :

''' Liste les méthodes (actions) dispo pour un device (par son id)
''' Retourne pour chaque élément de la liste NOMDELAMETHODE|Parametre1:TypeParametre1|Parametre2:TypeParametre2...
''' '' ex pour la classe lampe cela retourne: DIM|Variation:Int32
''' <param name="DeviceId">ID du device</param>
''' <returns>Retourne pour chaque élément de la liste NOMDELAMETHODE|Parametre1:TypeParametre1|Parametre2:TypeParametre2...</returns>
<OperationContract()> Function ListMethod(ByVal DeviceId As String) As List(Of String)

et je suis fortement intéréssé par ton interface :) et suivant l'avancement, on pourra l'intégrer directement ou aprés quelques modif pour faire coller le théme/utilisation aux autres produits mais ca serait vraiment génial de partager
HoMIDoM- Le système complet et gratuit de domotique pour la maison (Domos)
Avatar de l’utilisateur
davidinfo
Dieu de domotique
 
Messages: 1034
Inscription: 19 Oct 2008, 23:49
Localisation: Algrange (57)

Re: Homidom interface cliente Web ?

Messagede HarleyZard » 16 Juil 2012, 11:24

Super !
Merci beaucoup je vais essayer ce soir si j'ai le temps.

Pour mon code, tu veux que je le publies ici, ou je te l'envoi par MP ?
En fait j'ai pas mal de trucs en "dur". Donc il faudrait que je me fasse un peu de "mise en place de configurations" avant de publier le code...
HarleyZard
Membre Actif
 
Messages: 28
Inscription: 12 Mai 2012, 12:27

Re: Homidom interface cliente Web ?

Messagede davidinfo » 16 Juil 2012, 12:42

Le plus simple serait que tu fasses une "configuration" dans un fichier config.php et ensuite que tu m'envoie par mail un petit zip du tout (avec export mysql si il y a une base de données).
Tu peux utiliser le mail contact@homidom.com.

Merci d'avance pour ton partage !
HoMIDoM- Le système complet et gratuit de domotique pour la maison (Domos)
Avatar de l’utilisateur
davidinfo
Dieu de domotique
 
Messages: 1034
Inscription: 19 Oct 2008, 23:49
Localisation: Algrange (57)

Re: Homidom interface cliente Web ?

Messagede HarleyZard » 16 Juil 2012, 23:33

oulĂ ....
autant ça me semblait simple tout à l'heure, autant là je ne comprend plus tout.

Il faut que je crée la classe ? je ne la vois pas dans les *.php du rép homiweb/include.

J'ai bien la fonction ExecuteDeviceCommand qui est présente, donc pour le deuxième argument je créé tout d'abord la class dont tu me parles, puis je l'utilise là dedans ? :
public function ExecuteDeviceCommand($deviceid, $action){
if($this->_connecte) {
$reponse= $this->_client->ExecuteDeviceCommand(array('IdSrv'=>"$this->_idserver", 'DeviceId'=>"$deviceid", 'Action'=>"$action"));
return $reponse->ExecuteDeviceCommandResult;
} else {
return "";
}
}

Je ne trouve pas non plus la méthode en soap dont tu me parles pour lister les methodes. C'est du standard soap, ou c'est une methode homidom ? (dans ce cas je pense qu'il me manque un fichier php)
HarleyZard
Membre Actif
 
Messages: 28
Inscription: 12 Mai 2012, 12:27

Re: Homidom interface cliente Web ?

Messagede davidinfo » 19 Juil 2012, 20:08

Alors, je ne connais pas trop le développement php aussi poussé car je suis plutôt en vb.net (tu as l'air de mieux maitrisé que moi :)... mais je me renseigne auprès des deux développeurs qui ont fait la classe de base que tu as utilisé.
Mais pour la fonction listmethod, il est possible qu'elle n'est pas était intégré dans la classe car elle a été développée assez tard dans le serveur SOAP.

Pour la fonction executedeivcecommand, il faut passer l'id du serveur, celui du composant à actionner et un objet avec plusieurs ppté. Donc de ce que je comprends, il faudrait que $action soit aussi un array avec une ppté Nom ayant pour valeur ON, OFF... et tu peux rajouter à $action un autre array pour la liste des paramètres, mais ceci est optionnel (en vb.net en tout cas).

Dés que j'ai une réponse des développeurs, je t’envoie un message.
HoMIDoM- Le système complet et gratuit de domotique pour la maison (Domos)
Avatar de l’utilisateur
davidinfo
Dieu de domotique
 
Messages: 1034
Inscription: 19 Oct 2008, 23:49
Localisation: Algrange (57)

Re: Homidom interface cliente Web ?

Messagede HarleyZard » 20 Juil 2012, 10:04

Hello,

en fait j'ai bien retrouvé la méthode ListMethod.
En revanche je n'arrive pas à afficher les différents éléments générés. Je ne connais pas les propriétés. J'ai essayé avec MaMethode->Name mais ça ne donne rien.

Pour DeviceAction j'ai essayé de créer une classe DeviceAction, et Parametres, mais je ne suis pas très doué en php non plus.
Ce que je connais c'est par les tutos.
Je pense que c'est mon code qui n'est pas bon.

Si tu as un retour des développeurs, je suis preneur; c'est le truc qui me manque.

J'ai commencé à faire du "propre" dans mon code et à mettre de coté les infos persos (genre login et mot de passe de ma caméra de surveillance :wink: )
Mais ne t'attend pas à grand chose, c'est juste un plan de mes étages, avec les infos des sondes, détecteurs et appareils là où ils doivent être sur le plan.
Le tout mis Ă  jour toutes les 5 sec en Ajax (pour ne pas avoir Ă  recharger la page).
ET SURTOUT, ne t'attend pas à un truc fait dans les normes divines de développement :roll:
HarleyZard
Membre Actif
 
Messages: 28
Inscription: 12 Mai 2012, 12:27

PrécédenteSuivante

Retourner vers Interfaces Clientes (WPF, Android, Web...)

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

Copyright © 2011 - Touteladomotique.com - Tous droits réservés.