HM-LC-Sw2-FM Taster haben keine Funktion, per Funk schalten funktioniert

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

Moderator: Co-Administratoren

manfredkk
Beiträge: 4
Registriert: 22.12.2022, 23:21
System: sonstige

HM-LC-Sw2-FM Taster haben keine Funktion, per Funk schalten funktioniert

Beitrag von manfredkk » 22.12.2022, 23:33

Hallo,
ich habe den HM-LC-Sw2-FM (2x 6A 230V Schaltkontakt mit 2 Schalteingängen 230V) nachgebaut (siehe https://github.com/ronnythomas/HM-LC-Sw2-230V).

Bild

Was funktioniert?
Steuerung über Funk, damit kann ich jeweils das Relais 1 und 2 öffnen und schließen lassen (ich höre das "Klicken" und kann mit dem Multimeter die Durchgängigkeit messen zwischen Output 1/2 und Phase. Ich kann auch messen, wie die Spannung am Arduino Pin 14 oder 15 auf jeweils 3,3V ansteigt oder auf 0 fällt.

Was funktioniert nicht?
Die Steuerung der Relais mittels Taster oder der 230V Eingänge. Hierdurch ändern die Relais ihren Zustand nicht.

Was ich ich bisher unternommen?
Mittels seriellen Monitor kann ich sehen, dass AskSinnPP erkennt, dass ich die Taster (die an den Arduino Pin 5 und 6 angeschlossen sind) drücke. Hier zeigt er mir folgendes an:

Code: Alles auswählen

debounce
 pressed
 released
-> 0B 1A 02 40 120901 120901 01 0C  - 23199

 debounce
 pressed
 released
-> 0B 1B 02 40 120901 120901 01 0D  - 23705

 debounce
 pressed
 released
-> 0B 1C 02 40 120901 120901 02 07  - 24219
Aber nun ändert sich die Spannung am Pin 14 oder 15 nicht (mit diesen Pins werden die Relais angesteuert).

Hier nochmal den Quellcode des Sketches:

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>

// 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

//set to 0x01 if the RELAY should be switched on LOW level
#define LOW_ACTIVE 0x00  
#define RELAY1_PIN 15   //A3
#define RELAY2_PIN 14    //A2

#define BUTTON1_PIN 6
#define BUTTON2_PIN 5 // braunes kabel

// 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 = {
  {0x12, 0x09, 0x01},     // Device ID
  "JPLCSw1001",           // Device Serial
  {0x00, 0x09},           // Device Model
  0x24,                   // 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>, NoBattery, Radio<RadioSPI, 2> > Hal;

// setup the device with channel type and number of channels
typedef MultiChannelDevice<Hal, SwitchChannel<Hal, PEERS_PER_CHANNEL, List0>, 2> SwitchType;

Hal hal;
SwitchType sdev(devinfo, 0x20);
ConfigButton<SwitchType> cfgBtn(sdev);
InternalButton<SwitchType> btn1(sdev, 1);
InternalButton<SwitchType> btn2(sdev, 2);

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, LOW_ACTIVE);
  sdev.channel(2).init(RELAY2_PIN, LOW_ACTIVE);

  buttonISR(cfgBtn, CONFIG_BUTTON_PIN);
  buttonISR(btn1, BUTTON1_PIN);
  buttonISR(btn2, BUTTON2_PIN);

  sdev.channels(2);
  initPeerings(first);

// FreqTest: Calculated Freq: 0x2165F2 868.354 MHz
  hal.radio.initReg(CC1101_FREQ2, 0x21);
  hal.radio.initReg(CC1101_FREQ1, 0x65);
  hal.radio.initReg(CC1101_FREQ0, 0xF2);

  sdev.initDone();
}

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

Ich fasse zusammen:
Relais funktionieren
Ausgangs Pin 14 / 15 funktioniert, sofern er via Funk angesteuert wird
Eingangs Taster Pins 5 / 6 funktionieren, das Drücken wird im seriellen Monitor registriert.

Was also in aller Welt ist hier los? Ich komm leider mit meinem Sachverstand an dieser Stelle nicht weiter. Warum steuert der Tastendruck nicht die Relais?

Ich nutze übrigens Homegear als Zentrale.

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

Re: HM-LC-Sw2-FM Taster haben keine Funktion, per Funk schalten funktioniert

