Advertisement
tahc81

Untitled

Apr 24th, 2025
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 5.13 KB | None | 0 0
  1. text_sensor:
  2.   - platform: modbus_controller
  3.     modbus_controller_id: must
  4.     address: 15213
  5.     register_type: holding
  6.     response_size: 2
  7.     raw_encode: HEXBYTES
  8.     name: "PV Charger error"
  9.     icon: mdi:alert-circle-outline
  10.     lambda: |-
  11.       uint16_t value = modbus_controller::word_from_hex_str(x, 0);
  12.       switch (value) {
  13.         case 1: return std::string("Hardware protection");
  14.         case 2: return std::string("Overcurrent");
  15.         case 3: return std::string("Current sensor error");
  16.         case 4: return std::string("Overtemperature");
  17.         case 5: return std::string("PV voltage is too high");
  18.         case 6: return std::string("PV voltage is too low");
  19.         case 7: return std::string("Battery voltage is too high");
  20.         case 8: return std::string("Battery voltage is too Low");
  21.         case 9: return std::string("Current is uncontrollable");
  22.         case 10: return std::string("Parameter error");
  23.         default: return std::string("None");
  24.       }
  25.       return x;
  26.  
  27.   - platform: modbus_controller
  28.     modbus_controller_id: must
  29.     address: 25261
  30.     register_type: holding
  31.     response_size: 2
  32.     raw_encode: HEXBYTES
  33.     name: "Inverter error 1"
  34.     icon: mdi:alert-circle-outline
  35.     lambda: |-
  36.       uint16_t value = modbus_controller::word_from_hex_str(x, 0);
  37.       switch (value) {
  38.         case 1: return std::string("Fan is locked when inverter is off");
  39.         case 2: return std::string("Inverter transformer over temperature");
  40.         case 3: return std::string("Battery voltage is too high");
  41.         case 4: return std::string("Battery voltage is too low");
  42.         case 5: return std::string("Output short circuited");
  43.         case 6: return std::string("Inverter output voltage is high");
  44.         case 7: return std::string("Overload time out");
  45.         case 8: return std::string("Inverter bus voltage is too high");
  46.         case 9: return std::string("Bus soft start failed");
  47.         case 10: return std::string("Main relay failed");
  48.         case 11: return std::string("Inverter output voltage sensor error");
  49.         case 12: return std::string("Inverter grid voltage sensor error");
  50.         case 13: return std::string("Inverter output current sensor error");
  51.         case 14: return std::string("Inverter grid current sensor error");
  52.         case 15: return std::string("Inverter load current sensor error");
  53.         case 16: return std::string("Inverter grid over current error");
  54.         default: return std::string("None");
  55.       }
  56.       return x;
  57.   - platform: modbus_controller
  58.     modbus_controller_id: must
  59.     address: 25262
  60.     register_type: holding
  61.     response_size: 2
  62.     raw_encode: HEXBYTES
  63.     name: "Inverter error 2"
  64.     icon: mdi:alert-circle-outline
  65.     lambda: |-
  66.       uint16_t value = modbus_controller::word_from_hex_str(x, 0);
  67.       switch (value) {
  68.         case 1: return std::string("Inverter radiator over temperature");
  69.         case 2: return std::string("Solar charger battery voltage class error");
  70.         case 3: return std::string("Solar charger current sensor error");
  71.         case 4: return std::string("Solar charger current is uncontrollable");
  72.         case 5: return std::string("Inverter grid voltage is low");
  73.         case 6: return std::string("Inverter grid voltage is high");
  74.         case 7: return std::string("Inverter grid under frequency");
  75.         case 8: return std::string("Inverter grid over frequency");
  76.         case 9: return std::string("Inverter over current protection error");
  77.         case 10: return std::string("Inverter bus voltage is too low");
  78.         case 11: return std::string("Inverter soft start failed");
  79.         case 12: return std::string("Over DC voltage in AC output");
  80.         case 13: return std::string("Battery connection is open");
  81.         case 14: return std::string("Inverter control current sensor error");
  82.         case 15: return std::string("Inverter output voltage is too low");
  83.         default: return std::string("None");
  84.       }
  85.       return x;
  86.   - platform: modbus_controller
  87.     modbus_controller_id: must
  88.     address: 25265
  89.     register_type: holding
  90.     response_size: 2
  91.     raw_encode: HEXBYTES
  92.     name: "Inverter warning 1"
  93.     icon: mdi:alert-circle-outline
  94.     lambda: |-
  95.       uint16_t value = modbus_controller::word_from_hex_str(x, 0);
  96.       switch (value) {
  97.         case 1: return std::string("Fan is locked when inverter is on");
  98.         case 2: return std::string("Fan2 is locked when inverter is on");
  99.         case 3: return std::string("Battery is over-charged");
  100.         case 4: return std::string("Low battery");
  101.         case 5: return std::string("Overload");
  102.         case 6: return std::string("Output power derating");
  103.         case 7: return std::string("Solar charger stops due to low battery");
  104.         case 8: return std::string("Solar charger stops due to high PV voltage");
  105.         case 9: return std::string("Solar charger stops due to over load");
  106.         case 10: return std::string("Solar charger over temperature");
  107.         case 11: return std::string("PV charger communication error ");
  108.         default: return std::string("None");
  109.       }
  110.       return x;
Tags: ESPhome
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement