[HM-Wired] HMW-LC-Sw2-DR / HBW-LC-Sw-8 => neues input/output Modul HBW-IO-6-6

Begonnen von a_quadrat, 08 Oktober 2019, 12:44:51

Vorheriges Thema - Nächstes Thema

loetmeister

Hi,

wenn du den hbw_config struct veränderst, dann ändern sich auch die Startadressen. Wenn ich mich nicht verrechnet habe, dann sollten die Adressen wie folgt sein:

struct hbw_config {
  uint8_t logging_time;     // 0x01
  uint32_t central_address;  // 0x02 - 0x05
  uint8_t direct_link_deactivate:1;   // 0x06:0
  uint8_t              :7;   // 0x06:1-7
  hbw_config_switch switchCfg[NUMBER_OF_OUT_CHAN]; // 0x07 - 0x12 (address step 2)
  hbw_config_senSC senCfg[NUMBER_OF_SEN_INPUT_CHAN]; // 0x13 - 0x18 (address step 1)
  hbw_config_key keyCfg[NUMBER_OF_INPUT_CHAN]; // 0x19 - 0x25 (address step 2)
} hbwconfig;


address_start="0x1D" für channel index="13" type="KEY" ist dann folglich nicht richtig.

Gruß,
Thomas

a_quadrat

Hi Thomas,

ja, das war es. Danke für den Tipp. Jetzt habe ich das auch mit der Speicherzuweisung verstanden  ;).

Ich habe noch eine Frage zu den Nachrichten. Anbei einmal der Schaltbefehl aus der CCU. Die Nachricht geht einmal raus, aber wird zweimal bestätigt. Ist das so richtig?


R: FD:42:FF:FF:FF:18:00:00:00:01:05:78:00:C8:41:36
S: 00 C8
T: FD:00:00:00:01:18:42:FF:FF:FF:05:69:00:C8:49:6C
R: FD:42:FF:FF:FF:19:00:00:00:01:02:F5:06
R: ACK
T: FD:00:00:00:01:98:42:FF:FF:FF:05:69:00:C8:57:2E
R: FD:42:FF:FF:FF:19:00:00:00:01:02:F5:06
R: ACK


VG Andreas

loetmeister

Hi,

Die zweite Nachricht müsste die notify Meldung sein, welche fünf Sekunden später verschickt wird. Wenn du notify für den Kanal abschaltest sollte diese Nachricht nicht mehr verschickt werden.
Dies ist hauptsächlich dafür gedacht, dass die zentrale neue schaltzustände mitbekommt, welche über eine direktverknüpfung, o.ä.ausgelöst wurden.

Gruß,
Thomas

a_quadrat

Ja, die zweite Nachricht kommt ein paar Sekunden später, aber bei den Ausgängen kann man kein notify Ein- Ausschalten, das ist Ok, kann ja nicht schaden.

loetmeister

Hi,

sorry, die Option nennt sich LOGGING.  :D
Sollte für jeden Aktor Kanal (wie z.B. SWITCH) vorhanden sein. Die Zeitverzögerung ist eine Option des Devices "LOGGING_TIME". (Standard, meist zwischen 2 und 5 Sekunden)

Ich stelle fest, beim Kanal type="SENSOR" habe ich es "NOTIFY" genannt.  ???
Es macht das selbe wie LOGGING, nutzt aber nicht den "LOGGING_TIME" Wert... daher hatte ich wohl einen anderen Namen gewählt.

Gruß,
Thomas

a_quadrat

Hi,

