home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
72.15k stars 30.19k forks source link

PowerWall integration does not support more than one gateway connected to the same set of power walls #100065

Closed zaneclaes closed 8 months ago

zaneclaes commented 1 year ago

The problem

I have two Powerwall Gateways on our property. When I add a second integration via home assistant, I see both "integration entities" appear in the "Tesla" integration. Despite claiming there are 2 devices, the integration only generates one device and one set of 32 entities. In fact, only the "garage" device/entities exist; there is no "My Home" device or entities (the 12 entities shown in the screenshot should actually belong to "garage," which was added first):

Screenshot 2023-09-10 at 10 59 57 AM

If I delete "My Home" and reload "Garage," all the same entities exist and are correctly grouped again:

Screenshot 2023-09-10 at 11 02 47 AM

What version of Home Assistant Core has the issue?

core-2023.9.0

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant Container

Integration causing the issue

PowerWall

Link to integration documentation on our website

No response

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

I have tried deleting both entities and starting over, restarting home assistant, etc.

bdraco commented 1 year ago

Please post the entries for the entities from /config/.store/core.entity_registry

home-assistant[bot] commented 1 year ago

Hey there @jrester, @daniel-simpson, mind taking a look at this issue as it has been labeled with an integration (powerwall) you are listed as a code owner for? Thanks!

Code owner commands Code owners of `powerwall` can trigger bot actions by commenting: - `@home-assistant close` Closes the issue. - `@home-assistant rename Awesome new title` Renames the issue. - `@home-assistant reopen` Reopen the issue. - `@home-assistant unassign powerwall` Removes the current integration label and assignees on the issue, add the integration domain after the command.

(message by CodeOwnersMention)


powerwall documentation powerwall source (message by IssueLinks)

zaneclaes commented 1 year ago

