10_SOMFY.pm - Somfy RTS (und kompatible)

Begonnen von viegener, 12 Mai 2016, 21:06:46

Vorheriges Thema - Nächstes Thema

Fhemfatal

Die Markise hat nicht gezuckt und der CUL hat 433 MHz

RaspiLED

hi,
Und wo sind die Details? Ich hatte nach dem list gefragt ;-)


set Name_CUL freq 433.420
get Name_CUL ccconf
get Name_CUL cmds
list Name_CUL


Danach kannst Du das anlernen noch mal probieren. Der Standard in 433 MHz für SlowRF ist 433.920 MHz und eben nicht die Somfy Frequenz von 433.420 MHz.

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Fhemfatal

Hallo,

hier die Infos die Du haben wolltest. Hoffe es hilft. ich bin echt ratlos im Augenblick.

Meine Definition der Fernbedienung:

defmod Markise SOMFY 000001 A2 0042
attr Markise IODev CUL1
attr Markise drive-down-time-to-100 33
attr Markise drive-down-time-to-close 33
attr Markise drive-up-time-to-100 30
attr Markise drive-up-time-to-open 30
attr Markise icon fts_sunblind_100
attr Markise model somfyremote
attr Markise room 3.0_Garten

setstate Markise open
setstate Markise 2018-05-13 20:09:56 enc_key A2
setstate Markise 2018-05-13 20:09:56 exact 0
setstate Markise 2018-05-13 20:09:56 position 0
setstate Markise 2018-05-13 20:09:56 rolling_code 0042
setstate Markise 2018-05-13 20:09:56 state open



und hier von meinem nanoCUL


defmod CUL1 CUL /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_00000000-if00-port0@38400 1234
attr CUL1 rfmode SlowRF
attr CUL1 room SYSTEM

setstate CUL1 2018-05-13 19:51:28 cmds  A B C e F f G i K L l M N R T t U V W X x
setstate CUL1 2018-05-05 08:08:58 fhtbuf No answer
setstate CUL1 2018-05-13 20:00:06 raw s321189A4C880D8;;  416: 8496
setstate CUL1 2018-05-13 20:20:03 state Initialized
setstate CUL1 2018-05-13 16:30:06 version V 1.25.01 a-culfw Build: by smarty_111 (27.07.2017) nanoCUL433 (F-Band: 433MHz)




RaspiLED

Hi,
Warum schreibe ich die Befehle auf, wenn Du eh was anderes lieferst?

Also bitte alle 4 Befehle oben absetzen und Name_CUL mit CUL1 ersetzen!
Danach die Programmierung des Somfy neu versuchen.

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

RaspiLED

#184
Hi,
ansonsten sehe ich in Deinen Commands auch kein Y.
Welche Firmware verwendest Du? Hast Du selbst kompiliert und Somfy aktiviert?

get CUL1 version

Schau auch mal im Eventmonitor während Du das Somfy Prog absetzt! Fehlermeldungen hier posten, gerne auch nach einem

attr CUL1 verbose 4


Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Fhemfatal

Sei doch bitte etwas nachsichtig mit mir Anfänger. Ich bin ja froh, dass du moich unterstützt


CUL1 ccconf => freq:433.420MHz bWidth:325KHz rAmpl:42dB sens:4dB

CUL1 cmds =>  A B C e F f G i K L l M N R T t U V W X x

