Replies: 3 comments
-
Grazie! # Global values
globals:
# Arm home partitions (bitfield) as configured in alarm
- id: armed_home
type: uint8_t
restore_value: no
initial_value: '0x1'
# Arm away partitions (bitfield) as configured in alarm
- id: armed_away
type: uint8_t
restore_value: no
initial_value: '0x3' Sono 2 interi a 8 bit, ciascun bit che compone il valore rappresenta una partizione configurata nell'allarme, partendo dal bit più a destra. La cosa più comoda è usare la calcolatrice in modalità programmatore (anche quella di Windows va bene) e "accendere" i singoli bit per comporre il valore (nel mio esempio sono indicati in esadecimale e hanno il prefisso 0x, ma puoi indicarli anche in decimale). Se vuoi aggiungere una modalità di inserimento invece devi aggiungere una variabile globale oltre alle due già presenti e poi intervenire sul codice. Aggiungere un servizio: // Register services
register_service(&KyoAlarmComponent::onAlarmDisarm, "disarm", {"code"});
register_service(&KyoAlarmComponent::onAlarmArmHome, "arm_home", {"code"});
register_service(&KyoAlarmComponent::onAlarmArmAway, "arm_away", {"code"});
register_service(&KyoAlarmComponent::onAlarmReset, "reset"); Nel servizio aggiunto chiamare la funzione // Verify PIN
if (verifyPin(code) == true) {
// Build request data
if (action == "arm_home") {
// Arm home partitions request
requestData[0] = armed_home->value() & partsList;
alarmStatusSensor->publish_state("arming");
alarmStatus = AlarmStatus::ARMING;
} else if (action == "arm_away") {
// Arm away partitions request
requestData[0] = armed_away->value() & partsList;
alarmStatusSensor->publish_state("arming");
alarmStatus = AlarmStatus::ARMING;
} else if (action == "disarm") {
// Disarm partitions request
requestData[3] = partsList;
alarmStatusSensor->publish_state("pending");
alarmStatus = AlarmStatus::PENDING;
} else {
// Release UART mutex
ReleaseMutex(&uartMutex);
return;
}
[...] Impostando Non so però il comportamento in caso di configurazioni non corrispondenti a quanto impostato sull'allarme. In ogni caso puoi fare una prova. |
Beta Was this translation helpful? Give feedback.
-
Grazie delle info.. questo fine settimana sperimento |
Beta Was this translation helpful? Give feedback.
-
@manuele84, nel caso ti serva ancora, o serva a qualcun altro, la modalità di inserimento notturno adesso è supportata. |
Beta Was this translation helpful? Give feedback.
-
Complimenti per il progetto!!
Sto facendo una prova su espmcu, però non ho capito come elencare le varie partizioni per l'inserimento in casa e fuori casa.
Poi eventualmente come posso implementare anche una modalità di inserimento notturno?
Beta Was this translation helpful? Give feedback.
All reactions