Connecteur Universel HTTP
#1
Bonjour,

Je cherche à ajouter un connecteur Universel HTTP, mais je manque d'information.
J'ai pu constater que certaines variables réservées par LifeDomus sont les mêmes que pour Universel TCP. Pourriez-vous me transmettre la liste des variables utilisables et comment les utiliser? (par exemple idprint??, je ne comprends pas comment l'utiliser: idprint = 'salut'; ou idprint('salut');)
J'ai réussi à faire uniquement des requêtes GET, mais je voudrais aussi pouvoir faire des requêtes PUT. Est-ce possible? Auriez-vous un exemple?

Merci
Damien
Répondre
#2
Quelques infos ...

1) c'est
Code :
ldprint(mavariable);
(et pas idprint)
2) la variable "command" (au niveau de l'équipement) contient la commande HTTP/GET à envoyer
3) la variable "trame" (au niveau du connecteur) contient le retour d'une commande HTTP/GET. Voir un exemple ici: http://www.lifedomus.com/forum/showthrea...1#post3347
4) les variables JS sont partagées entre tous les équipements qui appartiennent à un même connecteur (donc la variable "x" de l'équipement A est la même que la variable "x" de l'équipement B si A et B appartiennent au même connecteur) et les variables déclarées au niveau du connecteur sont utilisables dans tous les équipements de ce connecteur...
5) pour autant que je sache on ne peut faire que du HTTP/GET, pas de POST ni de PUT (je ne pense pas que XMLHttpRequest soit supporté par le moteur JS de Lifedomus) ... donc si tu veux transmettre plus de 2048 caractères en un coup vers ton serveur http ce n'est a priori pas possible ...

si ce n'est pas indiscret, pourquoi as-tu besoin de PUT ?
www.osmotiq.com, domotique, développement logiciel et web -- tests & tutoriels KNX, Lifedomus, ZWave, etc.
Twitter: osmotiq
Répondre
#3
Merci pour les infos.
L'idée était de pouvoir crée un connecteur pour interagir avec des webservices REST, je fais mes tests sur les capteurs de plantes Koubachi. On peut récupérer les informations du capteur sur api.koubachi.com, et on peut aussi valider des actions à l'aide d'une requête PUT (ex: j'ai mis de l'engrais). J'ai choisis les koubachi pour commencer puisqu'il n'ont pas trop de fonctions pour tester les possibilité du LifeDomus. Mais je bloque sur plusieurs problème par rapport à mon idée de base.
Je pensais récupérer les informations de température, humidité et luminosité pour les enregistrer dans les statistiques: les données relevés une fois par heure par le capteur, sont transmissent au serveur koubachi une fois par jour, elles sont lier à un timestamp pour connaître l'heure de captage. Problème les statistiques enregistre des valeurs "actuelles", pas possible d’insérer des valeurs à des dates données.
Lors d'une alarme, on peut la valider à l'aide d'une requête PUT pour qu'elle ne s'affiche plus. Problème comme tu expliquais, on peut effectuer uniquement des requêtes GET. D'après mes tests, les scripts JS sont exécuté uniquement à la réception des trames pour du traitement sur les données. Le script n'est pas sollicité lors de l'envoi de la commande,du coup, les variables sont effectivement connues et commune, mais si je déclare une fonction dans le JS je ne peux pas l'utiliser dans les commandes. Donc pas possible de palier au problème en créant une fonction style
XMLHttpRequest.
Je ne sais pas comment je vais faire. Créer un webservice entre 2 qui en recevant les requêtes HTTP GET ferrait lui les requête PUT ou POST...
Je pensais en deuxième faire un connecteur pour les ampoules Philips HUE, et là je serais obligé de pouvoir faire du PUT sinon aucun intérêts des les interfacer.
Si tu as des idées, je suis preneur.
Répondre
#4
oui la seule solution que je vois, rapidement, comme ca, c'est de rajouter un web service, par exemple sur un Raspberry Pi, qui ferait le lien entre les requetes GET et PUT/POST... ce qui est non seulement dommage mais en plus pas à la portée du premier venu ...

A moins que l'équipe Lifedomus n'explique comment faire une requête PUT/POST depuis leur moteur JS ? Apparemment XMLHttpRequest n'est PAS supporté, en tout cas si j'écris du code standard à ce propos dans un équipement JS, ca plante ... mais peut-être qu'il existe des variables cachées genre "methode" et "headers" ?

je dois également reconnaitre que la gestion commande/trame est un peu particulière et cette mise en commun entre le connecteur et les équipements est pour le moins ... discutable ...