Internals:
   CMDS       ABCeFfGiKLlMNRTtUVWXx
   CUL1_MSGCNT 641
   CUL1_TIME  2018-05-14 06:08:05
   Clients    :FS20:FHT.*:KS300:USF1000:BS:HMS: :CUL_EM:CUL_WS:CUL_FHTTK:CUL_HOERMANN: :ESA2000:CUL_IR:CUL_TX:Revolt:IT:UNIRoll:SOMFY: :STACKABLE_CC:TSSTACKED:STACKABLE:CUL_RFR::CUL_TCM97001:CUL_REDIRECT:
   DEF        /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_00000000-if00-port0@38400 1234
   DeviceName /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_00000000-if00-port0@38400
   FD         73
   FHTID      1234
   NAME       CUL1
   NR         291
   PARTIAL   
   RAWMSG     s3202F1414280D6;  384: 8432
   STATE      Initialized
   TYPE       CUL
   VERSION    V 1.25.01 a-culfw Build: by smarty_111 (27.07.2017) nanoCUL433 (F-Band: 433MHz)
   initString X21
   MatchList:
     1:USF1000  ^81..(04|0c)..0101a001a5ceaa00....
     2:BS       ^81..(04|0c)..0101a001a5cf
     3:FS20     ^81..(04|0c)..0101a001
     4:FHT      ^81..(04|09|0d)..(0909a001|83098301|c409c401)..
     5:KS300    ^810d04..4027a001
     6:CUL_WS   ^K.....
     7:CUL_EM   ^E0.................$
     8:HMS      ^810e04......a001
     9:CUL_FHTTK ^T[A-F0-9]{8}
     A:CUL_RFR  ^[0-9A-F]{4}U.
     B:CUL_HOERMANN ^R..........
     C:ESA2000  ^S................................$
     D:CUL_IR   ^I............
     E:CUL_TX   ^TX[A-F0-9]{10}
     F:Revolt   ^r......................$
     G:IT       ^i......
     H:STACKABLE_CC ^\*
     I:UNIRoll  ^[0-9A-F]{5}(B|D|E)
     J:SOMFY    ^Y[r|t|s]:?[A-F0-9]+
     K:CUL_TCM97001 ^s[A-F0-9]+
     L:CUL_REDIRECT ^o+
     M:TSSTACKED ^\*
     N:STACKABLE ^\*
   READINGS:
     2018-05-14 06:08:32   ccconf          freq:433.420MHz bWidth:325KHz rAmpl:42dB sens:4dB
     2018-05-14 06:09:12   cmds             A B C e F f G i K L l M N R T t U V W X x
     2018-05-05 08:08:58   fhtbuf          No answer
     2018-05-13 20:00:06   raw             s321189A4C880D8;  416: 8496
     2018-05-14 06:08:05   state           Initialized
     2018-05-13 16:30:06   version         V 1.25.01 a-culfw Build: by smarty_111 (27.07.2017) nanoCUL433 (F-Band: 433MHz)
Attributes:
   rfmode     SlowRF
   room       SYSTEM

RaspiLED

#186
Hi,
also ich bleibe dabei (auch wenn ich Deinen Eventmonitor mit den Fehlern noch nicht gesehen habe ;-)

Deine a-culfw ist ohne Somfy Protokoll kompiliert, sonst wäre der Befehl Y on der cmds Liste.

In den original Sourcen zur a-culfw ist durch die ,,//,, Somfy deaktiviert:


#  define HAS_UNIROLL

//#  define HAS_SOMFY_RTS
#  define HAS_RFNATIVE


Du musst also eine a-culfw für Deinen nanoCUL mit Somfy Unterstützung neu kompilieren und auf Deinen nanoCUL flashen.

Wie das geht?
Lies mal hier:
https://forum.fhem.de/index.php/topic,82024.msg740991.html#msg740991

Also für Dich:
In einer ssh Sitzung oder bash:

cd ~
sudo apt-get install wget zip make gcc-avr avrdude avr-libc
mkdir a-culfw
cd a-culfw
wget https://github.com/heliflieger/a-culfw/archive/master.zip
unzip master.zip
cd a-culfw-master/culfw/Devices/nanoCUL
nano board.h

Dann mit Pfeil runter bis zur Zeile:
//#  define HAS_SOMFY_RTS
Und die // löschen, sollte dann so aussehen:
#  define HAS_SOMFY_RTS

Falls Du am Ende zu wenig Speicher hast könntest Du andere von Dir nicht genutzte Protokolle rauswerfen. Zum Beispiel:
#define HAS_ASKSIN
#define HAS_ASKSIN_FUP
Und davor // einfügen:
// #define HAS_ASKSIN
// #define HAS_ASKSIN_FUP

Danach Ctrl-o, Return, Ctrl-x zum speichern drücken.

