|
本帖最后由 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-----
同样修改后, 小度同步设备后,不能开关,只能查询。。看图吧。
图1
插座还有多少电。。。。
然后重新编译上传,重新添加设备,重新绑定小度。 还是这个样子。。
换个 ----DUEROS_MULTI_OUTLET---- 用这个示例代码
结果
图2
图3
还是让我查询。。
这应该不是程序的问题的吧,用的blinker官方示例, ALIGENIE_OUTLET示例在天猫精灵上都是没问题的。
求大神们讲解一下怎么解决。。
--------------------------------------------------------------------------------------------
感谢回复,对小度说,卧室的插座运行到什么状态了,卧室的插座还有多少电,回复说:控制失败了,请联络该平台的售后服务。
对小度说,打开卧室的插座,或者开启卧室的插座,关闭卧室的插座, 回复说:卧室的插座还不支持这个操作。。
以下为aligenie的示例代码debug输出和dueros示例代码的debug输出
小度1
小度2
天猫精灵1
天猫精灵2
小度依然不能控制。
#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();
}
|
|