Skip to content

Commit

Permalink
Possible fix for SSL error
Browse files Browse the repository at this point in the history
Remove the regions selector.
Changed the default scan interval to 60 seconds.
  • Loading branch information
MorneSaunders360 committed Apr 5, 2024
1 parent f38fc25 commit 33e9d70
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 21 deletions.
6 changes: 3 additions & 3 deletions custom_components/solar_sunsynk/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from .sunsynkapi import sunsynk_api

from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, CONF_REGION,CONF_SCAN_INTERVAL
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME,CONF_SCAN_INTERVAL
from homeassistant.core import HomeAssistant
from .const import DOMAIN, PLATFORMS,SetSolarSettingsSchema
from .coordinator import SunsynkDataUpdateCoordinator
Expand All @@ -17,9 +17,9 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
try:
scan_interval = entry.data[CONF_SCAN_INTERVAL]
except Exception as e:
scan_interval = 30
scan_interval = 60

client = sunsynk_api(entry.data[CONF_REGION],entry.data[CONF_USERNAME],entry.data[CONF_PASSWORD],scan_interval,hass)
client = sunsynk_api(entry.data[CONF_USERNAME],entry.data[CONF_PASSWORD],scan_interval,hass)
coordinator = SunsynkDataUpdateCoordinator(hass, client=client)
await coordinator.async_config_entry_first_refresh()

Expand Down
7 changes: 3 additions & 4 deletions custom_components/solar_sunsynk/config_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import voluptuous as vol
from datetime import timedelta
from homeassistant import config_entries
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, CONF_REGION,CONF_SCAN_INTERVAL
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME,CONF_SCAN_INTERVAL
from homeassistant.core import HomeAssistant
from homeassistant.data_entry_flow import FlowResult
from homeassistant.exceptions import HomeAssistantError
Expand All @@ -19,15 +19,14 @@
{
vol.Required(CONF_USERNAME): str,
vol.Required(CONF_PASSWORD): str,
vol.Optional(CONF_SCAN_INTERVAL, default=30): int,
vol.Required(CONF_REGION): vol.In(['Region 1', 'Region 2']),
vol.Optional(CONF_SCAN_INTERVAL, default=60): int
}
)


async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> dict[str, Any]:
"""Validate the user input allows us to connect."""
client = sunsynk_api(data[CONF_REGION],data[CONF_USERNAME],data[CONF_PASSWORD],data[CONF_SCAN_INTERVAL],hass)
client = sunsynk_api(data[CONF_USERNAME],data[CONF_PASSWORD],data[CONF_SCAN_INTERVAL],hass)
try:
await client.authenticate(data[CONF_USERNAME], data[CONF_PASSWORD])

Expand Down
2 changes: 0 additions & 2 deletions custom_components/solar_sunsynk/enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
class SunsynkApiNames(str, Enum):
"""Device names used by Sunsynk."""

Region1 = "Region 1"
Region2 = "Region 2"

@unique
class SunsynkNames(str, Enum):
Expand Down
2 changes: 1 addition & 1 deletion custom_components/solar_sunsynk/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@
"iot_class": "cloud_polling",
"issue_tracker": "https://github.com/MorneSaunders360/Solar-Sunsynk/issues",
"requirements": ["requests"],
"version": "1.0.4"
"version": "1.0.7"
}
3 changes: 1 addition & 2 deletions custom_components/solar_sunsynk/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@
"data": {
"username": "[%key:common::config_flow::data::username%]",
"password": "[%key:common::config_flow::data::password%]",
"scan_interval": "[%key:common::config_flow::data::scan_interval%]",
"region": "[%key:common::config_flow::data::region%]"
"scan_interval": "[%key:common::config_flow::data::scan_interval%]"
}
},
"reauth_confirm": {
Expand Down
17 changes: 8 additions & 9 deletions custom_components/solar_sunsynk/sunsynkapi.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@
import logging
_LOGGER = logging.getLogger(__name__)
class sunsynk_api:
def __init__(self, region, username, password,scan_interval, hass: HomeAssistant):
self.region = region
def __init__(self, username, password,scan_interval, hass: HomeAssistant):
self.hass = hass
self.username = username
self.password = password
Expand All @@ -32,11 +31,8 @@ async def request(self, method, path, body, autoAuth):
headers = {
'Content-Type': 'application/json',
}

if self.region == SunsynkApiNames.Region1:
host = 'https://pv.inteless.com/'
elif self.region == SunsynkApiNames.Region2:
host = 'https://api.sunsynk.net/'

host = 'https://api.sunsynk.net/'
url = host + path
response = await self.hass.async_add_executor_job(
partial(self._send_request, method, url, headers, body)
Expand All @@ -48,9 +44,11 @@ def _send_request(self, method, url, headers, body):
with requests.Session() as s:
s.headers = headers
if body:
response = s.request(method, url, data=json.dumps(body))
# Added verify=False to disable SSL verification
response = s.request(method, url, data=json.dumps(body), verify=False)
else:
response = s.request(method, url)
# Added verify=False to disable SSL verification
response = s.request(method, url, verify=False)
response.raise_for_status() # Raise an exception if the HTTP request returned an error status
except requests.exceptions.HTTPError as errh:
_LOGGER.error(f"HTTP Error: {errh}")
Expand All @@ -66,6 +64,7 @@ def _send_request(self, method, url, headers, body):
return None
return response.json()



async def get_inverters_data(self,id):
return await self.request('GET', f'api/v1/plant/{id}/inverters?page=1&limit=10&status=-1&sn=&id={id}&type=-2', None,True)
Expand Down

0 comments on commit 33e9d70

Please sign in to comment.