In der bash:

make
sudo systemctl stop fhem
sudo ./flash.sh
(Gefolgt von 2, Return, y)
sudo systemctl start fhem



Gruß Arnd



Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Fhemfatal

pi@fhempi:~/a-culfw/a-culfw-master/culfw/Devices/nanoCUL $ sudo ./flash.sh
-------------------------------------------------------------
This program flash the cul device with new firmware.
Please change the device into the bootloader
-------------------------------------------------------------
Please choose a device:
1 = nanoCUL868
2 = nanoCUL433
Please select device (1-2): 2
-------------------------------------------------------------
This program flash the cul device with new firmware.
Please change the device into the bootloader
-------------------------------------------------------------
Please insert the port for your device [default /dev/ttyUSB0]: /dev/ttyUSB0

The device will now be flashed
Continue (y/n)?y
Call now avrdude -p atmega328p -c arduino -P /dev/ttyUSB0 -b 57600 -D -Uflash:w:./nanoCUL433.hex:i
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

avrdude done.  Thank you.


RaspiLED

#188
Hi,
wenn vorher alles Ohne Probleme lief ist das ja schon mal super [emoji1303]!
Jetzt ist der einzige Fehler, das Dein nanoCUL nicht im Flashmode ist oder nicht auf der Schnittstelle /dev/ttyUSB0  (alternativ ist ja /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_00000000-if00-port0 richtig) gemappt ist.
Zeig mal ein
ls -la /dev/serial/by*
Wie hast Du den nanoCUL zuletzt geflasht? Taste beim reinstecken in den USB Port? Oder in FHEM set CUL1 raw B01?
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Fhemfatal

So, inzwischen habe ich das Ding geflasht bekommen...

pi@fhempi:~/a-culfw/a-culfw-master/culfw/Devices/nanoCUL $ sudo ./flash.sh
-------------------------------------------------------------
This program flash the cul device with new firmware.
Please change the device into the bootloader
-------------------------------------------------------------
Please choose a device:
1 = nanoCUL868
2 = nanoCUL433
Please select device (1-2): 2
-------------------------------------------------------------
This program flash the cul device with new firmware.
Please change the device into the bootloader
-------------------------------------------------------------
Please insert the port for your device [default /dev/ttyUSB0]: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_00000000-if00-port0

The device will now be flashed
Continue (y/n)?y
Call now avrdude -p atmega328p -c arduino -P /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_00000000-if00-port0 -b 57600 -D -Uflash:w:./nanoCUL433.hex:i

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "./nanoCUL433.hex"
avrdude: writing flash (13520 bytes):

Writing | ################################################## | 100% 5.46s

avrdude: 13520 bytes of flash written
avrdude: verifying flash memory against ./nanoCUL433.hex:
avrdude: load data flash data from input file ./nanoCUL433.hex:
avrdude: input file ./nanoCUL433.hex contains 13520 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 5.75s

avrdude: verifying ...
avrdude: 13520 bytes of flash verified

avrdude: safemode: Fuses OK (E:00, H:00, L:00)

avrdude done.  Thank you.

pi@fhempi:~/a-culfw/a-culfw-master/culfw/Devices/nanoCUL $ sudo service fhem start


jetzt sehe ich in FHEm folgende Version etc.

defmod CUL1 CUL /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_00000000-if00-port0@38400 1234
attr CUL1 room SYSTEM
attr CUL1 verbose 5

setstate CUL1 2018-05-14 06:55:40 ccconf freq:433.420MHz bWidth:325KHz rAmpl:42dB sens:4dB
setstate CUL1 2018-05-14 19:59:21 cmds  B C e F f G i K L l M N R T t U V W X x
setstate CUL1 2018-05-05 08:08:58 fhtbuf No answer
setstate CUL1 2018-05-14 19:45:19 raw No answer
setstate CUL1 2018-05-14 20:01:55 state Initialized
setstate CUL1 2018-05-14 19:45:43 version V 1.26.03 a-culfw Build: private build (unknown) nanoCUL433 (F-Band: 433MHz)


