8fach Universal-Temperatursensor Konfogurationsdaten

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

Takerosan
Beiträge: 9
Registriert: 24.12.2018, 17:53

8fach Universal-Temperatursensor Konfogurationsdaten

Beitrag von Takerosan » 24.12.2018, 17:59

Hallo zusammen,

Ich habe den oben genannten Sensor gebaut und er läuft auch tadellos. Ich habe nur das Problem das ist die Meldung konfigurationsdaten stehen zur Übertragung an. Ich habe schon alles mögliche versucht, Taster kurz drücken und lange drücken jedoch bleibt die Meldung bestehen.

Ich habe die jetzt zwar ausgeblendet aber das LED blinken bleibt bestehen. Ich würde den Punkt gerne anschließen,hat jemand die Idee ist weiß was das Problem ist?

Vg Andreas

isegrim
Beiträge: 20
Registriert: 10.11.2018, 10:24
Hat sich bedankt: 2 Mal

Re: 8fach Universal-Temperatursensor Konfogurationsdaten

Beitrag von isegrim » 24.12.2018, 20:13

Hallo,

das hatte ich gestern auch. Ich hatte aber was im Scetch verändert: #define MAX_SENSORS 8 auf 3, weil ich nur 3 Sensoren anschliessen wollte (wenn man eine Ahnung hat :roll:)
Dann nochmal neu geflasht und es lief....

Viele Grüße, Steffen

Takerosan
Beiträge: 9
Registriert: 24.12.2018, 17:53

Re: 8fach Universal-Temperatursensor Konfogurationsdaten

Beitrag von Takerosan » 25.12.2018, 10:14

Ich habe den Sketch auch angepasst da ich auch nur 3 Sensoren nutze. Ich habe den Sketch aber auch um ein Relay erweitert da ich damit die Heizung meiner Pumpe schalte. Der Schaltzustand wird aber nur im Sketch verwaltet und nicht an die Zentrale übertragen.

Vielleicht ist ja auch hier mein Problem.

Mein Sketch:

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

#define EI_NOTEXTERNAL
#include <EnableInterrupt.h>
#include <AskSinPP.h>
#include <LowPower.h>
#include <Switch.h>
#include <Register.h>
#include <MultiChannelDevice.h>

#include <OneWire.h>
#include <sensors/Ds18b20.h>
#define MAX_SENSORS       3
#define RELAY1_PIN        3
// Arduino Pro mini 8 Mhz
// Arduino pin for the config button
#define CONFIG_BUTTON_PIN 8

// number of available peers per channel
#define PEERS_PER_CHANNEL 6

//DS18B20 Sensors connected to pin
OneWire oneWire(9);

// all library classes are placed in the namespace 'as'
using namespace as;

// define all device properties
const struct DeviceInfo PROGMEM devinfo = {
  {0x00, 0x04, 0x02},          // Device ID
  "XXXXXXXXX",               // Device Serial
  {0xF3, 0x01},              // Device Model
  0x10,                       // Firmware Version
  as::DeviceType::THSensor,   // Device Type
  {0x01, 0x01}               // Info Bytes
};

/**
   Configure the used hardware
*/
typedef AvrSPI<10, 11, 12, 13> SPIType;
typedef Radio<SPIType, 2> RadioType;
typedef StatusLed<4> LedType;
typedef AskSin<LedType, BatterySensor, RadioType> BaseHal;
class Hal : public BaseHal {
  public:
    void init (const HMID& id) {
      BaseHal::init(id);

      battery.init(seconds2ticks(60UL * 60), sysclock); //battery measure once an hour
      battery.low(22);
      battery.critical(18);
    }

    bool runready () {
      return sysclock.runready() || BaseHal::runready();
    }
} hal;


DEFREGISTER(UReg0, MASTERID_REGS, DREG_BURSTRX, 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();
      burstRx(false);
      lowBatLimit(22);
      Sendeintervall(60);
    }
};

class WeatherEventMsg : public Message {
  public:
    void init(uint8_t msgcnt, Ds18b20* sensors, bool batlow, uint8_t channelFieldOffset) {
      Message::init(0x16, msgcnt, 0x53, BCAST , batlow ? 0x80 : 0x00, 0x41 + channelFieldOffset);
      pload[0] = (sensors[0 + channelFieldOffset].temperature() >> 8) & 0xff;
      pload[1] = (sensors[0 + channelFieldOffset].temperature()) & 0xff;
      pload[2] = 0x42 + channelFieldOffset;
      pload[3] = (sensors[1 + channelFieldOffset].temperature() >> 8) & 0xff;
      pload[4] = (sensors[1 + channelFieldOffset].temperature()) & 0xff;
      pload[5] = 0x43 + channelFieldOffset;
      pload[6] = (sensors[2 + channelFieldOffset].temperature() >> 8) & 0xff;
      pload[7] = (sensors[2 + channelFieldOffset].temperature()) & 0xff;
      pload[8] = 0x44 + channelFieldOffset;
      pload[9] = (sensors[3 + channelFieldOffset].temperature() >> 8) & 0xff;
      pload[10] = (sensors[3 + channelFieldOffset].temperature()) & 0xff;
    }
};

