Hallo,
ich habe mir drei ISC umgeflasht. Dev ID und Serial sind jeweils unterschiedlich.
Nach dem erfolgreichen Anlernen an die OCCU sehe ich den Taster auch.
Der erste Tastendruck wird noch mit grün bestätigt - danach ist aber schluss.
Wenn es nur der eine Taster wäre - O.K. aber es betrifft alle drei ISC2 (die ich originalverpackt bekommen habe).
Die ISS Schalter habe ich einbinden können. Mit dem Wandtaster WSC2 hatte ich auch keine Probleme.
Läuft der HM-PB-2-FM_ISC2.ino Sketch bei Euch?
Wo könnte mein Fehler liegen?
Lg
RWE ISC2 bleiben hängen / kein LED Licht mehr
Moderator: Co-Administratoren
-
- Beiträge: 194
- Registriert: 29.05.2019, 12:51
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 59 Mal
Re: RWE ISC2 bleiben hängen / kein LED Licht mehr
Hi, ich hatte ein ähnliches Problem und vermute das Powermanagement als Fehlerursache...
Der angehängte Sketch läuft bei mir recht stabil. Bin mir nicht sicher ob die geänderte Batteriespannungsmeßmethode oder die Schlafroutine den Unterschied macht.
Der angehängte Sketch läuft bei mir recht stabil. Bin mir nicht sicher ob die geänderte Batteriespannungsmeßmethode oder die Schlafroutine den Unterschied macht.
Code: Alles auswählen
//- -----------------------------------------------------------------------------------------------------------------------
// AskSin++
// 2016-10-31 papa Creative Commons - http://creativecommons.org/licenses/by-nc-sa/3.0/de/
// 2021-02-12 jp112sdl Creative Commons - http://creativecommons.org/licenses/by-nc-sa/3.0/de/
// 2021-02-12 re-vo-lution Creative Commons - http://creativecommons.org/licenses/by-nc-sa/3.0/de/
//- -----------------------------------------------------------------------------------------------------------------------
// ci-test=yes board=328p aes=no
// fuses & lockbits: -U lfuse:w:0xe2:m -U hfuse:w:0xd2:m -U efuse:w:0xff:m
// define this to read the device id, serial and device type from bootloader section
// #define USE_OTA_BOOTLOADER
//#define SENSOR_ONLY
//#define SIMPLE_CC1101_INIT
//#define NOCRC
//#define NDEBUG
// 2FB ist ein AT24C512B
#define STORAGEDRIVER at24cX<0x50, 512, 128>
#include <Wire.h>
#define EI_NOTEXTERNAL
//#include <EnableInterrupt.h>
#include <AskSinPP.h>
#include <LowPower.h>
#include <MultiChannelDevice.h>
#include <Remote.h>
#define LED_PIN 8
#define CONFIG_BUTTON_PIN 0
#define BTN1_PIN 14
#define BTN2_PIN 15
#define CC1101_PWR_PIN 5
#define CC1101_GDO0_PIN 2
// number of available peers per channel
#define PEERS_PER_CHANNEL 16
#define SLEEP_DELAY_MS 3000 //wait milliseconds before sleep mode
// all library classes are placed in the namespace 'as'
using namespace as;
// define all device properties
const struct DeviceInfo PROGMEM devinfo = {
{0x76, 0x41, 0xdd}, // Device ID - 01 vergeben
"HB07750109", // Device Serial - 01 vergeben
{0x00, 0xBF}, // Device Model
0x14, // Firmware Version
as::DeviceType::Remote, // Device Type
{0x00, 0x00} // Info Bytes
};
/**
Configure the used hardware
*/
typedef AvrSPI<10, 11, 12, 13> RadioSPI;
typedef Radio<RadioSPI, CC1101_GDO0_PIN, CC1101_PWR_PIN> RadioType;
typedef StatusLed<LED_PIN> LedType;
//typedef AskSin<LedType, IrqInternalBatt, RadioType> HalType;
typedef AskSin<LedType, BatterySensor, RadioType> HalType;
class Hal : public HalType {
// extra clock to count button press events
AlarmClock btncounter;
public:
void init(const HMID& id) {
HalType::init(id);
battery.init(50, btncounter);
battery.low(22);
battery.critical(19);
}
void sendPeer() {
--btncounter;
}
bool runready() {
return HalType::runready() || btncounter.runready();
}
};
typedef RemoteChannel<Hal, PEERS_PER_CHANNEL, List0> ChannelType;
typedef MultiChannelDevice<Hal, ChannelType, 2> RemoteType;
Hal hal;
RemoteType sdev(devinfo, 0x20);
ConfigButton<RemoteType> cfgBtn(sdev);
void setup() {
DINIT(57600, ASKSIN_PLUS_PLUS_IDENTIFIER);
sdev.init(hal);
remoteISR(sdev, 1, BTN1_PIN);
remoteISR(sdev, 2, BTN2_PIN);
buttonISR(cfgBtn, CONFIG_BUTTON_PIN);
sdev.initDone();
DDEVINFO(sdev);
}
class PowerOffAlarm : public Alarm {
private:
bool timerActive;
public:
PowerOffAlarm() : Alarm(0), timerActive(false) {}
virtual ~PowerOffAlarm() {}
void activateTimer(bool en) {
if (en == true && timerActive == false) {
sysclock.cancel(*this);
set(millis2ticks(SLEEP_DELAY_MS));
sysclock.add(*this);
}
else if (en == false) {
sysclock.cancel(*this);
}
timerActive = en;
}
virtual void trigger(__attribute__((unused)) AlarmClock& clock) {
powerOff();
}
void powerOff() {
hal.led.ledOff();
hal.radio.setIdle();
//hal.battery.setIdle();
DPRINT('.');
delay(5);
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
DPRINT(':');
//hal.battery.unsetIdle();
DPRINT(F("iVcc:")); DPRINTLN(hal.battery.current());
}
} pwrOffAlarm;
void loop() {
bool worked = hal.runready();
bool poll = sdev.pollRadio();
pwrOffAlarm.activateTimer(hal.activity.stayAwake() == false && worked == false && poll == false);
}
-
- Beiträge: 11916
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 828 Mal
- Danksagung erhalten: 2080 Mal
- Kontaktdaten:
Re: RWE ISC2 bleiben hängen / kein LED Licht mehr
Hmm, Batteriemessung dürfte es nicht sein, da es kein "sleepForever" bei battery critical gibt.
Also selbst wenn da Mist gemessen wird, dürft es maximal eine "LOW BAT" Warnung in der CCU geben.
Im Original-Thread viewtopic.php?f=76&t=65461 war mal Thema, dass die Strom-Abschaltung des CC1101 evtl. Probleme verursacht.
Vielleicht ein etwas höheres Delay verwenden https://github.com/pa-pa/AskSinPP/blob/ ... 101.h#L244