diff --git a/borne.code-workspace b/borne.code-workspace new file mode 100644 index 0000000..4d1829d --- /dev/null +++ b/borne.code-workspace @@ -0,0 +1,14 @@ +{ + "folders": [ + { + "path": "." + }, + { + "name": "Mpy Remote Workspace", + "uri": "pico:" + } + ], + "settings": { + "python.languageServer": "Pylance" + } +} \ No newline at end of file diff --git a/main.py b/main.py index e03c6f9..3b3c9ff 100644 --- a/main.py +++ b/main.py @@ -1,9 +1,10 @@ -from machine import Pin, I2C +from machine import Pin from neopixel import NeoPixel import network import time import urequests +import sys Broche = [0, 1, 2, 21, 22, 23, 16, 17, 19, 20, 18] @@ -52,20 +53,16 @@ class Bouton: self.todo() class Relais: - i2c = I2C(scl=Pin(Broche[5]), sda=Pin(Broche[4]), freq=20000) - I2C_ADDR = 0x11 + pin = Pin(Broche[5], Pin.OUT) # def __init__(self) -> None: self.solaire() - def off(self): - self.i2c.writeto_mem(self.I2C_ADDR, 0x10, bytes([0b0000])) - def solaire(self): - self.i2c.writeto_mem(self.I2C_ADDR, 0x10, bytes([0b0011])) + self.pin.off() def reseau(self): - self.i2c.writeto_mem(self.I2C_ADDR, 0x10, bytes([0b1100])) + self.pin.on() class Cloud: token_ha = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJkNGY4MDdmYWYzNDQ0NTc0ODY4MmFmNzA4NDdmMTE0MyIsImlhdCI6MTc2NDQ1Mzk0NSwiZXhwIjoyMDc5ODEzOTQ1fQ.DJgSqeTKPHWbKEFH3HuFih4QKt3CSqLqot34_vhCOQU" @@ -210,26 +207,33 @@ consigne = 80 solaire = True while True: - solaire = True - i = (i + 1) % 10 - print(f"-------------- {i}") - charge = cloud.zoe() - HC = cloud.HC() - leds.afficher(charge = charge, consigne = consigne) - if (consigne > charge): - if (bouton_bleu.is_on()): - if HC: - print(f"Réseau demandé alors que consigne ({consigne}) > charge ({charge}) et que l'on est en HC") - solaire = False - else: - print(f"Réseau demandé alors que consigne ({consigne}) > charge ({charge}) MAIS on n'est pas en HC") - if (bouton_rouge.is_on()): - print(f"Réseau demandé alors que consigne ({consigne}) > charge ({charge}) et que l'on ne tient pas compte des HC/HP ({"HC" if HC else "HP"})") - solaire = False - if solaire: - print(f"On force le solaire : consigne ({consigne}) ; charge ({charge}) ; HC/HP ({"HC" if HC else "HP"})") - relais.solaire() - else: - print(f"On force le réseau : consigne ({consigne}) ; charge ({charge}) ; HC/HP ({"HC" if HC else "HP"})") - relais.reseau() time.sleep(pas_temps) + try: + solaire = True + i = (i + 1) % 10 + print(f"-------------- {i}") + charge = cloud.zoe() + HC = cloud.HC() + leds.afficher(charge = charge, consigne = consigne) + if (consigne > charge): + if (bouton_bleu.is_on()): + if HC: + print(f"Réseau demandé alors que consigne ({consigne}) > charge ({charge}) et que l'on est en HC") + solaire = False + else: + print(f"Réseau demandé alors que consigne ({consigne}) > charge ({charge}) MAIS on n'est pas en HC") + if (bouton_rouge.is_on()): + print(f"Réseau demandé alors que consigne ({consigne}) > charge ({charge}) et que l'on ne tient pas compte des HC/HP ({"HC" if HC else "HP"})") + solaire = False + if solaire: + print(f"On force le solaire : consigne ({consigne}) ; charge ({charge}) ; HC/HP ({"HC" if HC else "HP"})") + relais.solaire() + else: + print(f"On force le réseau : consigne ({consigne}) ; charge ({charge}) ; HC/HP ({"HC" if HC else "HP"})") + relais.reseau() + except Exception as e: + print("!!! ERREUR !!!") + sys.print_exception(e) + # print(type(e)) + # print(e.args) + # print(e)