class WeatherChannel : public Channel<Hal, List1, EmptyList, List4, PEERS_PER_CHANNEL, UList0> {
  public:
    WeatherChannel () : Channel() {}
    virtual ~WeatherChannel () {}

    void configChanged() {
      //DPRINTLN("Config changed List1");
    }

    uint8_t status () const {
      return 0;
    }

    uint8_t flags () const {
      return 0;
    }
};

class UType : public MultiChannelDevice<Hal, WeatherChannel, MAX_SENSORS, UList0> {

    class SensorArray : public Alarm {
        UType& dev;

      public:
        uint8_t       sensorcount;
        Ds18b20       sensors[MAX_SENSORS];
        SensorArray (UType& d) : Alarm(0), dev(d) {}

        virtual void trigger (__attribute__ ((unused)) AlarmClock& clock) {
          tick = delay();
          sysclock.add(*this);

          Ds18b20::measure(sensors, sensorcount);
          DPRINT(F("Temperaturen: | "));
          for (int i = 0; i < MAX_SENSORS; i++) {
            DDEC(sensors[i].temperature()); DPRINT(" * ");DPRINT(i);DPRINT(" * ");DPRINT(" | ");
              if ((sensors[i].temperature() > 100) && (i == 1)) {
                DPRINT(" HOT ");
                digitalWrite(RELAY1_PIN, 0);
              }
              if ((sensors[i].temperature() <= 40) && (i == 1)) {
                DPRINT(" COLD ");
                digitalWrite(RELAY1_PIN, 1);
              }
          }
          DPRINTLN("");
          WeatherEventMsg& msg = (WeatherEventMsg&)dev.message();
          //Aufteilung in 2 Messages, da sonst die max. BidCos Message Size (0x1a)? überschritten wird
          msg.init(dev.nextcount(), sensors, dev.battery().low(), 0);
          dev.send(msg, dev.getMasterID());
          _delay_ms(200);
          msg.init(dev.nextcount(), sensors, dev.battery().low(), 4);
          dev.send(msg, dev.getMasterID());
        }

        uint32_t delay () {
          uint16_t _txMindelay = 60;
          _txMindelay = dev.getList0().Sendeintervall();
          if (_txMindelay == 0) _txMindelay = 60;
          return seconds2ticks(_txMindelay);
        }

    } sensarray;

  public:
    typedef MultiChannelDevice<Hal, WeatherChannel, MAX_SENSORS, UList0> TSDevice;
    UType(const DeviceInfo& info, uint16_t addr) : TSDevice(info, addr), sensarray(*this) {}
    virtual ~UType () {}

    virtual void configChanged () {
      TSDevice::configChanged();
      DPRINTLN("Config Changed List0");
      DPRINT("LOW BAT Limit: ");
      DDECLN(this->getList0().lowBatLimit());
      DPRINT("Wake-On-Radio: ");
      DDECLN(this->getList0().burstRx());
      this->battery().low(this->getList0().lowBatLimit());
      DPRINT("Sendeintervall: "); DDECLN(this->getList0().Sendeintervall());
    }

    bool init (Hal& hal) {
      TSDevice::init(hal);
      sensarray.sensorcount = Ds18b20::init(oneWire, sensarray.sensors, MAX_SENSORS);
      DPRINT("Found "); DDEC(sensarray.sensorcount); DPRINTLN(" DS18B20 Sensors");
      sensarray.set(seconds2ticks(5));
      sysclock.add(sensarray);
    }
};

UType sdev(devinfo, 0x20);
ConfigButton<UType> cfgBtn(sdev);

void setup () {
  DINIT(57600, ASKSIN_PLUS_PLUS_IDENTIFIER);
  sdev.init(hal);
  buttonISR(cfgBtn, CONFIG_BUTTON_PIN);
  sdev.initDone();
  pinMode(RELAY1_PIN, OUTPUT);
  digitalWrite(RELAY1_PIN, 0);
}

void loop() {
  bool worked = hal.runready();
  bool poll = sdev.pollRadio();
  if ( worked == false && poll == false ) {
    if ( hal.battery.critical() ) {
      hal.activity.sleepForever(hal);
    }
    hal.activity.savePower<Idle<>>(hal);
  }
}

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: 8fach Universal-Temperatursensor Konfogurationsdaten

