FEAT : Nouveau relais

This commit is contained in:
Raymond Bourges 2026-01-19 12:28:45 +01:00
parent 109424fc50
commit e719b6058c
2 changed files with 48 additions and 30 deletions

14
borne.code-workspace Normal file
View File

@ -0,0 +1,14 @@
{
"folders": [
{
"path": "."
},
{
"name": "Mpy Remote Workspace",
"uri": "pico:"
}
],
"settings": {
"python.languageServer": "Pylance"
}
}

64
main.py
View File

@ -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)