Was ich auch gemacht habe ist das einkommentieren der SOMFY Zeilen, und nach dem Speichern habe ich dann nochmal geflasht.

Ich sehe in FHEM auch dass das SOMFY Protokoll angezeigt wird.
Clients

:FS20:FHT.*:KS300:USF1000:BS:HMS: :CUL_EM:CUL_WS:CUL_FHTTK:CUL_HOERMANN: :ESA2000:CUL_IR:CUL_TX:Revolt:IT:UNIRoll:SOMFY: :STACKABLE_CC:TSSTACKED:STACKABLE:CUL_RFR::CUL_TCM97001:CUL_REDIRECT:


Aber wenn ich jetzt mit verbose 5 auf dem CUL in den Eventmonitor gehe, und da dann auf .*CUL1.* filtere dachte ich würde ich ggf. was sehen wenn ich auf der SOMFY FB jetzt irgendwelche Tasten drücke.
Is aber nciht.
Da kommt nichts im Event Monitor an.

Dann habe ich einfahc nochmal versucht eine FHEM Remote an Somy Anzumelden.
ich habe also auf der regulären FB die Taste lange gedrückt, dann ist die Markise kurz rein und raus, und dann habe ich aus FHEM das "prog" gesendet
Aber leider fehlte dann die Bestätigung der Markiese dass das erfolgreich war.

Was zur Hölle mache ich falsch?!

RaspiLED

Hi,
Erstens hast Du den CUL nach dem flashen noch nicht auf die 433.420 gesetzt! Zweitens empfängt ein CUL kein Somfy, sondern kann nur senden! Drittens sehe ich kein Y unter den Commands (get CUL1 cmds). Bist Du sicher das Du richtig die board.h bearbeitet hast?
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Fhemfatal

es gibt nur eine board.h in dem Verzeichnis und die Freq stimmt. Das mit den Comands sehe ich auch, weiß aber nicht warum

RaspiLED

Hi,
Naja wenn Deine Aussagen stimmen, dann geht es ja jetzt ;-)
Okay Scherz beiseite:
Zeig und mal das log bei verbose 5 vom anlernen oder auch den Eventmonitor währenddessen! Sind da Fehler drin? Ich würde wetten er findet Y?? Nicht als command => Dann ist die Firmware nicht richtig!
Zeig und mal Deine board.h
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

habeIchVergessen

wenn ich mich recht erinnere, dann kann nur die 868-Version von culfw Somfy senden. Die Frequenz wird immer richtig gesetzt.

RaspiLED

#194
Hi,
Nö, das kann man an zwei Stellen in der board.h aktivieren einmal allgemein und dann später im Absatz für den 868er.


#ifndef _BOARD_H
#define _BOARD_H

#include <avr/io.h>
#include <stdint.h>

/* if you have an Arduino with only 8MHz disable the next line */
#define HAS_16MHZ_CLOCK

/* if you are using a CC1101 module for 868MHz disable the next line */
#if defined (nanoCUL433)
#define HAS_CC1100_433
#endif

#define SPI_PORT                PORTB
#define SPI_DDR                 DDRB
#define SPI_SS                  2
#define SPI_MISO                4
#define SPI_MOSI                3
/* die aufgelötete gelbe LED ist an PB5/SCLK angeschlossen! */
#define SPI_SCLK                5

#define CC1100_CS_DDR           SPI_DDR
#define CC1100_CS_PORT          SPI_PORT
#define CC1100_CS_PIN           SPI_SS


/* CC1101 GDO0 Tx / Temperature Sensor */
#if 0
#define CC1100_OUT_DDR          DDRC
#define CC1100_OUT_PORT         PORTC
#define CC1100_OUT_PIN          PC0
#define CC1100_OUT_IN           PINC
#define CCTEMP_MUX              CC1100_OUT_PIN
#else
#define CC1100_OUT_DDR          DDRD
#define CC1100_OUT_PORT         PORTD
#define CC1100_OUT_PIN          PD3
#define CC1100_OUT_IN           PIND
#define CCTEMP_MUX              CC1100_OUT_PIN
#endif