Beitrag von jp112sdl » 25.12.2018, 10:31

Hi!

Wenn du nur 3 Sensoren nutzt, können die Zeilen 153-155 raus:

Code: Alles auswählen

_delay_ms(200);
msg.init(dev.nextcount(), sensors, dev.battery().low(), 4);
dev.send(msg, dev.getMasterID());
Das erzeugt nur unnötig Funkverkehr, da immer nur 0 übertragen wird.

Dann ist mir aufgefallen, dass deine Seriennummer nur 9-stellig ist:

Code: Alles auswählen

  "XXXXXXXXX",               // Device Serial
Ist aber vielleicht auch nur beim "Unkenntlichmachen" passiert... Prüfe jedoch noch mal, ob deine "echte" Seriennummer auch wirklich 10-stellig ist.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Takerosan
Beiträge: 9
Registriert: 24.12.2018, 17:53

Re: 8fach Universal-Temperatursensor Konfogurationsdaten

Beitrag von Takerosan » 25.12.2018, 10:50

Die Zeilen nehme ich raus. Die sn ist 10 stellig habe ein x zu wenig.

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: 8fach Universal-Temperatursensor Konfogurationsdaten

Beitrag von jp112sdl » 25.12.2018, 11:33

Ansonsten könntest du es mal mit „drüberlernen“ probieren.
CCU in den Anlernmodus versetzen und dann den Configtaster am Pro Mini kurz drücken.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Takerosan
Beiträge: 9
Registriert: 24.12.2018, 17:53

Re: 8fach Universal-Temperatursensor Konfogurationsdaten

Beitrag von Takerosan » 26.12.2018, 14:40

Also ich habe jetzt den neuen Sketch hochgeladen, leider ohne Veränderung. Gerät löschen und neu anlernen, ändert leider auch nichts.

Hier der veränderte Sketch:

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

#define EI_NOTEXTERNAL
#include <EnableInterrupt.h>
#include <AskSinPP.h>
#include <LowPower.h>
#include <Switch.h>
#include <Register.h>
#include <MultiChannelDevice.h>

#include <OneWire.h>
#include <sensors/Ds18b20.h>
#define MAX_SENSORS       3
#define RELAY1_PIN        3
// Arduino Pro mini 8 Mhz
// Arduino pin for the config button
#define CONFIG_BUTTON_PIN 8

// number of available peers per channel
#define PEERS_PER_CHANNEL 6

//DS18B20 Sensors connected to pin
OneWire oneWire(9);

// all library classes are placed in the namespace 'as'
using namespace as;

// define all device properties
const struct DeviceInfo PROGMEM devinfo = {
  {0x00, 0x04, 0x02},          // Device ID
  "HMSMA01004",               // Device Serial
  {0xF3, 0x01},              // Device Model
  0x10,                       // Firmware Version
  as::DeviceType::THSensor,   // Device Type
  {0x01, 0x01}               // Info Bytes
};

/**
   Configure the used hardware
*/
typedef AvrSPI<10, 11, 12, 13> SPIType;
typedef Radio<SPIType, 2> RadioType;
typedef StatusLed<4> LedType;
typedef AskSin<LedType, BatterySensor, RadioType> BaseHal;
class Hal : public BaseHal {
  public:
    void init (const HMID& id) {
      BaseHal::init(id);

      battery.init(seconds2ticks(60UL * 60), sysclock); //battery measure once an hour
      battery.low(22);
      battery.critical(18);
    }

    bool runready () {
      return sysclock.runready() || BaseHal::runready();
    }
} hal;


DEFREGISTER(UReg0, MASTERID_REGS, DREG_BURSTRX, 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();
      burstRx(false);
      lowBatLimit(22);
      Sendeintervall(60);
    }
};

class WeatherEventMsg : public Message {
  public:
    void init(uint8_t msgcnt, Ds18b20* sensors, bool batlow, uint8_t channelFieldOffset) {
      Message::init(0x16, msgcnt, 0x53, BCAST , batlow ? 0x80 : 0x00, 0x41 + channelFieldOffset);
      pload[0] = (sensors[0 + channelFieldOffset].temperature() >> 8) & 0xff;
      pload[1] = (sensors[0 + channelFieldOffset].temperature()) & 0xff;
      pload[2] = 0x42 + channelFieldOffset;
      pload[3] = (sensors[1 + channelFieldOffset].temperature() >> 8) & 0xff;
      pload[4] = (sensors[1 + channelFieldOffset].temperature()) & 0xff;
      pload[5] = 0x43 + channelFieldOffset;
      pload[6] = (sensors[2 + channelFieldOffset].temperature() >> 8) & 0xff;
      pload[7] = (sensors[2 + channelFieldOffset].temperature()) & 0xff;
      pload[8] = 0x44 + channelFieldOffset;
      pload[9] = (sensors[3 + channelFieldOffset].temperature() >> 8) & 0xff;
      pload[10] = (sensors[3 + channelFieldOffset].temperature()) & 0xff;
    }
};

class WeatherChannel : public Channel<Hal, List1, EmptyList, List4, PEERS_PER_CHANNEL, UList0> {
  public:
    WeatherChannel () : Channel() {}
    virtual ~WeatherChannel () {}

    void configChanged() {
      //DPRINTLN("Config changed List1");
    }

    uint8_t status () const {
      return 0;
    }

    uint8_t flags () const {
      return 0;
    }
};

class UType : public MultiChannelDevice<Hal, WeatherChannel, MAX_SENSORS, UList0> {

    class SensorArray : public Alarm {
        UType& dev;

      public:
        uint8_t       sensorcount;
        Ds18b20       sensors[MAX_SENSORS];
        SensorArray (UType& d) : Alarm(0), dev(d) {}

        virtual void trigger (__attribute__ ((unused)) AlarmClock& clock) {
          tick = delay();
          sysclock.add(*this);

          Ds18b20::measure(sensors, sensorcount);
          DPRINT(F("Temperaturen: | "));
          for (int i = 0; i < MAX_SENSORS; i++) {
            DDEC(sensors[i].temperature()); DPRINT(" * ");DPRINT(i);DPRINT(" * ");DPRINT(" | ");
              if ((sensors[i].temperature() > 100) && (i == 1)) {
                DPRINT(" HOT ");
                digitalWrite(RELAY1_PIN, 0);
              }
              if ((sensors[i].temperature() <= 40) && (i == 1)) {
                DPRINT(" COLD ");
                digitalWrite(RELAY1_PIN, 1);
              }
          }
          DPRINTLN("");
          WeatherEventMsg& msg = (WeatherEventMsg&)dev.message();
          //Aufteilung in 2 Messages, da sonst die max. BidCos Message Size (0x1a)? überschritten wird
          msg.init(dev.nextcount(), sensors, dev.battery().low(), 0);
          dev.send(msg, dev.getMasterID());
        }

        uint32_t delay () {
          uint16_t _txMindelay = 60;
          _txMindelay = dev.getList0().Sendeintervall();
          if (_txMindelay == 0) _txMindelay = 60;
          return seconds2ticks(_txMindelay);
        }

    } sensarray;

  public:
    typedef MultiChannelDevice<Hal, WeatherChannel, MAX_SENSORS, UList0> TSDevice;
    UType(const DeviceInfo& info, uint16_t addr) : TSDevice(info, addr), sensarray(*this) {}
    virtual ~UType () {}

    virtual void configChanged () {
      TSDevice::configChanged();
      DPRINTLN("Config Changed List0");
      DPRINT("LOW BAT Limit: ");
      DDECLN(this->getList0().lowBatLimit());
      DPRINT("Wake-On-Radio: ");
      DDECLN(this->getList0().burstRx());
      this->battery().low(this->getList0().lowBatLimit());
      DPRINT("Sendeintervall: "); DDECLN(this->getList0().Sendeintervall());
    }

    bool init (Hal& hal) {
      TSDevice::init(hal);
      sensarray.sensorcount = Ds18b20::init(oneWire, sensarray.sensors, MAX_SENSORS);
      DPRINT("Found "); DDEC(sensarray.sensorcount); DPRINTLN(" DS18B20 Sensors");
      sensarray.set(seconds2ticks(5));
      sysclock.add(sensarray);
    }
};

UType sdev(devinfo, 0x20);
ConfigButton<UType> cfgBtn(sdev);

void setup () {
  DINIT(57600, ASKSIN_PLUS_PLUS_IDENTIFIER);
  sdev.init(hal);
  buttonISR(cfgBtn, CONFIG_BUTTON_PIN);
  sdev.initDone();
  pinMode(RELAY1_PIN, OUTPUT);
  digitalWrite(RELAY1_PIN, 0);
}

void loop() {
  bool worked = hal.runready();
  bool poll = sdev.pollRadio();
  if ( worked == false && poll == false ) {
    if ( hal.battery.critical() ) {
      hal.activity.sleepForever(hal);
    }
    hal.activity.savePower<Idle<>>(hal);
  }
}
So sieht die Konsolenausgabe aus:

Code: Alles auswählen

AskSin++ V3.0.2 (Dec 26 2018 14:26:22)
Address Space: 32 - 150
CC init1
CC Version: 14
 - ready
