henri-allauch Posté(e) le 14 avril 2016 Signaler Partager Posté(e) le 14 avril 2016 Je voudrais depuis un php récupérer la value d'un device. J'initialise : curl_setopt($c, CURLOPT_URL, "://user:pwd@monsite:nonport-redirected/api/devices?id=19"); (j'ai pas mis ici http devant :// sinon c'est un lien qui s'affiche) Je lance :$output = curl_exec($c); Si Ok je décode le json : $Rep = (json_decode($output, true)); je dumpe le résultat :var_dump ($Rep); j'obtient ( mise en forme manuelle ) ["id"]=> int(19) ["name"]=> string(12) "Prise AN-157" ["roomID"]=> int(4) ["type"]=> string(23) "com.fibaro.binarySwitch" ["baseType"]=> string(16) "com.fibaro.actor" ["enabled"]=> bool(true) ["visible"]=> bool(true) ["isPlugin"]=> bool(false) ["parentId"]=> int(18) ["remoteGatewayId"]=> int(0) ["interfaces"]=> array(3) { [0]=> string(5) "light" [1]=> string(5) "zwave" [2]=> string(15) "zwaveProtection" } ["properties"]=> array(41) { ["parameters"]=> array(0) { } ["zwaveCompany"]=> string(10) "Everspring" ["zwaveInfo"]=> string(6) "4,2,64" ["zwaveVersion"]=> string(3) "1.2" ["pollingTimeSec"]=> int(0) ["RFProtectionState"]=> string(1) "0" ["RFProtectionSupport"]=> string(1) "0" ["configured"]=> string(4) "true" ["dead"]=> string(5) "false" ["deviceControlType"]=> string(1) "2" ["deviceIcon"]=> string(1) "2" ["emailNotificationID"]=> string(1) "4" ["emailNotificationType"]=> string(1) "0" ["endPointId"]=> string(1) "0" ["isLight"]=> string(4) "true" ["liliOffCommand"]=> string(0) "" [ "liliOnCommand"]=> string(0) "" ["localProtectionState"]=> string(1) "0" ["localProtectionSupport"]=> string(1) "7" ["log"]=> string(0) "" ["logTemp"]=> string(0) "" ["manufacturer"]=> string(0) "" ["markAsDead"]=> string(4) "true" ["model"]=> string(0) "" ["nodeId"]=> string(1) "3" ["parametersTemplate"]=> string(3) "350" ["productInfo"]=> string(16) "0,96,0,4,0,1,1,2" ["protectionExclusiveControl"]=> string(1) "0" ["protectionExclusiveControlSupport"]=> string(5) "false" ["protectionState"]=> string(1) "0" ["protectionTimeout"]=> string(1) "0" ["protectionTimeoutSupport"]=> string(5) "false" ["pushNotificationID"]=> string(1) "6" ["pushNotificationType"]=> string(1) "0" ["remoteGatewayId"]=> string(1) "0" ["saveLogs"]=> string(4) "true" ["smsNotificationID"]=> string(1) "4" ["smsNotificationType"]=> string(1) "0" ["useTemplate"]=> string(4) "true" ["userDescription"]=> string(0) "" ["value"]=> string(5) "false" } ["actions"]=> array(3) { ["reconfigure"]=> int(0) ["turnOff"]=> int(0) ["turnOn"]=> int(0) } ["created"]=> int(1457552846) ["modified"]=> int(1457552846) ["sortOrder"]=> int(26) } si je dumpe : var_dump ($Rep['properties']); j'obtient la partie Du tableau properties Mais je ne sais par récupérer le string "value" du tableau properties : plusieurs essais sans succès. Si un connaisseur passe dans le coin merci de me mettre sur la voie : merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 14 avril 2016 Signaler Partager Posté(e) le 14 avril 2016 Tu comptes faire quoi exactement, parce que si tu as du mal àtraiter le Json tu n'as pas finie de galérer. Essaye de faire quelque chose comme: var_dump ($Rep->properties->value); Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 14 avril 2016 Signaler Partager Posté(e) le 14 avril 2016 Comme ça je pense : echo $Rep->properties->value; EDIT : fumé par Shad Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 14 avril 2016 Signaler Partager Posté(e) le 14 avril 2016 D'ailleurs je devrais peut-être avoir mon bureau d'ici ce wek-end . Donc bientôt mon pc pour remettre àbosser . Lien vers le commentaire Partager sur d’autres sites More sharing options...
henri-allauch Posté(e) le 14 avril 2016 Auteur Signaler Partager Posté(e) le 14 avril 2016 Merci de vos réponse. J'avais essayé sous cette forme de pointeur mais je devais avoir une autre erreur et le résultat était Null. Devant votre réponse commune j'ai insisté et repris le code et ça marche. Merci @Shad je vais faire une une page simple qui me permettra de commander quelques devices principaux (.... /api/callAction?deviceID=NUNDEVICE&name=turnOff") et de suivre leur état après Action. Car l'accès distant par home.fibaro ( qui a déjà fonctionné a partir de mon portable ne fonctionne plus : je passe le login home.fibaro puis je vais jusqu'au login de la HC2 mais le bouton identification est inopérant? ) J'ai prévu un accès distant qui fonctionne mais ( 4G ) parfois très très c'est lent ? Donc je fait un truc basic style ligne de commande. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 14 avril 2016 Signaler Partager Posté(e) le 14 avril 2016 Pourquoi tu utilises pas l'application plutot que le home.fibaro? Ensuite tu peux créer aussi un VPN pour te connecté direct chez toi. Parce que la si tu veux vraiment un truc utilisable il faut faire des refresh automatique via javascript ou alors faudra en permanence actualiser ta page. Lien vers le commentaire Partager sur d’autres sites More sharing options...
henri-allauch Posté(e) le 15 avril 2016 Auteur Signaler Partager Posté(e) le 15 avril 2016 Ce sera pour une utilisation très restreinte et très ponctuelle. ( lumières jardin ou Portail ) Pourquoi tu utilises pas l'application plutot que le home.fibaro? Si tu parles de l'appli fibaro sur iOS : Elle fonctionne très bien en wifi mais pas du tout en 4G ( Erreur de connexion systématique ) Ca a eu fonctionné il me semble Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 15 avril 2016 Signaler Partager Posté(e) le 15 avril 2016 Salut, Pourquoi n'attaques tu pas ta HC2 depuis son adresse publique avec l'appli ? Je ne suis pas en 4G et je n'ai aucun souci. Alors qu'avec home.fibaro, c'est trop lent et disponibilité trop aléatoire. ;-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
henri-allauch Posté(e) le 15 avril 2016 Auteur Signaler Partager Posté(e) le 15 avril 2016 @pepite Pourquoi tu utilises pas l'application plutot que le home.fibaro? peux tu expliquer ce que tu entends par mon adresse publique, et quelle application ? Je ne cherche qu'a améliorer l'accès quand je suis hors de chez moi. Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 15 avril 2016 Signaler Partager Posté(e) le 15 avril 2016 Oui, j'avais bien compris, depuis l'exterieur ;-) Je pensais à la redirection de port. @jojo avait fait un tuto. http://www.domotique-fibaro.fr/index.php/topic/5341-acc%C3%A8s-%C3%A0-distance-de-la-box-fibaro-hc2hcl/ Je ne passe pas par un nom de domaine, dans mon cas. Mais en gros : - tu récupères l'IP public de ta box avec what'smyip : 82.230.65.89 - ip fixe de la box : 192.168.2.35 - tu configures le routeur : --> choisis un port : 30236 --> tu rediriges le traffic , de IPpublique vers ipfixe de la box soit : 82.230.65.89:30236 vers 192.168.2.35:80 Ca marche tres tres bien, incomparable avec les serveurs home.fibaro Sur l'application fibaro, tu ne rentres pas tes identifiants d'accès distant, et tu renseignes l'adresse IP ext, soit dans l'exemple 82.230.65.89:30236 et ENJOY ;-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
henri-allauch Posté(e) le 15 avril 2016 Auteur Signaler Partager Posté(e) le 15 avril 2016 C'est ce que je fais ( + nom de domaine chez OVH ) ca marche depuis wifi mais c'est hypper lent en 4G ( çà a eut marché ) Pour me convaincre j'ai essayé avec nom ip ( sans passer par le domaine ) c'est idem ok en wifi pas en 4G Bon il quelques chose de bizarre Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 15 avril 2016 Signaler Partager Posté(e) le 15 avril 2016 oui il y a bien quelque chose de bizarre, honnetement ca marche vraiment pas mal pour moi, et je n'ai pas de tel 4G ;-) Pas de souci de routeur box ? quel FAI ? As tu tenté une désinstalle/reinstalle de l'appli ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 15 avril 2016 Signaler Partager Posté(e) le 15 avril 2016 Ta bande passante est pas à100 % non plus ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 15 avril 2016 Signaler Partager Posté(e) le 15 avril 2016 Je ne suis pas certain de comprendre si c'est le téléphone ou le réseau de la maison qui est en 4G ? En tout cas, ce qui est certain, c'est que sur un abonnement 2G/3G/4G, à partir du moment où on utilise le modem du téléphone (ou un modem/routeur dédié tel que Huawei, ou encore une clé USB), l'opérateur donne toujours une adresse IP sur son réseau local. Ce qui signifie que la pseudo-adresse IP publique qu'on obtient n'est en réalité par publique ! Donc impossible d'y accéder de l'extérieur. (plus techniquement, le réseau de l'opérateur mobile est NATé, exactement comme le fait votre box ADSL/Fibre à domicile) Ce que je veux dire, c'est que si on a une connexion de secours en 4G à la maison, il est impossible de se connecter sur ce réseau de l'extérieur. Par conséquent, passer par un service de cloud est indispensable, c'est à dire que ce sont les équipements à l'intérieur de la maison qui doivent initier la connexion vers l'extérieur. Lien vers le commentaire Partager sur d’autres sites More sharing options...
henri-allauch Posté(e) le 15 avril 2016 Auteur Signaler Partager Posté(e) le 15 avril 2016 Oui c'est bizarre j'ai une connection internet autour de 4GO par SFR en ADSL la hc2 est relié directement sur la box en RJ45 comme la télé, et une boite terracom, j'ai un routeur wifi ou se connecte : des cameras IP, deux PC , Mac et téléphones. Aucun PB J'ai un domaine sur OVH ip (mis à jour par la box) et des configurations Nat dans la box Si je met le téléphone en 4G, et que je me connecte par par domaine sur OVH, j'accède sur mes camera correctement ( chaque camera étant une redirection de port ) C'est idem pour la Hc2 mais c'est d'une lenteur voire une impossibilité de se connecter. je me demande si un reboot de la Box ne résoudrait pas ce PB ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 15 avril 2016 Signaler Partager Posté(e) le 15 avril 2016 bah tu sembles avoir le même problème que moi en fait : un upload ADSL tout pourri, qui fait que tu n'arrives pas à charger l'interface Web à distance. Comme l'interface HC2 est très lourde, les connexions TCP tombent en timeout avant d'arriver à finir le chargement. quand ça m'arrive, je réessaye jusqu'à ce que ça se charge. Et si tu veux rebooter quelque chose, c'est la box ADSL en espérant qu'elle négocie un upload un peu plus élevé. En tout cas c'est mon problème chez moi Lien vers le commentaire Partager sur d’autres sites More sharing options...
henri-allauch Posté(e) le 15 avril 2016 Auteur Signaler Partager Posté(e) le 15 avril 2016 Bon je ne suis pas le seul ça me rassure. Je reinitialise le dsl de la box chaque semaine. Je viens de faire un essai après réinit de la box 4,57 en download et 300k en upload ( 5km du DSLAM ) Donc effectivement ca rame : à l'instant un minute pour la page d'accueil de la Hc2 ( Si c'est une utilisation occasionnelle ca va encore ) D'ou mon idée initiale de se post, faire une page "De Quelques commandes urgentes avec un minimun de transfert de données. Heureux de ne pas rebooter la box .... on ne sais jamais ... Merci à tous de vos réflexions et conseils ci dessus, on se sent moins seul. Lien vers le commentaire Partager sur d’autres sites More sharing options...
henri-allauch Posté(e) le 15 avril 2016 Auteur Signaler Partager Posté(e) le 15 avril 2016 J'ai avancé : Ce qui est dit ci dessus reste en partie vrai : pour la connexion internet ( ip:port ) et redirection de port sur la box Mais en ce qui concerne L'appli Fibaro sur iOS ( je suppose idem sous autre smartphone ) j'ai fait une connerie. Il y a quelque temps j'ai remplacé mon téléphone, donc rechargé et configure iOS Fibaro sans faire attention que le user password demandé à l'install est celui de home.fibaro Donc j'ai rentré celui de la HC2 et quand je suis hors wifi, il ne peut pas se connecter à la box. Pepite m'a conseillé une reinstal et c'est en suivant son conseil que j'ai découvert mon erreur. Du coup ca marche. Pourquoi c'est plus rapide ? Je suppose que que ce n'est pas des pages entières, mais des requêtes sur l'api Bon en tout cas c'est bien SI cela peut servir à d'autres ... lire attentivement les conseils des membres de ce Forum Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 15 avril 2016 Signaler Partager Posté(e) le 15 avril 2016 Oui l'appli utilise l'API. Par contre, avec tous mes devices, à distance, et toujours à cause de mon upload très faible, je n'arrive plus à télécharger la page /api/devices complète. De pire en pire..... là pour le coup Fibaro n'y est pour rien, le JSON de l'API est propre. C'est juste qu'il devient difficile aujourd'hui de faire tourner des services aussi simples qu'une domotique à la maison quand on a un upload de 300kbit/s. Même quand je fais du SSH en ligne de commande, ça rame. Vivement la fibre, plus que ..... à attendre Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 15 avril 2016 Signaler Partager Posté(e) le 15 avril 2016 voila la bonne nouvelle ;-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés