dm82m / hass-Deltasol-KM2

Custom component for retrieving sensor information from Resol KM1/KM2, DL2/DL3, VBus/LAN, VBus/USB
MIT License
25 stars 6 forks source link

Support multiple bus participants #10

Closed chiefdeputy closed 2 years ago

chiefdeputy commented 2 years ago

I have a Deltasol MX device which also supports multiple heating circuits. Those appear in two different headers but are named the same. So currently this component does only show the last one:

``` JSON Content ``` ``` { "language" : "en", "headers" : [ { "id" : "00_0010_7E11_0100", "description" : "VBus 0: DeltaSol MX [Controller]", "channel" : 0, "destination_address" : 16, "source_address" : 32273, "protocol_version" : 16, "command" : 256, "info" : 0, "destination_name" : "DFA", "source_name" : "DeltaSol MX [Controller]", "fields" : [ { "id" : "000_2_0", "name" : "Temperature sensor 1", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "002_2_0", "name" : "Temperature sensor 2", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "004_2_0", "name" : "Temperature sensor 3", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "006_2_0", "name" : "Temperature sensor 4", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "008_2_0", "name" : "Temperature sensor 5", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "010_2_0", "name" : "Temperature sensor 6", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "012_2_0", "name" : "Temperature sensor 7", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "014_2_0", "name" : "Temperature sensor 8", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "016_2_0", "name" : "Temperature sensor 9", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "018_2_0", "name" : "Temperature sensor 10", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "020_2_0", "name" : "Temperature sensor 11", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "022_2_0", "name" : "Temperature sensor 12", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "024_2_0", "name" : "Temperature sensor 13", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "026_2_0", "name" : "Temperature sensor 14", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "028_2_0", "name" : "Temperature sensor 15", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "030_2_0", "name" : "Irradiation sensor 16", "unit" : " W/m\u00B2", "unit_code" : "WattsPerSquareMeter" }, { "id" : "032_2_0", "name" : "Temperature sensor 17", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "034_2_0", "name" : "Temperature sensor 18", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "036_2_0", "name" : "Temperature sensor 19", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "038_2_0", "name" : "Temperature sensor 20", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "040_4_0", "name" : "Flow rate sensor 13", "unit" : " l/h", "unit_code" : "LitersPerHour" }, { "id" : "044_4_0", "name" : "Flow rate sensor 14", "unit" : " l/h", "unit_code" : "LitersPerHour" }, { "id" : "048_4_0", "name" : "Flow rate sensor 15", "unit" : " l/h", "unit_code" : "LitersPerHour" }, { "id" : "052_4_0", "name" : "Flow rate sensor 17", "unit" : " l/h", "unit_code" : "LitersPerHour" }, { "id" : "056_4_0", "name" : "Flow rate sensor 18", "unit" : " l/h", "unit_code" : "LitersPerHour" }, { "id" : "060_4_0", "name" : "Flow rate sensor 19", "unit" : " l/h", "unit_code" : "LitersPerHour" }, { "id" : "064_4_0", "name" : "Flow rate sensor 20", "unit" : " l/h", "unit_code" : "LitersPerHour" }, { "id" : "104_4_0", "name" : "Flow rate sensor 21", "unit" : " l/h", "unit_code" : "LitersPerHour" }, { "id" : "068_2_0", "name" : "Pressure sensor 17", "unit" : " bar", "unit_code" : "Bars" }, { "id" : "070_2_0", "name" : "Pressure sensor 18", "unit" : " bar", "unit_code" : "Bars" }, { "id" : "072_2_0", "name" : "Pressure sensor 19", "unit" : " bar", "unit_code" : "Bars" }, { "id" : "074_2_0", "name" : "Pressure sensor 20", "unit" : " bar", "unit_code" : "Bars" }, { "id" : "076_1_0", "name" : "Pump speed relay 1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "077_1_0", "name" : "Pump speed relay 2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "078_1_0", "name" : "Pump speed relay 3", "unit" : "%", "unit_code" : "Percent" }, { "id" : "079_1_0", "name" : "Pump speed relay 4", "unit" : "%", "unit_code" : "Percent" }, { "id" : "080_1_0", "name" : "Pump speed relay 5", "unit" : "%", "unit_code" : "Percent" }, { "id" : "081_1_0", "name" : "Pump speed relay 6", "unit" : "%", "unit_code" : "Percent" }, { "id" : "082_1_0", "name" : "Pump speed relay 7", "unit" : "%", "unit_code" : "Percent" }, { "id" : "083_1_0", "name" : "Pump speed relay 8", "unit" : "%", "unit_code" : "Percent" }, { "id" : "084_1_0", "name" : "Pump speed relay 9", "unit" : "%", "unit_code" : "Percent" }, { "id" : "085_1_0", "name" : "Pump speed relay 10", "unit" : "%", "unit_code" : "Percent" }, { "id" : "086_1_0", "name" : "Pump speed relay 11", "unit" : "%", "unit_code" : "Percent" }, { "id" : "087_1_0", "name" : "Pump speed relay 12", "unit" : "%", "unit_code" : "Percent" }, { "id" : "088_1_0", "name" : "Pump speed relay 13", "unit" : "%", "unit_code" : "Percent" }, { "id" : "089_1_0", "name" : "Pump speed relay 14", "unit" : "%", "unit_code" : "Percent" }, { "id" : "100_1_0", "name" : "Output A", "unit" : "%", "unit_code" : "Percent" }, { "id" : "101_1_0", "name" : "Output B", "unit" : "%", "unit_code" : "Percent" }, { "id" : "102_1_0", "name" : "Output C", "unit" : "%", "unit_code" : "Percent" }, { "id" : "103_1_0", "name" : "Output D", "unit" : "%", "unit_code" : "Percent" }, { "id" : "092_4_0", "name" : "System date", "unit" : "", "unit_code" : "None" }, { "id" : "096_4_0", "name" : "Error mask", "unit" : "", "unit_code" : "None" }, { "id" : "096_1_1", "name" : "Error: Sensor line broken", "unit" : "", "unit_code" : "None" }, { "id" : "096_1_2", "name" : "Error: Sensor line short-circuited", "unit" : "", "unit_code" : "None" }, { "id" : "096_1_32", "name" : "Error: Flow rate monitoring", "unit" : "", "unit_code" : "None" }, { "id" : "096_1_64", "name" : "Error: Overpressure", "unit" : "", "unit_code" : "None" }, { "id" : "096_1_128", "name" : "Error: Low pressure", "unit" : "", "unit_code" : "None" }, { "id" : "096_1_512", "name" : "Error: Data memory", "unit" : "", "unit_code" : "None" }, { "id" : "096_1_1024", "name" : "Error: Real-time clock", "unit" : "", "unit_code" : "None" }, { "id" : "096_1_4096", "name" : "Error: Twin pump", "unit" : "", "unit_code" : "None" }, { "id" : "096_1_8192", "name" : "Error: HC cooling below flow minimum temperature", "unit" : "", "unit_code" : "None" }, { "id" : "096_1_16384", "name" : "Error: Thermal disinfection cancelled", "unit" : "", "unit_code" : "None" } ] }, { "id" : "00_0010_7E11_0101", "description" : "VBus 0: DeltaSol MX [Controller]", "channel" : 0, "destination_address" : 16, "source_address" : 32273, "protocol_version" : 16, "command" : 257, "info" : 0, "destination_name" : "DFA", "source_name" : "DeltaSol MX [Controller]", "fields" : [ { "id" : "000_4_0", "name" : "Warning mask", "unit" : "", "unit_code" : "None" }, { "id" : "000_1_4", "name" : "Warning: \u0394T too high", "unit" : "", "unit_code" : "None" }, { "id" : "000_1_8", "name" : "Warning: Night circulation", "unit" : "", "unit_code" : "None" }, { "id" : "000_1_16", "name" : "Warning: Flow/Return interchanged", "unit" : "", "unit_code" : "None" }, { "id" : "000_1_2048", "name" : "Warning: SD card", "unit" : "", "unit_code" : "None" }, { "id" : "004_1_0", "name" : "Humidity sensor 17", "unit" : "%RH", "unit_code" : "PercentRelativeHumidity" }, { "id" : "005_1_0", "name" : "Humidity sensor 18", "unit" : "%RH", "unit_code" : "PercentRelativeHumidity" }, { "id" : "006_1_0", "name" : "Humidity sensor 19", "unit" : "%RH", "unit_code" : "PercentRelativeHumidity" }, { "id" : "007_1_0", "name" : "Humidity sensor 20", "unit" : "%RH", "unit_code" : "PercentRelativeHumidity" } ] }, { "id" : "00_0010_7E21_0100", "description" : "VBus 0: DeltaSol MX [Heating circuit #1]", "channel" : 0, "destination_address" : 16, "source_address" : 32289, "protocol_version" : 16, "command" : 256, "info" : 0, "destination_name" : "DFA", "source_name" : "DeltaSol MX [Heating circuit #1]", "fields" : [ { "id" : "000_2_0", "name" : "Flow set temperature", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "002_1_0", "name" : "Operating state", "unit" : "", "unit_code" : "None" } ] }, { "id" : "00_0010_7E22_0100", "description" : "VBus 0: DeltaSol MX [Heating circuit #2]", "channel" : 0, "destination_address" : 16, "source_address" : 32290, "protocol_version" : 16, "command" : 256, "info" : 0, "destination_name" : "DFA", "source_name" : "DeltaSol MX [Heating circuit #2]", "fields" : [ { "id" : "000_2_0", "name" : "Flow set temperature", "unit" : " \u00B0C", "unit_code" : "DegreesCelsius" }, { "id" : "002_1_0", "name" : "Operating state", "unit" : "", "unit_code" : "None" } ] }, { "id" : "00_0015_7E11_0100", "description" : "VBus 0: DeltaSol MX [Controller] => Standard info", "channel" : 0, "destination_address" : 21, "source_address" : 32273, "protocol_version" : 16, "command" : 256, "info" : 0, "destination_name" : "Standard info", "source_name" : "DeltaSol MX [Controller]", "fields" : [ ] }, { "id" : "00_6651_7E11_0200", "description" : "VBus 0: DeltaSol MX [Controller] => EM #1", "channel" : 0, "destination_address" : 26193, "source_address" : 32273, "protocol_version" : 16, "command" : 512, "info" : 0, "destination_name" : "EM #1", "source_name" : "DeltaSol MX [Controller]", "fields" : [ { "id" : "000_1_0", "name" : "Pump speed relay 1.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "001_3_0", "name" : "Timer 1.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "004_1_0", "name" : "Pump speed relay 1.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "005_3_0", "name" : "Timer 1.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "008_1_0", "name" : "Pump speed relay 2.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "009_3_0", "name" : "Timer 2.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "012_1_0", "name" : "Pump speed relay 2.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "013_3_0", "name" : "Timer 2.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "016_1_0", "name" : "Pump speed relay 3.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "017_3_0", "name" : "Timer 3.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "020_1_0", "name" : "Pump speed relay 3.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "021_3_0", "name" : "Timer 3.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "024_1_0", "name" : "Pump speed relay 4.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "025_3_0", "name" : "Timer 4.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "028_1_0", "name" : "Pump speed relay 4.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "029_3_0", "name" : "Timer 4.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "032_1_0", "name" : "Pump speed relay 5.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "033_3_0", "name" : "Timer 5.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "036_1_0", "name" : "Pump speed relay 5.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "037_3_0", "name" : "Timer 5.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "040_1_0", "name" : "SensorOutputType1", "unit" : "", "unit_code" : "None" }, { "id" : "041_1_0", "name" : "SensorOutputType2", "unit" : "", "unit_code" : "None" }, { "id" : "042_1_0", "name" : "SensorOutputType3", "unit" : "", "unit_code" : "None" }, { "id" : "043_1_0", "name" : "SensorOutputType4", "unit" : "", "unit_code" : "None" }, { "id" : "044_1_0", "name" : "SensorOutputType5", "unit" : "", "unit_code" : "None" }, { "id" : "045_1_0", "name" : "SensorOutputType6", "unit" : "", "unit_code" : "None" } ] }, { "id" : "00_6652_7E11_0200", "description" : "VBus 0: DeltaSol MX [Controller] => EM #2", "channel" : 0, "destination_address" : 26194, "source_address" : 32273, "protocol_version" : 16, "command" : 512, "info" : 0, "destination_name" : "EM #2", "source_name" : "DeltaSol MX [Controller]", "fields" : [ { "id" : "000_1_0", "name" : "Pump speed relay 1.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "001_3_0", "name" : "Timer 1.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "004_1_0", "name" : "Pump speed relay 1.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "005_3_0", "name" : "Timer 1.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "008_1_0", "name" : "Pump speed relay 2.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "009_3_0", "name" : "Timer 2.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "012_1_0", "name" : "Pump speed relay 2.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "013_3_0", "name" : "Timer 2.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "016_1_0", "name" : "Pump speed relay 3.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "017_3_0", "name" : "Timer 3.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "020_1_0", "name" : "Pump speed relay 3.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "021_3_0", "name" : "Timer 3.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "024_1_0", "name" : "Pump speed relay 4.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "025_3_0", "name" : "Timer 4.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "028_1_0", "name" : "Pump speed relay 4.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "029_3_0", "name" : "Timer 4.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "032_1_0", "name" : "Pump speed relay 5.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "033_3_0", "name" : "Timer 5.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "036_1_0", "name" : "Pump speed relay 5.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "037_3_0", "name" : "Timer 5.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "040_1_0", "name" : "SensorOutputType1", "unit" : "", "unit_code" : "None" }, { "id" : "041_1_0", "name" : "SensorOutputType2", "unit" : "", "unit_code" : "None" }, { "id" : "042_1_0", "name" : "SensorOutputType3", "unit" : "", "unit_code" : "None" }, { "id" : "043_1_0", "name" : "SensorOutputType4", "unit" : "", "unit_code" : "None" }, { "id" : "044_1_0", "name" : "SensorOutputType5", "unit" : "", "unit_code" : "None" }, { "id" : "045_1_0", "name" : "SensorOutputType6", "unit" : "", "unit_code" : "None" } ] }, { "id" : "00_6653_7E11_0200", "description" : "VBus 0: DeltaSol MX [Controller] => EM #3", "channel" : 0, "destination_address" : 26195, "source_address" : 32273, "protocol_version" : 16, "command" : 512, "info" : 0, "destination_name" : "EM #3", "source_name" : "DeltaSol MX [Controller]", "fields" : [ { "id" : "000_1_0", "name" : "Pump speed relay 1.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "001_3_0", "name" : "Timer 1.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "004_1_0", "name" : "Pump speed relay 1.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "005_3_0", "name" : "Timer 1.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "008_1_0", "name" : "Pump speed relay 2.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "009_3_0", "name" : "Timer 2.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "012_1_0", "name" : "Pump speed relay 2.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "013_3_0", "name" : "Timer 2.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "016_1_0", "name" : "Pump speed relay 3.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "017_3_0", "name" : "Timer 3.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "020_1_0", "name" : "Pump speed relay 3.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "021_3_0", "name" : "Timer 3.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "024_1_0", "name" : "Pump speed relay 4.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "025_3_0", "name" : "Timer 4.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "028_1_0", "name" : "Pump speed relay 4.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "029_3_0", "name" : "Timer 4.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "032_1_0", "name" : "Pump speed relay 5.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "033_3_0", "name" : "Timer 5.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "036_1_0", "name" : "Pump speed relay 5.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "037_3_0", "name" : "Timer 5.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "040_1_0", "name" : "SensorOutputType1", "unit" : "", "unit_code" : "None" }, { "id" : "041_1_0", "name" : "SensorOutputType2", "unit" : "", "unit_code" : "None" }, { "id" : "042_1_0", "name" : "SensorOutputType3", "unit" : "", "unit_code" : "None" }, { "id" : "043_1_0", "name" : "SensorOutputType4", "unit" : "", "unit_code" : "None" }, { "id" : "044_1_0", "name" : "SensorOutputType5", "unit" : "", "unit_code" : "None" }, { "id" : "045_1_0", "name" : "SensorOutputType6", "unit" : "", "unit_code" : "None" } ] }, { "id" : "00_6654_7E11_0200", "description" : "VBus 0: DeltaSol MX [Controller] => EM #4", "channel" : 0, "destination_address" : 26196, "source_address" : 32273, "protocol_version" : 16, "command" : 512, "info" : 0, "destination_name" : "EM #4", "source_name" : "DeltaSol MX [Controller]", "fields" : [ { "id" : "000_1_0", "name" : "Pump speed relay 1.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "001_3_0", "name" : "Timer 1.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "004_1_0", "name" : "Pump speed relay 1.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "005_3_0", "name" : "Timer 1.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "008_1_0", "name" : "Pump speed relay 2.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "009_3_0", "name" : "Timer 2.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "012_1_0", "name" : "Pump speed relay 2.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "013_3_0", "name" : "Timer 2.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "016_1_0", "name" : "Pump speed relay 3.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "017_3_0", "name" : "Timer 3.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "020_1_0", "name" : "Pump speed relay 3.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "021_3_0", "name" : "Timer 3.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "024_1_0", "name" : "Pump speed relay 4.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "025_3_0", "name" : "Timer 4.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "028_1_0", "name" : "Pump speed relay 4.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "029_3_0", "name" : "Timer 4.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "032_1_0", "name" : "Pump speed relay 5.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "033_3_0", "name" : "Timer 5.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "036_1_0", "name" : "Pump speed relay 5.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "037_3_0", "name" : "Timer 5.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "040_1_0", "name" : "SensorOutputType1", "unit" : "", "unit_code" : "None" }, { "id" : "041_1_0", "name" : "SensorOutputType2", "unit" : "", "unit_code" : "None" }, { "id" : "042_1_0", "name" : "SensorOutputType3", "unit" : "", "unit_code" : "None" }, { "id" : "043_1_0", "name" : "SensorOutputType4", "unit" : "", "unit_code" : "None" }, { "id" : "044_1_0", "name" : "SensorOutputType5", "unit" : "", "unit_code" : "None" }, { "id" : "045_1_0", "name" : "SensorOutputType6", "unit" : "", "unit_code" : "None" } ] }, { "id" : "00_6655_7E11_0200", "description" : "VBus 0: DeltaSol MX [Controller] => EM #5", "channel" : 0, "destination_address" : 26197, "source_address" : 32273, "protocol_version" : 16, "command" : 512, "info" : 0, "destination_name" : "EM #5", "source_name" : "DeltaSol MX [Controller]", "fields" : [ { "id" : "000_1_0", "name" : "Pump speed relay 1.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "001_3_0", "name" : "Timer 1.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "004_1_0", "name" : "Pump speed relay 1.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "005_3_0", "name" : "Timer 1.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "008_1_0", "name" : "Pump speed relay 2.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "009_3_0", "name" : "Timer 2.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "012_1_0", "name" : "Pump speed relay 2.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "013_3_0", "name" : "Timer 2.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "016_1_0", "name" : "Pump speed relay 3.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "017_3_0", "name" : "Timer 3.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "020_1_0", "name" : "Pump speed relay 3.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "021_3_0", "name" : "Timer 3.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "024_1_0", "name" : "Pump speed relay 4.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "025_3_0", "name" : "Timer 4.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "028_1_0", "name" : "Pump speed relay 4.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "029_3_0", "name" : "Timer 4.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "032_1_0", "name" : "Pump speed relay 5.1", "unit" : "%", "unit_code" : "Percent" }, { "id" : "033_3_0", "name" : "Timer 5.1", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "036_1_0", "name" : "Pump speed relay 5.2", "unit" : "%", "unit_code" : "Percent" }, { "id" : "037_3_0", "name" : "Timer 5.2", "unit" : " s", "unit_code" : "Seconds" }, { "id" : "040_1_0", "name" : "SensorOutputType1", "unit" : "", "unit_code" : "None" }, { "id" : "041_1_0", "name" : "SensorOutputType2", "unit" : "", "unit_code" : "None" }, { "id" : "042_1_0", "name" : "SensorOutputType3", "unit" : "", "unit_code" : "None" }, { "id" : "043_1_0", "name" : "SensorOutputType4", "unit" : "", "unit_code" : "None" }, { "id" : "044_1_0", "name" : "SensorOutputType5", "unit" : "", "unit_code" : "None" }, { "id" : "045_1_0", "name" : "SensorOutputType6", "unit" : "", "unit_code" : "None" } ] } ], "headerset_stats" : { "headerset_count" : 1, "min_timestamp" : 1644432221.457000, "max_timestamp" : 1644432221.457000 }, "headersets" : [ { "timestamp" : 1644432221.457000, "packets" : [ { "header_index" : 0, "timestamp" : 1644432217.667000, "field_values" : [ { "field_index" : 0, "raw_value" : 7.400000, "value" : "7.4" }, { "field_index" : 1, "raw_value" : 61.000000, "value" : "61.0" }, { "field_index" : 2, "raw_value" : 25.600000, "value" : "25.6" }, { "field_index" : 3, "raw_value" : 43.400000, "value" : "43.4" }, { "field_index" : 4, "raw_value" : 62.100000, "value" : "62.1" }, { "field_index" : 5, "raw_value" : 28.100000, "value" : "28.1" }, { "field_index" : 6, "raw_value" : 25.100000, "value" : "25.1" }, { "field_index" : 7, "raw_value" : 8.900000, "value" : "8.9" }, { "field_index" : 8, "raw_value" : 888.800000, "value" : "888.8" }, { "field_index" : 9, "raw_value" : 888.800000, "value" : "888.8" }, { "field_index" : 10, "raw_value" : -999.900000, "value" : "-999.9" }, { "field_index" : 11, "raw_value" : -999.900000, "value" : "-999.9" }, { "field_index" : 12, "raw_value" : 999.900000, "value" : "999.9" }, { "field_index" : 13, "raw_value" : 999.900000, "value" : "999.9" }, { "field_index" : 14, "raw_value" : 999.900000, "value" : "999.9" }, { "field_index" : 15, "raw_value" : 1350.000000, "value" : "1350" }, { "field_index" : 16, "raw_value" : 999.900000, "value" : "999.9" }, { "field_index" : 17, "raw_value" : 999.900000, "value" : "999.9" }, { "field_index" : 18, "raw_value" : 999.900000, "value" : "999.9" }, { "field_index" : 19, "raw_value" : 999.900000, "value" : "999.9" }, { "field_index" : 20, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 21, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 22, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 23, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 24, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 25, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 26, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 27, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 28, "raw_value" : 99.990000, "value" : "99.99" }, { "field_index" : 29, "raw_value" : 99.990000, "value" : "99.99" }, { "field_index" : 30, "raw_value" : 99.990000, "value" : "99.99" }, { "field_index" : 31, "raw_value" : 99.990000, "value" : "99.99" }, { "field_index" : 32, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 33, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 34, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 35, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 36, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 37, "raw_value" : 100.000000, "value" : "100" }, { "field_index" : 38, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 39, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 40, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 41, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 42, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 43, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 44, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 45, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 46, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 47, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 48, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 49, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 50, "raw_value" : 666128614.000000, "value" : "2022-02-09 19:43:34" }, { "field_index" : 51, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 52, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 53, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 54, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 55, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 56, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 57, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 58, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 59, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 60, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 61, "raw_value" : 0.000000, "value" : "0" } ] }, { "header_index" : 1, "timestamp" : 1644432217.887000, "field_values" : [ { "field_index" : 0, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 1, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 2, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 3, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 4, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 5, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 6, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 7, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 8, "raw_value" : 0.000000, "value" : "0" } ] }, { "header_index" : 2, "timestamp" : 1644432219.047000, "field_values" : [ { "field_index" : 0, "raw_value" : 0.000000, "value" : "0.0" }, { "field_index" : 1, "raw_value" : 20.000000, "value" : "20" } ] }, { "header_index" : 3, "timestamp" : 1644432219.267000, "field_values" : [ { "field_index" : 0, "raw_value" : 45.000000, "value" : "45.0" }, { "field_index" : 1, "raw_value" : 14.000000, "value" : "14" } ] }, { "header_index" : 4, "timestamp" : 1644432218.837000, "field_values" : [ ] }, { "header_index" : 5, "timestamp" : 1644432214.827000, "field_values" : [ { "field_index" : 0, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 1, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 2, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 3, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 4, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 5, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 6, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 7, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 8, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 9, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 10, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 11, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 12, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 13, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 14, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 15, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 16, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 17, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 18, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 19, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 20, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 21, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 22, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 23, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 24, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 25, "raw_value" : 0.000000, "value" : "0" } ] }, { "header_index" : 6, "timestamp" : 1644432219.827000, "field_values" : [ { "field_index" : 0, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 1, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 2, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 3, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 4, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 5, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 6, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 7, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 8, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 9, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 10, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 11, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 12, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 13, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 14, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 15, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 16, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 17, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 18, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 19, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 20, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 21, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 22, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 23, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 24, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 25, "raw_value" : 0.000000, "value" : "0" } ] }, { "header_index" : 7, "timestamp" : 1644432195.827000, "field_values" : [ { "field_index" : 0, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 1, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 2, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 3, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 4, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 5, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 6, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 7, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 8, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 9, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 10, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 11, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 12, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 13, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 14, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 15, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 16, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 17, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 18, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 19, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 20, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 21, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 22, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 23, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 24, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 25, "raw_value" : 0.000000, "value" : "0" } ] }, { "header_index" : 8, "timestamp" : 1644432200.827000, "field_values" : [ { "field_index" : 0, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 1, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 2, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 3, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 4, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 5, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 6, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 7, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 8, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 9, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 10, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 11, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 12, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 13, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 14, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 15, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 16, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 17, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 18, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 19, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 20, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 21, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 22, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 23, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 24, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 25, "raw_value" : 0.000000, "value" : "0" } ] }, { "header_index" : 9, "timestamp" : 1644432205.827000, "field_values" : [ { "field_index" : 0, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 1, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 2, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 3, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 4, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 5, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 6, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 7, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 8, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 9, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 10, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 11, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 12, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 13, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 14, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 15, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 16, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 17, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 18, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 19, "raw_value" : 1.000000, "value" : "1" }, { "field_index" : 20, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 21, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 22, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 23, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 24, "raw_value" : 0.000000, "value" : "0" }, { "field_index" : 25, "raw_value" : 0.000000, "value" : "0" } ] } ] } ] } ```

Another issue is, that the order sometimes changes if there is much bus traffic on the vbus.

I thought about the possibility to use the filters that were added in 0.1.1. But that would only solve it for DLx owners. My idea would be to map sensors via config. The values how to set it up would be provided by a new sensor that shows the bus participants and the sensors they provide.

E.g. sensor.resol Attributes:

 - "VBus 0: DeltaSol MX [Controller]": ["Temperature sensor 1", "Temperature sensor 2", "Temperature sensor 3", ... ]
 - "VBus 0: DeltaSol MX [Heating circuit #1]": ["Flow set temperature", "Operating state"]
 - "VBus 0: DeltaSol MX [Heating circuit #2]": ["Flow set temperature", "Operating state"]
 - ...

So a config could look like this:

sensor:
  - platform: deltasol
    host: your_deltasol_hostname_or_ip_address
    username: your_username
    password: your_password
    map:
        "VBus 0: DeltaSol MX [Controller]/Temperature sensor 1": "Solar"
        "VBus 0: DeltaSol MX [Controller]/Temperature sensor 2": "Reservoir"
        "VBus 0: DeltaSol MX [Heating circuit #1]/Flow set temperature": "Floor Heating Set"
        ....

@dm82m: Would that be an acceptable way? The naming and the details when configuring could be improved. Did not think that much about it yet....