Bat: 32
Found 3 DS18B20 Sensors
Config Changed List0
LOW BAT Limit: 22
Wake-On-Radio: 0
Sendeintervall: 60
Temperaturen: | 40 * 0 *  | 51 * 1 *  | 38 * 2 *  | 
<- 16 01 84 53 000402 00FFFF 00 41 00 28 42 00 33 43 00 26 44 01 8E  - 1179
ignore 13 12 00 83 659668 F00001 00 00 04 4C 15 93 22 DC 58 77  - 1239
ignore 13 12 00 83 5CD94C F00001 00 2A 92 4E E9 74 5C 76 9F 5D  - 1419
 debounce
 pressed
 released
<- 1A 02 80 00 000402 00FFFF 10 F3 01 48 4D 53 4D 41 30 31 30 30 34 70 03 01 01  - 1488

-> 0A 02 81 02 00FFFF 000402 00  - 1603
-> 0B 0B A0 01 00FFFF 000402 01 03  - 1630
<- 0E 0B 80 10 000402 00FFFF 01 00 00 00 00  - 1748
-> 0B 14 A0 01 00FFFF 000402 02 03  - 1867
<- 0E 14 80 10 000402 00FFFF 01 00 00 00 00  - 1990
-> 0B 14 A0 01 00FFFF 000402 02 03  - 2146
<- 0E 14 80 10 000402 00FFFF 01 00 00 00 00  - 2269
-> 0B 1D A0 01 00FFFF 000402 03 03  - 2387
<- 0E 1D 80 10 000402 00FFFF 01 00 00 00 00  - 2508
-> 0B 26 A0 01 00FFFF 000402 04 03  - 2627
-> 0B 26 A0 01 00FFFF 000402 04 03  - 2906
-> 0B 26 A0 01 00FFFF 000402 04 03  - 3186
-> 0B 26 A0 01 00FFFF 000402 04 03  - 3479
-> 0B 27 A0 01 00FFFF 000402 05 03  - 3758
-> 0B 27 A0 01 00FFFF 000402 05 03  - 4038
-> 0B 27 A0 01 00FFFF 000402 05 03  - 4317
-> 0B 27 A0 01 00FFFF 000402 05 03  - 4595
-> 0B 28 A0 01 00FFFF 000402 04 03  - 4876
-> 0B 28 A0 01 00FFFF 000402 04 03  - 5154
-> 0B 28 A0 01 00FFFF 000402 04 03  - 5433
-> 0B 28 A0 01 00FFFF 000402 04 03  - 5711
-> 0B 29 A0 01 00FFFF 000402 05 03  - 5992
-> 0B 29 A0 01 00FFFF 000402 05 03  - 6289
-> 0B 29 A0 01 00FFFF 000402 05 03  - 6580
-> 0B 29 A0 01 00FFFF 000402 05 03  - 6860
ignore 13 12 00 83 906BAB F00001 00 07 C7 6F BC 9B 24 C9 23 A7  - 15716
Temperaturen: | 40 * 0 *  | 51 * 1 *  | 38 * 2 *  | 
<- 16 03 84 53 000402 00FFFF 00 41 00 28 42 00 33 43 00 26 44 01 8E  - 21524
 debounce
 pressed
 released
<- 1A 04 80 00 000402 00FFFF 10 F3 01 48 4D 53 4D 41 30 31 30 30 34 70 03 01 01  - 21764

ignore 13 12 00 83 266350 F00001 00 19 46 C8 6B 93 D6 4B 5B 64  - 21880
-> 0B 0D A0 01 00FFFF 000402 04 03  - 21905
-> 0B 0D A0 01 00FFFF 000402 04 03  - 22183
-> 0B 0D A0 01 00FFFF 000402 04 03  - 22462
-> 0B 0D A0 01 00FFFF 000402 04 03  - 22740
-> 0B 0E A0 01 00FFFF 000402 05 03  - 23021
-> 0B 0E A0 01 00FFFF 000402 05 03  - 23300
-> 0B 0E A0 01 00FFFF 000402 05 03  - 23580
-> 0B 0E A0 01 00FFFF 000402 05 03  - 23871
-> 10 0F A0 01 00FFFF 000402 00 05 00 00 00 00 00  - 24160
<- 0A 0F 80 02 000402 00FFFF 00  - 24276
-> 13 18 A0 01 00FFFF 000402 00 08 02 01 0A 00 0B FF 0C FF  - 24320
<- 0A 18 80 02 000402 00FFFF 00  - 24436
-> 0B 21 A0 01 00FFFF 000402 00 06  - 24469
Config Changed List0
LOW BAT Limit: 22
Wake-On-Radio: 0
Sendeintervall: 60
<- 0A 21 82 02 000402 00FFFF 00  - 24586
-> 0B 2A A0 01 00FFFF 000402 04 03  - 25190
-> 0B 2A A0 01 00FFFF 000402 04 03  - 25468
-> 0B 2A A0 01 00FFFF 000402 04 03  - 25749
-> 0B 2A A0 01 00FFFF 000402 04 03  - 26028
-> 0B 2B A0 01 00FFFF 000402 05 03  - 26306
-> 0B 2B A0 01 00FFFF 000402 05 03  - 26585
-> 0B 2B A0 01 00FFFF 000402 05 03  - 26863
-> 0B 2B A0 01 00FFFF 000402 05 03  - 27144
Temperaturen: | 39 * 0 *  | 51 * 1 *  | 38 * 2 *  | 
<- 16 05 84 53 000402 00FFFF 00 41 00 27 42 00 33 43 00 26 44 01 8E  - 42504
-> 0B 0E A0 11 00FFFF 000402 04 00  - 42731
<- 0A 0E 80 02 000402 00FFFF 00  - 42856
RESET
AskSin++ V3.0.2 (Dec 26 2018 14:26:22)
Address Space: 32 - 150
00000000
Init Storage: CAFE75BA
CC init1
CC Version: 14
 - ready