Beitrag von jp112sdl » 23.12.2022, 05:22

1x "Ablernen mit Werksreset", alternativ Config-Taste gedrückt halten, bis im seriellen Monitor "RESET" erscheint, danach neu anlernen

VG,
Jérôme ☕️

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

Horbi
Beiträge: 199
Registriert: 29.05.2019, 12:51
Hat sich bedankt: 19 Mal
Danksagung erhalten: 65 Mal

Re: HM-LC-Sw2-FM Taster haben keine Funktion, per Funk schalten funktioniert

Beitrag von Horbi » 23.12.2022, 11:24

fehlt da nicht die Zuordnung der Schaltkanäle zu den Tastern?

sdev.channel(1).peer(btn1.peer());
sdev.channel(2).peer(btn2.peer());

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

Re: HM-LC-Sw2-FM Taster haben keine Funktion, per Funk schalten funktioniert

Beitrag von jp112sdl » 23.12.2022, 11:31

Horbi hat geschrieben:
23.12.2022, 11:24
fehlt da nicht die Zuordnung der Schaltkanäle zu den Tastern?
Nein, passiert doch im initPeerings() ?

VG,
Jérôme ☕️

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

Horbi
Beiträge: 199
Registriert: 29.05.2019, 12:51
Hat sich bedankt: 19 Mal
Danksagung erhalten: 65 Mal

Re: HM-LC-Sw2-FM Taster haben keine Funktion, per Funk schalten funktioniert

Beitrag von Horbi » 23.12.2022, 11:41

verdammt, ich habe nur im Setup geschaut :-)

manfredkk
Beiträge: 4
Registriert: 22.12.2022, 23:21
System: sonstige

Re: HM-LC-Sw2-FM Taster haben keine Funktion, per Funk schalten funktioniert

Beitrag von manfredkk » 23.12.2022, 12:09

jp112sdl hat geschrieben:
23.12.2022, 05:22
1x "Ablernen mit Werksreset", alternativ Config-Taste gedrückt halten, bis im seriellen Monitor "RESET" erscheint, danach neu anlernen
Tatsächlich scheint es jetzt zu funktionieren. Und ich habe gestern einen kompletten Tag damit verschwendet, den Fehler zu finden :roll:

Danke! Woran mag das gelegen haben? Dass er beim Initialisieren intern die Verknüpfungen nicht korrekt gesetzt hat?

Ach und noch eine zweite Frage: Wenn ich anstelle von "Tastern" lieber "Schalter" haben möchte, kann ich dann auf dieses Gerät einfach z.B. diese Firmware einspielen (und im Quellcode nur die PINs entsprechend anpassen) ?
https://github.com/jp112sdl/HB-UNI-SenA ... 4-4-SC.ino
Wofür ist hier der "SABOTAGE_PIN_1" ?

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

Re: HM-LC-Sw2-FM Taster haben keine Funktion, per Funk schalten funktioniert

Beitrag von jp112sdl » 23.12.2022, 12:18

manfredkk hat geschrieben:
23.12.2022, 12:09
Woran mag das gelegen haben? Dass er beim Initialisieren intern die Verknüpfungen nicht korrekt gesetzt hat?
Ja genau. Das sollte eigentlich beim allerersten Starten passieren.
Passiert nur leider sehr häufig nicht.
Woran es liegt, hat noch niemand herausgefunden.

Ich konnte das Problem auch nie bewusst reproduzieren.

manfredkk hat geschrieben:
23.12.2022, 12:09
Ach und noch eine zweite Frage: Wenn ich anstelle von "Tastern" lieber "Schalter" haben möchte, kann ich dann auf dieses Gerät einfach z.B. diese Firmware einspielen (und im Quellcode nur die PINs entsprechend anpassen) ?
https://github.com/jp112sdl/HB-UNI-SenA ... 4-4-SC.ino
Sollte gehen. Versuch macht klug.

Hierbei sind die Schalter-Kanäle und Aktor-Kanäle jedoch getrennt.
Du könntest die internen Peerings anlegen lassen, wenn du das hier mit rein nimmst:
https://github.com/jp112sdl/HB-UNI-SenA ... SC.ino#L39
manfredkk hat geschrieben:
23.12.2022, 12:09
Wofür ist hier der "SABOTAGE_PIN_1" ?
Für einen zusätzlichen Sabotage-Kontakt ^^