ich habe dem Modul noch ein Blind Channel zugefügt, es funktioniert auch soweit, nur mit dem Peering komme ich nicht weiter. Ich kann im Sketch nur zwei Peering Gruppen definieren. Woran liegt das?


  device = new HBIODevice(HMW_DEVICETYPE, HARDWARE_VERSION, FIRMWARE_VERSION,
                         &rs485,RS485_TXEN,sizeof(hbwconfig),&hbwconfig,
                         NUMBER_OF_CHAN,(HBWChannel**)channels,
#ifdef NO_DEBUG_OUTPUT
                         NULL,
  #else
                         &Serial,
  #endif
                         new HBWLinkKey(NUM_LINKS_INPUT,LINKADDRESSSTART_INPUT), new HBWLinkBlindSimple(NUM_LINKS_BL,LINKADDRESSSTART_BL));
                         // new HBWLinkSwitchSimple(NUM_LINKS_OUT,LINKADDRESSSTART_OUT));


VG Andreas

Thorsten Pferdekaemper

Zitat von: a_quadrat am 06 November 2019, 21:55:15
ich habe dem Modul noch ein Blind Channel zugefügt, es funktioniert auch soweit, nur mit dem Peering komme ich nicht weiter. Ich kann im Sketch nur zwei Peering Gruppen definieren. Woran liegt das?
Die HMW-Geräte (also der Krams von eq3) können nur Peerings als "actor" oder "sensor". Dabei gibt es keine Entscheidungsmöglichkeit, ob der "actor" z.B. ein Schalter oder ein Rollladen ist. Daher gibt es auch in FHEM nur zwei Gruppen von Peerings, was sich auch in der HBW-Library widerspiegelt.
Das zu ändern wäre recht viel Aufwand und es würde auch wahrscheinlich mit der CCU nicht funktionieren.
Gruß,
   Thorsten
FUIP

a_quadrat

Achso, dann muss ich mich entschieden, ob ich den Schalter oder den Rolladen peeren möchte. Richtig?

VG Andreas

Thorsten Pferdekaemper

Naja, ein einzelnes Peering zielt ja immer auf einen bestimmten Kanal (zumindest ist das in der Datenstruktur so vorgesehen). Du kannst also trotzdem zwischen den Kanälen unterscheiden. Du kannst nur keine unterschiedlichen Parameter für die zwei Peering-Sorten haben.
Gruß,
   Thorsten
FUIP

a_quadrat

Wie meinst du das? Im Sketch kann ich nur eine Peeringsorte definieren, z.B. "new HBWLinkBlindSimple(NUM_LINKS_BL,LINKADDRESSSTART_BL)". Kann ich damit auch den Schalter peeren?

Thorsten Pferdekaemper

Hi,
ich habe jetzt nicht im Kopf, was HBWLinkBlindSimple genau macht, aber wahrscheinlich wäre es geschickter, für so etwas eine eigene Klasse zu schreiben, die eben genau das macht, was Du willst.
Gruß,
   Thorsten
FUIP

a_quadrat

Danke, schaue ich mir mal an.

In der XML werden die "num_links" dann aufgeteilt (Schalter/Rolladen)? Ist da noch was zu beachten?

VG Andreas

loetmeister

Hi,

Du müsstest das so ähnlich machen, wie hier diskutiert.. https://forum.fhem.de/index.php/topic,102124.0.html

Bei FHEM wird nur jeweils eine Peering Konfiguration, also start Adresse und address_step, für aktor und sensor benutzt, auch wenn man mehrere in die XML schreibt..  ;)
D.h. du musst den selben EEPROM Bereich für alle sensor oder aktor peerings nutzen.

Gruß,
Thomas

a_quadrat

Hi,

wenn ich richtig verstanden habe, muss ich in der xml für die unterschiedlichen Kanäle, beim peering, die gleiche Startadresse und step verwenden. Was ist mit den "counts"? Werden die geteilt?

VG Andreas

loetmeister

Hi,

Ne, das muss alles gleich sein. Count, also Anzahl der möglichen peerings muss in der XML, als auch in der Firmware gleich sein. Du weist ja nie an welcher Stelle das passende Peering grade steht.

<paramset type="LINK" id="hmw_switch_ch_link" peer_param="SENSOR" channel_param="CHANNEL" count="20" address_step="7" address_start="0x038">


Gruß,
Thomas