Réaliser un WifInfo avec un Wemos en boitier DIN.
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
merci sa fonctionne, c est vraiment bien vu l'astuce eirock67
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
En fait, si la clé API ne s'affiche pas, n'hésitez pas à purger le cache de votre navigateur internet.
-
- Timide
- Messages : 262
- Inscription : 07 mars 2017, 20:31
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
Bonsoir mjeanne,
le script 'GWTeleinfo.php' fonctionne correctement et transmet bien les info au plugin Téléinfo.
Mais j'ai toutes le 15s ce message dans html.error:
Merci d'avance
le script 'GWTeleinfo.php' fonctionne correctement et transmet bien les info au plugin Téléinfo.
Mais j'ai toutes le 15s ce message dans html.error:
Y a t'il un moyen d'éviter ces messages ?[10-Mar-2019 20:01:50 Europe/Berlin] PHP Warning: curl_error() expects parameter 1 to be resource, string given in /var/www/html/GWTeleinfo.php on line 53
[10-Mar-2019 20:01:50 Europe/Berlin] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
Merci d'avance
Jeedom 4.0.35 DIY RPI3/SSD , Zwave - Rfxcom - ...
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
Bonjour,
Je vais modifier mon post plus haut également.
Petite erreur de ma part (je me suis trompé de variable). Il faut remplacer la ligne 53 par:
Code : Tout sélectionner
trigger_error(curl_error($ch));
-
- Timide
- Messages : 262
- Inscription : 07 mars 2017, 20:31
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
Super merci mjeanne
Envoyé de mon iPhone en utilisant Tapatalk
Envoyé de mon iPhone en utilisant Tapatalk
Jeedom 4.0.35 DIY RPI3/SSD , Zwave - Rfxcom - ...
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
@mjeanne,
Est ce que je peux mettre ta solution sur la première page du post ?
Bonsoir,
voici une solution assez propre, car elle ne modifie ni wifinfo, ni le plugin Teleinfo. J'ai juste créé une passerelle qui prend les données en GET (ancienne API) et les renvoi en POST (nouvelle API).
1/ Tout d'abord, faire une sauvegarde de votre Jeedom....
2/ Vérifier la sauvegarde, la mettre en sureté, etc...
3/ vérifier que vous avez fait le point 1
4/ Ne trichez pas, vérifiez le point 1
5/ Sur Jeedom: Mettre à jour le plugin Téléinfo et aller dans la config de Jeedom, section API, pour y chercher la clé API de Téléinfo.
6/ Sur Wifinfo: Mettre cette clé API dans la config Jeedom du wifinfo (chez moi, ça marchait sans cette clé api depuis toujours, mais plus avec la mise à jour).
Toujours dans la config de Wifinfo, section Jeedom, notez l'URL dans un coin, puis remplacer la. Chez certains, l'URL peut être différente.
Code : Tout sélectionner
/plugins/teleinfo/core/php/jeeTeleinfo.php
par
Code : Tout sélectionner
/GWTeleinfo.php
7/ retour sur Jeedom. Utilisez SSH pour créer le fichier 'GWTeleinfo.php' dans '/var/www/html' ou utilisez le plugin "Outils de développement" (ce que j'ai fait).
Collez le code suivant:
Code : Tout sélectionner
<?php
// Les variables ci après sont à configurer
// IP Lock: si '1', la passerelle filtre toute autre IP (j'ai réalisé ce script à l'arrache, c'est une sécurité de base)
$IP_Wifinfo="192.168.5.229";
$IP_Lock = 1; // Si =1, seul le wifinfo indiquer au dessus peut appeler ce script
// votre Jeedom est sur la meme machine que ce script, en théorie, sinon adaptez ici
$Jeedom = "http://localhost";
// chemin vers le plugion téléinfo (ce qui se trouvait dans la config de votre wifinfo)
$URL_Jeedom = $Jeedom . "/plugins/teleinfo/core/php/jeeTeleinfo.php";
// plus rien à configurer à partir d'ici
///////////////////////////////////////////////////////////////////
if ($IP_Lock==1) {
$IP = $_SERVER['REMOTE_ADDR'];
if ($IP!=$IP_Wifinfo)
{
print_r("IP Lock !");
exit(1);
}
}
// lecture du GET provenant du wifinfo
// il faudra peut-être voir a sécuriser
$data = $_GET;
// extraction de la clé d'API qu'il faudra remettre dans l'URL
$api_key=htmlspecialchars($data["api"]);
// transformation des données en format json
// rajout de "device", comme voulu par la nouvelle API
$data["device"]=$data["ADCO"];
// suppression de "api" et "apikey" qui peuvent être sur la ligne de commande
if (isset($data["api"])) { unset($data["api"]); }
if (isset($data["apikey"])) { unset($data["apikey"]); }
$data_json= json_encode($data);
// on rajoute les infos demandées par le plugin teleinfo
$post_data = "{\"device\":{\"".htmlspecialchars($data["ADCO"])."\":".$data_json. "}}";
// on renvoi en POST
$full_URL = $URL_Jeedom . "?apikey=". $api_key;
$ch = curl_init($full_URL);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($post_data)));
curl_setopt($ch, CURLOPT_TIMEOUT, 5); // pour ne pas attendre à l'infini
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$retour = curl_exec($ch);
if (!$retour)
{
trigger_error(curl_error($ch));
}
curl_close($ch);
?>
Si vous êtes en ssh, pensez à changer le propriétaire du fichier via
Code : Tout sélectionner
chown www-data.www-data GWTeleinfo.php
Normalement, ça devrait fonctionner, c'est le cas chez moi.
Je suis sur une config PI3/php7.1/Jessie et compteur non linky, option tempo. Ce script ne fonctionnera peut-être pas en mode 2 compteurs (ou devra être modifié au niveau du filtrage IP). En toute logique, il devrait être compatible linky, puisqu'il ne change pas les données, juste le format de transmission.
edit 7/03 16h53: changement de la commande chmod par chown
edit 11/03 9h20: correction d'une erreur sur le 'trigger_error'
Est ce que je peux mettre ta solution sur la première page du post ?
RPI3 avec mSATA
RFXcom; RFLink; Z-Wave; Mysensors; ESPEasy
Noeuds MySensors-téléinfo-Température-Distance-Baromètre-relais
Noeuds ESPEasy-open-garage-relais-PIR-Station Météo
RFXcom; RFLink; Z-Wave; Mysensors; ESPEasy
Noeuds MySensors-téléinfo-Température-Distance-Baromètre-relais
Noeuds ESPEasy-open-garage-relais-PIR-Station Météo
-
- Timide
- Messages : 262
- Inscription : 07 mars 2017, 20:31
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
@mjeanne,
j'ai aussi de temps en temps :
j'ai intercalé avant le if (en espérant en apprendre plus):
là j'ai :
j'ai mis un peu plus de log en rajoutant l'affichage de $full_URL et $post_data
j'ai aussi de temps en temps :
Code : Tout sélectionner
[11-Mar-2019 20:09:51 Europe/Berlin] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
[11-Mar-2019 20:10:10 Europe/Berlin] PHP Notice: Operation timed out after 5001 milliseconds with 0 bytes received in /var/www/html/GWTeleinfo.php on line 53
[11-Mar-2019 20:10:21 Europe/Berlin] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
Code : Tout sélectionner
error_log(print_r($ch,TRUE));
Code : Tout sélectionner
11-Mar-2019 20:28:07 Europe/Berlin] PHP Notice: in /var/www/html/GWTeleinfo.php on line 54
[11-Mar-2019 20:28:21 Europe/Berlin] Resource id #2
[11-Mar-2019 20:28:21 Europe/Berlin] PHP Notice: in /var/www/html/GWTeleinfo.php on line 54
[11-Mar-2019 20:28:37 Europe/Berlin] Resource id #1
[11-Mar-2019 20:28:37 Europe/Berlin] PHP Notice: in /var/www/html/GWTeleinfo.php on line 54
[11-Mar-2019 20:28:52 Europe/Berlin] Resource id #1
[11-Mar-2019 20:28:52 Europe/Berlin] PHP Notice: in /var/www/html/GWTeleinfo.php on line 54
Code : Tout sélectionner
[11-Mar-2019 20:38:50 Europe/Berlin] http://localhost/plugins/teleinfo/core/php/jeeTeleinfo.php?apikey=SAM2Lr7GS2CUSXCUPZBXA20eV1gQFKEY
[11-Mar-2019 20:38:50 Europe/Berlin] {"device":{"041864851423":{"ADCO":"041864851423","OPTARIF":"BASE","ISOUSC":"30","BASE":"002001454","PTEC":"TH..","IINST":"012","IMAX":"090","PAPP":"02840","HHPHC":"A","MOTDETAT":"000000","ADPS":"033","device":"041864851423"}}}
[11-Mar-2019 20:38:51 Europe/Berlin] Resource id #2
[11-Mar-2019 20:38:51 Europe/Berlin] PHP Notice: in /var/www/html/GWTeleinfo.php on line 56
[11-Mar-2019 20:39:05 Europe/Berlin] http://localhost/plugins/teleinfo/core/php/jeeTeleinfo.php?apikey=SAM2Lr7GS2CUSXCUPZBXA20eV1gQFKEY
[11-Mar-2019 20:39:05 Europe/Berlin] {"device":{"041864851423":{"ADCO":"041864851659","OPTARIF":"BASE","ISOUSC":"30","BASE":"002001466","PTEC":"TH..","IINST":"012","IMAX":"090","PAPP":"02830","HHPHC":"A","MOTDETAT":"000000","ADPS":"033","device":"041864851423"}}}
[11-Mar-2019 20:39:08 Europe/Berlin] Resource id #1
[11-Mar-2019 20:39:08 Europe/Berlin] PHP Notice: in /var/www/html/GWTeleinfo.php on line 56
Jeedom 4.0.35 DIY RPI3/SSD , Zwave - Rfxcom - ...
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
Le timeout est étrange. Quel est le niveau de charge de votre machine ? Parce que mettre plus de 5 secondes à se joindre lui-même, c'est bizarre.
Vous pouvez augmenter la valeur du timeout dans les 2 lignes correspondantes (vers lignes 46/47).
qu'avez-vous mis dans la variable '$Jeedom' ?=> ça ne fonctionnera pas, car $ch n'est pas une chaine de texte. C'est 'curl_error($ch)' qui permet d'obtenir l'erreur en format texte.
Si le script fonctionne et qu'il n'y a que les traces dans les logs qui vous posent problème, mettez la ligne 'trigger_error' en commentaire.
Vous pouvez augmenter la valeur du timeout dans les 2 lignes correspondantes (vers lignes 46/47).
qu'avez-vous mis dans la variable '$Jeedom' ?
Code : Tout sélectionner
error_log(print_r($ch,TRUE));
Si le script fonctionne et qu'il n'y a que les traces dans les logs qui vous posent problème, mettez la ligne 'trigger_error' en commentaire.
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
merci a mjeanne pour la modification, ça marche impec (bon ça n'a pas marché du premier coup car je n'avais pas lu la première ligne du script avec l'adresse ip du teleinfo à modifier...)
merci aux autres pour l'astuce de la clé API qui n'apparaissait pas chez moi également
merci aux autres pour l'astuce de la clé API qui n'apparaissait pas chez moi également
-
- Timide
- Messages : 262
- Inscription : 07 mars 2017, 20:31
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
mjeanne,
Pour $jeedom il y a http://localhost
Je crois que je vais commentè la ligne j’ai rien d’autre qui deconne !
Un grand merci en tout cas, ça marche impeccable !
Pour $jeedom il y a http://localhost
Je crois que je vais commentè la ligne j’ai rien d’autre qui deconne !
Un grand merci en tout cas, ça marche impeccable !
Jeedom 4.0.35 DIY RPI3/SSD , Zwave - Rfxcom - ...
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
Bonjour,
Qui peux me donner la référence du bornier ou l'on raccorde le 220 vols (sur la version rail DIN)
Merci
Qui peux me donner la référence du bornier ou l'on raccorde le 220 vols (sur la version rail DIN)
Merci
Hardware :
- Serveur sous Proxmox VE 5.1-35 avec VM Jeedom v3.3.19
- Raspberry Pi 2 Modèle B 1GB
- Onduleur APC Smart UPS 750
Software :
- PfSense CE 2.4.4-RELEASE-p2
- Jeedom v3.3.19
- Raspbian Stretch v4.9
- Serveur sous Proxmox VE 5.1-35 avec VM Jeedom v3.3.19
- Raspberry Pi 2 Modèle B 1GB
- Onduleur APC Smart UPS 750
Software :
- PfSense CE 2.4.4-RELEASE-p2
- Jeedom v3.3.19
- Raspbian Stretch v4.9
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
Côté 230, c'est des Adam tech EB147-02-M ( pas de 7,5mm)
Côté TIC, c'est des Adam tech EB147-02-D (pas de 5,08 ou 02-C pas de 5mm)
Envoyé de mon Nexus 7 en utilisant Tapatalk
Côté TIC, c'est des Adam tech EB147-02-D (pas de 5,08 ou 02-C pas de 5mm)
Envoyé de mon Nexus 7 en utilisant Tapatalk
RPI3 avec mSATA
RFXcom; RFLink; Z-Wave; Mysensors; ESPEasy
Noeuds MySensors-téléinfo-Température-Distance-Baromètre-relais
Noeuds ESPEasy-open-garage-relais-PIR-Station Météo
RFXcom; RFLink; Z-Wave; Mysensors; ESPEasy
Noeuds MySensors-téléinfo-Température-Distance-Baromètre-relais
Noeuds ESPEasy-open-garage-relais-PIR-Station Météo
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
Merci rol-rider
Hardware :
- Serveur sous Proxmox VE 5.1-35 avec VM Jeedom v3.3.19
- Raspberry Pi 2 Modèle B 1GB
- Onduleur APC Smart UPS 750
Software :
- PfSense CE 2.4.4-RELEASE-p2
- Jeedom v3.3.19
- Raspbian Stretch v4.9
- Serveur sous Proxmox VE 5.1-35 avec VM Jeedom v3.3.19
- Raspberry Pi 2 Modèle B 1GB
- Onduleur APC Smart UPS 750
Software :
- PfSense CE 2.4.4-RELEASE-p2
- Jeedom v3.3.19
- Raspbian Stretch v4.9
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
Si certains sont intéressés par des PCB (made in China)
J'en ai quelques-uns.
Envoyé de mon V370 en utilisant Tapatalk
J'en ai quelques-uns.
Envoyé de mon V370 en utilisant Tapatalk
RPI3 avec mSATA
RFXcom; RFLink; Z-Wave; Mysensors; ESPEasy
Noeuds MySensors-téléinfo-Température-Distance-Baromètre-relais
Noeuds ESPEasy-open-garage-relais-PIR-Station Météo
RFXcom; RFLink; Z-Wave; Mysensors; ESPEasy
Noeuds MySensors-téléinfo-Température-Distance-Baromètre-relais
Noeuds ESPEasy-open-garage-relais-PIR-Station Météo
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
Sinon, le script fonctionne, mais j'ai toujours cette erreur dans les logs "http error"
et ma ligne 53 est bien "trigger_error(curl_error($ch));"
Code : Tout sélectionner
[13-Mar-2019 09:34:17 UTC] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
[13-Mar-2019 09:34:47 UTC] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
[13-Mar-2019 09:35:17 UTC] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
[13-Mar-2019 09:35:47 UTC] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
[13-Mar-2019 09:36:18 UTC] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
[13-Mar-2019 09:36:47 UTC] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
[13-Mar-2019 09:37:17 UTC] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
[13-Mar-2019 09:37:47 UTC] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
[13-Mar-2019 09:38:17 UTC] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
[13-Mar-2019 09:38:47 UTC] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
[13-Mar-2019 09:39:17 UTC] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
[13-Mar-2019 09:39:47 UTC] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
[13-Mar-2019 09:40:18 UTC] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
[13-Mar-2019 09:40:47 UTC] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
[13-Mar-2019 09:41:17 UTC] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
[13-Mar-2019 09:41:47 UTC] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
[13-Mar-2019 09:42:17 UTC] PHP Notice: in /var/www/html/GWTeleinfo.php on line 53
RPI3 avec mSATA
RFXcom; RFLink; Z-Wave; Mysensors; ESPEasy
Noeuds MySensors-téléinfo-Température-Distance-Baromètre-relais
Noeuds ESPEasy-open-garage-relais-PIR-Station Météo
RFXcom; RFLink; Z-Wave; Mysensors; ESPEasy
Noeuds MySensors-téléinfo-Température-Distance-Baromètre-relais
Noeuds ESPEasy-open-garage-relais-PIR-Station Météo
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
je n'avais pas ce comportement chez moi, du coup, pas simple à debugger. D'autant que sans erreur, il ne devrait pas entrer dans la boucle et surtout le message est vide.
Au lieu de 'localhost', testez avec '127.0.0.1' pour gagner du temps et des ressources en évitant une résolution dns.
Ne serait-ce pas lié à un paramétrage 'debug' quelque part dans la config des logs de Jeedom ? ou lié à une version de php.
J'ai une Jeedom DIY sur Rpi3, php 7.1.12 sous Jessie et mon niveau de log par defaut de Jeedom est "Erreur".
Edit: Je viens de mettre à jour mon Jeedom en 3.3.16, et la ligne apparait maintenant dans mes logs !
Edit2: ayant l'anomalie sous les yeux, le debug est plus simple ! A priori, c'est curl_exec qui ne renvoi plus l'erreur de la même façon qu'avant suite mise à jour de PHP, et comme j'utilise des bouts de code copier/coller, ce n'est pas à jour. Il faut modifier le test et utiliser un triple '='. Je n'ai pas d'explication sur le pourquoi je n'avais pas ces warnings avant la mise à jour.
mise à jour du code:
Au lieu de 'localhost', testez avec '127.0.0.1' pour gagner du temps et des ressources en évitant une résolution dns.
Ne serait-ce pas lié à un paramétrage 'debug' quelque part dans la config des logs de Jeedom ? ou lié à une version de php.
J'ai une Jeedom DIY sur Rpi3, php 7.1.12 sous Jessie et mon niveau de log par defaut de Jeedom est "Erreur".
Edit: Je viens de mettre à jour mon Jeedom en 3.3.16, et la ligne apparait maintenant dans mes logs !
Edit2: ayant l'anomalie sous les yeux, le debug est plus simple ! A priori, c'est curl_exec qui ne renvoi plus l'erreur de la même façon qu'avant suite mise à jour de PHP, et comme j'utilise des bouts de code copier/coller, ce n'est pas à jour. Il faut modifier le test et utiliser un triple '='. Je n'ai pas d'explication sur le pourquoi je n'avais pas ces warnings avant la mise à jour.
mise à jour du code:
Code : Tout sélectionner
// on renvoi en POST
$full_URL = $URL_Jeedom . "?apikey=". $api_key;
$ch = curl_init($full_URL);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($post_data)));
curl_setopt($ch, CURLOPT_TIMEOUT, 5); // pour ne pas attendre à l'infini
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
if (curl_exec($ch) === false)
{
trigger_error(curl_error($ch));
// les 3 lignes suivantes servent au debug et peuvent être commentées ou supprimées
print_r("Erreur: ".curl_error($ch)."<br>\r\n");
print_r(curl_getinfo($ch));
print_r("<br>\r\n");
}
curl_close($ch);
-
- Timide
- Messages : 262
- Inscription : 07 mars 2017, 20:31
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
Bonjour mjeanne,
impeccable plus d'erreur . un grand merci!
impeccable plus d'erreur . un grand merci!
Jeedom 4.0.35 DIY RPI3/SSD , Zwave - Rfxcom - ...
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
Pareil, plus d'erreur
RPI3 avec mSATA
RFXcom; RFLink; Z-Wave; Mysensors; ESPEasy
Noeuds MySensors-téléinfo-Température-Distance-Baromètre-relais
Noeuds ESPEasy-open-garage-relais-PIR-Station Météo
RFXcom; RFLink; Z-Wave; Mysensors; ESPEasy
Noeuds MySensors-téléinfo-Température-Distance-Baromètre-relais
Noeuds ESPEasy-open-garage-relais-PIR-Station Météo
Re: Réaliser un WifInfo avec un Wemos en boitier DIN.
J'ai fais les mise à jour ce soir le core 3.2.16 et le plugin teleinfo(4.2.2), j'ai suivi les instructions pour le passage au php mais fonctionne pas je regarderai demain
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 6 invités