/* CC1101 GDO2 Rx Interrupt */
#define CC1100_IN_DDR           DDRD
#define CC1100_IN_PORT          PIND
#define CC1100_IN_PIN           PD2
#define CC1100_IN_IN            PIND

#define CC1100_INT              INT0
#define CC1100_INTVECT          INT0_vect
#define CC1100_ISC              ISC00
#define CC1100_EICR             EICRA

/* externe LED */
#define LED_DDR                 DDRB
#define LED_PORT                PORTB
#define LED_PIN                 1

//#define LED_ON_DDR              DDRB
//#define LED_ON_PORT             PORTB
//#define LED_ON_PIN              1


#define BOARD_ID_STR            "nanoCUL868"#define BOARD_ID_STR433         "nanoCUL433"
/* define this device as a 433 MHz one */
/* this isn't done like a CUL by reading a port pin but instead a fixed value of 0 for mark433_pin is used */
#define MULTI_FREQ_DEVICE
#define MARK433_PIN                     mark433_pin
#define MARK433_BIT             0
extern const uint8_t mark433_pin;

#define HAS_UART
#define UART_BAUD_RATE          38400

/* ATMega328P has only one UART, no need to define the UART to use */
//#define USART_RX_vect           USART0_RX_vect
//#define USART_UDRE_vect         USART0_UDRE_vect

#define TTY_BUFSIZE             128


#define RCV_BUCKETS            2      //                 RAM: 25b * bucket
#define FULL_CC1100_PA                // PROGMEM:  108b
#define HAS_RAWSEND                   //
#define HAS_FASTRF                    // PROGMEM:  468b  RAM:  1b
#define HAS_ASKSIN
/* Intertechno Senden einschalten */
#define HAS_INTERTECHNO


#define HAS_CC1101_RX_PLL_LOCK_CHECK_TASK_WAIT
#define HAS_CC1101_PLL_LOCK_CHECK_MSG
#define HAS_CC1101_PLL_LOCK_CHECK_MSG_SW
/* HAS_MBUS requires about 1kB RAM, if you want to use it you
   should consider disabling other unneeded features
   to avoid stack overflows
*/
//#define HAS_MBUS

#  define HAS_TX3
#  define HAS_UNIROLL

#  define HAS_SOMFY_RTS
#  define HAS_RFNATIVE

//#  define HAS_MEMFN

#if defined (nanoCUL433)
/* Intertechno Empfang einschalten */
#  define HAS_IT
#  define HAS_REVOLT
#  define HAS_TCM97001
#  define HAS_HOMEEASY
#  define HAS_BELFOX
#  define HAS_MANCHESTER
#endif

#if defined (nanoCUL868)
#  define HAS_ASKSIN_FUP
#  define HAS_MORITZ
#  define HAS_RWE
#  define HAS_ESA
#  define HAS_HOERMANN
#  define HAS_HOERMANN_SEND
#  define HAS_HMS
#  define OFF_LACROSSE_HMS_EMU          // if you like HMS emulation for LaCrosse temp devices

#define HAS_SOMFY_RTS
//#define HAS_FHT_80b                     // PROGMEM: 1374b, RAM: 90b
//#define HAS_FHT_8v                    // PROGMEM:  586b  RAM: 23b
//#define HAS_FHT_TF
//#define FHTBUF_SIZE          174      //                 RAM: 174b
//#define HAS_KOPP_FC
//#define HAS_ZWAVE                     // PROGMEM:  882
#endif

#endif



Beim make kommt dann auch:


...
avr-gcc -c -mmcu=atmega328p -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -finline-limit=20 -Wall -Wstrict-prototypes -Wundef -DnanoCUL433 -Wa,-adhlns=./../../clib/rf_rwe.lst -I../../clib -std=gnu99 -mcall-prologues -DF_CPU=8000000UL -MMD -MP -MF .dep/rf_rwe.o.d ../../clib/rf_rwe.c -o ../../clib/rf_rwe.o
Compiling C: ../../clib/somfy_rts.c
...


Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...