@bdraco here are all entities matching platform: "powerwall":


      {
        "aliases": [],
        "area_id": null,
        "capabilities": null,
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "binary_sensor.garage_status",
        "hidden_by": null,
        "icon": null,
        "id": "2f3975d5d3e6569456dd4ea6490329c8",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "power",
        "original_icon": null,
        "original_name": "Status",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "status",
        "unique_id": "TG121305002VAF_TG121305002VG1_running",
        "unit_of_measurement": null
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": null,
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "binary_sensor.garage_grid_services_active",
        "hidden_by": null,
        "icon": null,
        "id": "feb703fc0d45f2f2b912536236de0bc4",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "power",
        "original_icon": null,
        "original_name": "Grid services active",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "grid_services_active",
        "unique_id": "TG121305002VAF_TG121305002VG1_grid_services_active",
        "unit_of_measurement": null
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": null,
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "binary_sensor.garage_grid_status",
        "hidden_by": null,
        "icon": null,
        "id": "ad41b0ffcc48b920d307ba01cc5c1174",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "power",
        "original_icon": null,
        "original_name": "Grid status",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "grid_status",
        "unique_id": "TG121305002VAF_TG121305002VG1_grid_status",
        "unit_of_measurement": null
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": null,
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "binary_sensor.garage_connected_to_tesla",
        "hidden_by": null,
        "icon": null,
        "id": "5d689ff61d66663ec09bec5afbf8ba20",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "connectivity",
        "original_icon": null,
        "original_name": "Connected to Tesla",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "connected_to_tesla",
        "unique_id": "TG121305002VAF_TG121305002VG1_connected_to_tesla",
        "unit_of_measurement": null
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": null,
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "binary_sensor.garage_charging",
        "hidden_by": null,
        "icon": null,
        "id": "b0ec4d091a51b4c4302ede99ad0f9636",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "battery_charging",
        "original_icon": null,
        "original_name": "Charging",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": null,
        "unique_id": "TG121305002VAF_TG121305002VG1_powerwall_charging",
        "unit_of_measurement": null
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "sensor.garage_charge",
        "hidden_by": null,
        "icon": null,
        "id": "81f78f2dbe119eb2abdff90dea510a39",
        "has_entity_name": true,
        "name": "Power Walls",
        "options": {
          "conversation": {
            "should_expose": false
          },
          "sensor": {
            "display_precision": null
          }
        },
        "original_device_class": "battery",
        "original_icon": null,
        "original_name": "Charge",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "charge",
        "unique_id": "TG121305002VAF_TG121305002VG1_charge",
        "unit_of_measurement": "%"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "sensor.garage_backup_reserve",
        "hidden_by": null,
        "icon": null,
        "id": "378703c3e3d5debc03fce3f18aaa759d",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "battery",
        "original_icon": null,
        "original_name": "Backup reserve",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "backup_reserve",
        "unique_id": "TG121305002VAF_TG121305002VG1_backup_reserve",
        "unit_of_measurement": "%"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "total"
        },
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "sensor.garage_site_export",
        "hidden_by": null,
        "icon": null,
        "id": "216f93752957e42386edfd0ad36ac190",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "energy",
        "original_icon": null,
        "original_name": "Site export",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "site_export",
        "unique_id": "TG121305002VAF_TG121305002VG1_site_export",
        "unit_of_measurement": "kWh"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "total"
        },
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "sensor.garage_site_import",
        "hidden_by": null,
        "icon": null,
        "id": "f516c50f4e94be29411ece4ebc39964c",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "energy",
        "original_icon": null,
        "original_name": "Site import",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "site_import",
        "unique_id": "TG121305002VAF_TG121305002VG1_site_import",
        "unit_of_measurement": "kWh"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "sensor.garage_site_power",
        "hidden_by": null,
        "icon": null,
        "id": "b0820e4b459d40a46de3c48a6533c4f5",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "power",
        "original_icon": null,
        "original_name": "Site power",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "site_instant_power",
        "unique_id": "TG121305002VAF_TG121305002VG1_site_instant_power",
        "unit_of_measurement": "kW"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "total"
        },
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "sensor.garage_battery_export",
        "hidden_by": null,
        "icon": null,
        "id": "b006ecda6dd5ed01e95b2fde5004a391",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "energy",
        "original_icon": null,
        "original_name": "Battery export",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "battery_export",
        "unique_id": "TG121305002VAF_TG121305002VG1_battery_export",
        "unit_of_measurement": "kWh"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "total"
        },
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "sensor.garage_battery_import",
        "hidden_by": null,
        "icon": null,
        "id": "af7508bf8d858ba55cb5b7beb363dd6c",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "energy",
        "original_icon": null,
        "original_name": "Battery import",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "battery_import",
        "unique_id": "TG121305002VAF_TG121305002VG1_battery_import",
        "unit_of_measurement": "kWh"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "sensor.garage_battery_power",
        "hidden_by": null,
        "icon": null,
        "id": "ee44dcaaa84b445ec805d603c646038a",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "power",
        "original_icon": null,
        "original_name": "Battery power",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "battery_instant_power",
        "unique_id": "TG121305002VAF_TG121305002VG1_battery_instant_power",
        "unit_of_measurement": "kW"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "total"
        },
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "sensor.garage_load_export",
        "hidden_by": null,
        "icon": null,
        "id": "68572559f3a5a113190a230a58ce691b",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "energy",
        "original_icon": null,
        "original_name": "Load export",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "load_export",
        "unique_id": "TG121305002VAF_TG121305002VG1_load_export",
        "unit_of_measurement": "kWh"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "total"
        },
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "sensor.garage_load_import",
        "hidden_by": null,
        "icon": null,
        "id": "79358303e92c9c36d337ba90e73c4d76",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "energy",
        "original_icon": null,
        "original_name": "Load import",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "load_import",
        "unique_id": "TG121305002VAF_TG121305002VG1_load_import",
        "unit_of_measurement": "kWh"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "sensor.garage_load_power",
        "hidden_by": null,
        "icon": null,
        "id": "4aa4d0adc177ce6f6a6e89d24e347dd8",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "power",
        "original_icon": null,
        "original_name": "Load power",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "load_instant_power",
        "unique_id": "TG121305002VAF_TG121305002VG1_load_instant_power",
        "unit_of_measurement": "kW"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "total"
        },
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "sensor.garage_solar_export",
        "hidden_by": null,
        "icon": null,
        "id": "b8a06836c82774c2e9791051b6346b0f",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "energy",
        "original_icon": null,
        "original_name": "Solar export",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "solar_export",
        "unique_id": "TG121305002VAF_TG121305002VG1_solar_export",
        "unit_of_measurement": "kWh"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "total"
        },
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "sensor.garage_solar_import",
        "hidden_by": null,
        "icon": null,
        "id": "797755df61a3ea6a3d92589a4d5a4990",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "energy",
        "original_icon": null,
        "original_name": "Solar import",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "solar_import",
        "unique_id": "TG121305002VAF_TG121305002VG1_solar_import",
        "unit_of_measurement": "kWh"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": null,
        "entity_id": "sensor.garage_solar_power",
        "hidden_by": null,
        "icon": null,
        "id": "d07770f82312195d27aab1a3f52e4326",
        "has_entity_name": true,
        "name": "Solar Roof",
        "options": {
          "conversation": {
            "should_expose": false
          },
          "sensor": {
            "display_precision": null
          }
        },
        "original_device_class": "power",
        "original_icon": null,
        "original_name": "Solar power",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "solar_instant_power",
        "unique_id": "TG121305002VAF_TG121305002VG1_solar_instant_power",
        "unit_of_measurement": "kW"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": null,
        "config_entry_id": "b806ffb7133984c2614649aa0f9cd684",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": null,
        "entity_category": "config",
        "entity_id": "switch.garage_off_grid_operation",
        "hidden_by": null,
        "icon": null,
        "id": "61c0b1ff641c17292c49724cb84da76b",
        "has_entity_name": true,
        "name": null,
        "options": {
          "conversation": {
            "should_expose": false
          }
        },
        "original_device_class": "switch",
        "original_icon": null,
        "original_name": "Off-grid operation",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "off_grid_operation",
        "unique_id": "TG121305002VAF_TG121305002VG1_off_grid_operation",
        "unit_of_measurement": null
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "ea615c7c3bcd1ba0c0ea1828f7f5a3e4",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": "integration",
        "entity_category": null,
        "entity_id": "sensor.garage_site_frequency",
        "hidden_by": null,
        "icon": null,
        "id": "bcef23df80da038252e137931ddff6e7",
        "has_entity_name": true,
        "name": null,
        "options": {},
        "original_device_class": "frequency",
        "original_icon": null,
        "original_name": "Site frequency",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "site_instant_frequency",
        "unique_id": "TG121305002VAF_TG121305002VG1_site_instant_frequency",
        "unit_of_measurement": "Hz"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "ea615c7c3bcd1ba0c0ea1828f7f5a3e4",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": "integration",
        "entity_category": null,
        "entity_id": "sensor.garage_site_current",
        "hidden_by": null,
        "icon": null,
        "id": "788c06d6d2603bd481a2bc5ed9394dc5",
        "has_entity_name": true,
        "name": null,
        "options": {},
        "original_device_class": "current",
        "original_icon": null,
        "original_name": "Site current",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "site_instant_current",
        "unique_id": "TG121305002VAF_TG121305002VG1_site_instant_current",
        "unit_of_measurement": "A"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "ea615c7c3bcd1ba0c0ea1828f7f5a3e4",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": "integration",
        "entity_category": null,
        "entity_id": "sensor.garage_site_voltage",
        "hidden_by": null,
        "icon": null,
        "id": "d6f6a12fd4c81982191673a1e61ad0c1",
        "has_entity_name": true,
        "name": null,
        "options": {},
        "original_device_class": "voltage",
        "original_icon": null,
        "original_name": "Site voltage",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "site_instant_voltage",
        "unique_id": "TG121305002VAF_TG121305002VG1_site_instant_voltage",
        "unit_of_measurement": "V"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "ea615c7c3bcd1ba0c0ea1828f7f5a3e4",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": "integration",
        "entity_category": null,
        "entity_id": "sensor.garage_battery_frequency",
        "hidden_by": null,
        "icon": null,
        "id": "3c77a3a1736d012f91ad1747c3acebfb",
        "has_entity_name": true,
        "name": null,
        "options": {},
        "original_device_class": "frequency",
        "original_icon": null,
        "original_name": "Battery frequency",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "battery_instant_frequency",
        "unique_id": "TG121305002VAF_TG121305002VG1_battery_instant_frequency",
        "unit_of_measurement": "Hz"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "ea615c7c3bcd1ba0c0ea1828f7f5a3e4",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": "integration",
        "entity_category": null,
        "entity_id": "sensor.garage_battery_current",
        "hidden_by": null,
        "icon": null,
        "id": "0da5b16fc694b3d1705904e3fda3ae77",
        "has_entity_name": true,
        "name": null,
        "options": {},
        "original_device_class": "current",
        "original_icon": null,
        "original_name": "Battery current",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "battery_instant_current",
        "unique_id": "TG121305002VAF_TG121305002VG1_battery_instant_current",
        "unit_of_measurement": "A"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "ea615c7c3bcd1ba0c0ea1828f7f5a3e4",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": "integration",
        "entity_category": null,
        "entity_id": "sensor.garage_battery_voltage",
        "hidden_by": null,
        "icon": null,
        "id": "4c5b5decd0b173ce9e69b1343a2a56ed",
        "has_entity_name": true,
        "name": null,
        "options": {},
        "original_device_class": "voltage",
        "original_icon": null,
        "original_name": "Battery voltage",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "battery_instant_voltage",
        "unique_id": "TG121305002VAF_TG121305002VG1_battery_instant_voltage",
        "unit_of_measurement": "V"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "ea615c7c3bcd1ba0c0ea1828f7f5a3e4",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": "integration",
        "entity_category": null,
        "entity_id": "sensor.garage_load_frequency",
        "hidden_by": null,
        "icon": null,
        "id": "5a54114bd846080db23355d28679e9be",
        "has_entity_name": true,
        "name": null,
        "options": {},
        "original_device_class": "frequency",
        "original_icon": null,
        "original_name": "Load frequency",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "load_instant_frequency",
        "unique_id": "TG121305002VAF_TG121305002VG1_load_instant_frequency",
        "unit_of_measurement": "Hz"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "ea615c7c3bcd1ba0c0ea1828f7f5a3e4",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": "integration",
        "entity_category": null,
        "entity_id": "sensor.garage_load_current",
        "hidden_by": null,
        "icon": null,
        "id": "b1c0413fd703a8e0a1dafc91f360e587",
        "has_entity_name": true,
        "name": null,
        "options": {},
        "original_device_class": "current",
        "original_icon": null,
        "original_name": "Load current",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "load_instant_current",
        "unique_id": "TG121305002VAF_TG121305002VG1_load_instant_current",
        "unit_of_measurement": "A"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "ea615c7c3bcd1ba0c0ea1828f7f5a3e4",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": "integration",
        "entity_category": null,
        "entity_id": "sensor.garage_load_voltage",
        "hidden_by": null,
        "icon": null,
        "id": "11f135bc4331f1f92a9541c1fc0667a9",
        "has_entity_name": true,
        "name": null,
        "options": {},
        "original_device_class": "voltage",
        "original_icon": null,
        "original_name": "Load voltage",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "load_instant_voltage",
        "unique_id": "TG121305002VAF_TG121305002VG1_load_instant_voltage",
        "unit_of_measurement": "V"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "ea615c7c3bcd1ba0c0ea1828f7f5a3e4",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": "integration",
        "entity_category": null,
        "entity_id": "sensor.garage_solar_frequency",
        "hidden_by": null,
        "icon": null,
        "id": "6086a5387f6f42deee137cfafc5fd1dc",
        "has_entity_name": true,
        "name": null,
        "options": {},
        "original_device_class": "frequency",
        "original_icon": null,
        "original_name": "Solar frequency",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "solar_instant_frequency",
        "unique_id": "TG121305002VAF_TG121305002VG1_solar_instant_frequency",
        "unit_of_measurement": "Hz"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "ea615c7c3bcd1ba0c0ea1828f7f5a3e4",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": "integration",
        "entity_category": null,
        "entity_id": "sensor.garage_solar_current",
        "hidden_by": null,
        "icon": null,
        "id": "e3d0d3e8aa73473ece4bce13cb7f7b12",
        "has_entity_name": true,
        "name": null,
        "options": {},
        "original_device_class": "current",
        "original_icon": null,
        "original_name": "Solar current",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "solar_instant_current",
        "unique_id": "TG121305002VAF_TG121305002VG1_solar_instant_current",
        "unit_of_measurement": "A"
      },
      {
        "aliases": [],
        "area_id": null,
        "capabilities": {
          "state_class": "measurement"
        },
        "config_entry_id": "ea615c7c3bcd1ba0c0ea1828f7f5a3e4",
        "device_class": null,
        "device_id": "6307e9e8ec14ce71c21acb935eb35298",
        "disabled_by": "integration",
        "entity_category": null,
        "entity_id": "sensor.garage_solar_voltage",
        "hidden_by": null,
        "icon": null,
        "id": "a69a0cffe5c495632952e234c4713423",
        "has_entity_name": true,
        "name": null,
        "options": {},
        "original_device_class": "voltage",
        "original_icon": null,
        "original_name": "Solar voltage",
        "platform": "powerwall",
        "supported_features": 0,
        "translation_key": "solar_instant_voltage",
        "unique_id": "TG121305002VAF_TG121305002VG1_solar_instant_voltage",
        "unit_of_measurement": "V"
      },```
bdraco commented 1 year ago

"unique_id": "TG121305002VAF_TG121305002VG1_battery_instant_power",

It looks like this system has two power walls ?

Do you have two gateways for the same power walls somehow?

zaneclaes commented 1 year ago

I have 2 powerwalls attached to the "garage" (which is the working entry, at IP 192.168.3.168).

I have a second gateway, yes, as specified in the post. The second gateway is for the house, which is on a different meter (two electrical services to the same property). I am attempting to add the "house" as a second integration (ip 192.168.3.4), but a second device is not created. Instead, I end up with one device containing two config entries (from device registry):


      {
        "area_id": "outside",
        "config_entries": [
          "b806ffb7133984c2614649aa0f9cd684",
          "ea615c7c3bcd1ba0c0ea1828f7f5a3e4"
        ],
        "configuration_url": "https://192.168.3.4",
        "connections": [],
        "disabled_by": null,
        "entry_type": null,
        "hw_version": null,
        "id": "6307e9e8ec14ce71c21acb935eb35298",
        "identifiers": [
          [
            "powerwall",
            "TG121305002VAF_TG121305002VG1"
          ]
        ],
        "manufacturer": "Tesla",
        "model": "PowerWall 2 (GW2)",
        "name_by_user": null,
        "name": "My Home",
        "sw_version": "21.39.3 b3015524",
        "via_device_id": null
      },
zaneclaes commented 1 year ago

Note: I have tried manually creating a second device entry, and splitting it up so each device has one config entry. Unfortunately, upon rebooting Home Assistant, the integration changes the device config so that one of the device entries always has two configurations.

bdraco commented 1 year ago

The integration uses the serial numbers of the power walls for the unique id. Its doesn't consider the case where someone has two gateways for one set of power walls. I'm not sure we can support that as I don't thing there is an api that returns the serial number of the gateway that would allow us a stable way to tell them apart. Maybe tesla added that in a newer version, but regardless it would require changing all the unique ids which would require a migration for everyone as well.

zaneclaes commented 1 year ago

Ah, yeah, I see — it's a shame that the powerwall IDs are used for uniquely identifying a device (aka, gateway, really — since that what has the IP address/config values). I was hoping to be able to monitor solar production on the second gateway... even though it draws from the same batteries, it does not charge them.

However... the unique_id used by the config entry already provides what you're talking about. My config entries show "unique_id": "1232100-00-G--TG121309000RL7", and "unique_id": "1232100-00-H--GF2222580000WK", respectively. The last chunk of each is the serial number of each gateway.

bdraco commented 1 year ago

That's right, its been a while since I've looked and this, and they did add that in newer firmware, which is also how we get the default password.

ironically, I added support for it in https://github.com/jrester/tesla_powerwall/pull/33

So to support this we would need to migrate all the unique ids to use this.

That would be a good change, but not something I'm likely to have time to do any time soon. We also need to see how far back that API works since we might be locking out older powerwall 1 gateways if we require it.

The underlying library needs to be made async as well since its called quite frequently.

Lots of work needed to modernize this integration

ejbatts commented 12 months ago

I would like a similar feature but the opposite way round. Is it possible to extract data from separate powerwalls attached to a single gateway? I have 2 powerwalls connected to separate phases of a 3 phase installation. Specifically, I would like to know battery load (charge/discharge rate) of each battery so I can monitor house loads on each phase. This separate data is available on //[gateway ip address]/system page, as well as voltage and state of charge, but I don't know how to extract it in HA.

rsneyd commented 9 months ago

One gateway, 2x Powerwalls on opposite phases... Forgive a complete newbie looking for advice... please signpost me elsewhere if appropriate. Also apologies because I don’t speak Github lingo... Currently upgrading a single-phase 4kW system without battery. I am upgrading a standard domestic PV system to something much larger with a pair of batteries.

New PV system 2x Solis 6kW inverters each with 18 X 425W panels. Total 15.5kW PLUS Existing PV system 1x with Fronius IGTL 3.6 inverter installed 13/8/2014 capacity 4kW New battery system Batteries 2 X Powerwall 2 & Tesla Gateway i.e. capacity 27-ish kWh

New twin-phase (poly-phase) grid connection, fused at 80A per phase but can be changed to 100A if need be. One powerwall on each phase, old system on one of these. Home Assistant running on Pi4 with a SSD. HACS installed. Powerwall integration installed. Given that I have 2x PW on a twin-phase supply, Home Assistant can see them but only in aggregate i.e. added together, not individually. Any suggestions? Tesla Basic App only displays a tiny subset of the info in the Gateway and the two batteries. The HA integration lists 37 'entities' of which very few are available on the app. but curiously doesn't split them, not sure why.. The 'Pro' app which is only available to installers/contractors can see much more. It also separately shows device Id and firmware version for each battery. I think more detective work is merited... The basic Tesla app acknowledges 2x PW but no data - below the diagram with a house it shows "Powerwall 2x". I just downloaded NetZero for Tesla. Very nice app and displays. With a struggle I have located individual individual Powerwall data..... or at least some of it My request,.. Given that the separate data both exists and is extractable, would the community consider adapting the integration to take advantage of this. Presumably there would then be 2x37=74 data items ‘entities’. Also, to whatever extent the Gatway and Powerwalls can be controlled by HA, please can this be split in two to allow individual HA control of the two Powerwalls? Hope this makes sense? Any suggestions?

bubonicbob commented 9 months ago

The underlying library needs to be made async as well since its called quite frequently.

To get the first step going to fix this issue, I made a pull request to async-ify the underlying tesla_powerwall library.

Since I don't have a powerwall to run the integration tests against it, would anybody be willing to try out my changes and run the tests for me?

ejbatts commented 9 months ago

The underlying library needs to be made async as well since its called quite frequently.

To get the first step going to fix this issue, I made a pull request to async-ify the underlying tesla_powerwall library.

Since I don't have a powerwall to run the integration tests against it, would anybody be willing to try out my changes and run the tests for me?

Sure, I would but have no idea how.

rsneyd commented 9 months ago

Likewise, I would be glad to help but might need a bit of screenshare... BW robert @.**@.> 07870271531 From: ejbatts @.> Sent: Wednesday, January 3, 2024 7:47 PM To: home-assistant/core @.> Cc: J Robert Sneyd @.>; Comment @.> Subject: Re: [home-assistant/core] PowerWall integration does not support more than one gateway connected to the same set of power walls (Issue #100065)

The underlying library needs to be made async as well since its called quite frequently.

To get the first step going to fix this issue, I made a pull requesthttps://github.com/jrester/tesla_powerwall/pull/55 to async-ify the underlying tesla_powerwall library.

Since I don't have a powerwall to run the integration tests against it, would anybody be willing to try out my changes and run the tests for me?

Sure, I would but have no idea how.

- Reply to this email directly, view it on GitHubhttps://github.com/home-assistant/core/issues/100065#issuecomment-1875882130, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BFAAYQWOWKW4YOGCEFHO2JLYMWYUTAVCNFSM6AAAAAA4SJMU3SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZVHA4DEMJTGA. You are receiving this because you commented.Message ID: @.**@.>>


[https://www.plymouth.ac.uk/images/email_footer.gif]http://www.plymouth.ac.uk/worldclass

This email and any files with it are confidential and intended solely for the use of the recipient to whom it is addressed. If you are not the intended recipient then copying, distribution or other use of the information contained is strictly prohibited and you should not rely on it. If you have received this email in error please let the sender know immediately and delete it from your system(s). Internet emails are not necessarily secure. While we take every care, University of Plymouth accepts no responsibility for viruses and it is your responsibility to scan emails and their attachments. University of Plymouth does not accept responsibility for any changes made after it was sent. Nothing in this email or its attachments constitutes an order for goods or services unless accompanied by an official order form.

bubonicbob commented 9 months ago

Likewise, I would be glad to help but might need a bit of screenshare...

Thanks! I added some instructions on pull request if you want to try it out.

rsneyd commented 9 months ago

Thanks Bob. This is a level above my coding skills. Is it yaml, a card or an integration? I am tech minded but i dont speak github or yaml or python. i am educable but i will need very simple steps...

Asyncify means what?

this lot... do they go into a dos prompt or with developer tools?

git clone https://github.com/jrester/tesla_powerwall.git .... this takes me to a github page... what do i do there? cd tesla_powerwall gh pr checkout 55 POWERWALL_IP=youraddress POWERWALL_PASSWORD=yourpass tox -e integration

Ivery much appreciate your help, apols for being a bit slow rob

bubonicbob commented 9 months ago

Thanks Bob. This is a level above my coding skills. Is it yaml, a card or an integration? I am tech minded but i dont speak github or yaml or python. i am educable but i will need very simple steps...

Asyncify means what?

this lot... do they go into a dos prompt or with developer tools?

git clone https://github.com/jrester/tesla_powerwall.git .... this takes me to a github page... what do i do there? cd tesla_powerwall gh pr checkout 55 POWERWALL_IP=youraddress POWERWALL_PASSWORD=yourpass tox -e integration

Ivery much appreciate your help, apols for being a bit slow rob

Thank you for looking into it. I'm not sure if I can safely walk you though this setup via the commands I sent to you unless you are already familiar with how to interact with github, git, and python via the command line. In general you don't want to run random software on your computer that you find on forums like this since you never know what kind of badness that can happen... unless you are really sure you know the consequences.

If you are feeling adventurous, I suppose you could try using the github desktop to fetch the pull request and then see if you can get tox installed to your command prompt (aka DOS command line stuff). It isn't for the uninitiated, unfortunately. They don't make this stuff easy. :/

rsneyd commented 9 months ago

Thanks, I'll take a look in the morning Bw R

From: bubonicbob @.> Sent: Wednesday, January 3, 2024 10:45 PM To: home-assistant/core @.> Cc: J Robert Sneyd @.>; Comment @.> Subject: Re: [home-assistant/core] PowerWall integration does not support more than one gateway connected to the same set of power walls (Issue #100065)

Thanks Bob. This is a level above my coding skills. Is it yaml, a card or an integration? I am tech minded but i dont speak github or yaml or python. i am educable but i will need very simple steps...

Asyncify means what?

this lot... do they go into a dos prompt or with developer tools?

git clone https://github.com/jrester/tesla_powerwall.git .... this takes me to a github page... what do i do there? cd tesla_powerwall gh pr checkout 55 POWERWALL_IP=youraddress POWERWALL_PASSWORD=yourpass tox -e integration

Ivery much appreciate your help, apols for being a bit slow rob

Thank you for looking into it. I'm not sure if I can safely walk you though this setup via the commands I sent to you unless you are already familiar with how to interact with github, git, and python via the command line. In general you don't want to run random software on your computer that you find on forums like this since you never know what kind of badness that can happen... unless you are really sure you know the consequences.

If you are feeling adventurous, I suppose you could try using the github desktop to fetch the pull requesthttps://docs.github.com/en/desktop/working-with-your-remote-repository-on-github-or-github-enterprise/viewing-a-pull-request-in-github-desktop#opening-a-pull-request-branch-in-github-desktop-from-github and then see if you can get tox installedhttps://tox.wiki/en/4.11.4/installation.html# to your command prompt (aka DOS command line stuff). It isn't for the uninitiated, unfortunately. They don't make this stuff easy. :/

- Reply to this email directly, view it on GitHubhttps://github.com/home-assistant/core/issues/100065#issuecomment-1876071941, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BFAAYQSWNYJG3GISJMBZCMTYMXNPDAVCNFSM6AAAAAA4SJMU3SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZWGA3TCOJUGE. You are receiving this because you commented.Message ID: @.**@.>>


[https://www.plymouth.ac.uk/images/email_footer.gif]http://www.plymouth.ac.uk/worldclass

This email and any files with it are confidential and intended solely for the use of the recipient to whom it is addressed. If you are not the intended recipient then copying, distribution or other use of the information contained is strictly prohibited and you should not rely on it. If you have received this email in error please let the sender know immediately and delete it from your system(s). Internet emails are not necessarily secure. While we take every care, University of Plymouth accepts no responsibility for viruses and it is your responsibility to scan emails and their attachments. University of Plymouth does not accept responsibility for any changes made after it was sent. Nothing in this email or its attachments constitutes an order for goods or services unless accompanied by an official order form.

ejbatts commented 9 months ago

@bubonicbob I posted the following on 11Oct:

I would like a similar feature but the opposite way round. Is it possible to extract data from separate powerwalls attached to a single gateway? I have 2 powerwalls connected to separate phases of a 3 phase installation. Specifically, I would like to know battery load (charge/discharge rate) of each battery so I can monitor house loads on each phase. This separate data is available on //[gateway ip address]/system page, as well as voltage and state of charge, but I don't know how to extract it in HA.

I thought that the testing on the Asyncify the API #55 thread was heading in this direction?

bubonicbob commented 9 months ago

@bubonicbob I posted the following on 11Oct:

I would like a similar feature but the opposite way round. Is it possible to extract data from separate powerwalls attached to a single gateway? I have 2 powerwalls connected to separate phases of a 3 phase installation. Specifically, I would like to know battery load (charge/discharge rate) of each battery so I can monitor house loads on each phase. This separate data is available on //[gateway ip address]/system page, as well as voltage and state of charge, but I don't know how to extract it in HA.

I thought that the testing on the Asyncify the API #55 thread was heading in this direction?

Step 1 for getting what you want working is to make sure that the data are fetched from your gateway(s). Make an issue on the tesla_powerwall repo to make sure that it fetches whatever data you're after. That's the place where any HA data originally comes from for your powerwall.

ejbatts commented 9 months ago

Thanks @bubonicbob DONE! (I had trouble submitting this previously but it worked on a different browser.)

bdraco commented 9 months ago

https://github.com/home-assistant/core/pull/107164#issuecomment-1880166105

It looks like the order of the power wall serial numbers can be unstable based on how the api is queried which has the risk of creating a new device and all the energy data disappearing until we do a migrate to the new unique id format.

We also need to sort the serials when doing the migration in case the above happens.

With the current design its almost guaranteed that users are going to loose (it will still be in the db, but will require acrobatics to get it back) all their energy data at some point in a future update unless we do the migration.

Disreguard, its a regression in the linked PR https://github.com/home-assistant/core/pull/107164/files#r1444099954

bdraco commented 8 months ago

https://github.com/home-assistant/core/pull/107509 will auto close this issue when it merges.

Targeted for 2024.2.x

purcell-lab commented 8 months ago

Nice work, my site has three batteries and one gateway.

With 2024.2 beta each of my batteries has started reporting individually as connected devices

Screenshot_20240204-190816 Screenshot_20240204-190749

bubonicbob commented 8 months ago

Oh man, I think I ended up misreading the issue. Is it actually true that multiple gateways are connected to the same powerwall?

In that scenario is each gateway a unique device in HA?

I'm not sure HA would support a device hierarchy where a battery device could have 2 parent devices. There's only one device info field per entity so I'd have to change how this is implemented such that it doesn't show the battery (powerwall) as a child of the gateway as it is done in the beta. It would be a breaking change at that since I'd have to change the unique id of the battery.

zaneclaes commented 8 months ago

Is it actually true that multiple gateways are connected to the same powerwall?

Yes, that is why I opened the issue.

There's only one device info field per entity so I'd have to change how this is implemented such that it doesn't show the battery (powerwall) as a child of the gateway as it is done in the beta

Unfortunately, I agree the current data modeling here does not match how the Tesla hardware works. "Gateways" and "Powerwalls" are independent and orthogonal topics — even though they most often appear as a paired concept. For example, I have seen an operational Gateway that had zero Powerwalls whatsoever. In our case, we have 2 buildings on our property... both buildings have Solar... both buildings have a Gateway... but only one building has Powerwalls. In practice, this means the Powerwalls are attached to both Gateways, as demonstrated in the original JSON I pasted.

bubonicbob commented 8 months ago

Is it actually true that multiple gateways are connected to the same powerwall?

Yes, that is why I opened the issue.

There's only one device info field per entity so I'd have to change how this is implemented such that it doesn't show the battery (powerwall) as a child of the gateway as it is done in the beta

Unfortunately, I agree the current data modeling here does not match how the Tesla hardware works. "Gateways" and "Powerwalls" are independent and orthogonal topics — even though they most often appear as a paired concept. For example, I have seen an operational Gateway that had zero Powerwalls whatsoever. In our case, we have 2 buildings on our property... both buildings have Solar... both buildings have a Gateway... but only one building has Powerwalls. In practice, this means the Powerwalls are attached to both Gateways, as demonstrated in the original JSON I pasted.

Sorry I missed where you posted the JSON results. Oops, now that I look on my computer and not my phone I see it.

I just watched the powerwall and backup gateway installation videos on the Tesla Pros app and it seems like the 4 powerwall signal wires are daisy-chained from a single gateway. I wonder if your situation is made for when you have a 400 amp service where there's a different gateway between your meter and each of the 2 separate 200 amp load panels. If that is true, would the L1/L2 lines from a single powerwall split to each gateway?

That would be important to understand because, if true, it would actually make sense that HA would show the batteries as a child of a single gateway that they are physically controlled by via the 4 wire signalling connection.

Also I wonder where the CTs are installed for monitoring the powerwall energy flow since I was confused where they would be installed in the system.

Edit: Sorry I'm talking from the point of view of the USA where 400amp and 200 amp services are common.

bubonicbob commented 8 months ago

Is it actually true that multiple gateways are connected to the same powerwall?

Yes, that is why I opened the issue.

There's only one device info field per entity so I'd have to change how this is implemented such that it doesn't show the battery (powerwall) as a child of the gateway as it is done in the beta

Unfortunately, I agree the current data modeling here does not match how the Tesla hardware works. "Gateways" and "Powerwalls" are independent and orthogonal topics — even though they most often appear as a paired concept. For example, I have seen an operational Gateway that had zero Powerwalls whatsoever. In our case, we have 2 buildings on our property... both buildings have Solar... both buildings have a Gateway... but only one building has Powerwalls. In practice, this means the Powerwalls are attached to both Gateways, as demonstrated in the original JSON I pasted.

I had written a gateway simulator so that I can make HA think it is talking to a real gateway or gateways. Would you be willing to help me collect a bunch of JSON for each of your gateways? That way I could have something to develop against that acts just like your system.

The commands are from a bash shell:

curl -o getsamples.sh https://raw.githubusercontent.com/vloschiavo/powerwall2/master/scripts/getsamples.sh
chmod u+x getsamples.sh
./getsamples.sh ipaddress email password ./samples

Depending on your OS you may have to install some utilities that the script relies on.

purcell-lab commented 8 months ago

curl -o getsamples.sh https://raw.githubusercontent.com/vloschiavo/powerwall2/master/scripts/getsamples.sh chmod u+x getsamples.sh ./getsamples.sh ipaddress email password ./samples

Not loving the cookies ;-(

mark@penguin:~$ ./getsamples.sh 192.168.86.61 mark@purcell.id.au ABCDEF
mktemp: too few X's in template ‘getsamples.sh.cookies’
bubonicbob commented 8 months ago

curl -o getsamples.sh https://raw.githubusercontent.com/vloschiavo/powerwall2/master/scripts/getsamples.sh chmod u+x getsamples.sh ./getsamples.sh ipaddress email password ./samples

Not loving the cookies ;-(

mark@penguin:~$ ./getsamples.sh 192.168.86.61 mark@purcell.id.au ABCDEF
mktemp: too few X's in template ‘getsamples.sh.cookies’

Hmm, it must be hard to write scripts like this that run everywhere on every variation of distros and OSs. If you don't mind trying, you can add some X's to these lines of the script:

  cookie_file=$(mktemp -t "$script_name.cookies.XXXXX") || exit 3
  mask_file=$(mktemp -t "$script_name.mask.XXXXX") || exit 3
ejbatts commented 8 months ago

If I may inject at this point.

If i am not mistaken, @purcell-lab opened the original topic with a 'multiple gateway' scenario. 

The feature request i raised is based on a scenario of 'multiple Powerwalls (batteries)' to be reported separately.

@bubonicbob , you seemed to be heading in the right direction for my scenario, which seems to be reflected in the 2024.2 beta (that @purcell-lab has screenshots of) and appears to be reporting his 3 batteries separately. And the displayed data points are sufficient, for my needs anyway.

Hope this clarifies the difference.

purcell-lab commented 8 months ago

This issue has been closed, so there isn't much point in discussions here. However, I don't think the original issue has been addressed. Multiple gateways accessing the same set of batteries, so I would recommend this issue be reopened.

@bubonicbob that said, what you have implemented with 2024.2.beta is great, in that it exposes individual powerwalls (batteries) as independent devices connected to a single gateway.

My screenshot above can be confusing, which I think is to do with the implementation as you have named the new devices Gateway, whereas in fact they are Powerwall batteries. Sitting behind one gateway.

Screenshot_20240205-220312

Here you can see the 3 new devices which are labelled Gateway, but in reality they are each a Powerwall battery module, you can also see the original device labelled GW2.

image

Powerwall Gateway Device: image

Plus now 3x Powerwall batteries reporting individually: image

image

image

system_status.json

ejbatts commented 8 months ago

@purcell-lab I still only see one gateway device, how do I update to the new beta...I did not see it listed in the latest HA core release, or is that what is required?

purcell-lab commented 8 months ago

@purcell-lab I still only see one gateway device, how do I update to the new beta...I did not see it listed in the latest HA core release, or is that what is required?

The beta will show one gateway, but multiple batteries.

Settings/System/Upgrade and Join Beta Channel. https://rc.home-assistant.io/blog/2024/01/31/release-20242/

Screenshot 2024-02-05 22 26 59

ejbatts commented 8 months ago

Thanks

zaneclaes commented 7 months ago

@bubonicbob re:

Would you be willing to help me collect a bunch of JSON for each of your gateways?

Certainly, though I'm currently away from the site in question and won't be able to do so until mid March.

bubonicbob commented 7 months ago

@bubonicbob re:

Would you be willing to help me collect a bunch of JSON for each of your gateways?

Certainly, though I'm currently away from the site in question and won't be able to do so until mid March.

That would be invaluable, thank you! It isn't necessary, but I'm really curious how the 4 control lines and L1/L2 lines are hooked up on site if you could let me know. The Tesla Pro installation videos do not talk about how to install a site in that configuration.

rsneyd commented 7 months ago

Just one gateway here r

From: Josh Pettersen @.> Sent: Saturday, February 17, 2024 3:28 PM To: home-assistant/core @.> Cc: J Robert Sneyd @.>; Comment @.> Subject: Re: [home-assistant/core] PowerWall integration does not support more than one gateway connected to the same set of power walls (Issue #100065)

@bubonicbobhttps://github.com/bubonicbob re:

Would you be willing to help me collect a bunch of JSON for each of your gateways?

Certainly, though I'm currently away from the site in question and won't be able to do so until mid March.

That would be invaluable, thank you! It isn't necessary, but I'm really curious how the 4 control lines and L1/L2 lines are hooked up on site if you could let me know. The Tesla Pro installation videos do not talk about how to install a site in that configuration.

- Reply to this email directly, view it on GitHubhttps://github.com/home-assistant/core/issues/100065#issuecomment-1950236132, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BFAAYQTNCTEYW3XZTHRFYR3YUDD6ZAVCNFSM6AAAAAA4SJMU3SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJQGIZTMMJTGI. You are receiving this because you commented.Message ID: @.**@.>>


[https://www.plymouth.ac.uk/images/email_footer.gif]http://www.plymouth.ac.uk/worldclass

This email and any files with it are confidential and intended solely for the use of the recipient to whom it is addressed. If you are not the intended recipient then copying, distribution or other use of the information contained is strictly prohibited and you should not rely on it. If you have received this email in error please let the sender know immediately and delete it from your system(s). Internet emails are not necessarily secure. While we take every care, University of Plymouth accepts no responsibility for viruses and it is your responsibility to scan emails and their attachments. University of Plymouth does not accept responsibility for any changes made after it was sent. Nothing in this email or its attachments constitutes an order for goods or services unless accompanied by an official order form.