ser009 писал(а): ↑Вс июл 29, 2018 12:51 pm
код в студию
Код: Выделить всё
// pins (объявление переменных вначале вкладки)
const byte PIRNUM=6;
byte PIRPIN[PIRNUM] ={39,41,43,45,47,49};
// states
byte PIRSTATE[PIRNUM];
char* PIRNAME[PIRNUM]={"LIV","BED", "KID", "KUH", "WCR", "PRH"};
byte CONNREL[PIRNUM] ={0,2,4,5,6,7}; //реле, связанные с датчиками (основные)
byte PIR[PIRNUM];
// works
void pirsWorks() {
for(byte i=0; i<PIRNUM; i++) {
PIR[i] = digitalRead(PIRPIN[i]);
if (PIR[i] == HIGH) {
rel_timer_refrash(CONNREL[i]); if(CONNREL[i]==0||CONNREL[i]==2) rel_timer_refrash(CONNREL[i]+1);
if (PIRSTATE[i] == LOW) {
detect(PIRNAME[i]);
pir_on(CONNREL[i]); ; if(CONNREL[i]==0||CONNREL[i]==2) pir_on(CONNREL[i]+1);//включаем привязанное реле в автоматическом/эко режиме.
PIRSTATE[i] = HIGH;
#ifdef MAJORDOMO_FEATURE
sendRequestM(PIRNAME[i], 1);
#endif
}
} else {
if (PIRSTATE[i] == HIGH){
endMmotion(PIRNAME[i]);
PIRSTATE[i] = LOW;
#ifdef MAJORDOMO_FEATURE
sendRequestM(PIRNAME[i], 0);
#endif
}
}
}
} // pirsWorks()
Вот похожий код для пиров. Для контактов примерно так же делается.
А это отправка в server_ajax
Код: Выделить всё
#ifdef PIRS_FEATURE
String makePirs() {
String s = "";
for(byte i=0; i<PIRNUM; i++) {
s += makeTag(BASE_PIR, String(i), String(PIR[i]));
}
return s;
}
#endif
Код с 0.16 версии, 0.17 ещё не смотрел пока.
Кстати тут же ответ на вопрос предыдущего поста))) прочитал его позже, чем этот ответ писал.