『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
楼主: cubicpill

[插件集成] 南方电网电费数据集成,支持用户名和密码直接登陆

  [复制链接]

0

主题

561

帖子

2175

积分

金牌会员

Rank: 6Rank: 6

积分
2175
金钱
1614
HASS币
0
发表于 2022-11-19 22:38:30 | 显示全部楼层
大佬,这是大佬
回复

使用道具 举报

50

主题

242

帖子

4274

积分

元老级技术达人

积分
4274
金钱
4022
HASS币
80
发表于 2022-11-19 22:53:06 | 显示全部楼层
cubicpill 发表于 2022-11-19 22:04
感谢建议!
密码存储的话个人感觉用公钥加密之后存储意义不大,因为直接拿到加密后的那串字符串也可以用 ...

考虑很多用户会使用通用密码,加密存储的本意是防止密码泄漏到其他平台,明文存储不是个好主意。同时也要考虑配置完成后密码被修改的情况。密码登录的接口不稳定,在不使用滑动验证码的情况下有时候会有一些错误返回,做好日志打印。
没意思,跑路了
回复

使用道具 举报

2

主题

33

帖子

562

积分

论坛技术达人

积分
562
金钱
524
HASS币
20
 楼主| 发表于 2022-11-19 23:15:02 | 显示全部楼层
ryanh7 发表于 2022-11-19 22:53
考虑很多用户会使用通用密码,加密存储的本意是防止密码泄漏到其他平台,明文存储不是个好主意。同时也要 ...

目前准备暂时维持现有实现不变,后续可以考虑直接用加密后的密文登陆(相当于一个多次使用的token),不过我还是觉得,防止密码泄露是用户自己的责任。
配置完成后密码被修改会触发登陆失败,然后启动HA自带的reauth flow,应该不是问题。
回复

使用道具 举报

4

主题

41

帖子

205

积分

中级会员

Rank: 3Rank: 3

积分
205
金钱
164
HASS币
0
发表于 2022-11-20 00:23:54 | 显示全部楼层
slwl 发表于 2022-11-19 20:52
湖南人民是不是用的国家电网?

湖南用的是国网,可以登录微信看即可确认。
回复

使用道具 举报

0

主题

29

帖子

536

积分

高级会员

Rank: 4

积分
536
金钱
507
HASS币
0
发表于 2022-11-20 09:20:48 | 显示全部楼层
cubicpill 发表于 2022-11-19 21:56
可以麻烦发一下日志吗?我感觉可能对于不同省份有些返回结构不一定一样,我只测试过广东的 ...

我也是广东的



Logger: aiohttp.server
Source: custom_components/china_southern_power_grid_stat/csg_client/__init__.py:523
Integration: China Southern Power Grid Statistics (documentation, issues)
First occurred: 09:15:33 (3 occurrences)
Last logged: 09:16:54
Error handling request

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/aiohttp/web_protocol.py", line 435, in _handle_request
    resp = await request_handler(request)
  File "/usr/local/lib/python3.10/site-packages/aiohttp/web_app.py", line 504, in _handle
    resp = await handler(request)
  File "/usr/local/lib/python3.10/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 82, in ban_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 236, in auth_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 136, in handle
    result = await result
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 241, in post
    return await super().post(request, flow_id)
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 73, in wrapper
    result = await method(view, request, data, *args, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 110, in post
    result = await self._flow_mgr.async_configure(flow_id, data)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 280, in async_configure
    result = await self._async_handle_step(
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 367, in _async_handle_step
    result: FlowResult = await getattr(flow, method)(user_input)
  File "/config/custom_components/china_southern_power_grid_stat/config_flow.py", line 175, in async_step_init
    return await self.async_step_add_account()
  File "/config/custom_components/china_southern_power_grid_stat/config_flow.py", line 232, in async_step_add_account
    accounts = await self.hass.async_add_executor_job(
  File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/china_southern_power_grid_stat/csg_client/__init__.py", line 523, in get_all_electricity_accounts
    AreaCode(item["areaCode"]),
  File "/usr/local/lib/python3.10/enum.py", line 385, in __call__
    return cls.__new__(cls, value)
  File "/usr/local/lib/python3.10/enum.py", line 710, in __new__
    raise ve_exc
ValueError: '032000' is not a valid AreaCode

回复

使用道具 举报

4

主题

59

帖子

516

积分

高级会员

Rank: 4

积分
516
金钱
457
HASS币
0
发表于 2022-11-20 10:38:31 | 显示全部楼层
同广东的,汕头   Unknown error occurred在绑定缴费号的时候也是显示未知错误
回复

使用道具 举报

5

主题

227

帖子

2679

积分

金牌会员

Rank: 6Rank: 6

积分
2679
金钱
2452
HASS币
0
发表于 2022-11-20 13:26:08 来自手机 | 显示全部楼层
广西用户点添加已绑定的缴费号时候出现 Unknown error occurred
回复

使用道具 举报

2

主题

33

帖子

562

积分

论坛技术达人

积分
562
金钱
524
HASS币
20
 楼主| 发表于 2022-11-20 15:57:25 | 显示全部楼层

已经修复,麻烦更新一下看看是否解决?
回复

使用道具 举报

1

主题

83

帖子

549

积分

高级会员

Rank: 4

积分
549
金钱
466
HASS币
0
发表于 2022-11-20 18:48:33 | 显示全部楼层
在你的github被南网本部信息中心通知移除前赶紧folk一个私藏,哈哈
回复

使用道具 举报

0

主题

29

帖子

536

积分

高级会员

Rank: 4

积分
536
金钱
507
HASS币
0
发表于 2022-11-20 19:34:09 | 显示全部楼层
cubicpill 发表于 2022-11-20 15:57
已经修复,麻烦更新一下看看是否解决?

已经可以了·····
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-25 08:13 , Processed in 1.564849 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表