VG,
Jérôme ☕️

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

manfredkk
Beiträge: 4
Registriert: 22.12.2022, 23:21
System: sonstige

Re: HM-LC-Sw2-FM Taster haben keine Funktion, per Funk schalten funktioniert

Beitrag von manfredkk » 23.12.2022, 13:26

Danke Jérôme, ich habe jetzt erfolgreich den Sketch "HB-UNI-SenAct-4-4-SC" aufgespielt. Mit "#define CREATE_INTERNAL_PEERINGS" werden auch die internen Verknüpfungen angelegt.

Jedoch habe hier die Taster weiter nur die Funktion eines Tasters, nicht eines Schalters.

Also der Zustand der RELAY_PIN ändert sich nur, sobald ich einen Taster drücke und loslasse.

Ich hätte erwartet, dass sich der Zustand ändert, sobald ich einen Taster drücke und halte (eben wie ein Schalter).

Liegt da ein Fehler im Quellcode vor? Die "SC" Variante soll doch eigentlich die mit "Schaltern" sein.

Code: Alles auswählen

//- -----------------------------------------------------------------------------------------------------------------------
// AskSin++
// 2016-10-31 papa Creative Commons - http://creativecommons.org/licenses/by-nc-sa/3.0/de/
// 2018-08-13 jp112sdl Creative Commons - http://creativecommons.org/licenses/by-nc-sa/3.0/de/
// special thanks to "klassisch" from homematic-forum.de
//- -----------------------------------------------------------------------------------------------------------------------
// ci-test=yes board=328p aes=no

// define this to read the device id, serial and device type from bootloader section
#define USE_OTA_BOOTLOADER
#define USE_WOR

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

//#define USE_BATTERY_MODE       // bei Batteriebetrieb
#define LOWBAT_VOLTAGE     22    // Batterie-Leermeldung bei Unterschreiten der Spannung von U * 10

#define RELAY_PIN_1 15
#define RELAY_PIN_2 14
#define RELAY_PIN_3 16
#define RELAY_PIN_4 17

#define SENS_PIN_1  6
#define SENS_PIN_2  5
#define SENS_PIN_3  7
#define SENS_PIN_4  9

#define SABOTAGE_PIN_1    3

#define LED_PIN           4
#define CONFIG_BUTTON_PIN 8

// number of available peers per channel
#define CREATE_INTERNAL_PEERINGS
#define PEERS_PER_SwitchChannel  6
#define PEERS_PER_SENSCHANNEL    6

#ifdef USE_BATTERY_MODE
#define battOp_ARGUMENT BatterySensor
#define DEV_MODEL 0x33
#define CYCLETIME seconds2ticks(60UL * 60 * 12 * 0.88) // 60 seconds * 60 (= minutes) * 12 (=hours) * corrective factor
#else
#define battOp_ARGUMENT NoBattery
#define DEV_MODEL 0x31
#define CYCLETIME seconds2ticks(60UL * 3 * 0.88)  // every 3 minutes
#endif

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

