Compteur en Python via mx API REST - V2
Objectif⚓
Modules⚓
1
import tkinter as tk
2
from tkinter import ttk
3
from tkinter import messagebox
4
import datetime
5
import os
6
import requests
Ajout du compteur dans mx via API REST (rien de nouveau ici)⚓
1
def AssetAjouteCompteur(assetCode, dateTime, name, userName, value):
2
api_key = os.getenv('API_MX')
3
url = 'https://prod.mydimomaintmx.cloud/IUT_EHC/connector/Asset/MeterUpdate'
4
headers = {
5
'accept': 'application/json',
6
'X-API-Key': api_key,
7
'Content-Type': 'application/json'
8
}
9
data = {
10
'assetCode': assetCode,
11
'dateTime': dateTime,
12
'name': name,
13
'userName': userName,
14
'value': value
15
}
16
try:
17
response = requests.post(url, headers=headers, json=data)
18
response.raise_for_status()
19
return response.json()
20
except requests.exceptions.HTTPError as err:
21
messagebox.showerror("Erreur", f"Erreur de requête: {err}")
Récupération des valeurs saisies et exécution de la requête API⚓
1
def soumettre():
2
asset = asset_entry.get()
3
print(asset)
4
date = date_entry.get()
5
print(date)
6
valeur = valeur_entry.get()
7
reponse = AssetAjouteCompteur(asset, date, "KM_CPT_PDG_ESSAIS_01", "GIM12", valeur)
8
resultat_label.config(text=reponse)
Création de la fenêtre⚓
1
# Création de la fenêtre
2
window = tk.Tk()
3
window.title("Ajout Compteur Asset")
4
5
# Création et placement des widgets
6
asset_label = ttk.Label(window, text="Code Equipement:")
7
asset_label.grid(column=0, row=0, sticky=tk.W, padx=5, pady=5)
8
9
date_label = ttk.Label(window, text="Date (YYYY-MM-DDThh:mm:ss):")
10
date_label.grid(column=0, row=1, sticky=tk.W, padx=5, pady=5)
11
12
valeur_label = ttk.Label(window, text="Valeur Compteur:")
13
valeur_label.grid(column=0, row=2, sticky=tk.W, padx=5, pady=5)
14
15
asset = "PDG-ESSAIS-01" # valeur par défaut
16
asset_entry = ttk.Entry(window)
17
asset_entry.grid(column=1, row=0, sticky=tk.EW, padx=5, pady=5)
18
asset_entry.insert(0,asset) # initialiser le code équipement avec la valeur par défaut de asset
19
20
dt_ini = datetime.datetime.now()
21
dt_ini_str= dt_ini.strftime("%Y"+"-"+"%m"+"-"+"%d"+"T08:00:00")
22
23
date_entry = ttk.Entry(window)
24
date_entry.grid(column=1, row=1, sticky=tk.EW, padx=5, pady=5)
25
date_entry.insert(0,dt_ini_str)
26
valeur_entry = ttk.Entry(window)
27
valeur_entry.grid(column=1, row=2, sticky=tk.EW, padx=5, pady=5)
28
29
submit_button = ttk.Button(window, text="VALIDER VALEUR DANS MX", command=soumettre)
30
submit_button.grid(column=0, row=3, columnspan=2, pady=5)
31
32
resultat_label = ttk.Label(window, text="Résultat sera affiché ici", wraplength=400)
33
resultat_label.grid(column=0, row=4, columnspan=2, sticky=tk.EW, padx=5, pady=5)
34
35
# Configuration de la grille
36
window.columnconfigure(0, weight=1)
37
window.columnconfigure(1, weight=3)
38
39
# Lancement de la boucle principale de l'application
40
window.mainloop()
41