before test

master
iotcat 5 years ago
parent 75e499ad84
commit 3615f26f75
  1. 17
      src/din/din.ino

@ -2,7 +2,7 @@
* @Author: IoTcat (https://iotcat.me)
* @Date: 2019-08-20 09:57:58
* @Last Modified by:
* @Last Modified time: 2019-08-30 14:21:56
* @Last Modified time: 2019-08-30 14:44:11
*/
#include <PubSubClient.h>
@ -37,6 +37,8 @@ Relay light(D5);
Mode mode;
LightCtl lightCtl(&light, &led, &mode);
int pirCnt = 0; //计数区域内激活的pir个数
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
@ -133,12 +135,21 @@ void loop() {
p[i].loop();
if(p[i].isPeopleIn()){
client.publish(String("hass/snsr/"+clientId+"/p"+i).c_str(), "1");
pirCnt ++;
}
if(p[i].isPeopleOut()){
client.publish(String("hass/snsr/"+clientId+"/p"+i).c_str(), "0");
pirCnt --;
}
}
// Auto & offline Mode
if(pirCnt < 0 || pirCnt > pirNum) pirCnt = 0;
if(mode.isAuto() && mode.isOffline()){
if(pirCnt > 1) lightCtl.on();
else lightCtl.off();
}
// lightCtl trigger
if(lightCtl.isStateChange()){
client.publish(String("hass/snsr/"+clientId+"/lightCtl").c_str(), String(lightCtl.getStatus()).c_str());
@ -232,7 +243,7 @@ void mqtt_mode(const String& subject, const String& content){
}
void mqtt_lightCtl(const String& subject, const String& content){
if(subject == String("hass/ctl/"+clientId+"/lightCtl")){
if(mode.isAuto() && !mode.isOffline() && subject == String("hass/ctl/"+clientId+"/lightCtl")){
if(content == "0"){
lightCtl.off();
}
@ -257,7 +268,7 @@ void mqtt_buz(const String& subject, const String& content){
/**** swi ****/
void swiToggle(){
client.publish(String("hass/snsr/"+clientId+"/swi").c_str(), String(swi.state()).c_str());
lightCtl.toggle();
}

Loading…
Cancel
Save