[Résolu] Synology Domoticz et Curl, Bash, Php ...

Forum dédié aux questions concernant la configuration de votre serveur sous Linux
Répondre
toutazimuth
Messages : 225
Inscription : 19 juil. 2015, 22:33

[Résolu] Synology Domoticz et Curl, Bash, Php ...

Message par toutazimuth »

Plateforme : Synology 213j DSM6
Domoticz : V3.6169
Niveau du demandeur : newbee (pour moi Python c'est un reptile et Bash une protection efficace contre la pluie) - mais je sais avec winscp me balader et copier des fichiers sur l’arborescence du syno :mrgreen:

Bonjour
J'aimerais pouvoir sur le synology, manipuler les données Json, (parser?) et extraire des valeurs des devices, données par une commande du type
http://192.168.1.88:8084/json.htm?type=devices&rid=488
J'aimerais par exemple extraire la valeur 0,003 kwh de "CounterToday"
Capture01.JPG
Capture01.JPG (69.11 Kio) Consulté 11472 fois
J'ai trouvé beaucoup d'exemples sur le forum, blog et les wiki domoticz, mais cela concerne souvent le Pi.
L'outil ./Jq à l'air parfait, mais sur un syno je n'ai pas l'impression que c'est applicable.

Alors ma question, sur un synology qu'elle est la méthodologie à utiliser pour faire fonctionner CURL, les scripts Php. Quels programmes faut il installer sur le syno et quels sont les chemins à mettre en place ?
Je suis preneur de tous liens et tuto


Sur le syno j'ai les paquets suivants qui fonctionnent : PHP 5.6, Node.js v4. Faut il autres choses ?

J'ai testé la méthode LUA Pass2PHP v2.2 de Egregius.be, mais rien ne ce passe (j'ai bien mis en place les scripts JSON.lua et ee5_base64.lua et adapté les chemins). Les deux scripts LUA sont exécutés et ne génèrent pas d'erreurs dans les log domoticz.

Le script Lua pour lancer le php :

Code : Tout sélectionner

JSON=loadfile('/volume2/@appstore/domoticz/var/scripts/lua/JSON.lua')()
base64=loadfile('/volume2/@appstore/domoticz/var/scripts/lua/ee5_base64.lua')()
c=base64.encode(JSON:encode(devicechanged))
s=base64.encode(JSON:encode(otherdevices))
i=base64.encode(JSON:encode(otherdevices_idx))
t=base64.encode(JSON:encode(otherdevices_lastupdate))
os.execute('curl -s --data "c='..c..'&s='..s..'&i='..i..'&t='..t..'" /volume2/secure/extract.php &')
commandArray={}
-- print('coucou php')
return commandArray

Mais le fichier extract.php ci-après (placé dans volume2/secure), ne donne strictement rien sur mon syno (pas d'écriture du fichier "test_1' et rien dans les log de domoticz).

Code : Tout sélectionner

#!/volume2/@appstore/PHP5.6/usr/local/bin/php56
<?php
echo "Bonjour le monde";
$json_string = file_get_contents("http://192.168.1.88:8084/json.htm?type=devices&rid=596");
$parsed_json = json_decode($json_string, true);
$test_link = "/volume2/@appstore/domoticz/var/scripts/test_1.txt";
$test_data = fopen ($test_link, "w+");
fwrite ($test_data, print_R($parsed_json, TRUE));
fclose ($test_data);
$parsed_json = $parsed_json['result'][0];
$CounterToday = $parsed_json['CounterToday'];
echo "consommation journalière ".$CounterToday."kWh"."\n";
$parsed_json = json_decode($json_string, true);
$parsed_json = $parsed_json['result'][0];
$Usage = $parsed_json['Puissance instantannéé'];
echo "Puissance instantannée ".$Usage."W"."\n";
echo "Bonjour le monde";
?>
Merci
Dernière modification par toutazimuth le 08 janv. 2017, 21:48, modifié 1 fois.
SynoDS213J - RFXcom E - Cam IP HikVision Dahua- Thermostat+Météo NetAtmo - OWL180 - KLFO50 IO SOMFY - Zwave - Philips HUE - Passerelle MDAH - Imperihome par epierre - Controlicz by Madgeni - 2*Pi3 test - Connexoon by nonolk - aspi xiaomi :mrgreen:
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Synology Domoticz et Curl, Bash, Php ...

Message par patrice »

bonjour
jq existe dans les paquets du syno

Et puis , un conseil, puisque tu te décrits comme débutant évite le script lua qui appelle un php , qui renvoie des valeurs ...
car au lieu de debugger 1 script tu en as 2 à comprendre dans 2 langages différents.

Fais donc ca en lua , regarde les tutos lua, met des print dans le script lua et ca doit fonctionner
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
toutazimuth
Messages : 225
Inscription : 19 juil. 2015, 22:33

Re: Synology Domoticz et Curl, Bash, Php ...

Message par toutazimuth »

Bjr Patrice
Merci pour ta réponse.
Je suis tout a fait d'accord avec ta remarque, je devrais pouvoir me débrouiller avec du Lua.
Mais le problème c'est que je ne trouve pas de Jq pour synology.
J'ai bien installé Node.js v4, mais je ne sais par vers quel répertoire de Node.js v4 je dois faire pointer mon script pour qu'il interprète "curl".