Bat: 32
Found 3 DS18B20 Sensors
Config Changed List0
LOW BAT Limit: 22
Wake-On-Radio: 0
Sendeintervall: 60
Temperaturen: | 39 * 0 *  | 51 * 1 *  | 38 * 2 *  | 
<- 16 01 84 53 000402 000000 00 41 00 27 42 00 33 43 00 26 44 01 8E  - 1619
-> 0B 0F A0 11 00FFFF 000402 04 00  - 1636
<- 0A 0F 80 02 000402 00FFFF 00  - 1753
RESET
AskSin++ V3.0.2 (Dec 26 2018 14:26:22)
Address Space: 32 - 150
00000000
Init Storage: CAFE75BA
CC init1
CC Version: 14
 - ready
Bat: 32
Found 3 DS18B20 Sensors
Config Changed List0
LOW BAT Limit: 22
Wake-On-Radio: 0
Sendeintervall: 60
Temperaturen: | 40 * 0 *  | 51 * 1 *  | 39 * 2 *  | 
<- 16 01 84 53 000402 000000 00 41 00 28 42 00 33 43 00 27 44 01 8E  - 1619
 debounce
 pressed
 released
<- 1A 02 84 00 000402 000000 10 F3 01 48 4D 53 4D 41 30 31 30 30 34 70 03 01 01  - 1726

-> 10 01 A0 01 00FFFF 000402 00 05 00 00 00 00 00  - 1918
<- 0A 01 80 02 000402 00FFFF 00  - 2039
-> 13 0A A0 01 00FFFF 000402 00 08 02 01 0A 00 0B FF 0C FF  - 2080
<- 0A 0A 80 02 000402 00FFFF 00  - 2199
-> 0B 13 A0 01 00FFFF 000402 00 06  - 2232
Config Changed List0
LOW BAT Limit: 22
Wake-On-Radio: 0
Sendeintervall: 60
<- 0A 13 82 02 000402 00FFFF 00  - 2349
-> 10 1C A0 01 00FFFF 000402 00 04 00 00 00 00 00  - 2390
<- 1A 1C 80 10 000402 00FFFF 02 0A 00 0B FF 0C FF 01 00 12 16 21 00 22 3C 00 00  - 2525
-> 0B 25 A0 01 00FFFF 000402 01 03  - 2557
<- 0E 25 80 10 000402 00FFFF 01 00 00 00 00  - 2682
-> 0B 2E A0 01 00FFFF 000402 02 03  - 2715
<- 0E 2E 80 10 000402 00FFFF 01 00 00 00 00  - 2842
-> 0B 37 A0 01 00FFFF 000402 03 03  - 2875
<- 0E 37 80 10 000402 00FFFF 01 00 00 00 00  - 3002
-> 0B 40 A0 01 00FFFF 000402 04 03  - 3035
-> 0B 40 A0 01 00FFFF 000402 04 03  - 3315
-> 0B 40 A0 01 00FFFF 000402 04 03  - 3594
-> 0B 40 A0 01 00FFFF 000402 04 03  - 3872
-> 0B 41 A0 01 00FFFF 000402 05 03  - 4153
-> 0B 41 A0 01 00FFFF 000402 05 03  - 4431
-> 0B 41 A0 01 00FFFF 000402 05 03  - 4710
-> 0B 41 A0 01 00FFFF 000402 05 03  - 4988
 debounce
 pressed
 longpressed
 longpressed
RESET
AskSin++ V3.0.2 (Dec 26 2018 14:26:22)
Address Space: 32 - 150
00000000
Init Storage: CAFE75BA
CC init1
CC Version: 14
 - ready