// define all device properties
const struct DeviceInfo PROGMEM devinfo = {
  {0xf3, DEV_MODEL, 0x01},// Device ID
  "JPSENACT01",           // Device Serial
  {0xf3, DEV_MODEL},      // 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>, battOp_ARGUMENT, Radio<RadioSPI, 2> > Hal;
Hal hal;

DEFREGISTER(Reg0, MASTERID_REGS, DREG_INTKEY, DREG_CYCLICINFOMSG, DREG_SABOTAGEMSG)
class SwList0 : public RegList0<Reg0> {
  public:
    SwList0(uint16_t addr) : RegList0<Reg0>(addr) {}
    void defaults() {
      clear();
      intKeyVisible(true);
      sabotageMsg(true);
      cycleInfoMsg(true);
    }
};


DEFREGISTER(Reg1, CREG_AES_ACTIVE, CREG_MSGFORPOS, CREG_EVENTDELAYTIME, CREG_LEDONTIME, CREG_TRANSMITTRYMAX)
class SensList1 : public RegList1<Reg1> {
  public:
    SensList1 (uint16_t addr) : RegList1<Reg1>(addr) {}
    void defaults () {
      clear();
      msgForPosA(1);
      msgForPosB(2);
      aesActive(false);
      eventDelaytime(0);
      ledOntime(100);
      transmitTryMax(6);
    }
};

typedef SwitchChannel<Hal, PEERS_PER_SwitchChannel, SwList0>  SwChannel;
typedef TwoStateChannel<Hal, SwList0, SensList1, DefList4, PEERS_PER_SENSCHANNEL> SensChannel;

class MixDevice : public ChannelDevice<Hal, VirtBaseChannel<Hal, SwList0>, 8, SwList0> {
    class CycleInfoAlarm : public Alarm {
        MixDevice& dev;
      public:
        CycleInfoAlarm (MixDevice& d) : Alarm (CYCLETIME), dev(d) {}
        virtual ~CycleInfoAlarm () {}

        void trigger (AlarmClock& clock)  {
          set(CYCLETIME);
          clock.add(*this);
          dev.switchChannel(1).changed(true);
        }
    } cycle;

  public:
    VirtChannel<Hal, SwChannel, SwList0>   swChannel1,   swChannel2,   swChannel3,   swChannel4;
    VirtChannel<Hal, SensChannel, SwList0> sensChannel5, sensChannel6, sensChannel7, sensChannel8;
  public:
    typedef ChannelDevice<Hal, VirtBaseChannel<Hal, SwList0>, 8, SwList0> DeviceType;
    MixDevice (const DeviceInfo& info, uint16_t addr) : DeviceType(info, addr), cycle(*this) {
      DeviceType::registerChannel(swChannel1, 1);
      DeviceType::registerChannel(swChannel2, 2);
      DeviceType::registerChannel(swChannel3, 3);
      DeviceType::registerChannel(swChannel4, 4);

      DeviceType::registerChannel(sensChannel5, 5);
      DeviceType::registerChannel(sensChannel6, 6);
      DeviceType::registerChannel(sensChannel7, 7);
      DeviceType::registerChannel(sensChannel8, 8);
    }
    virtual ~MixDevice () {}


    SwChannel& switchChannel (uint8_t num)  {
      switch (num) {
        case 1:
          return swChannel1;
          break;
        case 2:
          return swChannel2;
          break;
        case 3:
          return swChannel3;
          break;
        case 4:
          return swChannel4;
          break;
      }
    }

    SensChannel& sensorChannel (uint8_t num)  {
      switch (num) {
        case 5:
          return sensChannel5;
          break;
        case 6:
          return sensChannel6;
          break;
        case 7:
          return sensChannel7;
          break;
        case 8:
          return sensChannel8;
          break;
      }
    }

    virtual void configChanged () {
      if ( this->getList0().cycleInfoMsg() == true ) {
        DPRINTLN("Activate Cycle Msg");
        sysclock.cancel(cycle);
        cycle.set(CYCLETIME);
        sysclock.add(cycle);
      }
      else {
        DPRINTLN("Deactivate Cycle Msg");
        sysclock.cancel(cycle);
      }
    }
};
MixDevice sdev(devinfo, 0x20);
ConfigButton<MixDevice> cfgBtn(sdev);

void initPeerings (bool first) {
  // create internal peerings - CCU2 needs this
  if ( first == true ) {
#ifdef CREATE_INTERNAL_PEERINGS    
    HMID devid;
    sdev.getDeviceID(devid);
    for ( uint8_t i = 1; i <= 4; ++i ) {
      Peer ipeer(devid, i + 4);
      sdev.switchChannel(i).peer(ipeer);
    }
    for ( uint8_t i = 1; i <= 4; ++i ) {
      Peer ipeer(devid, i);
      sdev.sensorChannel(i + 4).peer(ipeer);
    }
#endif    
  }
}

void setup () {
  DINIT(57600, ASKSIN_PLUS_PLUS_IDENTIFIER);
  bool first = sdev.init(hal);
  sdev.switchChannel(1).init(RELAY_PIN_1, false);
  sdev.switchChannel(2).init(RELAY_PIN_2, false);
  sdev.switchChannel(3).init(RELAY_PIN_3, false);
  sdev.switchChannel(4).init(RELAY_PIN_4, false);

  sdev.sensorChannel(5).init(SENS_PIN_1, SABOTAGE_PIN_1);
  sdev.sensorChannel(6).init(SENS_PIN_2, SABOTAGE_PIN_1);
  sdev.sensorChannel(7).init(SENS_PIN_3, SABOTAGE_PIN_1);
  sdev.sensorChannel(8).init(SENS_PIN_4, SABOTAGE_PIN_1);

  buttonISR(cfgBtn, CONFIG_BUTTON_PIN);

  initPeerings(first);

#ifdef USE_BATTERY_MODE
  hal.activity.stayAwake(seconds2ticks(15));
  hal.battery.low(LOWBAT_VOLTAGE);
  // measure battery every 12 hours
  hal.battery.init(seconds2ticks(60UL * 60 * 12 * 0.88), sysclock);
#endif

  hal.radio.initReg(CC1101_FREQ2, 0x21);
  hal.radio.initReg(CC1101_FREQ1, 0x65);
  hal.radio.initReg(CC1101_FREQ0, 0xF2);

  sdev.initDone();
}

void loop() {
  bool worked = hal.runready();
  bool poll = sdev.pollRadio();
  if ( worked == false && poll == false ) {
#ifdef USE_BATTERY_MODE
    hal.activity.savePower<Sleep<> >(hal);
#else
    hal.activity.savePower<Idle<> >(hal);
#endif
  }
}
Homegear Infos:

Code: Alles auswählen

Family 0 - peer 49> config print
MASTER
{
        Channel: 8
        {
                [TRANSMIT_TRY_MAX]: 06
                [MSG_FOR_POS_B]: 01
                [MSG_FOR_POS_A]: 02
                [AES_ACTIVE]: 00
                [EVENT_DELAYTIME]: 00
        }
        Channel: 7
        {
                [TRANSMIT_TRY_MAX]: 06
                [MSG_FOR_POS_B]: 01
                [MSG_FOR_POS_A]: 02
                [AES_ACTIVE]: 00
                [EVENT_DELAYTIME]: 00
        }
        Channel: 6
        {
                [TRANSMIT_TRY_MAX]: 06
                [MSG_FOR_POS_B]: 01
                [MSG_FOR_POS_A]: 02
                [AES_ACTIVE]: 00
                [EVENT_DELAYTIME]: 00
        }
        Channel: 1
        {
                [TRANSMIT_TRY_MAX]: 06
                [STATUSINFO_MINDELAY]: 04
                [AES_ACTIVE]: 00
                [STATUSINFO_RANDOM]: 01
                [POWERUP_ACTION]: 00
        }
        Channel: 0
        {
                [SABOTAGE_MSG]: 01
                [CYCLIC_INFO_MSG]: 01
        }
        Channel: 2
        {
                [TRANSMIT_TRY_MAX]: 06
                [STATUSINFO_MINDELAY]: 04
                [AES_ACTIVE]: 00
                [STATUSINFO_RANDOM]: 01
                [POWERUP_ACTION]: 00
        }
        Channel: 3
        {
                [TRANSMIT_TRY_MAX]: 06
                [STATUSINFO_MINDELAY]: 04
                [AES_ACTIVE]: 00
                [STATUSINFO_RANDOM]: 01
                [POWERUP_ACTION]: 00
        }
        Channel: 4
        {
                [TRANSMIT_TRY_MAX]: 06
                [STATUSINFO_MINDELAY]: 04
                [AES_ACTIVE]: 00
                [STATUSINFO_RANDOM]: 01
                [POWERUP_ACTION]: 00
        }
        Channel: 5
        {
                [TRANSMIT_TRY_MAX]: 06
                [MSG_FOR_POS_B]: 01
                [MSG_FOR_POS_A]: 02
                [AES_ACTIVE]: 00
                [EVENT_DELAYTIME]: 00
        }
}

VALUES
{
        Channel: 8
        {
                [STATE]: 00
                [LOWBAT]: 00
                [ERROR]: 00
                [INSTALL_TEST]: 00
        }
        Channel: 7
        {
                [STATE]: 00
                [LOWBAT]: 00
                [ERROR]: 00
                [INSTALL_TEST]: 00
        }
        Channel: 6
        {
                [STATE]: c8
                [LOWBAT]: 00
                [ERROR]: 00
                [INSTALL_TEST]: 00
        }
        Channel: 1
        {
                [WORKING]: 00
                [STATE]: c8
                [ON_TIME]: 00
                [INHIBIT]: 00
                [INSTALL_TEST]: 00
        }
        Channel: 0
        {
                [UNREACH]: 00
                [CONFIG_PENDING]: 00
                [STICKY_UNREACH]: 00
                [AES_KEY]: 00
                [LAST_PACKET_RECEIVED]: 63 a5 9f 0c
                [RSSI_DEVICE]: 40
                [RSSI_PEER]: 00
        }
        Channel: 2
        {
                [WORKING]: 00
                [STATE]: c8
                [ON_TIME]: 00
                [INHIBIT]: 00
                [INSTALL_TEST]: 00
        }
        Channel: 3
        {
                [WORKING]: 00
                [STATE]: 00
                [ON_TIME]: 00
                [INHIBIT]: 00
                [INSTALL_TEST]: 00
        }
        Channel: 4
        {
                [WORKING]: 00
                [STATE]: 00
                [ON_TIME]: 00
                [INHIBIT]: 00
                [INSTALL_TEST]: 00
        }
        Channel: 5
        {
                [STATE]: c8
                [LOWBAT]: 00
                [ERROR]: 00
                [INSTALL_TEST]: 00
        }
}

LINK
{
        Channel: 8
        {
                Address: 0xf33101
                {
                        Remote channel: 4
                        {
                                [PEER_NEEDS_BURST]: 00
                                [EXPECT_AES]: 00
                        }
                }
        }
        Channel: 7
        {
                Address: 0xf33101
                {
                        Remote channel: 3
                        {
                                [PEER_NEEDS_BURST]: 00
                                [EXPECT_AES]: 00
                        }
                }
        }
        Channel: 2
        {
                Address: 0xf33101
                {
                        Remote channel: 6
                        {
                                [SHORT_ON_TIME]: ff
                                [SHORT_ONDELAY_TIME]: 00
                                [SHORT_OFF_TIME_MODE]: 00
                                [SHORT_JT_ON]: 04
                                [UI_HINT]: 00
                                [SHORT_OFFDELAY_TIME]: 00
                                [SHORT_JT_ONDELAY]: 03
                                [SHORT_CT_ON]: 00
                                [SHORT_CT_OFFDELAY]: 00
                                [SHORT_OFF_TIME]: ff
                                [SHORT_CT_OFF]: 00
                                [SHORT_COND_VALUE_LO]: 32
                                [SHORT_JT_OFF]: 01
                                [SHORT_COND_VALUE_HI]: 64
                                [LONG_ON_TIME_MODE]: 00
                                [LONG_ON_TIME]: ff
                                [LONG_COND_VALUE_HI]: 64
                                [LONG_CT_OFFDELAY]: 00
                                [SHORT_CT_ONDELAY]: 00
                                [LONG_JT_ONDELAY]: 03
                                [LONG_CT_OFF]: 00
                                [LONG_CT_ONDELAY]: 00
                                [LONG_COND_VALUE_LO]: 32
                                [LONG_ACTION_TYPE]: 01
                                [SHORT_ACTION_TYPE]: 01
                                [LONG_ONDELAY_TIME]: 00
                                [LONG_JT_OFF]: 01
                                [LONG_MULTIEXECUTE]: 00
                                [SHORT_ON_TIME_MODE]: 00
                                [LONG_JT_OFFDELAY]: 06
                                [LONG_OFFDELAY_TIME]: 00
                                [LONG_OFF_TIME]: ff
                                [SHORT_JT_OFFDELAY]: 06
                                [LONG_CT_ON]: 00
                                [LONG_JT_ON]: 04
                                [LONG_OFF_TIME_MODE]: 00
                        }
                }
        }
        Channel: 1
        {
                Address: 0xf33101
                {
                        Remote channel: 5
                        {
                                [SHORT_ON_TIME]: ff
                                [SHORT_ONDELAY_TIME]: 00
                                [SHORT_OFF_TIME_MODE]: 00
                                [SHORT_JT_ON]: 04
                                [UI_HINT]: 00
                                [SHORT_OFFDELAY_TIME]: 00
                                [SHORT_JT_ONDELAY]: 03
                                [SHORT_CT_ON]: 00
                                [SHORT_CT_OFFDELAY]: 00
                                [SHORT_OFF_TIME]: ff
                                [SHORT_CT_OFF]: 00
                                [SHORT_COND_VALUE_LO]: 32
                                [SHORT_JT_OFF]: 01
                                [SHORT_COND_VALUE_HI]: 64
                                [LONG_ON_TIME_MODE]: 00
                                [LONG_ON_TIME]: ff
                                [LONG_COND_VALUE_HI]: 64
                                [LONG_CT_OFFDELAY]: 00
                                [SHORT_CT_ONDELAY]: 00
                                [LONG_JT_ONDELAY]: 03
                                [LONG_CT_OFF]: 00
                                [LONG_CT_ONDELAY]: 00
                                [LONG_COND_VALUE_LO]: 32
                                [LONG_ACTION_TYPE]: 01
                                [SHORT_ACTION_TYPE]: 01
                                [LONG_ONDELAY_TIME]: 00
                                [LONG_JT_OFF]: 01
                                [LONG_MULTIEXECUTE]: 00
                                [SHORT_ON_TIME_MODE]: 00
                                [LONG_JT_OFFDELAY]: 06
                                [LONG_OFFDELAY_TIME]: 00
                                [LONG_OFF_TIME]: ff
                                [SHORT_JT_OFFDELAY]: 06
                                [LONG_CT_ON]: 00
                                [LONG_JT_ON]: 04
                                [LONG_OFF_TIME_MODE]: 00
                        }
                }
        }
        Channel: 3
        {
                Address: 0xf33101
                {
                        Remote channel: 7
                        {
                                [SHORT_ON_TIME]: ff
                                [SHORT_ONDELAY_TIME]: 00
                                [SHORT_OFF_TIME_MODE]: 00
                                [SHORT_JT_ON]: 04
                                [UI_HINT]: 00
                                [SHORT_OFFDELAY_TIME]: 00
                                [SHORT_JT_ONDELAY]: 03
                                [SHORT_CT_ON]: 00
                                [SHORT_CT_OFFDELAY]: 00
                                [SHORT_OFF_TIME]: ff
                                [SHORT_CT_OFF]: 00
                                [SHORT_COND_VALUE_LO]: 32
                                [SHORT_JT_OFF]: 01
                                [SHORT_COND_VALUE_HI]: 64
                                [LONG_ON_TIME_MODE]: 00
                                [LONG_ON_TIME]: ff
                                [LONG_COND_VALUE_HI]: 64
                                [LONG_CT_OFFDELAY]: 00
                                [SHORT_CT_ONDELAY]: 00
                                [LONG_JT_ONDELAY]: 03
                                [LONG_CT_OFF]: 00
                                [LONG_CT_ONDELAY]: 00
                                [LONG_COND_VALUE_LO]: 32
                                [LONG_ACTION_TYPE]: 01
                                [SHORT_ACTION_TYPE]: 01
                                [LONG_ONDELAY_TIME]: 00
                                [LONG_JT_OFF]: 01
                                [LONG_MULTIEXECUTE]: 00
                                [SHORT_ON_TIME_MODE]: 00
                                [LONG_JT_OFFDELAY]: 06
                                [LONG_OFFDELAY_TIME]: 00
                                [LONG_OFF_TIME]: ff
                                [SHORT_JT_OFFDELAY]: 06
                                [LONG_CT_ON]: 00
                                [LONG_JT_ON]: 04
                                [LONG_OFF_TIME_MODE]: 00
                        }
                }
        }
        Channel: 4
        {
                Address: 0xf33101
                {
                        Remote channel: 8
                        {
                                [SHORT_ON_TIME]: ff
                                [SHORT_ONDELAY_TIME]: 00
                                [SHORT_OFF_TIME_MODE]: 00
                                [SHORT_JT_ON]: 04
                                [UI_HINT]: 00
                                [SHORT_OFFDELAY_TIME]: 00
                                [SHORT_JT_ONDELAY]: 03
                                [SHORT_CT_ON]: 00
                                [SHORT_CT_OFFDELAY]: 00
                                [SHORT_OFF_TIME]: ff
                                [SHORT_CT_OFF]: 00
                                [SHORT_COND_VALUE_LO]: 32
                                [SHORT_JT_OFF]: 01
                                [SHORT_COND_VALUE_HI]: 64
                                [LONG_ON_TIME_MODE]: 00
                                [LONG_ON_TIME]: ff
                                [LONG_COND_VALUE_HI]: 64
                                [LONG_CT_OFFDELAY]: 00
                                [SHORT_CT_ONDELAY]: 00
                                [LONG_JT_ONDELAY]: 03
                                [LONG_CT_OFF]: 00
                                [LONG_CT_ONDELAY]: 00
                                [LONG_COND_VALUE_LO]: 32
                                [LONG_ACTION_TYPE]: 01
                                [SHORT_ACTION_TYPE]: 01
                                [LONG_ONDELAY_TIME]: 00
                                [LONG_JT_OFF]: 01
                                [LONG_MULTIEXECUTE]: 00
                                [SHORT_ON_TIME_MODE]: 00
                                [LONG_JT_OFFDELAY]: 06
                                [LONG_OFFDELAY_TIME]: 00
                                [LONG_OFF_TIME]: ff
                                [SHORT_JT_OFFDELAY]: 06
                                [LONG_CT_ON]: 00
                                [LONG_JT_ON]: 04
                                [LONG_OFF_TIME_MODE]: 00
                        }
                }
        }
        Channel: 5
        {
                Address: 0xf33101
                {
                        Remote channel: 1
                        {
                                [PEER_NEEDS_BURST]: 00
                                [EXPECT_AES]: 00
                        }
                }
        }
        Channel: 6
        {
                Address: 0xf33101
                {
                        Remote channel: 2
                        {
                                [PEER_NEEDS_BURST]: 00
                                [EXPECT_AES]: 00
                        }
                }
        }
}

Code: Alles auswählen

Family 0 - peer 49> peers list
Channel: 8      Address: 0xf33101       Remote channel: 4       Serial number:  Virtual: False
Channel: 7      Address: 0xf33101       Remote channel: 3       Serial number:  Virtual: False
Channel: 2      Address: 0xf33101       Remote channel: 6       Serial number:  Virtual: False
Channel: 1      Address: 0xf33101       Remote channel: 5       Serial number:  Virtual: False
Channel: 3      Address: 0xf33101       Remote channel: 7       Serial number:  Virtual: False
Channel: 4      Address: 0xf33101       Remote channel: 8       Serial number:  Virtual: False
Channel: 5      Address: 0xf33101       Remote channel: 1       Serial number:  Virtual: False
Channel: 6      Address: 0xf33101       Remote channel: 2       Serial number:  Virtual: False

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

Re: HM-LC-Sw2-FM Taster haben keine Funktion, per Funk schalten funktioniert

Beitrag von jp112sdl » 23.12.2022, 13:31

Die Einstellungen für die DV "SC<>Aktor" musst du über die WebUI machen.
z.B. OPEN = Aktor EIN, CLOSE= Aktor AUS

P.S.: In wie weit Homegear das unterstützt, kann ich dir nicht sagen

VG,
Jérôme ☕️

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

manfredkk
Beiträge: 4
Registriert: 22.12.2022, 23:21
System: sonstige

Re: HM-LC-Sw2-FM Taster haben keine Funktion, per Funk schalten funktioniert

Beitrag von manfredkk » 23.12.2022, 14:15

:mrgreen: Ich werd wahnsinnig :mrgreen:
Alles was ich einstellen kann ist: Meldung in Position offen / geschlossen: [zu / offen / keine Meldung]

Screenshot Homematic Manager:
Oder mit dem Homematic Manager betrachtet:
Bild


Also habe ich jetzt doch mit den Verknüpfungen gespielt (dachte dass das nicht notwendig ist / dass das vom Quellcode geregelt wird)

Mit so einer Verknüpfung

Bild

erreiche ich, dass tatsächlich der Taster als "Schalter" fungiert. Also Taster gedrückt -> Ausgang an, Taster loslassen -> Ausgang aus.

Jetzt kommt aber das Problem, wenn ich per Funk den Zustand des Ausgang ändere.
z.B. Taster ist gedrückt (Ausgang ist an) -> per Funk Befehl "Ausgang AUS" -> Ausgang wird AUS. Lasse ich den Taster jetzt los, passiert nichts.

Dabei will ich ja gerade, dass sich jetzt wieder der Zustand des Ausgangs ändert (hier auf AN).

Habe es auch mit so einer Einstellung ausprobiert

Bild

aber jetzt bleibt der Ausgang immer auf AN.

Ich glaube ich werde doch auf eine Shelly wechseln müssen:oops: :oops: :oops: .
Aber eigentlich müsste ich doch erreichen können was ich will :shock: Ich gebe ungern auf.

Antworten

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