Pour le script des level battery, je fais pointer la commande curl vers le répertoire" Node.js_v4", mais cela ne donne rien.

Code : Tout sélectionner

  -- Update the list of device names and ids to be checked later
    os.execute("curl 'http://" .. DomoticzIP .. ":" .. DomoticzPort .. "/json.htm?type=devices&order=name' 2>/dev/null| /volume2/@appstore/Node.js_v4 '.result[]|{(.Name): .idx}' >" .. DeviceFileName)
    BattToReplace = false
Bon je continue à chercher. :)
SynoDS213J - RFXcom E - Cam IP HikVision Dahua- Thermostat+Météo NetAtmo - OWL180 - KLFO50 IO SOMFY - Zwave - Philips HUE - Passerelle MDAH - Imperihome par epierre - Controlicz by Madgeni - 2*Pi3 test - Connexoon by nonolk - aspi xiaomi :mrgreen:
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Synology Domoticz et Curl, Bash, Php ...

Message par patrice »

Bonjour
Les dernières beta de Domoticz embarquent un encodeur/decoder JSON destiné à Lua,
Article à venir sur le blog ,
Wait & see.
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Viand0x
Messages : 19
Inscription : 07 nov. 2016, 01:27

Re: Synology Domoticz et Curl, Bash, Php ...

Message par Viand0x »

Sur le synology tu peux installer jq via bootstrap. Tu touveras la procédure sur les forums dédiés et ensuite c'est presque comme sur le Pi vu que c'est du linux. Après tout dépend si ton Domoticz est sous docker ou pas!
toutazimuth
Messages : 225
Inscription : 19 juil. 2015, 22:33

Re: Synology Domoticz et Curl, Bash, Php ...

Message par toutazimuth »

patrice a écrit :Bonjour
Les dernières beta de Domoticz embarquent un encodeur/decoder JSON destiné à Lua,
Article à venir sur le blog ,
Wait & see.
Bonjour Patrice
Super cela semble prometteur
Je vais surveiller le blog, afin de tester ton futur tuto.
Merci
SynoDS213J - RFXcom E - Cam IP HikVision Dahua- Thermostat+Météo NetAtmo - OWL180 - KLFO50 IO SOMFY - Zwave - Philips HUE - Passerelle MDAH - Imperihome par epierre - Controlicz by Madgeni - 2*Pi3 test - Connexoon by nonolk - aspi xiaomi :mrgreen:
toutazimuth
Messages : 225
Inscription : 19 juil. 2015, 22:33

Re: Synology Domoticz et Curl, Bash, Php ...

Message par toutazimuth »

Viand0x a écrit :Sur le synology tu peux installer jq via bootstrap. Tu touveras la procédure sur les forums dédiés et ensuite c'est presque comme sur le Pi vu que c'est du linux. Après tout dépend si ton Domoticz est sous docker ou pas!
Bonjour Viand0x
Merci pour ta réponse.
je suis sur un 213J avec un Marvell Armada 370 88F6707 - et pas de Docker ou autres marins à l'horizon.
Mais bon je sens que cela va dépasser mes root compétences.
Et puis je voudrais pas planter mon fidèle Nas qui me gère la domotique et tout le stockage multimédia.
je vais patienter.
SynoDS213J - RFXcom E - Cam IP HikVision Dahua- Thermostat+Météo NetAtmo - OWL180 - KLFO50 IO SOMFY - Zwave - Philips HUE - Passerelle MDAH - Imperihome par epierre - Controlicz by Madgeni - 2*Pi3 test - Connexoon by nonolk - aspi xiaomi :mrgreen:
Viand0x
Messages : 19
Inscription : 07 nov. 2016, 01:27

Re: Synology Domoticz et Curl, Bash, Php ...

Message par Viand0x »

Sage décision d'autant qu'en cas de mise à jour de DSM tu risques de te retrouver le bec dans l'eau, et sans un docker pour te sauver la mise, c'est plutôt houleux :lol:
toutazimuth
Messages : 225
Inscription : 19 juil. 2015, 22:33

Re: [Résolu] Synology Domoticz et Curl, Bash, Php ...

Message par toutazimuth »

Bonjour

Et bien mon problème pour récupérer n'importe quelle valeur d'un device est résolu ! Et ce sans Bash ou Php, mais uniquement en utilisant du Lua ; Lua qui sait maintenant lire et interpréter des fichiers JSON.
Merci au tuto du blog easydomoticz, qui aborde les interactions Lua et JSON (article du 6 janvier).
https://easydomoticz.com/.
C'est super efficace et ce même sur un synology, puisque le fichier JSON.lua est intégré à Domoticz.
Merci à Patrice pour ce super blog ;)
SynoDS213J - RFXcom E - Cam IP HikVision Dahua- Thermostat+Météo NetAtmo - OWL180 - KLFO50 IO SOMFY - Zwave - Philips HUE - Passerelle MDAH - Imperihome par epierre - Controlicz by Madgeni - 2*Pi3 test - Connexoon by nonolk - aspi xiaomi :mrgreen:
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: [Résolu] Synology Domoticz et Curl, Bash, Php ...

Message par vil1driver »

Salut,

Pour info JSON.lua est de base dans domoticz depuis peu mais ça fait vraiment longtemps que l'on peut l'utiliser en l'y ajoutant nous même, de nombreux scripts sur ce forum s'en servent..
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Répondre