Bat: 32
Found 3 DS18B20 Sensors
Config Changed List0
LOW BAT Limit: 22
Wake-On-Radio: 0
Sendeintervall: 60
Temperaturen: | 40 * 0 *  | 51 * 1 *  | 38 * 2 *  | 
<- 16 01 84 53 000402 000000 00 41 00 28 42 00 33 43 00 26 44 01 8E  - 1619
 debounce
 pressed
 released
<- 1A 02 84 00 000402 000000 10 F3 01 48 4D 53 4D 41 30 31 30 30 34 70 03 01 01  - 1765

-> 10 42 A0 01 00FFFF 000402 00 05 00 00 00 00 00  - 1875
<- 0A 42 80 02 000402 00FFFF 00  - 1996
-> 13 4B A0 01 00FFFF 000402 00 08 02 01 0A 00 0B FF 0C FF  - 2037
<- 0A 4B 80 02 000402 00FFFF 00  - 2156
-> 0B 54 A0 01 00FFFF 000402 00 06  - 2189
Config Changed List0
LOW BAT Limit: 22
Wake-On-Radio: 0
Sendeintervall: 60
<- 0A 54 82 02 000402 00FFFF 00  - 2306
-> 0B 5D A0 01 00FFFF 000402 04 03  - 2764
-> 0B 5D A0 01 00FFFF 000402 04 03  - 3043
-> 0B 5D A0 01 00FFFF 000402 04 03  - 3321
-> 0B 5D A0 01 00FFFF 000402 04 03  - 3600
-> 0B 5E A0 01 00FFFF 000402 05 03  - 3880
-> 0B 5E A0 01 00FFFF 000402 05 03  - 4159
-> 0B 5E A0 01 00FFFF 000402 05 03  - 4444
-> 0B 5E A0 01 00FFFF 000402 05 03  - 4722
 debounce
 pressed
 released
<- 1A 03 80 00 000402 00FFFF 10 F3 01 48 4D 53 4D 41 30 31 30 30 34 70 03 01 01  - 21940

-> 0A 03 81 02 00FFFF 000402 00  - 22054
-> 0B 0C A0 01 00FFFF 000402 04 03  - 22081
Temperaturen: | 40 * 0 *  | 51 * 1 *  | 39 * 2 *  | 
<- 16 04 84 53 000402 00FFFF 00 41 00 28 42 00 33 43 00 27 44 01 8E  - 22882
-> 0B 0C A0 01 00FFFF 000402 04 03  - 22886
-> 0B 0C A0 01 00FFFF 000402 04 03  - 22933
-> 0B 0D A0 01 00FFFF 000402 05 03  - 23214
-> 0B 0D A0 01 00FFFF 000402 05 03  - 23492
-> 0B 0D A0 01 00FFFF 000402 05 03  - 23771
-> 0B 0D A0 01 00FFFF 000402 05 03  - 24049
-> 0B 0E A0 01 00FFFF 000402 04 03  - 24344
-> 0B 0E A0 01 00FFFF 000402 04 03  - 24623
-> 0B 0E A0 01 00FFFF 000402 04 03  - 24901
-> 0B 0E A0 01 00FFFF 000402 04 03  - 25180
-> 0B 0F A0 01 00FFFF 000402 05 03  - 25460
-> 0B 0F A0 01 00FFFF 000402 05 03  - 25741
-> 0B 0F A0 01 00FFFF 000402 05 03  - 26019
-> 0B 0F A0 01 00FFFF 000402 05 03  - 26298
ignore 13 12 00 83 35D843 F00001 00 10 6B D5 74 0F AF AB 0F A6  - 41482
Temperaturen: | 40 * 0 *  | 51 * 1 *  | 39 * 2 *  | 
<- 16 05 84 53 000402 00FFFF 00 41 00 28 42 00 33 43 00 27 44 01 8E  - 42868
 debounce
 pressed
 released
<- 1A 06 80 00 000402 00FFFF 10 F3 01 48 4D 53 4D 41 30 31 30 30 34 70 03 01 01  - 43026

-> 0A 06 81 02 00FFFF 000402 00  - 43141
-> 0B 0F A0 01 00FFFF 000402 04 03  - 43167
-> 0B 0F A0 01 00FFFF 000402 04 03  - 43446
-> 0B 0F A0 01 00FFFF 000402 04 03  - 43724
-> 0B 0F A0 01 00FFFF 000402 04 03  - 44003
-> 0B 10 A0 01 00FFFF 000402 05 03  - 44283
-> 0B 10 A0 01 00FFFF 000402 05 03  - 44562
-> 0B 10 A0 01 00FFFF 000402 05 03  - 44859
-> 0B 10 A0 01 00FFFF 000402 05 03  - 45137
-> 0B 11 A0 01 00FFFF 000402 04 03  - 45418
-> 0B 11 A0 01 00FFFF 000402 04 03  - 45697
-> 0B 11 A0 01 00FFFF 000402 04 03  - 45975
-> 0B 11 A0 01 00FFFF 000402 04 03  - 46254
-> 0B 12 A0 01 00FFFF 000402 05 03  - 46534
-> 0B 12 A0 01 00FFFF 000402 05 03  - 46813
-> 0B 12 A0 01 00FFFF 000402 05 03  - 47091
-> 0B 12 A0 01 00FFFF 000402 05 03  - 47370
 debounce
 pressed
 released
