最近装了太阳能板,想用 lambda + grafana + prometheus 爬一下逆变器的各种数据做个简单的 dashboard.
然后发现华为光伏的 API 文档写的实在有点粗糙..
还有一些不能理解的地方:
curl -vkX POST \
'https://au1.fusionsolar.huawei.com:27200/openApi/login?userName=FOO&password=BAR'
* Trying 54.153.220.93...
* TCP_NODELAY set
* Connected to au1.fusionsolar.huawei.com (54.153.220.93) port 27200 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: /etc/ssl/cert.pem
CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Request CERT (13):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / AES128-SHA
* ALPN, server did not agree to a protocol
* Server certificate:
* subject: C=CN; ST=Guangdong; L=Shenzhen; O=Huawei; OU=Network Energy; CN=NetEcoServer
* start date: Mar 18 01:23:06 2015 GMT
* expire date: Mar 13 01:23:06 2035 GMT
* issuer: C=CN; O=huawei; OU=Network Energy; CN=NEPL PKI
* SSL certificate verify result: self signed certificate in certificate chain (19), continuing anyway.
> POST /openApi/login?userName=FOO&password=BAR HTTP/1.1
> Host: au1.fusionsolar.huawei.com:27200
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Tue, 08 Oct 2019 13:02:55 GMT
< Set-Cookie: JSESSIONID=1jsi0rnxij5mzokex34wnr7ig;Path=/;Secure;HttpOnly
< Expires: Thu, 01 Jan 1970 00:00:00 GMT
< Cache-Control: no-cache
< X-Frame-Options: SAMEORIGIN
< X-Download-Options: noopen
< X-XSS-Protection: 1;mode=block
< Strict-Transport-Security: max-age=31536000;includeSubdomains
< X-Content-Type-Options: nosniff
< Vary: Accept-Encoding, User-Agent
< Transfer-Encoding: chunked
<
{"errorMsg":309}
* Connection #0 to host au1.fusionsolar.huawei.com left intact
文档参考:
1
droiz 2019-10-08 21:13:33 +08:00 1
凭我对华为软件部门的了解,这属于正常操作...
|
2
paulw54jrn OP 相比之下硬件文档实在强太多了
https://support.huawei.com/enterprise/en/doc/EDOC1100011912 ---- self sign 和用户名密码走 query string 真的不能忍 |
3
nosilence 2019-10-08 21:22:47 +08:00
正常操作,正常操作
|
4
saulshao 2019-10-08 22:16:13 +08:00
这个属于软件部门的正常水平,要知道申请个证书是需要某级别领导审批的。根本就说不清楚为什么这东西还要花钱?
|
5
wangyzj 2019-10-08 22:32:38 +08:00
谁说一定要走 jwt 模式或者 header auth 模式就一定是好的?
证书也是钱啊 200+errcode 也挺好,省着 catch 了 |
6
xabc 2019-10-08 22:48:13 +08:00 via iPhone
我的问题,卤煮房子是别墅独栋那种 还是 普通顶层?
|
7
hakono 2019-10-08 22:53:59 +08:00 2
证书太贵,需要领导审批
response 一律 200 附带错误码,是因为需要自定义大量错误码自己处理 把账号密码放到 url 里传……………………………… 对不起,我真的编不下去了,没法洗地了………… |
8
paulw54jrn OP @wangyzj
没有人说一定要走 JWT 或者 header auth. 但是用户名密码走 Query string 这个怎么洗? 用户名密码全部明文记在了 Http log 里面这么基础的安全问题怎么洗? 关于证书要花钱,这么大个企业一年千把块人民币真的出不起吗?现在导致 https 形同虚设 |
9
OSF2E 2019-10-09 08:26:51 +08:00
可能是造火箭的团队临时被拉过来拧螺丝吧
|
10
serge001 2019-10-09 09:05:04 +08:00
可能是外包做的
|
11
sunziren 2019-10-09 09:13:25 +08:00
你住别墅?
|
12
stoneabc 2019-10-09 09:24:34 +08:00
这种可能真的是外包做的…
|
13
qwerthhusn 2019-10-09 09:30:20 +08:00
八成是外包搞的,因为我曾经干过华为的外包。。。
没有 80/443 端口给用 没有证书(外包给的外网权限非常低,大部分网站都访问不了,当然也没发领个免费的证书) http 200 一把梭,这个很正常 |
14
cloudzhou 2019-10-09 09:31:33 +08:00
@paulw54jrn 但是我看文档,通过 POST 传递,所以你用 form 提交也是可以的,只是你自己的代码怎么写而已
|
15
collery 2019-10-09 09:32:19 +08:00
嗯,都是外包的锅。毕竟除了硬件都是外包
|
16
alphatoad 2019-10-09 10:50:40 +08:00 via iPhone
讲道理,有 https 账号密码放 query 不是一个特别大的问题
|
19
Juggernaut 2019-10-09 13:14:24 +08:00
华为就这水平
|
20
aguesuka 2019-10-09 15:22:47 +08:00 via Android
正常,海康的接口还是 http,hash 做检验。转动全省 500 多个球机的 aip
|
21
subpo 2019-10-09 15:25:18 +08:00
对华为的软件水平无力吐槽
对楼主装的光伏很感兴趣,详细说说? |
22
jjshare 2019-10-09 16:13:26 +08:00
朋友多大的屋顶,大概费用多少,我最近寻思着是不是要出一个家用智能光伏解决方案
|
23
wind98 2019-10-09 16:15:23 +08:00
外包做的,毕竟是硬件公司
|
24
seansong 2019-10-09 16:25:50 +08:00
登陆失败返回 200 很正常吧,http 状态码指的是你的协议请求是否成功了,而登陆失败是业务状态,协议返回 200,业务状态码返回登陆失败,这不是常规操作么
|
25
paulw54jrn OP @cloudzhou 嗯,说的对,后来又试了一下走 `application/x-www-form-urlencoded` 在 POST body 里面是可行的。
被 https://forum.huawei.com/enterprise/en/communicating-with-neteco-through-an-openapi-user/thread/512431-100027 这里面的截图带歪了,里面走的是 query string |
26
paulw54jrn OP @jjshare
屋顶具体面积没量过. 目前方案是: - 20 片 日升 RSM120-6-330M http://www.risenenergy.com/uploadfile/201908/85d961e3f3.pdf - 华为 SUN20005KTL - 正泰 DTSU666-H 电表 因为不在国内安装,具体费用可能参考价值不大。 |
27
paulw54jrn OP |
28
bwd1991 2019-10-09 20:22:19 +08:00
把华为想的太高了?
ppt 公司 |
29
Chry3anthemum 2019-10-09 20:26:27 +08:00 via Android
@bwd1991 软件同意,硬件那波是在难以苟同
|
30
realpg 2019-10-09 20:44:59 +08:00
华为基本盘……
你这是没见到曾经的 mib file |
32
lolizeppelin 2019-10-09 22:02:19 +08:00
我来洗
内部 http 服务为了性能简化了功能,会忽略所有 body 数据,这不就结了 |