请选择 进入手机版 | 继续访问电脑版

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

 找回密码
 立即注册
查看: 7312|回复: 10

[经验分享] 用小米网关TTS整点报时

[复制链接]

1

主题

23

帖子

223

积分

论坛积极会员

积分
223
金钱
200
HASS币
0
发表于 2019-3-20 11:59:00 | 显示全部楼层 |阅读模式
本帖最后由 afeifly 于 2019-3-20 12:04 编辑

看了有朋友用小米网关报时给网关上传文件 刚刚做了类似的东西有点忍不住
网关不是早就可以TTS了吗 语音应该是自由的
我已经实现了开门问候  忘记关门提醒 自动报时 闲着没事调戏家里猫儿狗儿等等  
第一步网关配合HASS TTS
网关配置类似 这样
xiaomi_aqara:
  gateways:
   - key: XXXXXXXXXXXXXXX
     host: 192.168.1.XX

miio_acpartner:
  - platform: xiaomi_miio
    name: "XMGW" 
    host: 192.168.1.103
    token: "XXXXXXXXXXXXXXXXXXXXX"
    api_key: "XXXXXXXXXXXXXXXXXXXXXXXX"
    secret_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXX"
    base_url: "http://192.168.1.XX:8123"
    base_path: "/home/pi/.homeassistant"
    notify: true
    speed: 5
    pitch: 5
    volume: 5
    person: 0 

然后 homeassistant中就能测试这个服务了
menu.saveimg.savepath20190320112907.jpg
再做了一个React界面集成在hass里简化发送TTS的过程  因为有块小OLED屏 可选这段输入要不要顺便显示到OLED上
menu.saveimg.savepath20190320113200.jpg
第二步 准备2个python程序
报时Python程序    timereport.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import restclient
import datetime
import time
def getCurrentTime():
    localtime = time.localtime()
    theTime = time.strftime("%-H", localtime) 
    int_Time = int(theTime)
    if int_Time<=12 :
        theTime = "上午"+str(int_Time) 
    elif int_Time>12 and int_Time<19 :
        theTime = "下午"+str(int_Time-12) 
    else :
        theTime = "晚上"+str(int_Time-12) 
    return theTime;

if __name__ == '__main__':
    msg = '滴---滴!!!! 现在时刻'+getCurrentTime()+'点整!'
    restclient.send(msg)


向HASS提交Rest请求的 restclient.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
import time
import requests
import json
from requests import post
from datetime import datetime

def speak(msg):
    task = {
                'entity_id' : 'miio_acpartner.xmgw',
                'message' : msg
            }
    print(json.dumps(task))
    headers = {
            'content-type': 'application/json', 
            'Authorization':'Bearer ------------------------------------------------------'}
    url = "http://HASSIP:8123/api/services/miio_acpartner/play_tts"
    response = post(url,headers=headers,data=json.dumps(task))
    print(response.text)

def send(msg):
    speak(msg)
if __name__ == "__main__":
    try:
        send("作业做完了没呀?")
    except KeyboardInterrupt:   # ctrl+c退出
        pass

注意 'Authorization':'Bearer ------------------
填自己的HASS认证

第三步 crontab定时运行python代码
0 7,8,12,14,15,16,17,18,19,20,21,22 * * * python /home/pi/tools/timereport.py
怕吵 只选择了几个时间点报时

思路是跳跃的 代码也不一定完整 因为是从很多代码里面抠出来的. 随便玩玩 高手不要笑了  
有问题尽量回复


评分

参与人数 1金钱 +20 收起 理由
+ 20 这个网关tts我还真没用过

查看全部评分

回复

使用道具 举报

23

主题

625

帖子

4288

积分

元老级技术达人

积分
4288
金钱
3648
HASS币
30

教程狂人

QQ
发表于 2019-3-20 13:55:22 | 显示全部楼层
沙发,膜拜大神
回复

使用道具 举报

3

主题

84

帖子

869

积分

高级会员

Rank: 4

积分
869
金钱
785
HASS币
0
发表于 2019-3-20 13:58:34 | 显示全部楼层
TTS开门问候的话 会占用小米网关多少存储空间呢,还有我看你用到了小米空调助手 这个是必备吗
回复

使用道具 举报

1

主题

23

帖子

223

积分

论坛积极会员

积分
223
金钱
200
HASS币
0
 楼主| 发表于 2019-3-20 14:20:42 | 显示全部楼层
rayliu123 发表于 2019-3-20 13:58
TTS开门问候的话 会占用小米网关多少存储空间呢,还有我看你用到了小米空调助手 这个是必备吗 ...

只用了小米网关  ,空调助手和小米网关在配置上好像是一样的   开门问候的只是用hass的自动化做的脚本 后来我嫌吵人觉得不实用删掉了   小米网关没有储存任何东西的.
回复

使用道具 举报

3

主题

145

帖子

901

积分

高级会员

五岁能抬头

Rank: 4

积分
901
金钱
756
HASS币
20
发表于 2019-3-20 16:38:05 | 显示全部楼层

网关TTS 不要用了 有问题

1、会搞坏铃声 存储满 重置无法清除
2、会搞坏配网 添加子设备

都是不可修复 只能换件
回复

使用道具 举报

26

主题

551

帖子

1941

积分

金牌会员

Rank: 6Rank: 6

积分
1941
金钱
1385
HASS币
40
发表于 2019-3-20 17:15:54 | 显示全部楼层
妥妥小爱同学!!
回复

使用道具 举报

0

主题

166

帖子

4123

积分

论坛元老

Rank: 8Rank: 8

积分
4123
金钱
3957
HASS币
0
发表于 2019-3-20 18:09:28 | 显示全部楼层
謝謝分享,晚上來試試
回复

使用道具 举报

1

主题

23

帖子

223

积分

论坛积极会员

积分
223
金钱
200
HASS币
0
 楼主| 发表于 2019-3-20 22:21:05 | 显示全部楼层
chaobt 发表于 2019-3-20 16:38
网关TTS 不要用了 有问题

1、会搞坏铃声 存储满 重置无法清除

这 ...  网上有没有实际案例 或者问题讨论的地方呀  完全找不到呀 用网关做tts的人也很少 怕存储满是不是只要控制输入长度就足够了呢?
回复

使用道具 举报

7

主题

1968

帖子

5637

积分

论坛元老

流水无味

Rank: 8Rank: 8

积分
5637
金钱
3669
HASS币
145

灌水之王

发表于 2019-3-20 22:49:40 | 显示全部楼层
afeifly 发表于 2019-3-20 22:21
这 ...  网上有没有实际案例 或者问题讨论的地方呀  完全找不到呀 用网关做tts的人也很少 怕存储满是不是 ...

挂了好几个了啊,我2个都不能操作任何东西,还好可以加设备
没事也不要升级小米网关 全是坑
群里好几个同学网关铃声都被tts搞挂了
回复

使用道具 举报

3

主题

145

帖子

901

积分

高级会员

五岁能抬头

Rank: 4

积分
901
金钱
756
HASS币
20
发表于 2019-3-21 16:40:33 | 显示全部楼层
afeifly 发表于 2019-3-20 22:21
这 ...  网上有没有实际案例 或者问题讨论的地方呀  完全找不到呀 用网关做tts的人也很少 怕存储满是不是 ...

主要不是输入长度的问题,而是自定义铃声数量有限99999,但是又不能重置。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-3-29 06:23 , Processed in 0.226938 second(s), 39 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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