Firmware zu CUL, CUNX und Co. mit Timestamp Option ASKSIN tsculfw V0.41

Begonnen von noansi, 09 Juni 2014, 19:16:01

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

#225
Hallo,

sorry falls ich mit meinem Post #221 (oder einem anderen) ein wenig Durcheinander rein gebracht haben sollte...

Eigentlich ist im genannten Post (#218) alles beschrieben.

"Einfach" die Module nach /opt/fhem/FHEM/ kopieren (sofern das dein Installationsort ist).
Vorher natürlich Backup!

Danach aus den IODevs vom Typ CUL den Typ TSCUL machen...
..."umdefinieren"...
(ich hab's einfach in der fhem.cfg geändert / SOLL MAN ABER NICHT! ;-)  )

Dann (bis die Integration stattgefunden hat) die 00_CUL.pm und 10_CUL_HM.pm vom Update ausnehmen (habe ich aktuell so gemacht), weil sonst werden die ja wieder überschrieben...
...daher würde ich mir eine Integration wünschen bzw. eine Strategie hierfür (ich finde den Parallelbetrieb wie er hier vorgeschlagen wurde gut)...

--------------------------------------------------------------------
EDIT: ich nutze nur HM, daher reichen wohl die genannten Module vom Update auszuschließen bzw. habe ich selbst vergessen CUL_Util.pm auszuschließen (werde ich gleich noch tun! ;-)  ).
Ansonsten wie im Post #218 geschrieben:

Mit folgendem Eintrag (oder Ergänzung des attributs) in der fhem.cfg kann man das fhem update am ungewollten Austausch der angepassten Module hindern:

attr global exclude_from_update 00_CUL.pm 10_CUL_HM.pm 16_STACKABLE_CC.pm 00_TSCUL.pm 16_TSSTACKED.pm DevIoTS.pm CUL_Util.pm 10_TSIT.pm 10_UNIRoll_TS.pm 13_TSKS300.pm 14_TSCUL_TX.pm 14_TSCUL_WS.pm CalcUtil.pm
--------------------------------------------------------------------

Und natürlich die entsprechende FW auf den CUL flashen!



Ob das Problem ein Timing-Problem ist kann ich leider nicht sagen (nutze [noch] kein AES/signing)...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

weini

Danke dir, jetzt habe ich die Prozedur verstanden!

weini

Und nochmal eine Frage: Im CUL-Archiv aus Post #218 sind ja schon HEX-Dateien enthalten.
Kann ich die CULv3 für meinen nanoCUL verwenden oder muss ich selbst kompilieren?

Falls letzteres, welche Libraries brauche ich da noch, ich bekomme zig Fehler a la

In file included from /usr/lib/avr/include/avr/io.h:99:0,
                 from /usr/lib/avr/include/avr/pgmspace.h:88,
                 from ../../clib/rf_asksin.c:20:
../../clib/rf_asksin.c: In function 'rf_asksin_task':
../../clib/spi.h:119:82: error: 'SPI_CC1101_READ_SPECIAL_PIN' undeclared (first use in this function)
# define SPI_READ_BUF_ACTIVATE_GDO0_CHK()   SPI_CC1101_READ_SPECIAL_PORT |=  _BV(SPI_CC1101_READ_SPECIAL_PIN)
                                                                                  ^
../../clib/rf_asksin.c:512:5: note: in expansion of macro 'SPI_READ_BUF_ACTIVATE_GDO0_CHK'
     SPI_READ_BUF_ACTIVATE_GDO0_CHK();               // do GDO0 check while reading payload from RX-FIFO
     ^
../../clib/spi.h:119:82: note: each undeclared identifier is reported only once for each function it appears in
# define SPI_READ_BUF_ACTIVATE_GDO0_CHK()   SPI_CC1101_READ_SPECIAL_PORT |=  _BV(SPI_CC1101_READ_SPECIAL_PIN)
                                                                                  ^
../../clib/rf_asksin.c:512:5: note: in expansion of macro 'SPI_READ_BUF_ACTIVATE_GDO0_CHK'
     SPI_READ_BUF_ACTIVATE_GDO0_CHK();               // do GDO0 check while reading payload from RX-FIFO
     ^
makefile:338: recipe for target '../../clib/rf_asksin.o' failed

MadMax-FHEM

Hi,

soweit mir bekannt sind die für Original-CULs...

Ich hab meine FW selbst compiliert und geflasht...
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MadMax-FHEM

Bzgl. der Fehlermeldungen mal die Board.h anpassen...

Einige (mehrere) Posts weiter vorne habe ich mal beschrieben was ich so eingestellt hab...

Sorry, dass so kurz aber mobil...
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

weini

Danke, hat geholfen!

Habe immer noch viele Warnings:

../../clib/ttydata.c:349:9: note: #pragma message: USE_TTYDATA_NO_FUNCTION_CODE IS ACTIVE
#pragma message "USE_TTYDATA_NO_FUNCTION_CODE IS ACTIVE"
         ^
Compiling C: ../../clib/fht.c
Compiling C: ../../clib/rf_receive.c
../../clib/rf_receive.c:41:9: note: #pragma message: HAS_RF_RECEIVE_FILTER_ADAPTION IS ACTIVE
#pragma message "HAS_RF_RECEIVE_FILTER_ADAPTION IS ACTIVE"
         ^
In file included from ../../clib/rf_receive.c:44:0:
../../clib/rf_receive_timing.h:81:9: note: #pragma message: WS_WSREPEATER_OVRSH: (984-856)
#pragma message "WS_WSREPEATER_OVRSH: " STR(WS_WSREPEATER_OVRSH)
         ^
../../clib/rf_receive_timing.h:674:9: note: #pragma message: MIN_MATCHKEY_HIGHLOW_TIME: 304
#pragma message "MIN_MATCHKEY_HIGHLOW_TIME: " STR(MIN_MATCHKEY_HIGHLOW_TIME)
         ^
../../clib/rf_receive_timing.h:675:9: note: #pragma message: MAX_MATCHKEY_HIGHLOW_TIME: 1256
#pragma message "MAX_MATCHKEY_HIGHLOW_TIME: " STR(MAX_MATCHKEY_HIGHLOW_TIME)
         ^
../../clib/rf_receive_timing.h:677:9: note: #pragma message: MIN_MATCHKEY_SUM_TIME: 720
#pragma message "MIN_MATCHKEY_SUM_TIME: " STR(MIN_MATCHKEY_SUM_TIME)
         ^
../../clib/rf_receive_timing.h:678:9: note: #pragma message: MAX_MATCHKEY_SUM_TIME: 2232
#pragma message "MAX_MATCHKEY_SUM_TIME: " STR(MAX_MATCHKEY_SUM_TIME)
         ^
../../clib/rf_receive_timing.h:680:9: note: #pragma message: MIN_MANCHESTER_HIGHLOW_TIME: 250
#pragma message "MIN_MANCHESTER_HIGHLOW_TIME: " STR(MIN_MANCHESTER_HIGHLOW_TIME)
         ^
../../clib/rf_receive_timing.h:681:9: note: #pragma message: MAX_MANCHESTER_HIGHLOW_TIME: 1000
#pragma message "MAX_MANCHESTER_HIGHLOW_TIME: " STR(MAX_MANCHESTER_HIGHLOW_TIME)
         ^
../../clib/rf_receive_timing.h:683:9: note: #pragma message: MIN_MANCHESTER_SUM_TIME: 500
#pragma message "MIN_MANCHESTER_SUM_TIME: " STR(MIN_MANCHESTER_SUM_TIME)
         ^
../../clib/rf_receive_timing.h:684:9: note: #pragma message: MAX_MANCHESTER_SUM_TIME: 2000
#pragma message "MAX_MANCHESTER_SUM_TIME: " STR(MAX_MANCHESTER_SUM_TIME)
         ^
../../clib/rf_receive_timing.h:686:9: note: #pragma message: MIN_PROTOCOL_HIGHLOW_TIME: 96
#pragma message "MIN_PROTOCOL_HIGHLOW_TIME: " STR(MIN_PROTOCOL_HIGHLOW_TIME)
         ^
../../clib/rf_receive_timing.h:687:9: note: #pragma message: MAX_PROTOCOL_HIGHLOW_TIME: 1256
#pragma message "MAX_PROTOCOL_HIGHLOW_TIME: " STR(MAX_PROTOCOL_HIGHLOW_TIME)
         ^
../../clib/rf_receive_timing.h:689:9: note: #pragma message: MIN_PROTOCOL_SUM_TIME: 500
#pragma message "MIN_PROTOCOL_SUM_TIME: " STR(MIN_PROTOCOL_SUM_TIME)
         ^
../../clib/rf_receive_timing.h:690:9: note: #pragma message: MAX_PROTOCOL_SUM_TIME: 2232
#pragma message "MAX_PROTOCOL_SUM_TIME: " STR(MAX_PROTOCOL_SUM_TIME)
         ^
../../clib/rf_receive_timing.h:692:9: note: #pragma message: SILENCE_SYNC_START:   ((12160 + 500 + 8) / 8) * 8
#pragma message "SILENCE_SYNC_START:   " STR(SILENCE_SYNC_START * 8)
         ^
../../clib/rf_receive_timing.h:693:9: note: #pragma message: SILENCE_SYNC_ZERO:    ((2232 + (96 * 21/4)) / 8) * 8
#pragma message "SILENCE_SYNC_ZERO:    " STR(SILENCE_SYNC_ZERO * 8)
         ^
../../clib/rf_receive_timing.h:694:9: note: #pragma message: SILENCE:              ((1220 + (96 * 5)) / 8) * 8
#pragma message "SILENCE:              " STR(SILENCE * 8)
         ^
../../clib/rf_receive_timing.h:696:9: note: #pragma message: Max_Sync_Zero_Start_High_Time:    ((((1264 + ((96 * 2) * 3/2)) / 8)) * 8)
#pragma message "Max_Sync_Zero_Start_High_Time:    " STR(TO_1US_SCALE(Max_Sync_Zero_Start_High_Time))
         ^
../../clib/rf_receive_timing.h:697:9: note: #pragma message: Max_Sync_Zero_Start_Low_Time:     ((((1000 + ((96 * 2) * 3/2)) / 8)) * 8)
#pragma message "Max_Sync_Zero_Start_Low_Time:     " STR(TO_1US_SCALE(Max_Sync_Zero_Start_Low_Time))
         ^
../../clib/rf_receive_timing.h:699:9: note: #pragma message: MATCH_SYNC_LIMIT:   (((((((96 * 3) + ((984-856) * 2)) * 9/8)) / 8)) * 8)
#pragma message "MATCH_SYNC_LIMIT:   " STR(TO_1US_SCALE(MATCH_SYNC_LIMIT))
         ^
../../clib/rf_receive_timing.h:700:9: note: #pragma message: MATCH_ADDBIT_LIMIT: ((((((96 * 3) + ((984-856) * 2))) / 8)) * 8)
#pragma message "MATCH_ADDBIT_LIMIT: " STR(TO_1US_SCALE(MATCH_ADDBIT_LIMIT))
         ^
../../clib/rf_receive_timing.h:702:9: note: #pragma message: Min_FilterTimeLimit:          ((((22 + 8) / 8)) * 8)
#pragma message "Min_FilterTimeLimit:          " STR(TO_1US_SCALE(Min_FilterTimeLimit))
         ^
../../clib/rf_receive_timing.h:703:9: note: #pragma message: Max_FilterInTimeLimit:        (((((((65536 / 4) - 1) * 8)) / 8)) * 8)
#pragma message "Max_FilterInTimeLimit:        " STR(TO_1US_SCALE(Max_FilterInTimeLimit))
         ^
../../clib/rf_receive_timing.h:705:9: note: #pragma message: Sync_Start_High_FilterTime:   ((((22 + 8) / 8)) * 8)
#pragma message "Sync_Start_High_FilterTime:   " STR(TO_1US_SCALE(Sync_Start_High_FilterTime))
         ^
../../clib/rf_receive_timing.h:706:9: note: #pragma message: Sync_Start_Low_FilterTime:    ((((22 + 8) / 8)) * 8)
#pragma message "Sync_Start_Low_FilterTime:    " STR(TO_1US_SCALE(Sync_Start_Low_FilterTime))
         ^
../../clib/rf_receive_timing.h:707:9: note: #pragma message: Sync_Start_High_FilterInTime: ((((12000 - 8) / 8)) * 8)
#pragma message "Sync_Start_High_FilterInTime: " STR(TO_1US_SCALE(Sync_Start_High_FilterInTime))
         ^
../../clib/rf_receive_timing.h:708:9: note: #pragma message: Sync_Start_Low_FilterInTime:  ((((12160 - 8) / 8)) * 8)
#pragma message "Sync_Start_Low_FilterInTime:  " STR(TO_1US_SCALE(Sync_Start_Low_FilterInTime))
         ^
../../clib/rf_receive_timing.h:709:9: note: #pragma message: Sync_Zero_High_FilterTime:    ((((22 + 8) / 8)) * 8)
#pragma message "Sync_Zero_High_FilterTime:    " STR(TO_1US_SCALE(Sync_Zero_High_FilterTime))
         ^
../../clib/rf_receive_timing.h:710:9: note: #pragma message: Sync_Zero_Low_FilterTime:     ((((22 + 8) / 8)) * 8)
#pragma message "Sync_Zero_Low_FilterTime:     " STR(TO_1US_SCALE(Sync_Zero_Low_FilterTime))
         ^
../../clib/rf_receive_timing.h:715:9: note: #pragma message: Min_FilterTime:        ((((96 / 3) / 8)) * 8)
#pragma message "Min_FilterTime:        " STR(TO_1US_SCALE(Min_FilterTime))
         ^
../../clib/rf_receive_timing.h:716:9: note: #pragma message: Max_FilterInTimeHigh:  ((((1256 + ((96 * 2) * 9/8)) / 8)) * 8)
#pragma message "Max_FilterInTimeHigh:  " STR(TO_1US_SCALE(Max_FilterInTimeHigh))
         ^
../../clib/rf_receive_timing.h:717:9: note: #pragma message: Max_FilterInTimeLow:   ((((1256 + ((96 * 2) * 9/8) + (984-856)) / 8)) * 8)
#pragma message "Max_FilterInTimeLow:   " STR(TO_1US_SCALE(Max_FilterInTimeLow))
         ^
../../clib/rf_receive_timing.h:718:9: note: #pragma message: Def_FilterDTSpikeHigh: ((((((96 * 2) * 9/8)) / 8)) * 8)
#pragma message "Def_FilterDTSpikeHigh: " STR(TO_1US_SCALE(Def_FilterDTSpikeHigh))
         ^
../../clib/rf_receive_timing.h:719:9: note: #pragma message: Def_FilterDTSpikeLow:  ((((((96 * 2) * 9/8) + (984-856)) / 8)) * 8)
#pragma message "Def_FilterDTSpikeLow:  " STR(TO_1US_SCALE(Def_FilterDTSpikeLow))
         ^
../../clib/rf_receive_timing.h:720:9: note: #pragma message: Def_FilterDTUpperHigh: ((((((96 * 2) * 9/8)) / 8)) * 8)
#pragma message "Def_FilterDTUpperHigh: " STR(TO_1US_SCALE(Def_FilterDTUpperHigh))
         ^
../../clib/rf_receive_timing.h:721:9: note: #pragma message: Def_FilterDTUpperLow:  ((((((96 * 2) * 9/8) + (984-856)) / 8)) * 8)
#pragma message "Def_FilterDTUpperLow:  " STR(TO_1US_SCALE(Def_FilterDTUpperLow))
         ^
../../clib/rf_receive_timing.h:784:9: note: #pragma message: MIN_SYNC_BITS: 7
#pragma message "MIN_SYNC_BITS: " STR(MIN_SYNC_BITS)
         ^
../../clib/rf_receive.c:50:9: note: #pragma message: CALCTIME_TIMER_TCNTn IS USED FOR CALC TIME MEASUREMENT IN 1US UNITS
#pragma message "CALCTIME_TIMER_TCNTn IS USED FOR CALC TIME MEASUREMENT IN 1US UNITS"
         ^
../../clib/rf_receive.c:58:9: note: #pragma message: HAS_TX3 IS ACTIVE
#pragma message "HAS_TX3 IS ACTIVE"
         ^
../../clib/rf_receive.c:62:9: note: #pragma message: HAS_ESA IS ACTIVE
#pragma message "HAS_ESA IS ACTIVE"
         ^
../../clib/rf_receive.c:66:9: note: #pragma message: HAS_IT IS ACTIVE
#pragma message "HAS_IT IS ACTIVE"
         ^
../../clib/rf_receive.c:70:9: note: #pragma message: HAS_REVOLT IS ACTIVE
#pragma message "HAS_REVOLT IS ACTIVE"
         ^
../../clib/rf_receive.c:74:9: note: #pragma message: HAS_RF_RECEIVE_KEYING IS ACTIVE
#pragma message "HAS_RF_RECEIVE_KEYING IS ACTIVE"
         ^
../../clib/rf_receive.c:82:9: note: #pragma message: LONG_PULSE IS ACTIVE
#pragma message "LONG_PULSE IS ACTIVE"
         ^
../../clib/rf_receive.c:90:9: note: #pragma message: HAS_CC1101_REGULAR_CALIBRATION_AFTER_RX IS ACTIVE
#pragma message "HAS_CC1101_REGULAR_CALIBRATION_AFTER_RX IS ACTIVE"
         ^
../../clib/rf_receive.c:92:9: note: #pragma message: HAS_CC1101_REGULAR_CALIBRATION_AFTER_RX_FUNC IS ACTIVE
#pragma message "HAS_CC1101_REGULAR_CALIBRATION_AFTER_RX_FUNC IS ACTIVE"
         ^
../../clib/rf_receive.c:181:9: note: #pragma message: HAS_SLOWRF_RECTO_ACTION IS ACTIVE
#pragma message "HAS_SLOWRF_RECTO_ACTION IS ACTIVE"
         ^
Compiling C: ../../clib/rf_router.c
Compiling C: ../../clib/rf_send.c
../../clib/rf_send.c: In function 'sendraw':
../../clib/rf_send.c:708:9: note: #pragma message: HAS_RAWSEND_FORCE_IDLE_BEFORE_TX IS ACTIVE
#pragma message "HAS_RAWSEND_FORCE_IDLE_BEFORE_TX IS ACTIVE"
         ^
Compiling C: ../../clib/rf_credits.c
../../clib/rf_credits.c:16:9: note: #pragma message: USES_RF_CALC_CREDITS_BYTE_RATE IS ACTIVE
#pragma message "USES_RF_CALC_CREDITS_BYTE_RATE IS ACTIVE"
         ^
../../clib/rf_credits.c:66:9: note: #pragma message: USES_RF_CALC_CREDITS_TIME16US IS ACTIVE
#pragma message "USES_RF_CALC_CREDITS_TIME16US IS ACTIVE"
         ^
Compiling C: ../../clib/clock.c
../../clib/clock.c:51:9: note: #pragma message: HAS_GET_TIMESTAMP IS ACTIVE
#pragma message "HAS_GET_TIMESTAMP IS ACTIVE"
         ^
Compiling C: ../../clib/delay.c
Compiling C: ../../clib/rf_asksin.c
../../clib/rf_asksin.c:61:9: note: #pragma message: HAS_ASKSIN_FUP IS ACTIVE
#pragma message "HAS_ASKSIN_FUP IS ACTIVE"
         ^
../../clib/rf_asksin.c:65:9: note: #pragma message: HAS_ASKSIN_TIMESTAMP IS ACTIVE
#pragma message "HAS_ASKSIN_TIMESTAMP IS ACTIVE"
         ^
../../clib/rf_asksin.c:69:9: note: #pragma message: HAS_ASKSIN_PING IS ACTIVE
#pragma message "HAS_ASKSIN_PING IS ACTIVE"
         ^
../../clib/rf_asksin.c:73:9: note: #pragma message: HAS_ASKSIN_SEND_TIMESTAMP IS ACTIVE
#pragma message "HAS_ASKSIN_SEND_TIMESTAMP IS ACTIVE"
         ^
../../clib/rf_asksin.c:77:9: note: #pragma message: HAS_ASKSIN_NO_COMMAND_ERROR_HINT IS ACTIVE
#pragma message "HAS_ASKSIN_NO_COMMAND_ERROR_HINT IS ACTIVE"
         ^
../../clib/rf_asksin.c:85:9: note: #pragma message: HAS_CC1101_TX_CCA IS ACTIVE
#pragma message "HAS_CC1101_TX_CCA IS ACTIVE"
         ^
../../clib/rf_asksin.c:463:10: note: #pragma message: ASKSIN_RX_FIFO_SIG_MODE
# pragma message "ASKSIN_RX_FIFO_SIG_MODE"
          ^
Compiling C: ../../clib/cc1101_pllcheck.c
../../clib/cc1101_pllcheck.c:49:9: note: #pragma message: HAS_CC1101_FORCE_RX_CAL IS ACTIVE
#pragma message "HAS_CC1101_FORCE_RX_CAL IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:52:9: note: #pragma message: HAS_CC1101_FORCE_CAL_MANUAL IS ACTIVE
#pragma message "HAS_CC1101_FORCE_CAL_MANUAL IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:55:9: note: #pragma message: HAS_CC1101_REGULAR_CALIBRATION_AFTER_RX IS ACTIVE
#pragma message "HAS_CC1101_REGULAR_CALIBRATION_AFTER_RX IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:58:9: note: #pragma message: HAS_CC1101_REGULAR_CALIBRATION_AFTER_RX_FUNC IS ACTIVE
#pragma message "HAS_CC1101_REGULAR_CALIBRATION_AFTER_RX_FUNC IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:62:9: note: #pragma message: HAS_CC1101_PLL_LOCK_CHECK IS ACTIVE
#pragma message "HAS_CC1101_PLL_LOCK_CHECK IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:65:9: note: #pragma message: HAS_CC1101_RX_PLL_LOCK_CHECK_TASK_WAIT IS ACTIVE
#pragma message "HAS_CC1101_RX_PLL_LOCK_CHECK_TASK_WAIT IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:75:9: note: #pragma message: HAS_CC1101_RX_INTEN IS ACTIVE
#pragma message "HAS_CC1101_RX_INTEN IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:78:9: note: #pragma message: HAS_CC1101_TX_CCA IS ACTIVE
#pragma message "HAS_CC1101_TX_CCA IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:81:9: note: #pragma message: HAS_CC1101_TX_INTDIS IS ACTIVE
#pragma message "HAS_CC1101_TX_INTDIS IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:84:9: note: #pragma message: HAS_CC1101_TX_CCA_INTDIS IS ACTIVE
#pragma message "HAS_CC1101_TX_CCA_INTDIS IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:88:9: note: #pragma message: HAS_CC1101_RX IS ACTIVE
#pragma message "HAS_CC1101_RX IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:91:9: note: #pragma message: HAS_CC1101_TX IS ACTIVE
#pragma message "HAS_CC1101_TX IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:95:9: note: #pragma message: HAS_CC1101_TO_STATE IS ACTIVE
#pragma message "HAS_CC1101_TO_STATE IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:98:9: note: #pragma message: HAS_CC1101_TO_STATE_STROBE_ACK IS ACTIVE
#pragma message "HAS_CC1101_TO_STATE_STROBE_ACK IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:101:9: note: #pragma message: HAS_CC1101_WAIT_STATE IS ACTIVE
#pragma message "HAS_CC1101_WAIT_STATE IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:105:9: note: #pragma message: HAS_CC1101_PLL_LOCK_CHECK_MSG_SW IS ACTIVE
#pragma message "HAS_CC1101_PLL_LOCK_CHECK_MSG_SW IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:108:9: note: #pragma message: HAS_CC1101_PLL_LOCK_CHECK_MSG_RXTX IS ACTIVE
#pragma message "HAS_CC1101_PLL_LOCK_CHECK_MSG_RXTX IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:111:9: note: #pragma message: HAS_CC1101_PLL_LOCK_CHECK_MSG IS ACTIVE
#pragma message "HAS_CC1101_PLL_LOCK_CHECK_MSG IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:114:9: note: #pragma message: HAS_CC1101_PLL_ERROR_MSG IS ACTIVE
#pragma message "HAS_CC1101_PLL_ERROR_MSG IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:118:9: note: #pragma message: HAS_CC1101_PLL_LOCK_CHECK_MSG_CALSTATE IS ACTIVE
#pragma message "HAS_CC1101_PLL_LOCK_CHECK_MSG_CALSTATE IS ACTIVE"
         ^
../../clib/cc1101_pllcheck.c:122:9: note: #pragma message: HAS_CC1101_RECOVER_RX_OVERFLOW_RX IS ACTIVE
#pragma message "HAS_CC1101_RECOVER_RX_OVERFLOW_RX IS ACTIVE"
         ^
Compiling C: ../../clib/spi.c
../../clib/spi.c:53:9: note: #pragma message: HAS_SPI_SEND_INLINE IS ACTIVE
#pragma message "HAS_SPI_SEND_INLINE IS ACTIVE"
         ^
../../clib/spi.c:59:9: note: #pragma message: HAS_SPI_SEND_PGMDATA IS ACTIVE
#pragma message "HAS_SPI_SEND_PGMDATA IS ACTIVE"
         ^
../../clib/spi.c:109:9: note: #pragma message: HAS_SPI_SEND_EEDATA IS ACTIVE
#pragma message "HAS_SPI_SEND_EEDATA IS ACTIVE"
         ^
../../clib/spi.c:183:9: note: #pragma message: HAS_SPI_SEND_BUF IS ACTIVE
#pragma message "HAS_SPI_SEND_BUF IS ACTIVE"
         ^
../../clib/spi.c:234:9: note: #pragma message: HAS_SPI_READ_BUF IS ACTIVE
#pragma message "HAS_SPI_READ_BUF IS ACTIVE"
         ^
../../clib/spi.c:237:10: note: #pragma message: HAS_SPI_READ_BUF_WITH_GDO0_CHECK IS ACTIVE
# pragma message "HAS_SPI_READ_BUF_WITH_GDO0_CHECK IS ACTIVE"
          ^
../../clib/spi.c: In function 'spi_init':
../../clib/spi.c:437:9: note: #pragma message: SPI_SS CONFIGURED AS OUTPUT
#pragma message "SPI_SS CONFIGURED AS OUTPUT"
         ^
Compiling C: ../../clib/cc1101.c
../../clib/cc1101.c:619:9: note: #pragma message: HAS_CC1101_RXFIFO_BURSTREAD IS ACTIVE
#pragma message "HAS_CC1101_RXFIFO_BURSTREAD IS ACTIVE"
         ^


Der Compile läuft aber durch und ich habe jetzt ein Binary, mit dem ich weitermachen kann.

Danke erst mal soweit!

noansi

Hallo Weini,

was Du jetzt noch im compiler output gesehen hast sind nur eingebaute messages, mit denen ich sehen, ob die bedingte Compilierung richtig funktioniert.

Wichtig ist, dass Du im richtigen Verzeichnis die board.h entsprechend der physikalischen I/O Belegung etc. richtig angepasst hast.
Außerdem ist der Speicher beim nanoCUL recht klein, so dass die Auswahl der glieichzeitig eincompilierbaren Funktionen sehr beschränkt ist.
Daher Vorsicht bei der Aktivierung weiterer Funktionen in der board.h. Besser ist abzuschalten (auskommentieren) was nicht benötigt wird.

Gruß, Ansgar.

weini

Die Installation habe ich wunderbar hinbekommen, leider besteht mein Problem aber mit der neuen Lösung genauso: Wenn ich für meine Rollläden AES aktiviere (set SIGN ON) und dann mit einem Wildcard mehrere gleichzeitig laufen lassen will, dann funktioniert das nicht. Die Rollläden mit SIGN OFF funktionieren dagegen einwandfrei.

noansi

Hallo Weini,

AES bedeutet, dass ein Kommando an das device gesendet wird, dieses mit einem signing Request antwortet, die signing Antwort gesendet werden muss und schließlich dass device mit einem ACK antworteten muss. Ohne AES sendet CUL das Kommando und es wird direkt ausgeführt und das device sendet ein ACK dazu.

Wenn Du allso mit AES an alle Rolläden gleichzeitig ein Kommando senden möchtes, dann muss die Kommunikation dennoch nacheinander für jeden Rolladen bis zum ACK ablaufen, damit das Protokoll so ablaufen und funktionieren kann.

Einen einzelnen Rollanden mit AES zu steuern klappt jetzt problemlos?

Du kannst mal mit dem Attribut "hmLanQlen" beim HM TSCUL spielen, ob sich damit was ändert. Default ist 1_low. Versuch mal 2 und schaue, ob Du damit 2 Rolläden gleichzeitig ansteuern kannst.
Eine Lösung wäre das jedoch nicht, da damit von TSCUL nur 2 Warteschalngen für Befehle zugelassen werden, bevor CUL_HM "gebremst" wird. Das Timing in Luft und FHEM wird damit kritisch belastet. Wenn diese Aktoren diesbezüglich weniger kritisch sind, kann das etwas helfen, bei anderen Aktoren aber zu problemen führen.
Die TSculfw kann immer nur eine Antwort gleichzeit zeitgerecht verzögern. Weitere landen in der Befehlwarteschalnnge respektive im Kommunikationspuffer und werden dann sehr wahrscheinlich nicht mehr passend verzögert ausgeführt.

Generell würde dass aber nur eine Ansteuerschwäche zeigen, wobei die Frage ist, ob CUL_HM das besser lösen muss, oder ob die Wildcard Schaltaktion FHEM intern bis Quittung/Zusandsänderung serialisert angepasst werden müsste, um das zu ermöglichen, was Du möchtest.

Gruß, Ansgar.

weini

Hi Ansgar!

Prinzipielle Funktionsweise von AES ist soweit klar.

Ja, einen einzelnen Rolladen kann ich steuern. Manchmal habe ich NOACKs, das ist aber selten. Sobald ich aber nur 2 Aktoren gleichzeitig über einen SET Befehl mit Wildcard ansteuern will tut sich nichts mehr. Wenn einige Aktoren unsigniert und andere signiert kommuniziren, dann laufen die unsignierten durchgängig an, die signierten tun durchgängig gar nichts.

Und: Diese Verhalten ist identisch zum "normalen" CUL.pm mit Standard culfw und deiner modifizierten Variante.

Ich habe das hier https://forum.fhem.de/index.php/topic,58009.0.html schon mal beschrieben, nur leider kein Feedback dazu bekommen.

Mein Plan ist jetzt, dass ich mir einen HM-MOD-RPI-PCB anschaffe und über einen USB-TTL Wandler an Stelle des CUL anschließe. In meinem RasPI ist die GPIO-Leiste schon blockiert, daher dieser Weg.

Irgendwie scheint beim CUL-Ansatz in Verbindung mit AES noch "der Wurm" drin zu sein.


Viele Grüße,
Christian

noansi

Hallo Christian,

ich habe mal zwei HM-LC-SW1-BA-PCB auf AES umgestellt.

Diese kann ich mit

Zitatset HM_Sw_.* off

quasi gleichzeitig ausschalten (mit on auch einschalten). Natürlich mit "sign on" aktiv.

Mit dem TSCUL Attribut "hmLanQlen" auf "1_min" klappt das am besten.
Die Sets werden dann nacheinander für die devices abgearbeitet.

Allerdings gibt es naturgemäß Probleme, wenn die credits zu Ende gehen. Wenn Du also bei TSCUL "cond" "High-Load" oder schlechter hattest oder dabei erreicht hast, kann das natürlich scheitern.
Mal warten, bis die credits bei TSCUL "aufgeladen" sind, kann also auch helfen.

Gruß, Ansgar.

noansi

Hallo Testwillige,

https://forum.fhem.de/index.php/topic,24436.msg489979.html#msg489979 ist aktualisert. Ich habe die Modul HTML Doku für das Commandref für die TS-Module aktualisert.

Derzeit kenne ich leider nur ein FHEM update mit einem Update eines Moduls als Möglichkeit die Commandref neu zu erzeugen, aber vielleicht kennt jemand einen Befehl dazu.

Gruß, Ansgar.

rudolfkoenig

ZitatDerzeit kenne ich leider nur ein FHEM update mit einem Update eines Moduls als Möglichkeit die Commandref neu zu erzeugen, aber vielleicht kennt jemand einen Befehl dazu.

fhem> { `perl contrib/commandref_join.pl` }

weini

Hallo Ansgar!

Erst mal vielen lieben Dank für deine Testunterstützung!

Bei mir funktioniert es leider auch mit 2 Aktoren nicht. Hier der relevante Log-Auszug:

2016-10-09_14:47:18 WoZi_ErkerLi_Rollo set_off
2016-10-09_14:47:18 WoZi_ErkerMi_Rollo set_off
2016-10-09_14:47:19 WoZi_ErkerLi_Rollo aesKeyNbr: 02
2016-10-09_14:47:19 WoZi_ErkerLi_Rollo RAWMSG: A110FA0024AD27AD3AA7804FC68F403DBF202::-60.5:nanoCULHomeMatic
2016-10-09_14:47:19 WoZi_ErkerLi_Rollo RSSI: -60.5
2016-10-09_14:47:27 WoZi_ErkerMi_Rollo aesKeyNbr: 00
2016-10-09_14:47:27 WoZi_ErkerMi_Rollo RAWMSG: A110CA0024AD222D3AA78045C05590C598C00::-69.5:nanoCULHomeMatic
2016-10-09_14:47:27 WoZi_ErkerMi_Rollo RSSI: -69.5
2016-10-09_14:47:36 WoZi_ErkerLi_Rollo ResndFail
2016-10-09_14:47:36 WoZi_ErkerLi_Rollo MISSING ACK


Umittelbar danach habe ich einen der beiden Rollläden einzeln gefahren, das funktioniert:


2016-10-09_14:51:02 WoZi_ErkerLi_Rollo set_off
2016-10-09_14:51:02 WoZi_ErkerLi_Rollo aesCommToDev: fail
2016-10-09_14:51:02 WoZi_ErkerLi_Rollo aesKeyNbr: 02
2016-10-09_14:51:02 WoZi_ErkerLi_Rollo RAWMSG: A1110A0024AD27AD3AA780478E33D83FED602::-61.5:nanoCULHomeMatic
2016-10-09_14:51:02 WoZi_ErkerLi_Rollo RSSI: -61.5
2016-10-09_14:51:02 WoZi_ErkerLi_Rollo aesCommToDev: ok
2016-10-09_14:51:02 WoZi_ErkerLi_Rollo deviceMsg: 79.5 (to hm_VCCU)
2016-10-09_14:51:02 WoZi_ErkerLi_Rollo level: 79.5
2016-10-09_14:51:02 WoZi_ErkerLi_Rollo motor: down:79.5
2016-10-09_14:51:02 WoZi_ErkerLi_Rollo pct: 79.5
2016-10-09_14:51:02 WoZi_ErkerLi_Rollo 79.5
2016-10-09_14:51:02 WoZi_ErkerLi_Rollo timedOn: zu
2016-10-09_14:51:02 WoZi_ErkerLi_Rollo RSSI: -64
2016-10-09_14:51:02 WoZi_ErkerLi_Rollo RAWMSG: A121080024AD27AD3AA7801019F203D07447D53::-64:nanoCULHomeMatic
2016-10-09_14:51:29 WoZi_ErkerLi_Rollo deviceMsg: zu (to hm_VCCU)
2016-10-09_14:51:29 WoZi_ErkerLi_Rollo level: 0
2016-10-09_14:51:29 WoZi_ErkerLi_Rollo motor: stop:zu
2016-10-09_14:51:29 WoZi_ErkerLi_Rollo pct: 0
2016-10-09_14:51:29 WoZi_ErkerLi_Rollo zu
2016-10-09_14:51:29 WoZi_ErkerLi_Rollo timedOn: zu
2016-10-09_14:51:29 WoZi_ErkerLi_Rollo RAWMSG: A0D11A4104AD27AD3AA7806010000::-61:nanoCULHomeMatic
2016-10-09_14:51:29 WoZi_ErkerLi_Rollo RSSI: -61
2016-10-09_14:51:32 WoZi_ErkerLi_Rollo RSSI: -61.5
2016-10-09_14:51:32 WoZi_ErkerLi_Rollo RAWMSG: A0D11A4104AD27AD3AA7806010000::-61.5:nanoCULHomeMatic


Meine TSCUL Definition sieht wie folgt aus (habe "hmLanQlen" auf "1_min"):

Internals:
   CMDS       ABCEFGJKMRTUVWXYZefilmtx
   Clients    TSSTACKED:STACKABLE_CC:CUL_HM:HMS:CUL_IR
   DEF        /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A700CTOG-if00-port0@38400 0000
   DeviceName /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A700CTOG-if00-port0@38400
   FD         14
   FHTID      0000
   HM_RptCnt  14
   NAME       nanoCULHomeMatic
   NR         37
   PARTIAL
   RAWMSG     AFF610001F6ED00199EA6034C1AFAD3AA78F4A49C8D107F160F6638CF6A1CFC3770E0
   RSSI       -90
   STATE      Initialized
   TYPE       TSCUL
   VERSION    V 99.79 nanoCUL868
   VERSION_HW nanoCUL_V1.x
   VERSION_TS yes
   XmitOpen   1
   initString X21
Ar
At1
   nanoCULHomeMatic_MSGCNT 76
   nanoCULHomeMatic_TIME 2016-10-09 14:55:06
   owner_CCU  hm_VCCU
   Matchlist:
     1:TSSTACKED ^\*
     A:CUL_HM   ^A....................
     B:HMS      ^810e04....(1|5|9).a001
     C:CUL_IR   ^I............
   Readings:
     2016-10-09 14:51:02   Xmit-Events     ok:1 Warning-HighLoad:2 init:3 ERROR-Overload:1 disconnected:1
     2016-09-09 13:30:35   ccconf          freq:868.300MHz bWidth:101KHz rAmpl:33dB sens:8dB
     2016-10-09 14:41:09   cmds             A B C E F G J K M R T U V W X Y Z e f i l m t x
     2016-10-09 14:51:02   cond            ok
     2016-10-09 14:57:38   credit10ms      934
     2016-10-09 14:44:50   hmSioDly        -1
     2016-10-09 14:38:55   prot_ERROR-Overload last
     2016-10-09 14:41:12   prot_Warning-HighLoad last
     2016-10-09 14:37:56   prot_disconnected last
     2016-10-09 14:41:09   prot_init       last
     2016-10-09 14:51:02   prot_ok         last
     2016-10-09 14:58:37   scF             0.999757687916075
     2016-10-09 14:41:09   state           Initialized
     2016-05-18 08:13:12   uptime          0 07:00:34
   Helper:
     Devio:
       NDisCon    0
       NRFail     0
       RXfailTS
     Hm:
       FUP        0
       hmCrdts    5
       hmSbusy    0
       lstSndTm   1476017706.7145
       Unknwn:
     Cnd:
       0          1
       2          2
       253        1
       255        3
       4          1
     Hmq:
     Hmqo:
     Q:
       HMcndN     0
       InQueues   0
       answerPend 0
       hmLanQlen  1
       Cap:
         sum        11250
     Ref:
       Sdly       3
       doNbyterate 65
       hmDstDly   120
       ioByteRate 3840
       ioByteRateMeas 3720.13976385962
       lHMt       1241184
       lSys       696651533
       nusew      0
       pTTu       1024
       pndAs      0
       pndCUAp    0
       pngLm      15
       pngMax     193
       pngMin     7
       pngRef     7
       pngtm      696651526
       pngtmBRs   1476018012.25688
       scErr      0.871689826017246
       scF        0.999757687916075
       scFN       3
       scHT       36656
       scST       695447296
Attributes:
   addvaltrigger 1
   hmId       D3AA78
   hmLanQlen  1_min
   model      nanoCUL
   rfmode     HomeMatic


Hast du irgendeine Idee, was ich bei mir anders eingestellt haben könnte, dass das nicht klappt?

Viele Grüße,
Christian

noansi

Hallo Rudolf,

danke für den Tip mit dem Commandref Update!

Hast Du meine Antwort hier https://forum.fhem.de/index.php/topic,57806.msg498328.html#msg498328 in der Wunschliste gelesen?
Was hältst Du von einer Parallelexistenz in der vorgeschlagenen Form?

STACKABLE_CC respektive SCC ist der einzige mir aufgefallenen Haken, der einen, jedoch auch ordnenden Eingriff in 00_CUL.pm erfordert. STACKABLE_CC wird ohnehin gerne vergessen, wenn auf CUL getestet wird (martin hatte es auch in einer Abfrage übersehen), weshalb die in CUL_UTIL.pm vorgeschlagenen Funktionen zu Testung auch an anderen Stellen vorteilhalft nutzbar wären.

Gruß, Ansgar.