From 661a1c7cb31b683f4a21e9f1c3133dbbc65c1f66 Mon Sep 17 00:00:00 2001 From: Raymond Bourges Date: Sun, 25 May 2025 19:16:59 +0200 Subject: [PATCH] FEAT : Girouette OK --- config/seeed-studio.yaml | 45 ++++++++++++++++++++-------------------- proto/ecrire.py | 24 +++++++++++++++++++++ proto/t.py | 5 ++++- 3 files changed, 50 insertions(+), 24 deletions(-) create mode 100755 proto/ecrire.py diff --git a/config/seeed-studio.yaml b/config/seeed-studio.yaml index 085fec3..e61789a 100644 --- a/config/seeed-studio.yaml +++ b/config/seeed-studio.yaml @@ -26,13 +26,6 @@ wifi: ssid: !secret wifi_ssid password: !secret wifi_password - # Enable fallback hotspot (captive portal) in case wifi connection fails - ap: - ssid: "Seeed-Studio Fallback Hotspot" - password: "FrTglhXBIVqi" - -captive_portal: - output: - platform: gpio pin: GPIO21 # Led de la carte @@ -41,19 +34,6 @@ output: pin: GPIO3 # le pin connecté à DE/RE id: DE_RE -switch: - - platform: output - name: "LED" - output: led_output - id: led_switch - restore_mode: ALWAYS_OFF - -interval: - - interval: 5s - then: - - switch.toggle: led_switch - - logger.log: "rbo2" - uart: id: mod_bus_id tx_pin: GPIO44 # Il faut les inverser !!!! @@ -78,6 +58,12 @@ modbus_controller: setup_priority: -10 command_throttle: 2s update_interval: 4s + - id: modbus_controller2 + address: 2 + modbus_id: modbus1 + setup_priority: -10 + command_throttle: 2s + update_interval: 4s sensor: - platform: modbus_controller @@ -105,12 +91,25 @@ sensor: then: - mqtt.publish: topic: "rbo2" - payload: !lambda 'return to_string(x);' - + payload: !lambda 'return "Vent --> " + to_string(x);' + - platform: modbus_controller + modbus_controller_id: modbus_controller2 + name: "Wind direction gear" + internal: true + register_type: read + address: 0 + value_type: U_WORD + accuracy_decimals: 0 + on_value: + then: + - mqtt.publish: + topic: "rbo2" + payload: !lambda 'return "Sens --> " + to_string(x);' + mqtt: broker: "pc-raymond.home" id: mqtt1 log_topic: rbo birth_message: topic: rbo2 - payload: 'send_every: 1 !' \ No newline at end of file + payload: 'Nouvelle connexion...' \ No newline at end of file diff --git a/proto/ecrire.py b/proto/ecrire.py new file mode 100755 index 0000000..0d9549d --- /dev/null +++ b/proto/ecrire.py @@ -0,0 +1,24 @@ +#!python +from pymodbus.client import ModbusSerialClient, ModbusTcpClient +from pymodbus.pdu.register_read_message import ReadInputRegistersResponse +from configModel import Algo, Metrique, Capteur, ModbusType +import struct, time + +# client = ModbusTcpClient(host="shellyproem50-08f9e0e79718") # grarage (borne et pac) +# client = ModbusTcpClient(host="ShellyPro3EM-FCE8C0D97664") # bureau (prises 1 à 3) +client = ModbusSerialClient( + port="/dev/ttyACM0", + baudrate=4800, + # stopbits=capteur.comConfig.stopbits, + # bytesize=capteur.comConfig.bytesize, + # parity=capteur.comConfig.parity +) + +slave = 1 + +if __name__ == '__main__': + registre = 2000 + print(f"On force le registre {registre} (adresse modbus) à 2") + client.connect() + client.write_register(2000, 2, slave=slave) + client.close() diff --git a/proto/t.py b/proto/t.py index ffdcc51..93bc7bd 100755 --- a/proto/t.py +++ b/proto/t.py @@ -22,10 +22,12 @@ def uint32(a, b): ret:int = (a << 16) | b return ret +slave = 1 + def lireMetrique(metrique:Metrique, registre): client.connect() try: - data:ReadInputRegistersResponse = client.read_input_registers(registre, 2, slave=1) + data:ReadInputRegistersResponse = client.read_input_registers(registre, 2, slave=slave) if data: print(f"--> {data}") registres = data.registers @@ -48,6 +50,7 @@ def lireMetrique(metrique:Metrique, registre): registre = -1 if __name__ == '__main__': + slave = 2 while True: registre = 0 m:Metrique = Metrique(