<- 1A 07 80 00 000402 00FFFF 10 F3 01 48 4D 53 4D 41 30 31 30 30 34 70 03 01 01  - 52637

-> 0A 07 81 02 00FFFF 000402 00  - 52752
-> 0B 10 A0 01 00FFFF 000402 04 03  - 52779
-> 0B 10 A0 01 00FFFF 000402 04 03  - 53057
-> 0B 10 A0 01 00FFFF 000402 04 03  - 53336
-> 0B 10 A0 01 00FFFF 000402 04 03  - 53614
-> 0B 11 A0 01 00FFFF 000402 05 03  - 53911
-> 0B 11 A0 01 00FFFF 000402 05 03  - 54192
-> 0B 11 A0 01 00FFFF 000402 05 03  - 54470
-> 0B 11 A0 01 00FFFF 000402 05 03  - 54749
-> 10 12 A0 01 00FFFF 000402 00 05 00 00 00 00 00  - 55033
<- 0A 12 80 02 000402 00FFFF 00  - 55158
-> 13 1B A0 01 00FFFF 000402 00 08 02 01 0A 00 0B FF 0C FF  - 55220
<- 0A 1B 80 02 000402 00FFFF 00  - 55339
-> 0B 24 A0 01 00FFFF 000402 00 06  - 55371
Config Changed List0
LOW BAT Limit: 22
Wake-On-Radio: 0
Sendeintervall: 60
<- 0A 24 82 02 000402 00FFFF 00  - 55488
-> 0B 2D A0 01 00FFFF 000402 04 03  - 55568
-> 0B 2D A0 01 00FFFF 000402 04 03  - 55846
-> 0B 2D A0 01 00FFFF 000402 04 03  - 56125
-> 0B 2D A0 01 00FFFF 000402 04 03  - 56406
-> 0B 2E A0 01 00FFFF 000402 05 03  - 56684
-> 0B 2E A0 01 00FFFF 000402 05 03  - 56963
-> 0B 2E A0 01 00FFFF 000402 05 03  - 57241
-> 0B 2E A0 01 00FFFF 000402 05 03  - 57520
Temperaturen: | 40 * 0 *  | 51 * 1 *  | 39 * 2 *  | 
<- 16 08 84 53 000402 00FFFF 00 41 00 28 42 00 33 43 00 27 44 01 8E  - 73404
ignore 21 10 00 8E 906BAB BB9BB6 00 07 C7 70 BD 1E 49 FB F7 5D E1 C8 5D F0 8A F5 5B 2C 00 89 32 0F B4 29  - 73478
ignore 22 10 00 8E 906BAB BB9BB6 00 07 C7 71 C8 C7 6A D4 67 45 8A 72 CB 8E F4 79 50 AC A9 32 00 A0 F7 06 CE  - 73500
ignore 15 10 00 8E 906BAB BB9BB6 00 07 C7 72 37 44 F4 FB D5 E1 7E 94  - 73519
So sieht es in der Zentrale aus:
siehe Anhang
Dateianhänge
Unbenannt.PNG

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: 8fach Universal-Temperatursensor Konfogurationsdaten

Beitrag von jp112sdl » 26.12.2018, 14:57

Alles klar. Jetzt leuchtet es mir ein. :idea:

Die CCU erwartet ein Gerät mit 8 Fix-Kanälen.
https://github.com/jp112sdl/JP-HB-Devic ... mp.xml#L64

Also Kommando zurück:
Setze bitte wieder MAX_SENSORS auf 8 und schon wirds gehen.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Takerosan
Beiträge: 9
Registriert: 24.12.2018, 17:53

Re: 8fach Universal-Temperatursensor Konfogurationsdaten

Beitrag von Takerosan » 26.12.2018, 15:37

Ahh ok. Kann man das irgendwie so ändern das die ccu nur 3 Geräte erwartet?

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: 8fach Universal-Temperatursensor Konfogurationsdaten

Beitrag von jp112sdl » 26.12.2018, 16:17

Ja, ich habe soeben eine Addon-Version veröffentlicht, die das nun ermöglicht.
Das Gerät muss dann aber noch mal ab- und wieder angelernt werden.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“