Très bien maintenant, on va corriger ensemble les petites erreurs.
Code : Tout sélectionner
result=$(curl -s "http://192.168.1.XX:XXXX/json.htm?type=devices&rid=1"| jq -r .result[].Status)
Cette commande si tu l'as testé te renvoi la valeur de "Status"
En gros, quand tu as tapé la commande sur ton navigateur, tu as ça :
Code : Tout sélectionner
{
"ActTime" : 1445355555,
"ServerTime" : "2015-10-20 17:39:15",
"Sunrise" : "08:19",
"Sunset" : "18:51",
"result" : [
{
"AddjMulti" : 1.0,
"AddjMulti2" : 1.0,
"AddjValue" : 0.0,
"AddjValue2" : 0.0,
"BatteryLevel" : 255,
"CustomImage" : 10,
"Data" : "On",
"Description" : "",
"Favorite" : 1,
"HardwareID" : 1,
"HardwareName" : "Dongle",
"HardwareType" : "OpenZWave USB",
"HardwareTypeVal" : 21,
"HaveDimmer" : true,
"HaveGroupCmd" : false,
"HaveTimeout" : false,
"ID" : "0000201",
"Image" : "Fireplace",
"IsSubDevice" : false,
"LastUpdate" : "2015-10-20 16:37:02",
"Level" : 0,
"LevelInt" : 0,
"MaxDimLevel" : 100,
"Name" : "Poêle",
"Notifications" : "false",
"PlanID" : "0",
"PlanIDs" : [ 0 ],
"Protected" : false,
"ShowNotifications" : true,
"SignalLevel" : 7,
"Status" : "On",
"StrParam1" : "",
"StrParam2" : "",
"SubType" : "ZWave",
"SwitchType" : "On/Off",
"SwitchTypeVal" : 0,
"Timers" : "true",
"Type" : "Lighting 2",
"TypeImg" : "lightbulb",
"Unit" : 1,
"Used" : 1,
"UsedByCamera" : false,
"XOffset" : "0",
"YOffset" : "0",
"idx" : "1"
}
],
"status" : "OK",
"title" : "Devices"
}
Tu peux constater que tout en bas, tu as le sous paramètre Status, et, celui qui nous interesse c'est : "HaveTimeout".
Il va falloir changer Status en HaveTimeout
Tu peux tester cette commande directement sur ta RPI pour voir si ça fonctionne : curl -s "http://192.168.1.XX:XXXX/json.htm?type=devices&rid=1"| jq -r .result[].HaveTimeout
echo $result --> Te permet d'afficher si "HaveTimeout" est "On" ou "Off". En soit il n'a pas trop d'interet (enfin c est mon opinion). Il te permet de voir le resultat dans le cadre d'un debug.
Ensuite en fonction du résultat tu envoies cette commande :
Code : Tout sélectionner
http://192.168.1.XX:XXXX/json.htm?type=command¶m=switchlight&idx=1&switchcmd=Off&level=0
En gros, tu renvoies au module qu'il doit être allumé (switchcmd=On) ou éteint (switchcmd=Off) avec un dimmer à 0 (level=0) donc éteint . Mais toi, comme tu as pu le constater, ton module est En Ligne ou Hors Ligne. Tu ne peux lui renvoyer ta commande quand il est Hors Ligne.
Ce que tu devrais faire :
s'il est en ligne --> je ne fais rien
s'il est Hors Ligne --> Soit tu décides de redemarrer ta RPI soit tu envoies la commande "service domoticz restart". Qui permettra de redemarrer domoticz sans redemarrer la RPI. Pour envoyer cette commande, il n'y a pas besoin de curl, tu as juste à l'écrire dans ton bash.
Si je t ai perdu, n'hésite pas.
J'attends ton script 2e version
