AskSin++ Wake On Radio (WoR)
Moderator: Co-Administratoren
- stan23
- Beiträge: 2030
- Registriert: 13.12.2016, 21:14
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Altmühltal
- Hat sich bedankt: 576 Mal
- Danksagung erhalten: 335 Mal
- Kontaktdaten:
Re: AskSin++ Wake On Radio (WoR)
Wir haben 2 Möglichkeiten die Registersettings zu vergleichen:
1. SPI-Mitschnitt vom Originalgerät gegen AskSin++ Code
2. SPI-Mitschnitt vom Originalgerät gegen SPI-Mitschnitt vom AskSin++ Gerät
Bei 1. tue ich mich etwas schwer, weil mir die Abläufe nicht ganz klar sind.
Was meint ihr?
1. SPI-Mitschnitt vom Originalgerät gegen AskSin++ Code
2. SPI-Mitschnitt vom Originalgerät gegen SPI-Mitschnitt vom AskSin++ Gerät
Bei 1. tue ich mich etwas schwer, weil mir die Abläufe nicht ganz klar sind.
Was meint ihr?
Viele Grüße
Marco
RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)
Marco
RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)
-
- Beiträge: 12085
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 847 Mal
- Danksagung erhalten: 2139 Mal
- Kontaktdaten:
Re: AskSin++ Wake On Radio (WoR)
Du sagtest ja, dass eQ3 alle Register setzt.
Vielleicht wäre es schon mal hilfreich, wenn wir die Register aus deiner Excel-Tabelle komplett setzen.
Ich habe das ePaper Display seit gestern Nachmittag mit WoR im Einsatz und bisher noch keine Kommunikationsstörung gehabt.
Was jedoch heut früh nicht funktioniert hat, war ein mit einem der Taster direktverknüpfter Aktor. Der sprach trotz mehrmaligem Drücken nicht an... muss ich aber erstmal schauen, ob nicht das Storage neu initialisiert wurde, durch meine Spielereien gestern.
- stan23
- Beiträge: 2030
- Registriert: 13.12.2016, 21:14
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Altmühltal
- Hat sich bedankt: 576 Mal
- Danksagung erhalten: 335 Mal
- Kontaktdaten:
Re: AskSin++ Wake On Radio (WoR)
Bei der Initialisierung, also nach dem Power On, richtig.
Allerdings lässt AskSin++ nur die Register weg, die eQ-3 mit dem Default-Wert beschreiben würde.
Ich dachte eher an die Register die dynamisch geschrieben werden: beim Aufwachen, zwischendrin und als WoR-Vorbereitung beim Schlafengehen.
Viele Grüße
Marco
RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)
Marco
RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)
-
- Beiträge: 12085
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 847 Mal
- Danksagung erhalten: 2139 Mal
- Kontaktdaten:
Re: AskSin++ Wake On Radio (WoR)
Habs jetzt noch mal mit dem HM-LC-Sw1-BA-PCB Sketch aus dem examples-Ordner auf nem Pro Mini (8MHz ext.) laufen lassen.
Nach 45 Minute Ruhezeit ließ sich der Aktor auf Anhieb wieder schalten.
-
- Beiträge: 705
- Registriert: 22.05.2018, 10:23
- Hat sich bedankt: 24 Mal
- Danksagung erhalten: 120 Mal
Re: AskSin++ Wake On Radio (WoR)
Auch mit dem aktuellen Code aus dem WOR Branch ?
Anfragen zur AskSin++ werden nur im Forum beantwortet
-
- Beiträge: 12085
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 847 Mal
- Danksagung erhalten: 2139 Mal
- Kontaktdaten:
Re: AskSin++ Wake On Radio (WoR)
Jap, heut früh frisch geklont. Dein commit war ja noch gestern Abend.
Code: Alles auswählen
//- -----------------------------------------------------------------------------------------------------------------------
// AskSin++
// 2016-10-31 papa Creative Commons - http://creativecommons.org/licenses/by-nc-sa/3.0/de/
//- -----------------------------------------------------------------------------------------------------------------------
// define this to read the device id, serial and device type from bootloader section
// #define USE_OTA_BOOTLOADER
// toggle a GPIO to correlate ATMega execution (e.g. wakeup) with SPI on logic analyzer
//#define DEBUG_PIN 6
#define USE_WOR
#define EI_NOTEXTERNAL
#include <EnableInterrupt.h>
#include <AskSinPP.h>
#include <LowPower.h>
#include <Switch.h>
// we use a Pro Mini
// Arduino pin for the LED
// D4 == PIN 4 on Pro Mini
#define LED_PIN 4
// Arduino pin for the config button
// B0 == PIN 8 on Pro Mini
#define CONFIG_BUTTON_PIN 8
#define RELAY1_PIN 17
// number of available peers per channel
#define PEERS_PER_CHANNEL 8
// all library classes are placed in the namespace 'as'
using namespace as;
// define all device properties
const struct DeviceInfo PROGMEM devinfo = {
{0x42,0xA2,0xB7}, // Device ID
"papa42a2b7", // Device Serial
{0x00,0x6c}, // Device Model
0x10, // Firmware Version
as::DeviceType::Switch, // Device Type
{0x01,0x00} // Info Bytes
};
/**
* Configure the used hardware
*/
typedef AvrSPI<10,11,12,13> RadioSPI;
typedef AskSin<StatusLed<LED_PIN>,BatterySensor,Radio<RadioSPI,2> > Hal;
DEFREGISTER(Reg0,DREG_INTKEY,DREG_LEDMODE,MASTERID_REGS,DREG_LOWBATLIMIT)
class SwList0 : public RegList0<Reg0> {
public:
SwList0(uint16_t addr) : RegList0<Reg0>(addr) {}
void defaults () {
clear();
lowBatLimit(22);
}
};
// setup the device with channel type and number of channels
class SwitchType : public MultiChannelDevice<Hal,SwitchChannel<Hal,PEERS_PER_CHANNEL,SwList0>,1,SwList0> {
public:
typedef MultiChannelDevice<Hal,SwitchChannel<Hal,PEERS_PER_CHANNEL,SwList0>,1,SwList0> DevType;
SwitchType (const DeviceInfo& i,uint16_t addr) : DevType(i,addr) {}
virtual ~SwitchType () {}
virtual void configChanged () {
DevType::configChanged();
uint8_t lowbat = getList0().lowBatLimit();
DDECLN(lowbat);
if( lowbat > 0 ) {
battery().low(lowbat);
}
}
};
Hal hal;
SwitchType sdev(devinfo,0x20);
ConfigToggleButton<SwitchType> cfgBtn(sdev);
#ifndef USE_WOR
BurstDetector<Hal> bd(hal);
#endif
void initPeerings (bool first) {
// create internal peerings - CCU2 needs this
if( first == true ) {
HMID devid;
sdev.getDeviceID(devid);
for( uint8_t i=1; i<=sdev.channels(); ++i ) {
Peer ipeer(devid,i);
sdev.channel(i).peer(ipeer);
}
}
}
void setup () {
DINIT(57600,ASKSIN_PLUS_PLUS_IDENTIFIER);
bool first = sdev.init(hal);
sdev.channel(1).init(RELAY1_PIN);
buttonISR(cfgBtn,CONFIG_BUTTON_PIN);
initPeerings(first);
#ifndef USE_WOR
// start burst detection
bd.enable(sysclock);
#endif
// stay on for 15 seconds after start
hal.activity.stayAwake(seconds2ticks(15));
// measure battery every hour
hal.battery.init(seconds2ticks(60UL*60),sysclock);
sdev.initDone();
//pinMode(DEBUG_PIN, OUTPUT);
//digitalWrite(DEBUG_PIN, HIGH);
}
void loop() {
bool worked = hal.runready();
bool poll = sdev.pollRadio();
if( worked == false && poll == false ) {
hal.activity.savePower<Sleep<> >(hal);
}
}
-
- Beiträge: 12085
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 847 Mal
- Danksagung erhalten: 2139 Mal
- Kontaktdaten:
Re: AskSin++ Wake On Radio (WoR)
Jetzt hat sich das ePaper Display auch verabschiedet...
Wenn das Gerät jedoch 1x sendet (Tasterbetätigung), kann ich anschließend auch wieder was zum Display schicken.
Jedoch auch nur 1x...
Ein paar Sekunden später wacht das Gerät schon wieder nicht mehr durch Burst auf.
Wenn das Gerät jedoch 1x sendet (Tasterbetätigung), kann ich anschließend auch wieder was zum Display schicken.
Jedoch auch nur 1x...
Ein paar Sekunden später wacht das Gerät schon wieder nicht mehr durch Burst auf.
Vielleicht sollten wir da ansetzen.
- stan23
- Beiträge: 2030
- Registriert: 13.12.2016, 21:14
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Altmühltal
- Hat sich bedankt: 576 Mal
- Danksagung erhalten: 335 Mal
- Kontaktdaten:
Re: AskSin++ Wake On Radio (WoR)
Gut, der SPI-Mitschnitt des Originalgeräts liegt ja schon hier:
https://github.com/pa-pa/AskSinPP/pull/108
Vom AskSin++-Gerät kann ich das heute Abend oder morgen aufzeichnen...
Viele Grüße
Marco
RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)
Marco
RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)
-
- Beiträge: 705
- Registriert: 22.05.2018, 10:23
- Hat sich bedankt: 24 Mal
- Danksagung erhalten: 120 Mal
Re: AskSin++ Wake On Radio (WoR)
Es scheint ein Problem zu sein, wenn mal nicht empfangen werden konnte, wieder in einem funktionierenden Zustand zu kommen. Hatte gerade folgendes auf der Console
Es wurde also versucht ein Paket zu lesen und der FIFO war leer. Danach ging nichts mehr. Erst nach Schalten am Geräte und damit einem Sendevorgang ging der Empfang auch wieder.
Code: Alles auswählen
rcvData
RX FIFO: 00
Anfragen zur AskSin++ werden nur im Forum beantwortet
-
- Beiträge: 705
- Registriert: 22.05.2018, 10:23
- Hat sich bedankt: 24 Mal
- Danksagung erhalten: 120 Mal
Re: AskSin++ Wake On Radio (WoR)
Hab jetzt mal den WOR und Idle Code zusammengeführt. Im Idle war noch ein Loop drin, der wartete bis das Funkmodul in einem bestimmten Zustand ist. Vielleicht hilft das ja auch bei unserem WOR Problem.
Anfragen zur AskSin++ werden nur im Forum beantwortet