Posté par kekemar le 05 mai 2019 à 09:08. En réponse au message Envoi données vers API Domoticz en C. Évalué à 1. Dernière modification le 05 mai 2019 à 10:16.
Bonjour,
Merci pour votre réponse,
Voici comment j'ai procédé :
Dans le code C, j'écris les données dans un fichier stocké dans la RAM :
{ FILE* fichier = NULL; fichier = fopen("/mnt/mytmpfs/ups.txt", "w"); if (fichier != NULL) { fprintf(fichier, "%.1f\n", voltage_grid); fprintf(fichier, "%.1f\n", freq_grid); fprintf(fichier, "%.1f\n", voltage_out); fprintf(fichier, "%.1f\n", freq_out); fprintf(fichier, "%d\n", load_percent); fprintf(fichier, "%d\n", load_watt); fprintf(fichier, "%d\n", load_va); fprintf(fichier, "%d\n", temp_heatsink); fprintf(fichier, "%d\n", batt_capacity); fprintf(fichier, "%.2f\n", voltage_batt); fprintf(fichier, "%d\n", batt_charge_current); fprintf(fichier, "%d\n", batt_discharge_current); fprintf(fichier, "%d\n", pv1); fprintf(fichier, "%f\n", pv2); fprintf(fichier, "%f\n", scc); fprintf(fichier, "%d\n", voltage_bus); fclose(fichier); } }
Ensuite via un script j'ouvre le fichier, je récupère les informations utiles dans des variables et j'envoi l'URL avec la variable :
#!/bin/sh tension_reseau_entrant=$(sed q /mnt/mytmpfs/ups.txt) freq_reseau_entrant=$(sed -n 2p /mnt/mytmpfs/ups.txt) tension_sortie=$(sed -n 3p /mnt/mytmpfs/ups.txt) freq_sortie=$(sed -n 4p /mnt/mytmpfs/ups.txt) usage_pc=$(sed -n 5p /mnt/mytmpfs/ups.txt) usage_w=$(sed -n 6p /mnt/mytmpfs/ups.txt) usage_va=$(sed -n 7p /mnt/mytmpfs/ups.txt) temp_int=$(sed -n 8p /mnt/mytmpfs/ups.txt) cap_bat=$(sed -n 9p /mnt/mytmpfs/ups.txt) tension_bat=$(sed -n 10p /mnt/mytmpfs/ups.txt) charge_bat=$(sed -n 11p /mnt/mytmpfs/ups.txt) decharge_bat=$(sed -n 12p /mnt/mytmpfs/ups.txt) tension_bus=$(sed -n 16p /mnt/mytmpfs/ups.txt) /usr/bin/curl --silent "http://192.168.10.12:8080/json.htm?type=command¶m=udevice&idx=2287&nvalue=0&svalue=$tension_reseau_entrant" > /dev/null /usr/bin/curl --silent "http://192.168.10.12:8080/json.htm?type=command¶m=udevice&idx=2294&nvalue=0&svalue=$freq_reseau_entrant" > /dev/null /usr/bin/curl --silent "http://192.168.10.12:8080/json.htm?type=command¶m=udevice&idx=2288&nvalue=0&svalue=$tension_sortie" > /dev/null /usr/bin/curl --silent "http://192.168.10.12:8080/json.htm?type=command¶m=udevice&idx=2293&nvalue=0&svalue=$freq_sortie" > /dev/null /usr/bin/curl --silent "http://192.168.10.12:8080/json.htm?type=command¶m=udevice&idx=2295&nvalue=0&svalue=$usage_pc" > /dev/null /usr/bin/curl --silent "http://192.168.10.12:8080/json.htm?type=command¶m=udevice&idx=2289&svalue=$usage_w" > /dev/null /usr/bin/curl --silent "http://192.168.10.12:8080/json.htm?type=command¶m=udevice&idx=2286&nvalue=0&svalue=$temp_int" > /dev/null /usr/bin/curl --silent "http://192.168.10.12:8080/json.htm?type=command¶m=udevice&idx=2290&nvalue=0&svalue=$cap_bat" > /dev/null /usr/bin/curl --silent "http://192.168.10.12:8080/json.htm?type=command¶m=udevice&idx=2284&nvalue=0&svalue=$tension_bat" > /dev/null /usr/bin/curl --silent "http://192.168.10.12:8080/json.htm?type=command¶m=udevice&idx=2291&nvalue=0&svalue=$charge_bat" > /dev/null /usr/bin/curl --silent "http://192.168.10.12:8080/json.htm?type=command¶m=udevice&idx=2292&nvalue=0&svalue=$decharge_bat" > /dev/null /usr/bin/curl --silent "http://192.168.10.12:8080/json.htm?type=command¶m=udevice&idx=2296&nvalue=0&svalue=$tension_bus" > /dev/null
ça marche
[^] # Re: Et sans connaitre le C
Posté par kekemar . En réponse au message Envoi données vers API Domoticz en C. Évalué à 1. Dernière modification le 05 mai 2019 à 10:16.
Bonjour,
Merci pour votre réponse,
Voici comment j'ai procédé :
Dans le code C, j'écris les données dans un fichier stocké dans la RAM :
Ensuite via un script j'ouvre le fichier, je récupère les informations utiles dans des variables et j'envoi l'URL avec la variable :
ça marche