[ Résolu ] Scénarios via un script - Demande de complément

Bonjour à tous,

Je tente via un script JAVA de faire un scénario, je souhaiterais qu’après avoir cliqué sur un bouton de l’interface WEB cela enclenche
un relais ( en fugitif ) puis 28 seconde plus tard cela enclenche un autre relais ( en fugitif ) mais je n’y arrive pas, une idée :wink:

Voici un exemple du script, je sèche !

[code][/code]

<input type="button" value="&#9660;" id="led7" class="stylebouttoncourt" name="RLY8" onClick="Fonction1();Fonction2();">

EDIT du 30/04/2012, code fonctionnel, demande de complément :

[code][/code]

<input type="button" value="&#9650;" id="led5" class="stylebouttoncourt" name="RLY6" onClick="Fonction1();Fonction2();">

Cela fonctionne correctement, par contre il y a un inconvénient, la page WEB doit être ouverte sinon la fonction 2 ne s’exécute pas !

Je pense que cela est normal mais si quelqu’un a une astuce pour ne pas avoir besoin de laisser la page Web ouverte je suis preneur :wink:

Merci.

Salut

Sauf erreur il manque une parenthèse au setTimeout de la fonction 3 et une accolade dans cette même fonction. Pour debuger du javascript, utilise Firefox et l’outils intégré dans « Outils » → « Dévellopeur web » → « Console d’erreur »

A+
Thomas

Salut et merci, effectivement il manque une parenthèse et une accolade, mais après rajout cela ne change rien :wink:

[code][/code]

<input type="button" value="&#9650;" id="led5" class="stylebouttoncourt" name="RLY6" onClick="Fonction1();Fonction2();">

C’est bon, avec ce code cela fonctionne, par contre il y a un inconvénient, la page WEB doit être ouverte sinon la fonction 2 ne s’exécute pas !

Je pense que cela est normal mais si quelqu’un a une astuce pour ne pas avoir besoin de laisser la page Web ouverte je suis preneur :wink:

Le javascript est un langage « client », il faut donc que la machine d’un client l’exécute, par exemple au moyen d’une page web ouverte dans notre cas du javascript. Donc c’est normal et il n’y a pas d’autre solution.
Pour qu’un code soit exécuté « tout seul », il lui faut un serveur, ce sera donc un langage serveur comme le PHP.

C’est bien ce que je pensé mais dans ce cas alors, l’IPX n’accepterais pas le PHP et ainsi faire office de serveur ?

C’est exactement ça, l’IPX n’est pas un serveur capable d’exécuter du code elle-même, elle ne peut donc proposer que du HTML/AJAX/Javascript que seul un poste « client » peut lire et exécuter.

Ok, je comprend mieu maintenant ;€

Si j’herberge le site sur free.fr. ( PHP Activé ) cela pourrait fonctionner ?
Tout ça afin de ne pas avoir de PC allumé en permanence .

Oui si votre connexion Adsl est active…
C’est logique mais je préfère préciser ce point important

Oui pas de souci pour la connexion elle est active en permanence :wink:

Donc faudrait que je me penche vers cette solution mais cela implique t’il qu’il faut que je refasse
toutes mes page WEB ou seulement rajouter le code PHP ?

Autre question, la migration vers un serveur free.fr n’est pas trop compliqué ?
Y a t’il un tuto la dessus ?

Merci

Si vous voulez vous lancer dans le PHP, il vaut mieux réécrire plutôt que « bricoler » en rajoutant du PHP par-ci par-là. Et écrire tout un site web en PHP, certains l’ont déjà fait, et plutôt bien, voir par exemple le serveur multi-carte de Thomas justement : je pense qu’avec la fonction scénario qu’il inclut, vous n’aurez pas de mal à programmer vos 28 secondes (fonction sleep en PHP).

Par contre, si vous passez par un serveur externe à l’IPX comme free, faites attention à plusieurs points :

  • comme l’a dit Thomas, connexion ADSL fiable et 24h/24
  • attention au cross-domain si vous restez en HTML/AJAX (sujet déjà évoqué dans ce forum)
  • attention à l’adressage de l’IPX sur internet (IP fixe ou Dyndns, redirections de port pour que free voit bien l’IPX, etc.)

Sinon il n’existe pas de tuto officiel pour héberger un site web de « contrôle-commande » de l’IPX chez un hébergeur externe : il y a tellement de cas différents qu’il y aurait trop de tutos à écrire : serveur de FAI (votre cas avec Free), serveur mutualisé, serveur privé, PHP ou autre, AJAX avec cross-domain, etc…

Merci pour votre réponse,
Mon IPX est accessible depuis l’extérieur ( redirection d’un port spécifique dan la freebox ) et ma connexion est permanente.
Dans mon cas, ce serai hébergeur sur un Serveur FREE avec PHP ( FAI Free oblige ) et en fait j’ai seulement besoin de 2 page en PHP
( une adapté à mon iPhone et une adapté à mon iPad ) !
Je me demandais si il était possible d’héberger seulement ces deux page PHP sur FREE afin quelles communiquent avec le site Web Embarqué de L’IPX ?
Si c’est faisable, ce serai plus simple, non ?

Petit HS : J’utilise un fonction ( id=« led1 » ) qui permet à un bouton de changer de couleur lorsque la commande est bien reçu,
sauf que si j’utilise ce même bouton plusieurs fois dans la page c’est seulement le premier qui change de couleur. Une idées ?
Merci.

Si vous voulez juste commander les sorties de votre IPX et récupérer l’état de vos entrées, ce sera simple. Vous pouvez faire ça très facilement en vous passant même d’une programmation en AJAX. Vous pouvez faire du pur PHP et commander l’IPX par M2M, le protocole de GCE utilisant TCP/IP. Il y a dans les « contributions » de ce forum le script PHP qui permet d’établir la communication M2M avec l’IPX. Ensuite, il vous suffit d’utiliser les commandes du genre Set, Get…
Pour la mise en page HTML, quelques commandes du type « echo » feront l’affaire. Dans ce topic Centrale domotique - #14 par fatal25 il y a mon exemple de télécommande wifi, tout est réalisé en PHP, c’est basique et ça marche très bien, il serait très facile de rajouter des boutons « scénario » comme votre tempo de 28s.

Essaie l’appli https://sourceforge.net/p/multicardipx800/

Cela semble être une bonne solution mais j’ai bien peur d’y passer pas mal de temps, je vois voir cela prochainement, merci en tous cas.

J’ai voulu tester mais j’ai une erreur :

Fatal error: Cannot instantiate non-existent class: simplexmlelement in /mnt/154/sdd/f/2/monbebe2011/LoadConfig.php on line 12

Tous les fichier sont a la racine.

Voila l’adresse de test: http://monbebe2011.free.fr/ ( on se moque pas hein, c’est l’ancienne adresse du blog de ma fille :wink:

Afin d’éviter de poluer le forum de GCE, j’ai ouvert un ticket Serveur Multicartes IPX800 / Tickets / #108961 Free : Cannot instantiate non-existent class: simplexmlelement pour résoudre ton Pb.
Pour ceux qui utilisent free, ils n’ont pas activé simplexml.

Ok, merci :wink: réponse sur le nouveau sujet