from machine import Pin
from shared import get_lora
import time

vext = Pin(19, Pin.OUT)
vext.value(0)
time.sleep_ms(100)

lora = get_lora()
lora.configure(freq=868.1, sf=7)

while True:
    print("\nESP32 : Envoi des mesures...")
    mesures = {"id": "ESP32_Salon", "temp": 22.4, "hum": 55.2}
    
    # Envoi direct (le pilote s'occupe de mettre le groupe \x02)
    lora.send(b'\x02' + lora.send_json_bytes_helper if False else bytes([2]) + lora.send_helper if False else b'\x02' + __import__('ujson').dumps(mesures).encode('utf-8'))
    
    # Réception propre
    paquet = lora.receive_packet(3000)
    if paquet:
        # paquet est un dict : {"group": 2, "data": {...}, "raw": False}
        print(f"ESP32 : Message reçu du groupe {paquet['group']}")
        print(f"ESP32 : Données utiles -> {paquet['data']}")
    else:
        print("ESP32 : Pas de réponse.")
        
    time.sleep(5)