吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1126|回复: 7
收起左侧

[Python 原创] 通过homeassistant平台控制智能家居脚本

[复制链接]
脚滑的狐狸丷 发表于 2024-8-8 10:59
本代码的前提是:
1. 正在使用homeassistant控制智能家居设备

[Python] 纯文本查看 复制代码
#!/usr/bin/env python
# -- coding: utf-8 --
import datetime
import json
import urllib.request
import urllib.parse
import requests
import schedule
import time
import urllib

corpid = "wxx64"
secret = "OxxxxlbE0k"
agentid = "10xxx"
txt = '早上好,公司空调按任务进行中...温度:17°;模式:制冷...'


# 定义任务函数
def task():
    resp = requests.get('http://ip/api/webhook/test-PU0A1g6YvaQUIPCkZoZ0LrhQ')
    send_it()
    print('指令已下发...')


def get_token():
    url = f'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corpid}&corpsecret={secret}'
    resp = requests.get(url=url)
    json_dict = resp.json()
    hosts = json_dict.get('access_token')
    if resp.status_code != 200:
        print('请求失败,请检查url')
        return
    return hosts


def send_it():
    now = datetime.datetime.now().strftime('%Y-%m-%d')
    txt1 = '已经按照指令将空调模式全部设置为: 温度:17度,模式:Cooling... 预祝今天行程万事顺意~'
    txt2 = '任务进行中...温度:17°;模式:制冷...'
    content = now + ' ' + txt1
    web = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={}'.format(get_token())
    form_data = {
        "touser": "@all",  # 接收人
        "msgtype": "textcard",
        "agentid": agentid,  # 应用ID
        "textcard": {
            "title": "叮~   " + txt2,
            "description": content,
            'url': 'https://api.yimian.xyz/img?type=wallpaper&R18=true',
            "btntxt": "随机风景"
        },
        "safe": 0
    }
    send_msg_res = requests.post(url=web, data=json.dumps(form_data))
    json_dict = send_msg_res.json()
    hosts = json_dict.get('errcode')
    if hosts == 60020:
        print('------------------------')
        print(now)
        print('转短信通知ing...')
        send()
    else:
        print('------------------------')
        print(now)
        print('已发送')


# 发送短信通知
def send():
    txt4 = '任务进行中...温度:17°;模式:制冷...'
    smsapi = "https://axxxao.com/"
    user = 'janxxoer'
    password = 'ba39axxxd9xxx2xx7'
    content = "微信通知异常!\n" + txt4 + '\n预祝今日万事顺意~'
    phone = 'xxxxxx'

    data = urllib.parse.urlencode({'u': user, 'p': password, 'm': phone, 'c': content})
    send_url = smsapi + 'sms?' + data
    response = urllib.request.urlopen(send_url)
    # the_page = response.read().decode('utf-8')
    # if the_page.status():


schedule.every().day.at("09:00").do(task)
if __name__ == '__main__':
    # 定义周一到周六的任务
    # 正在进行中
    print('正在进行中...')
    while True:
        # print('正在进行中...')
        schedule.run_pending()
        time.sleep(2)


如有更好的想法,欢迎沟通一起学习!

免费评分

参与人数 2吾爱币 +8 热心值 +2 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
0120 + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

huaqiaoant 发表于 2024-8-8 13:59
虽然没啥用,但感谢分享。哈哈
littlecow 发表于 2024-8-8 14:04
感谢分享,顺便问他一下,用的短信平台是什么,网址访问不通
头像被屏蔽
wuligiao 发表于 2024-8-8 14:41
 楼主| 脚滑的狐狸丷 发表于 2024-8-8 16:07
wuligiao 发表于 2024-8-8 14:41
是必须要homeassistant控制的设备吗?还是智能设备就可以通过homeassistant来控制

我是全米家设备,然后部署了hass平台进行更极客化管理智能设备,然后hass平台有一个webhook功能,可以通过脚本写任务,调用webhook执行相关的任务
 楼主| 脚滑的狐狸丷 发表于 2024-8-8 16:08
littlecow 发表于 2024-8-8 14:04
感谢分享,顺便问他一下,用的短信平台是什么,网址访问不通

短信平台我使用的这个其实百度有很多,你可以搜一下,或者去我另外一个帖子上有完整的Url地址,我不知道这算不算广告,所以我就不在这里告诉你了。
小小小酥 发表于 2024-8-9 10:34
感谢大佬分享
AutumnLee 发表于 2024-11-21 15:47
ha镜像哪个好用?直接官网下吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-18 10:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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