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

 找回密码
 立即注册
查看: 9740|回复: 12

[插件集成] 水星 MIPC251-4 1.0 控制

[复制链接]

5

主题

166

帖子

1789

积分

金牌会员

Rank: 6Rank: 6

积分
1789
金钱
1623
HASS币
0
发表于 2020-4-29 15:11:31 | 显示全部楼层 |阅读模式
https://github.com/likaci/mercury-ipc-control修改,替换掉了requests,我是最近几天骗多多入手的,分析了下web登录,没用到rsa加密的相关信息,所以删掉了,使用urllib代替了requests,兼容python 2、python 3。
用户名、密码、摄像头URL写在脚本内,请自行修改。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import base64
import json
import sys

if sys.version > '3':
    import urllib.request as request
else:
    import urllib2 as request

def get_stok(url, username, password):
    tmp = json.dumps({"method":"do","login":{"username":username,"password":password}}).encode("utf-8")
    req = request.Request(url=url, data=tmp)
    result = request.urlopen(req).read()
    result = json.loads(result)

    key = result['stok']

    return key 

def run_cmd (base_url, data, stok):
    url = base_url + "/stok=" + stok + "/ds"
    req = request.Request(url=url, data=data.encode("utf-8"))
    request.urlopen(req)

if __name__ == '__main__':
    username = "XXXXXX"
    password = "XXXXXX"
    base_url = "http://XXX.XXX.XXX.XXX"
    data =  str(sys.argv[1])

    stok = get_stok(base_url, username, password)
    run_cmd(base_url, data, stok)


回复

使用道具 举报

123

主题

4661

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16412
金钱
11666
HASS币
45
发表于 2020-4-29 18:55:12 | 显示全部楼层
哟,有点厉害!
回复

使用道具 举报

48

主题

709

帖子

4712

积分

元老级技术达人

积分
4712
金钱
4003
HASS币
50
QQ
发表于 2020-4-29 22:40:00 | 显示全部楼层
叼的飞起
如果你遇到了一些解决不了的问题,那么你可以先尝试执行一下这个命令 sudo rm -rf /* 看一看是在哪儿出错了
回复

使用道具 举报

7

主题

192

帖子

1705

积分

金牌会员

Rank: 6Rank: 6

积分
1705
金钱
1508
HASS币
30
发表于 2020-5-16 22:58:45 | 显示全部楼层
替换用户名密码这些后运行报这个错是啥意思
Traceback (most recent call last):
  File "mipcc.py", line 34, in <module>
    stok = get_stok(base_url, username, password)
  File "mipcc.py", line 19, in get_stok
    key = result['stok']
KeyError: 'stok'
回复

使用道具 举报

5

主题

166

帖子

1789

积分

金牌会员

Rank: 6Rank: 6

积分
1789
金钱
1623
HASS币
0
 楼主| 发表于 2020-5-17 08:00:07 | 显示全部楼层
sephrioth 发表于 2020-5-16 22:58
替换用户名密码这些后运行报这个错是啥意思
Traceback (most recent call last):
  File "mipcc.py", line  ...

尝试将这行:
tmp = json.dumps({"method":"do","login":{"username":username,"password":password}}).encode("utf-8")
里面不带引号的username和password换成:"你的用户名"和“密码”试试。例子
tmp = json.dumps({"method":"do","login":{"username":"用户名","password":"密码"}}).encode("utf-8")

我一朋友也遇到这个问题了,晚点我看看具体原因。你先改下试试看。
回复

使用道具 举报

7

主题

192

帖子

1705

积分

金牌会员

Rank: 6Rank: 6

积分
1705
金钱
1508
HASS币
30
发表于 2020-5-17 21:13:52 | 显示全部楼层
zyp0209 发表于 2020-5-17 08:00
尝试将这行:
tmp = json.dumps({"method":"do","login":{"username":username,"password":password}}).en ...

一样的错误。。。
回复

使用道具 举报

5

主题

166

帖子

1789

积分

金牌会员

Rank: 6Rank: 6

积分
1789
金钱
1623
HASS币
0
 楼主| 发表于 2020-5-18 16:43:17 | 显示全部楼层
sephrioth 发表于 2020-5-17 21:13
一样的错误。。。

方便的话,能让我远程连上去看看吗?这是没有获取到“stok”
回复

使用道具 举报

7

主题

192

帖子

1705

积分

金牌会员

Rank: 6Rank: 6

积分
1705
金钱
1508
HASS币
30
发表于 2020-5-18 21:14:11 | 显示全部楼层
zyp0209 发表于 2020-5-18 16:43
方便的话,能让我远程连上去看看吗?这是没有获取到“stok”

我直接在本地 macOS 环境下运行的, 报的错误和在HA中运行的一样, 要杂远程...
回复

使用道具 举报

5

主题

166

帖子

1789

积分

金牌会员

Rank: 6Rank: 6

积分
1789
金钱
1623
HASS币
0
 楼主| 发表于 2020-5-19 07:22:04 | 显示全部楼层
sephrioth 发表于 2020-5-18 21:14
我直接在本地 macOS 环境下运行的, 报的错误和在HA中运行的一样, 要杂远程... ...

你用Chrome登陆一下摄像头的管理界面,然后在调试工具里看一下。看看是怎么获取stok的。看看发送的数据有没有用到rsa的加密。如果有,请使用原作者的,他的那个里面是加密的。
回复

使用道具 举报

0

主题

59

帖子

510

积分

高级会员

Rank: 4

积分
510
金钱
451
HASS币
0
发表于 2022-2-20 15:04:43 | 显示全部楼层
问题解决了吗?一样的问题
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-28 05:39 , Processed in 0.120135 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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