An alternative would be to provide unique entity_ids (but ugly ones) for the sensors and rename it in Home Assistant directly. E.g. "VBus 0: DeltaSol MX [Controller]/Temperature sensor 1" -> sensor.b0deltasolmx-controller-temperature1 But that would break automations and lovelace cards for everyone...

dm82m commented 2 years ago

my current thoughts are going into a direction of naming the sensors according to the header. so something like sensor.deltasol_header0_temperature". in that case we would provide a solution to show all the different headers and their data. we could also handle the 0 header as today and put a prefix starting from 1 header. that would make the solution compatible with the current data for users and allow people with two headers to get all the data.

the other thing which gives me a headache is the fact that the header order changes from time to time... so how would we technically know if we should use which header?

dm82m commented 2 years ago

to be honest I think the only valid option would be to go with the id from each header. so something like:

sensor.deltasol__00_0010_7E11_0100__temperature_sensor_1

this would make us independent from the sorting of the data. cause even the source_name + destination_name + description are not unique.

the only question that is open would be: how can we help users to prepare for this upgrade. I guess everyone needs to disable the plugin, manually renaming the current existing sensors to the new schema and then upgrade the plugin + enable it again.

image

dm82m commented 2 years ago

would then result in this:

image
chiefdeputy commented 2 years ago

