Es wäre sinnvoll diese Grenzwerte mit Hilfe des Web-UI in der CCU einzustellen, wie z.B. es derzeitig für Temperatur-Offset, Low-Battery und Sendeintervall möglich ist.
Nur zu meinem Anliegen:
1. Besteht die Möglichkeit den Sketch so zu erweitern, dass die Grenzwerte TEIN und TAUS beim Anlernen in der CCU angelegt werden?
2. Falls das möglich ist, wie kann ich diese Werte im Sketch auslesen, damit ich sie als Bedingung für das Schalten des Relais benutzen kann?
Ich glaube ich habe die entsprechende Definition im aktuellen Sketch gefunden, wo die aktuellen Register angelegt werden. Leider bin ich nicht in der Lage, diese Definitionen so zu verstehen, dass ich daraus folgern könnte, wie ich meine 2 Register hinzufügen kann und benötige dafür eure Hilfe.
Code: Alles auswählen
DEFREGISTER(UReg0, MASTERID_REGS, DREG_LOWBATLIMIT, 0x21, 0x22)
class UList0 : public RegList0<UReg0> {
public:
UList0 (uint16_t addr) : RegList0<UReg0>(addr) {}
bool Sendeintervall (uint16_t value) const {
return this->writeRegister(0x21, (value >> 8) & 0xff) && this->writeRegister(0x22, value & 0xff);
}
uint16_t Sendeintervall () const {
return (this->readRegister(0x21, 0) << 8) + this->readRegister(0x22, 0);
}
void defaults () {
clear();
lowBatLimit(22);
Sendeintervall(180);
//Sendeintervall(60);
}
};
DEFREGISTER(UReg1, 0x01, 0x02, 0x03, 0x04)
class UList1 : public RegList1<UReg1> {
public:
UList1 (uint16_t addr) : RegList1<UReg1>(addr) {}
bool Offset (int32_t value) const {
return
this->writeRegister(0x01, (value >> 24) & 0xff) &&
this->writeRegister(0x02, (value >> 16) & 0xff) &&
this->writeRegister(0x03, (value >> 8) & 0xff) &&
this->writeRegister(0x04, (value) & 0xff)
;
}
int32_t Offset () const {
return
((int32_t)(this->readRegister(0x01, 0)) << 24) +
((int32_t)(this->readRegister(0x02, 0)) << 16) +
((int32_t)(this->readRegister(0x03, 0)) << 8) +
((int32_t)(this->readRegister(0x04, 0)))
;
}
void defaults () {
clear();
Offset(0);
}
};