Aller au contenu

Un Coup De Pouce Pour Récupérer La Value En Php


henri-allauch

Messages recommandés

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

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

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

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

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

@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.

 

 

post-5263-0-68770900-1460711518_thumb.png

Lien vers le commentaire
Partager sur d’autres sites

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

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

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

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

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

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

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

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

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

×
×
  • Créer...