Perhaps we could use this string as unique_id? Then we might be able to leave the names as they are and let Home Assistant do it's magic? (I think it adds "_2" to duplicate names, if they can be distinguished by the unique_id.)

If this works, we could use header id and field id as identifier. E.g. "00_0010_7E11_0100-000_2_0".

This is all speculation though, haven't tested it yet.

dm82m commented 2 years ago

Currently the unique_id is the same than the sensor name. It is easy to change that so that the unique_id is header_id+field_id. And I assume that HA will then make its magic with _2 in the sensors. Will implement something tomorrow and we can test it.

As unique_id is not changeable it will lead to non reusable data. But anyways, it is like it is…

dm82m commented 2 years ago

it seems to work, check that out and tell me what you think: https://github.com/dm82m/hass-Deltasol-KM2/pull/11

do you need that I release this as new 0.1.3b version or is that useless for you cause you just manually take the changes and test them out?

dm82m commented 2 years ago

and one thing that I have in mind would be: lets put source_name, destination_name and description of the header into attributes of the sensor to help people identifiying the correct sensors they want to use

dm82m commented 2 years ago

last comment is also implemented and on pull request and dev branch for testing, let me know what you think!

chiefdeputy commented 2 years ago

it seems to work, check that out and tell me what you think: #11

do you need that I release this as new 0.1.3b version or is that useless for you cause you just manually take the changes and test them out?

I can checkout the dev branch directly on my hassio machine, thanks.

dm82m commented 2 years ago

this could be an approach to migrate the data so that the users dont have any impact:

https://github.com/home-assistant/core/blob/dev/homeassistant/components/plugwise/gateway.py#L98-L108

https://github.com/home-assistant/core/blob/49a41ebe14b047dd4f73d023a9ab8c44312a6555/homeassistant/components/plugwise/gateway.py#L32

dm82m commented 2 years ago

as far as I think: the only thing we would need to do is the migration topic. everything else should already be solved with the current PR.

chiefdeputy commented 2 years ago

Looks good, I haven't wrapped my mind around this asyncio stuff completely but as async_migrate_entries() finally calls async_update_entity() it should work. Our check could look for entry.platform == "deltasol" and if the entry.entity_id.endswith(entry.unique_id) and then replace the unique_id.

dm82m commented 2 years ago

to be honest, I am not a good dev, I just created this project due to the fact that nothing was there and I wanted to get my deltasol data into HA. so currently I have not really an exact idea how the implementation should look like. maybe I try something the next days but if you want to, you can just go ahead. but its not important for me personally cause I only have 1 header and one dataset... :D