Bien le bonjour à tous! A chaque jour son problème XD!
Donc, après avoir ré installer complètement HA sur un raspi 4 et avoir perdu mes sauvegardes, j’ai un autre souci!
En possession d’un onduleur hybride WKS, j’avais fais l’installation avec câble rj45/rs232/esp32 vers HA. tout fonctionnait très bien et beaucoup de mes programmations s’appuyaient sur les sensors du WKS.
Là, je dois avoir un souci dans mon programme! J’ai bien tout mes sensors sur HA, mais ils sont indisponible!
Donc dans l’ordre de ce que j’ai:
-Un fichier yaml flashé et passé sur un esp 32 (wifi et tout ça, ça marche) qui intègre:
esphome:
name: wks1
platform: ESP32
board: esp32dev
includes:
- wks1_avec_esp32.h
wifi:
ssid: "secret bidule"
password: "code du secret bidule"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Wks1 Fallback Hotspot"
password: "autre code secret bidule"
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
switch:
- platform: restart
name: "esp32_restart"
time:
platform: sntp
id: my_time
sensor:
- platform: custom
id: WKS1_id
lambda: |-
auto WKS1 = new WKS1CustomSensor();
App.register_component(WKS1);
return {WKS1->WKS1, WKS1->WKS1_Grid_Voltage, WKS1->WKS1_Grid_frequence, WKS1->WKS1_AC_output_voltage, WKS1->WKS1_AC_output_frequency, WKS1->WKS1_output_apparent_power, WKS1->WKS1_output_active_power, WKS1->WKS1_output_load_percent, WKS1->WKS1_BUS_voltage, WKS1->WKS1_Battery_voltage, WKS1->WKS1_battery_charge_current, WKS1->WKS1_battery_capacity, WKS1->WKS1_Inverter_heat_sink_temperature, WKS1->WKS1_PV_current, WKS1->WKS1_PV_voltage, WKS1->WKS1_Battery_voltage_from_SCC, WKS1->WKS1_battery_discharge_current, WKS1->WKS1_device_status, WKS1->WKS1_battery_voltage_offset, WKS1->WKS1_eeprom_version, WKS1->WKS1_PV_charging_power, WKS1->WKS1_device_status_2};
sensors:
- name: "WKS1_Grid_Voltage"
unit_of_measurement: "V"
accuracy_decimals: 1
icon: mdi:power
- name: "WKS1_Grid_frequence"
unit_of_measurement: "Hz"
accuracy_decimals: 1
icon: mdi:frequency
- name: "WKS1_AC_output_voltage"
unit_of_measurement: "V"
accuracy_decimals: 1
icon: mdi:power
- name: "WKS1_AC_output_frequency"
unit_of_measurement: "Hz"
accuracy_decimals: 1
icon: mdi:frequency
- name: "WKS1_output_apparent_power"
unit_of_measurement: "VA"
accuracy_decimals: 1
icon: mdi:power
- name: "WKS1_output_active_power"
unit_of_measurement: "W"
accuracy_decimals: 1
icon: mdi:power
id: WKS1_puissance
- name: "WKS1_output_load_percent"
unit_of_measurement: "%"
accuracy_decimals: 1
icon: mdi:percent
- name: "WKS1_BUS_voltage"
unit_of_measurement: "V"
accuracy_decimals: 1
icon: mdi:power
- name: "WKS1_Battery_voltage"
unit_of_measurement: "V"
accuracy_decimals: 1
icon: mdi:power
- name: "WKS1_battery_charge_current"
unit_of_measurement: "A"
accuracy_decimals: 1
icon: mdi:power-socket
- name: "WKS1_battery_capacity"
unit_of_measurement: "%"
accuracy_decimals: 1
icon: mdi:percent
- name: "WKS1_Inverter_heat_sink_temperature"
unit_of_measurement: "C"
accuracy_decimals: 1
icon: mdi:thermometer
- name: "WKS1_PV_current"
unit_of_measurement: "A"
accuracy_decimals: 1
icon: mdi:power-socket
- name: "WKS1_PV_voltage"
unit_of_measurement: "V"
accuracy_decimals: 1
icon: mdi:power
- name: "WKS1_Battery_voltage_from_SCC"
unit_of_measurement: "A"
accuracy_decimals: 1
icon: mdi:power-socket
- name: "WKS1_battery_discharge_current"
unit_of_measurement: "A"
accuracy_decimals: 1
icon: mdi:power-socket
- name: "WKS1_device_status"
unit_of_measurement: ""
accuracy_decimals: 0
icon: mdi:power-socket
- name: "WKS1_battery_voltage_offset"
unit_of_measurement: "V"
accuracy_decimals: 1
icon: mdi:power
- name: "WKS1_eeprom_version"
unit_of_measurement: ""
accuracy_decimals: 1
icon: mdi:power
- name: "WKS1_PV_charging_power"
unit_of_measurement: "W"
accuracy_decimals: 1
icon: mdi:power
id: WKS1_pv_charging_power
- name: "WKS1_device_status_2"
unit_of_measurement: ""
accuracy_decimals: 0
icon: mdi:power
- platform: total_daily_energy
name: WKS1_production_solaire_jour
power_id: WKS1_pv_charging_power
unit_of_measurement: 'KWH'
accuracy_decimals: 2
filters:
- multiply: 0.001
icon: mdi:counter
- platform: total_daily_energy
name: WKS1_consommation_jour
power_id: WKS1_puissance
unit_of_measurement: 'KWH'
accuracy_decimals: 2
filters:
- multiply: 0.001
icon: mdi:counter
-Un fichier .h (ici wks1_avec_esp32.h) dans le dossier esphome
#include "esphome.h"
#define RXD2 03
#define TXD2 01
class WKS1CustomSensor : public PollingComponent, public Sensor
{
public:
Sensor *WKS1 = new Sensor();
Sensor *WKS1_Grid_Voltage = new Sensor();
Sensor *WKS1_Grid_frequence = new Sensor();
Sensor *WKS1_AC_output_voltage = new Sensor();
Sensor *WKS1_AC_output_frequency = new Sensor();
Sensor *WKS1_output_apparent_power = new Sensor();
Sensor *WKS1_output_active_power = new Sensor();
Sensor *WKS1_output_load_percent = new Sensor();
Sensor *WKS1_BUS_voltage = new Sensor();
Sensor *WKS1_Battery_voltage = new Sensor();
Sensor *WKS1_battery_charge_current = new Sensor();
Sensor *WKS1_battery_capacity = new Sensor();
Sensor *WKS1_Inverter_heat_sink_temperature = new Sensor();
Sensor *WKS1_PV_current = new Sensor();
Sensor *WKS1_PV_voltage = new Sensor();
Sensor *WKS1_Battery_voltage_from_SCC = new Sensor();
Sensor *WKS1_battery_discharge_current = new Sensor();
Sensor *WKS1_device_status = new Sensor();
Sensor *WKS1_battery_voltage_offset = new Sensor();
Sensor *WKS1_eeprom_version = new Sensor();
Sensor *WKS1_PV_charging_power = new Sensor();
Sensor *WKS1_device_status_2 = new Sensor();
unsigned long lastMillis=0;
long previousMillis = 0;
long interval = 5000;
WKS1CustomSensor() : PollingComponent(3000) {}
void setup() override
{
//Serial2.begin(2400, SERIAL_8N1, RXD2, TXD2);
}
void update() override
{
String QPIGS = "\x51\x50\x49\x47\x53\xB7\xA9\x0D"; // (command for get data like voltage, frequency, power, etc ... from inverter)
unsigned long currentMillis = millis();
if (currentMillis - previousMillis > interval)
{
previousMillis = currentMillis;
String inData;
Serial2.print(QPIGS);
if (Serial2.find("(")) {
WKS1->publish_state(Serial2.parseFloat());
WKS1_Grid_Voltage->publish_state(Serial2.parseFloat());
WKS1_Grid_frequence->publish_state(Serial2.parseFloat());
WKS1_AC_output_voltage->publish_state(Serial2.parseFloat());
WKS1_AC_output_frequency->publish_state(Serial2.parseFloat());
WKS1_output_apparent_power->publish_state(Serial2.parseInt());
WKS1_output_active_power->publish_state(Serial2.parseInt());
WKS1_output_load_percent->publish_state(Serial2.parseInt());
WKS1_BUS_voltage->publish_state(Serial2.parseFloat());
WKS1_Battery_voltage->publish_state(Serial2.parseFloat());
WKS1_battery_charge_current->publish_state(Serial2.parseFloat());
WKS1_battery_capacity->publish_state(Serial2.parseInt());
WKS1_Inverter_heat_sink_temperature->publish_state(Serial2.parseInt());
WKS1_PV_current->publish_state(Serial2.parseFloat());
WKS1_PV_voltage->publish_state(Serial2.parseFloat());
WKS1_Battery_voltage_from_SCC->publish_state(Serial2.parseFloat());
WKS1_battery_discharge_current->publish_state(Serial2.parseFloat());
WKS1_device_status->publish_state(Serial2.parseFloat());
WKS1_battery_voltage_offset->publish_state(Serial2.parseFloat());
WKS1_eeprom_version->publish_state(Serial2.parseFloat());
WKS1_PV_charging_power->publish_state(Serial2.parseFloat());
WKS1_device_status_2->publish_state(Serial2.parseFloat());
}
}
}
};
Un indice peut être: La diode verte (trx) du rs232 ne clignote pas, la jaune (rtx) oui!
Voilà, si quelqu’un à quelques minute (windows) à m’accorder, je vous remercie d’avance!