接入小度音箱 奇怪的问题-Arduino中文社区 - Powered by Discuz! Archiver

tangteng 发表于 2019-5-4 12:12

接入小度音箱 奇怪的问题

本帖最后由 tangteng 于 2019-5-4 14:45 编辑


设备为esp8266 nodeMCU
按照Blinker例程----ALIGENIE_OUTLET-----
只修改了
char auth[] = "XXXX";
char ssid[] = "XXXX";
char pswd[] = "XXX";

app添加了设备,正常在线。
天猫精灵添加设备,同步后,一些正常,可以对天猫精灵说 打开XX的插座。。关闭。。。等等。 对应LED会亮灭。

但是用---DuerOS_OUTLET-----
同样修改后, 小度同步设备后,不能开关,只能查询。。看图吧。

插座还有多少电。。。。:L

然后重新编译上传,重新添加设备,重新绑定小度。 还是这个样子。。

换个 ----DUEROS_MULTI_OUTLET---- 用这个示例代码
结果



还是让我查询。。



这应该不是程序的问题的吧,用的blinker官方示例, ALIGENIE_OUTLET示例在天猫精灵上都是没问题的。
求大神们讲解一下怎么解决。。




--------------------------------------------------------------------------------------------
感谢回复,对小度说,卧室的插座运行到什么状态了,卧室的插座还有多少电,回复说:控制失败了,请联络该平台的售后服务。
对小度说,打开卧室的插座,或者开启卧室的插座,关闭卧室的插座, 回复说:卧室的插座还不支持这个操作。。
以下为aligenie的示例代码debug输出和dueros示例代码的debug输出



小度依然不能控制。

#define BLINKER_WIFI
#define BLINKER_DUEROS_OUTLET

#include <Blinker.h>

char auth[] = "xxxxxxxxxxx";
char ssid[] = "xxxxxxxxxxx";
char pswd[] = "xxxxxxxxxxx";

bool oState = false;

void duerPowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {
      digitalWrite(LED_BUILTIN, HIGH);

      BlinkerDuerOS.powerState("on");
      BlinkerDuerOS.print();

      oState = true;
    }
    else if (state == BLINKER_CMD_OFF) {
      digitalWrite(LED_BUILTIN, LOW);

      BlinkerDuerOS.powerState("off");
      BlinkerDuerOS.print();

      oState = false;
    }
}

void duerQuery(int32_t queryCode)
{
    BLINKER_LOG("DuerOS Query codes: ", queryCode);

    switch (queryCode)
    {
      case BLINKER_CMD_QUERY_TIME_NUMBER :
            BLINKER_LOG("DuerOS Query time");
            BlinkerDuerOS.time(millis());
            BlinkerDuerOS.print();
            break;
      default :
            BlinkerDuerOS.time(millis());
            BlinkerDuerOS.print();
            break;
    }
}

void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);

    Blinker.vibrate();
   
    uint32_t BlinkerTime = millis();
    Blinker.print(BlinkerTime);
    Blinker.print("millis", BlinkerTime);
}

void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
    BLINKER_DEBUG.debugAll();

    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, LOW);

    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
   
    BlinkerDuerOS.attachPowerState(duerPowerState);
    BlinkerDuerOS.attachQuery(duerQuery);
}

void loop()
{
    Blinker.run();
}

奈何col 发表于 2019-5-4 12:51

小度app那个提示,只是个提示,并不是说只支持这些指令,实际应该是可以控制。
如果实际控制有问题,可以开启调试功能,看debug信息
https://www.arduino.cn/thread-84332-1-1.html

tangteng 发表于 2019-5-4 14:55

感谢回复,这是dueros调试信息,

zhzrat 发表于 2019-5-4 17:10

同上问题,今天5月4日,试了多次,小度提示音:发生***错误,请联系服务商。

zhzrat 发表于 2019-5-4 17:14

https://blinker.app/的网站打开慢,APP在小度中授权也相对较慢

zhzrat 发表于 2019-5-4 17:39

D1 用blinker app控制另外还有个问题,按钮可以控制LED开关,但是我不用APP,灯也隔几秒开关一次!
Connecting to MQTT...
MQTT Connected!
Freeheap: 9976
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap
get button state: tap   -------这之前板子LED灯几秒反复开关
MQTT Ping!      ------灯灭了
MQTT Ping!
重新再APP点按钮,板子自己又开始反复开关灯
???估计是时间状态验证的问题

奈何col 发表于 2019-5-4 17:45

zhzrat 发表于 2019-5-4 17:39
D1 用blinker app控制另外还有个问题,按钮可以控制LED开关,但是我不用APP,灯也隔几秒开关一次!
...
1.网站是境外网站,慢是正常的
2.小度授权慢和网站速度无关,两者用的不是一个服务器,且我这边测试是正常的
3.请先更新最新的库和app,再测试,如果还是有问题,那可能是你的程序逻辑有问题

奈何col 发表于 2019-5-4 17:47

tangteng 发表于 2019-5-4 14:55
感谢回复,这是dueros调试信息,

1.你的截图里,没有小度相关信息
2.请更新最新版本的blinker lib再测试,如果还有问题,请按提问指南发帖提问

https://www.arduino.cn/thread-83658-1-1.html

三水 发表于 2019-5-7 12:51

小度插座控制问题已修复,建议重新绑定及更新库测试

zhzrat 发表于 2019-5-7 22:18

app mqtt添加设备中,里面好几个云,只支持阿里云,然后复制key的,是这原因不支持小度?
页: [1] 2
查看完整版本: 接入小度音箱 奇怪的问题