Conseils pour la finalisation d un scenario pendant les tarifs tempo " jours Rouges "

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 :wink:

##!/usr/bin/python3

Ce qui n’est pas le cas…

Ok comment dois je nommer le fichier

Je l’ai dit plus haut… *.PY

je ne connais pas cette subtilité :wink:

Merci @anon53349806 je vais tester ça

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 :rofl: :joy:

Ah tu vois py c python2 PY c python3
Je dis pas que des betises. Lol

1 « J'aime »

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


J ai mis mes ID a la place de 2405 et 2406 mais j ai 0 en infos dans mon virtuel

EDIT c est bon:

Tu es sur de l’id 2404 ?

tu viens de me perdre…! :rofl: :joy:

Je mets un CRON toutes les minutes ?

Idstge=2404 c bien le tien et pas celui de son exemple ?

non mes ID sont 16933 et 16934

EDIT: désolé stge

non, @anon53349806 parle de l’ID où est stocké le code STGE que tu vas décodé

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


Dc il y a 3 id
Le premier celui ou on recupere les 2 autres ceux du virtuel ou on met les valeurs.

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 :heart_eyes: :star_struck: :+1: