Faut pas mettre nom.PY pour un script python3 …
*.py appelant python2
Me semble avoir vu ca passer de mémoire
Faut pas mettre nom.PY pour un script python3 …
*.py appelant python2
Me semble avoir vu ca passer de mémoire
Tu as raison sauf si tu mets en 1 ère ligne il me semble, moi aussi de mémoire
##!/usr/bin/python3
Ce qui n’est pas le cas…
Je l’ai dit plus haut… *.PY
Je viens de tester et en effet soit tu dois mettre le PY en majuscule soit tu n’en mets pas et tu mets la ligne dont j’ai parlé en 1er:
#!/usr/bin/python3
J’ai remis les mains dans le cambouis et il a des choses qui sont à modifier par rapport à mon 1er script. Ci dessous la version qui fonctionne:
#!/usr/bin/python3
# ##settings
# AUTEUR : Noyax37
# #SITE :
# #VERSION : 1.0
# #DATE : 2021-10-25
#DEFINITION DE LA SIGNIFICATION DES BITS
#VOIR DOC ENEDIS POUR SIGNIFICATION DE CHAQUE MESSAGE https://www.enedis.fr/media/2035/download
def switch_mot1(argument):
switcher = {
0: "Ferme",
1: "Ouvert",
}
return switcher.get(argument, "Invalide")
def switch_mot2(argument):
switcher = {
0: "Ferme",
1: "Ouvert sur surpuissance",
2: "ouvert sur surtension",
3: "Ouvert sur delestage",
4: "Ouvert sur ordre CPL ou Euridis",
5: "Ouvert sur surchauffe avec I > Imax",
6: "Ouvert sur surchauffe avec I < Imax",
}
return switcher.get(argument, "Invalide")
def switch_mot3(argument):
switcher = {
0: "Ferme",
1: "Ouvert",
}
return switcher.get(argument, "Invalide")
def switch_mot4(argument):
switcher = {
0: "Toujours a 0",
1: "Anormal",
}
return switcher.get(argument, "Invalide")
def switch_mot5(argument):
switcher = {
0: "Pas de surtension",
1: "Surtension",
}
return switcher.get(argument, "Invalide")
def switch_mot6(argument):
switcher = {
0: "Pas de depassement",
1: "Depassement en cours",
}
return switcher.get(argument, "Invalide")
def switch_mot7(argument):
switcher = {
0: "Consommateur",
1: "Producteur",
}
return switcher.get(argument, "Invalide")
def switch_mot8(argument):
switcher = {
0: "Positive",
1: "Negative",
}
return switcher.get(argument, "Invalide")
def switch_mot9(argument):
switcher = {
0: "Ventile sur index 1",
1: "Ventile sur index 2",
2: "Ventile sur index 3",
3: "Ventile sur index 4",
4: "Ventile sur index 5",
5: "Ventile sur index 6",
6: "Ventile sur index 7",
7: "Ventile sur index 8",
8: "Ventile sur index 9",
9: "Ventile sur index 10",
}
return switcher.get(argument, "Invalide")
def switch_mot10(argument):
switcher = {
0: "Ventile sur index 1",
1: "Ventile sur index 2",
2: "Ventile sur index 3",
3: "Ventile sur index 4",
}
return switcher.get(argument, "Invalide")
def switch_mot11(argument):
switcher = {
0: "Correct",
1: "Degrade",
}
return switcher.get(argument, "Invalide")
def switch_mot12(argument):
switcher = {
0: "Historique",
1: "Standard",
}
return switcher.get(argument, "Invalide")
def switch_mot13(argument):
switcher = {
0: "Non utilise",
1: "Non utilise",
}
return switcher.get(argument, "Invalide")
def switch_mot14(argument):
switcher = {
0: "Desactivee",
1: "Activee sans secu",
2: "Invalide",
3: "Activee avec secu",
}
return switcher.get(argument, "Invalide")
def switch_mot15(argument):
switcher = {
0: "New/unlock",
1: "New/lock",
2: "Registered",
3: "Invalide",
}
return switcher.get(argument, "Invalide")
def switch_mot16(argument):
switcher = {
0: "Non synchro",
1: "synchro",
}
return switcher.get(argument, "Invalide")
def switch_mot17(argument):
switcher = {
0: "Pas d'annonce",
1: "Bleu",
2: "Blanc",
3: "Rouge",
}
return switcher.get(argument, "Invalide")
def switch_mot19(argument):
switcher = {
0: "Pas de preavis",
1: "Preavis PM1",
2: "Preavis PM2",
3: "Preavis PM3",
}
return switcher.get(argument, "Invalide")
# DECLARATION DES VARIABLES
apikey = "****************" # mettre ici votre cle API trouvee dans réglages/systeme/configuration puis aller dans API et prendre 'clé API'
ip_jeedom = "192.168.1.38"
apikey_jeedom = "***********" #mettre ici la clé API que vous trouverez au même endroit que apikey mais prendre 'clé API virtuel'
# ID DES COMMANDES SOUS JEEDOM
idinfo = []
idSTGE = 2404 #id ou trouver le code STGE du linky
idinfo = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2405,2406] #id de la commande où aller mettre les traductions de STGE17 et 18
# IMPORTATION DES LIBRAIRIES
import sys
import requests
# ON RECUPERE LES DONNEES STGE
stgehex = requests.get("http://"+ip_jeedom+"/core/api/jeeApi.php?apikey="+apikey+"&type=cmd&id="+ str(idSTGE)).text
stgebin = bin(int(stgehex, 16)) #on traduit le message hexa en binaire
stgebin = stgebin [2::] #on supprime le 0b au debut du message binaire
bits = [stgebin]
longueur = len(stgebin)
#on stocke tous les bits unitairement
for i in range(32):
if i > longueur - 1:
bits += '0' #on complete avec des zeros jusqu a 32 bits
else:
bits += [stgebin[longueur -1 -i:longueur -i]]
#print ('bits 2 ', bits)
message = [switch_mot1(int(bits[1]))]
message += [switch_mot2(int(bits[4]+bits[3]+bits[2],2))]
message += [switch_mot3(int(bits[5]))]
message += [switch_mot4(int(bits[6]))]
message += [switch_mot5(int(bits[7]))]
message += [switch_mot6(int(bits[8]))]
message += [switch_mot7(int(bits[9]))]
message += [switch_mot8(int(bits[10]))]
message += [switch_mot9(int(bits[14]+bits[13]+bits[12]+bits[11],2))]
message += [switch_mot10(int(bits[16]+bits[15],2))]
message += [switch_mot11(int(bits[17]))]
message += [switch_mot12(int(bits[18]))]
message += [switch_mot13(int(bits[19]))]
message += [switch_mot14(int(bits[21]+bits[20],2))]
message += [switch_mot15(int(bits[23]+bits[22],2))]
message += [switch_mot16(int(bits[24]))]
message += [switch_mot17(int(bits[26]+bits[25],2))]
message += [switch_mot17(int(bits[28]+bits[27],2))]
message += [switch_mot19(int(bits[30]+bits[29],2))]
message += [switch_mot19(int(bits[32]+bits[31],2))]
#print ('message', message)
#print ('test bin ', int(bits[2]+bits[1],2))
for i in range(16,18):
requests.get("http://"+ip_jeedom+"/core/api/jeeApi.php?plugin=virtual&apikey="+apikey_jeedom+"&type=event&id="+str(idinfo[i])+"&value="+str(message[i]))
#test
# FIN DU SCRIPT
Et voilà ce que ça donne chez moi:
ok donc je dois modifier ces lignes :
Ou dois je insérer les ID de mes virtuels?
EDIT: lol je viens de trouver les virtuels sur la capture d écran
Ah tu vois py c python2 PY c python3
Je dis pas que des betises. Lol
Bon le script passe maintenant par contre j ai 0 en couleur du jour et couleur de demain
On est bien d accord que mes ID des virtuels pour le couleur du jour et du lendemain; je les remplace bien par tes ID 2405 et 2406 ?
euh non, tu remplaces mes ID 2405 et 2406 par les tiens
lol oui
EDIT c est bon:
Tu es sur de l’id 2404 ?
tu viens de me perdre…!
Je mets un CRON toutes les minutes ?
Idstge=2404 c bien le tien et pas celui de son exemple ?
ce n’est changé que le soir vers 20h00 donc mets 20h15 tous les jours
Je suis pas sur que tu suives tt a vouloir tt faire ss rien finir sur ton jeedom
Je te demande si le 1er est le tien tu me parles des 2 autres…
Merci beaucoup pour votre patience et votre aide les amis