Ce que j'espère, c'est que l'équipe LD ne va pas se "contenter" (je mets des guillemets car ca représente pas mal de travail quand même) de nous sortir un équipement Philips HUE tout fait qui serait pilotable sans aucun travail de la part de l'utilisateur car cela ne répond qu'à une partie du problème. Je comprendrais que cet équipement LD soit un jour disponible mais il serait bien également que le moteur JS de la LD soit retravaillé, voire repensé, ceci afin de pouvoir interfacer n'importe quel type d'équipement connecté et pas seulement ceux que l'équipe LD a prévu. J'avais écrit toute un post sur le forum quelque part à ce sujet.
www.osmotiq.com, domotique, développement logiciel et web -- tests & tutoriels KNX, Lifedomus, ZWave, etc.
Twitter: osmotiq
Répondre
#5
+1 Philips Hue
+1 PUT
Répondre
#6
Idéalement il faudrait que:
- Soit LifeDomus ajout la possibilité de faire des requêtes GET, POST, PUT... directement lors de la création d'une commande sur le connecteur.
- Soit LifeDomus ajout un nouveau "connecteur Universel" (tout court) qui permet l'ajout d'un scripte (JS, PHP ou autre) qui serai sollicité lors de l'envoi et de la réception des données, ce qui permettrait de faire beaucoup plus de chose y compris de créer des fonctions POST et PUT.
Répondre
#7
Bonjour,

pour info, j'ai eu le même problème (requête put + gestion de cookies) à gérer pour piloter une alarme et j'ai fini par créer un script php avec paramètres que j'ai posté sur un serveur apache (natif dans les NAS synology par exemple) que j'attaque avec des requêtes GET depuis Lifedomus. Comme ça, ça marche nickel et quand on décompose bien le problème, ce n'est pas insurmontable non plus. Il faut quand même à mon sens, pour des fonctions sensibles, faire gaffe à la sécurité et éviter de trop jouer à cela sur un serveur ouvert sur l'internet
C'est sur que j'aurais été ravi de pouvoir le faire directement dans LD. Peut-être un jour.

Bonne soirée,
Laurent
Répondre
#8
ca fait du bien de voir que parmi la communauté Lifedomus il y a d'autres programmeurs ... JS ... PHP ...etc ...
il y a environ un an j'avais plaidé à Olivier Ledoux la nécessité d'avoir sous la main un vrai langage de programmation pour la Lifedomus, parce que les automates c'est gentil, joli, pratique pour ceux qui n'ont jamais aligné des lignes de code mais au final on se sent bridé, limité ... la même chose se constate dans les équipements JS ... on effleure une puissance (rare) du bout des doigts mais la puissance réellement disponible n'est pas celle qu'on aurait pu espérer. A l'époque M. Ledoux m'avait dit que c'était dans les possibilités et qu'il y aurait de nombreuses évolutions de la LD (il a eu raison, avec plusieurs mises à jour par mois, on ne peut pas dire que l'équipe de LD chôme ! :)).

Mais à présent que la communauté s'est étoffée, je ne suis peut-être plus le seul à vouloir un vrai langage de programmation pour la Lifedomus ? Et peut-être qu'à plusieurs notre influence sera plus importante ? Je l'espère sincèrement ...

[ATTACH=CONFIG]331[/ATTACH]


Pièces jointes Image(s)
   
www.osmotiq.com, domotique, développement logiciel et web -- tests & tutoriels KNX, Lifedomus, ZWave, etc.
Twitter: osmotiq
Répondre
#9
Bonjour François,

Nous allons y réfléchir pour notre planning futur.
Préalablement, nous avons prévu des outils WEB dédiés aux installateurs dont nous vous parlerons bientôt.
Répondre
#10
Les utilisateurs aussi?

Olivier a écrit :Bonjour François,

Nous allons y réfléchir pour notre planning futur.
Préalablement, nous avons prévu des outils WEB dédiés aux installateurs dont nous vous parlerons bientôt.
Répondre


Sujets apparemment similaires...
Sujet Auteur Réponses Affichages Dernier message
  Demande d'aide Paramétrage connecteur HTTP / json / commandes linux Popovitch 15 15,586 05-11-2020, 11:51 AM
Dernier message: Popovitch
  Connecteur API Deezer fransiouz 19 25,771 04-30-2020, 12:47 PM
Dernier message: Jlr
  parser le retour d'une commande initiale connecteur HTTP sud-domotique-expert 2 4,180 01-20-2020, 11:42 PM
Dernier message: sud-domotique-expert
  Demande d'aide Récupération de variable via request HTTP Torrent007 4 6,270 12-25-2019, 06:02 PM
Dernier message: Torrent007
  requette HTTP avec Header Domo 1 3,771 12-28-2018, 07:40 PM
Dernier message: Hsd
  requette http meije 10 12,881 12-12-2018, 09:40 PM
Dernier message: tonyb0t77
  connecteur bluetooth Domo-TIC 0 2,633 10-29-2018, 03:58 PM
Dernier message: Domo-TIC
  SSH universel Nikopol 6 10,349 08-28-2018, 02:40 PM
Dernier message: Marcoparigi
  Envoyer un retour d'état via http johxx1 3 7,210 05-19-2018, 09:33 PM
Dernier message: johxx1
  Connecteur Synology Surveillance Station grichka 28 36,319 12-21-2017, 07:28 PM
Dernier message: jojo



Utilisateur(s) parcourant ce sujet : 1 visiteur(s)