Page 1 sur 1

Test jour chômé avec domogeek

Publié : 18 avr. 2017, 22:43
par amelyfred
Bonjour à tous,
J'essaye de faire un script pour savoir si le jour en cours est un we ou un jour de la zone de vacances scolaire (zone B)
Voici le bout de code.

Code : Tout sélectionner

#!/bin/bash

vacances=$(curl -s "http://domogeek.entropialux.com/schoolholiday/B/now")
we=$(curl -s "http://domogeek.entropialux.com/weekend/now")

if [ $vacances = "False" ]
then
echo "Faux"
else
echo "Vrai"
fi
Lorsque j'exécute le script, j'ai cette ligne :

Code : Tout sélectionner

./jour_chome.sh: ligne 9 : [: trop d'arguments
Si je remplace B par C je n'ai pas cette ligne.

Savez vous pourquoi?

Merci d'avance
Fred

Re: Test jour chômé avec domogeek

Publié : 24 avr. 2017, 21:32
par amelyfred
Bonjour
Bon je me galère un peu car je n'arrive pas à trouver comment savoir si un jour est chômé ou non.
J'ai commencé mon script et j'ai un peu modifié. Je fais cette requête :

Code : Tout sélectionner

$(curl -s "http://domogeek.entropialux.com/holidayall/B/now")
Et en retour j'ai donc cela pour aujourd'hui

Code : Tout sélectionner

{"holiday": "False", "weekend": "False", "schoolholiday": "False"}
Mais pour le 1er mai , j'aurais donc ce résultat :

Code : Tout sélectionner

{"holiday": "Fete du travail", "weekend": "False", "schoolholiday": "False"}
Comment déterminer si le jour est chomé?
Mon idée est de dire si dans la réponse, j'ai 3 False alors le jour n'est pas chômé. Mais comment faire cela?

Merci pour vos conseils.

Fred

Re: Test jour chômé avec domogeek

Publié : 25 avr. 2017, 14:23
par david.2d

Code : Tout sélectionner

commandArray = {}
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()  -- For Linux

local url='http://domogeek.entropialux.com/holidayall/B/now'

local config=assert(io.popen('curl '..url))
local vac = config:read('*all')
config:close()
local jsonResult = json:decode(vac)

    if (jsonResult.holiday=="False" and jsonResult.weekend =="False" and jsonResult.schoolholiday =="False") then
       print("Faux")
    else
        print("Vacance !!!!")
    end

return commandArray

Re: Test jour chômé avec domogeek

Publié : 25 avr. 2017, 20:44
par amelyfred
Merci

Re: Test jour chômé avec domogeek

Publié : 28 avr. 2017, 18:08
par amelyfred
Salut à tous,
Du coup je voulais le faire en shell et donc voilà un bout de code qui fonctionne.
Il est certainement perfectible car je début en shell.

Code : Tout sélectionner

#!/bin/bash
#Script permettant de savoir si le jour est chomé ou non:
#Test avec api domogeek si jour est we ou vacances scolaire zone B
#Si le jour est chomé alors l'interrupteur virtuel passe à On sinon à Off
DOMOTICZ_SERVER="192.168.0.22:8080"
idx="116"
vacances=$(curl -s "http://domogeek.entropialux.com/holidayall/B/now/json")

#Test jour chomé ou non
if [ "$( echo "$vacances" | jq '.["holiday"]')" = '"False"' ]  && [ "$( echo  "$vacances" | jq '.["weekend"]')" = '"False"' ] && [ "$( echo  "$vacances" | jq '.["schoolholiday"]')" = '"False"' ]

then
        current_Status="Off"
else
        current_Status="On"
fi

#Mise à niveau de l'inter virtuel
curl --silent -s -i -H  "Accept: application/json"  "http://$DOMOTICZ_SERVER/json.htm?type=command&param=switchlight&idx=$idx&switchcmd=$current_Status"