[Gelöst] SIGNALduino und Somfy RTS - wo hakt es?

Begonnen von DerJKM, 03 Juni 2021, 15:29:09

Vorheriges Thema - Nächstes Thema

DerJKM

Hallo zusammen,

Dies ist mein erster Kontakt mit FHEM, und gleich mein erstes Vorhaben funktioniert leider nicht, wie gewollt.
Ich habe ein RENSON Lamellendach, welches ich gerne mit dem iPhone über HomeKit steuern möchte. Im ersten Schritt soll dazu die Verbindung FHEM <-> SIGNALduino <-> Dach funktionieren.

Der Monteur hat mir gesagt, das Dach verwende das Somfy RTS Protokoll auf 868MHz. Hier ging die Verwirrung bereits los, denn laut Internet funkt Somfy RTS auf 433MHz, genauer gesagt 433.42MHz. Ebenso funkt die mitgelieferte Fernbedienung Somfy Situo 5 RTS Pure II laut Datenblatt auf 433.42MMHz. Folglich habe ich die 868MHz als Fehlerhaft angesehen und Hardware für 433MHz gekauft.

Dabei handelt es sich um den "Klassiker" Arduino Nano mit CC1101 Sender (https://www.ebay.de/itm/252742123829 und https://www.ebay.de/itm/253638030755). Zusammengebaut habe ich die Hardware auf Lochrasterplatine nach dem Schaltplan aus dem FHEM Wiki (https://wiki.fhem.de/w/images/3/3f/Selbstbau_cul_Schaltplan_1.png). Mittlerweile habe ich verschiedene Versionen der SIGNALduino Firmware ausprobiert, derzeit ist Version 3.4.0 installiert.

Innerhalb von FHEM habe die die Geräte wie im Wiki beschrieben angelegt. Nach einigen Versuchen habe ich die Umbenennung gelassen, daher heißen die Geräte in den Listings "sduino" und "RolloOben", den 6-Stelligen Hexcode habe ich natürlich jedes Mal angepasst.

Nun zu meinem Problem: Beim Anlernen des Dachs reagiert mit einer kurzen Auf- und Abbewegung auf die prog-Taste der Fernbedienung. Führe ich dann "set RolloOben prog" aus, zeigt das Dach keinerlei Reaktion. Auch folgende Kommandos aus FHEM zeigen keine Reaktion.

Mir ist aufgefallen, dass mein SIGNALduino in der Versionsangabe "SIGNALduino cc1101 (868 Mhz )" stehen hat. Bei Listings aus dem Forum steht dort meistens hingegen "SIGNALduino cc1101 (chip CC1101)". Warum sagt meiner hier 868MHz? Auf der CC1101 Platine ist "433" aufgedruckt.

Ich habe leider keinen Tipp im Forum gefunden, der mich weiter gebracht hat. Mache ich etwas falsch? Ist die Hardware defekt? Daher bin ich für jeden Hinweis dankbar.

FHEM läuft derzeit für die Tests auf einem Deskmini A300 unter Ubuntu 21.04.

Listings:
SIGNALduino:

Internals:
   Clients    :IT:CUL_TCM97001:SD_RSL:OREGON:CUL_TX:SD_AS:Hideki:SD_WS07:SD_WS09: :SD_WS:RFXX10REC:Dooya:SOMFY:SD_BELL:SD_UT:SD_WS_Maverick:FLAMINGO:CUL_WS:Revolt: :FS10:CUL_FHTTK:Siro:FHT:FS20:CUL_EM:Fernotron:SD_Keeloq:SD_GT:SIGNALduino_un:
   DEF        /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
   DMSG       nothing
   DevState   initialized
   DeviceName /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0@57600
   FD         7
   FUUID      608ecc6d-f33f-8b56-7d65-a2ec64ea7109538f
   IDsNoDispatch 2,72.1,82
   LASTDMSG   nothing
   LASTDMSGID nothing
   NAME       sduino
   NR         14
   NR_CMD_LAST_H 1
   PARTIAL   
   STATE      opened
   TIME       1622718349
   TYPE       SIGNALduino
   cc1101_available 1
   sendworking 0
   version    V 3.4.0 SIGNALduino cc1101 (868 Mhz ) - compiled at May 30 2021 11:43:04
   versionProtocols 1.21
   versionmodul v3.4.4
   MatchList:
     10:SD_WS07 ^P7#[A-Fa-f0-9]{6}[AFaf][A-Fa-f0-9]{2,3}
     11:SD_WS09 ^P9#F[A-Fa-f0-9]+
     12:SD_WS   ^W\d+x{0,1}#.*
     13:RFXX10REC ^(20|29)[A-Fa-f0-9]+
     14:Dooya   ^P16#[A-Fa-f0-9]+
     15:SOMFY   ^Ys[0-9A-F]+
     16:SD_WS_Maverick ^P47#[A-Fa-f0-9]+
     17:SD_UT   ^P(?:14|20|26|29|30|34|46|68|69|76|81|83|86|90|91|91.1|92|93|95|97|99|104)#.*
     18:FLAMINGO ^P13\.?1?#[A-Fa-f0-9]+
     19:CUL_WS  ^K[A-Fa-f0-9]{5,}
     1:IT       ^i......
     20:Revolt  ^r[A-Fa-f0-9]{22}
     21:FS10    ^P61#[A-F0-9]+
     22:Siro    ^P72#[A-Fa-f0-9]+
     23:FHT     ^81..(04|09|0d)..(0909a001|83098301|c409c401)..
     24:FS20    ^81..(04|0c)..0101a001
     25:CUL_EM  ^E0.................
     26:Fernotron ^P82#.*
     27:SD_BELL ^P(?:15|32|41|42|57|79|96|98)#.*
     28:SD_Keeloq ^P(?:87|88)#.*
     29:SD_GT   ^P49#[A-Fa-f0-9]+
     2:CUL_TCM97001 ^s[A-Fa-f0-9]+
     3:SD_RSL   ^P1#[A-Fa-f0-9]{8}
     4:OREGON   ^(3[8-9A-F]|[4-6][0-9A-F]|7[0-8]).*
     5:CUL_TX   ^TX..........
     6:SD_AS    ^P2#[A-Fa-f0-9]{7,8}
     7:Hideki   ^P12#75[A-F0-9]+
     9:CUL_FHTTK ^T[A-F0-9]{8}
     X:SIGNALduino_un ^[u]\d+#.*
   QUEUE:
   READINGS:
     2021-06-03 13:12:22   cc1101_config   Freq: 433.420 MHz, Bandwidth: 325 KHz, rAmpl: 42 dB, sens: 8 dB, DataRate: 5603.79 Baud
     2021-06-03 13:12:22   cc1101_config_ext Modulation: ASK/OOK, Syncmod: No preamble/sync
     2021-06-03 13:12:11   cc1101_patable  C3E = 00 C0 00 00 00 00 00 00 => 10_dBm
     2021-06-03 13:12:19   cmds             V R t X S P C r W s x e
     2021-05-30 01:41:31   config          MS=1;MU=1;MC=1;Mred=1
     2021-05-30 12:27:31   freeram         1004
     2021-06-03 15:24:51   ping            OK
     2021-06-03 13:05:51   state           opened
     2021-06-03 13:12:28   uptime          0 00:06:37
   XMIT_TIME:
     1622725543
   additionalSets:
   keepalive:
     ok         1
     retry      0
   mcIdList:
     10
     11
     12
     18
     43
     47
     52
     57
     58
     96
   msIdList:
     0
     0.1
     0.2
     0.3
     0.4
     0.5
     1
     3
     3.1
     4
     6
     7
     13
     13.2
     14
     15
     17
     20
     23
     25
     33
     33.1
     33.2
     35
     41
     49
     51
     53
     54.1
     55
     65
     68
     74.1
     87
     88
     90
     91.1
     93
   muIdList:
     8
     9
     13.1
     16
     17.1
     19
     21
     22
     24
     26
     27
     28
     29
     30
     31
     32
     34
     36
     37
     38
     39
     40
     42
     44
     44.1
     45
     46
     48
     49.1
     49.2
     50
     54
     56
     59
     60
     61
     62
     64
     66
     67
     69
     70
     71
     72
     73
     74
     76
     79
     80
     81
     83
     84
     85
     86
     89
     91
     92
     94
     95
     97
     98
     99
     104
     105
Attributes:
   cc1101_frequency 433.420
   event-on-change-reading state
   eventlogging 1
   hardware   nanoCC1101
   rawmsgEvent 1
   verbose    5


Dach:

Internals:
   ADDRESS    528462
   CFGFN     
   DEF        528462
   FUUID      60b8bd67-f33f-8b56-cf5b-7adaa78b75c4f4d5
   IODev      sduino
   NAME       RolloOben
   NR         43
   STATE      closed
   TYPE       SOMFY
   move       prog
   CODE:
     1          528462
   READINGS:
     2021-06-03 13:30:59   IODev           sduino
     2021-06-03 15:05:43   enc_key         A9
     2021-06-03 15:05:43   exact           200
     2021-06-03 15:05:43   position        200
     2021-06-03 15:05:43   rolling_code    0009
     2021-06-03 15:05:43   state           closed
Attributes:
   IODev      sduino
   model      somfyshutter


Log bei "set RolloOben prog":

2021.06.03 15:05:43 5: sduino: Write, sending via Set sendMsg P43#A924242D4FCB99#R6
2021.06.03 15:05:43 5: sduino: Set_sendMsg, msg=P43#A924242D4FCB99#R6
2021.06.03 15:05:43 5: sduino: Set_sendMsg, Preparing manchester protocol=43, repeats=0, clock=645 data=A924242D4FCB99
2021.06.03 15:05:43 5: sduino: AddSendQueue, sduino: SC;R=6;SR;P0=-2560;P1=2560;P3=-640;D=10101010101010113;SM;C=645;D=A924242D4FCB99;F=10AB85550A; (1)
2021.06.03 15:05:43 4: sduino: Set_sendMsg, sending : SC;R=6;SR;P0=-2560;P1=2560;P3=-640;D=10101010101010113;SM;C=645;D=A924242D4FCB99;F=10AB85550A;
2021.06.03 15:05:43 4: sduino: HandleWriteQueue, called
2021.06.03 15:05:43 4: sduino: SendFromQueue, called
2021.06.03 15:05:43 5: sduino: SimpleWrite, SC;R=6;SR;P0=-2560;P1=2560;P3=-640;D=10101010101010113;SM;C=645;D=A924242D4FCB99;F=10AB85550A;
2021.06.03 15:05:43 4: sduino: SendFromQueue, msg=SC;R=6;SR;P0=-2560;P1=2560;P3=-640;D=10101010101010113;SM;C=645;D=A924242D4FCB99;F=10AB85550A;
2021.06.03 15:05:44 4: sduino: Read, msg: SC;R=6;SR;P0=-2560;P1=2560;P3=-640;D=10101010101010113;SM;C=645;D=A924242D4FCB99;F=10AB85550A;
2021.06.03 15:05:44 5: sduino: Parse, noMsg: SC;R=6;SR;P0=-2560;P1=2560;P3=-640;D=10101010101010113;SM;C=645;D=A924242D4FCB99;F=10AB85550A;
2021.06.03 15:05:44 5: sduino: Read, msg: regexp=.* cmd=sendraw msg=SC;R=6;SR;P0=-2560;P1=2560;P3=-640;D=10101010101010113;SM;C=645;D=A924242D4FCB99;F=10AB85550A;
2021.06.03 15:05:44 4: sduino: CheckSendrawResponse, sendraw answer: SC;R=6;SR;P0=-2560;P1=2560;P3=-640;D=10101010101010113;SM;C=645;D=A924242D4FCB99;F=10AB85550A;
2021.06.03 15:05:44 4: sduino: Read, msg:
2021.06.03 15:05:45 4: sduino: HandleWriteQueue, called
2021.06.03 15:05:45 4: sduino: HandleWriteQueue, nothing to send, stopping timer
2021.06.03 15:05:51 4: sduino: KeepAlive, ok, retry = 0


Einen schönen Feiertag wünscht
DerJKM

elektron-bbs

Du hast wahrscheinlich beim compilieren die falschen Optionen in der compile_config.h ausgewählt, entweder für MINICUL oder RADINO. Für den Nano mit CC101 muss dort nur #define CMP_CC1101 auskommentiert werden.
Besser ist es natürlich gleich die vorgefertigten Firmware-Dateien zu flashen.
Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + 2 x rf_Gateway

andies

FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

DerJKM

Dang! Ich hatte tatsächlich die falsche DEFINE-Option aktiviert, nämlich den ARDUINO_ATMEGA328P_MINICUL, und das obwohl ich extra die definierten Pins überprüft hatte. Zahlendreher gehabt... Vielen Dank!

Die fertigen Firmwaredateien hatte ich zu Beginn auch probiert, die gingen damals nicht, aber zwischendrin hatte ich auch noch einen Kurzen zwischen GDO0 und GDO2 auf der Platine. Lesson learned: nach sowas wieder bei 0 anfangen mit dem testen.

get sduino availableFirmware ergibt "Fetching stable firmware versions for nanoCC1101 from GitHub", danach passiert nichts mehr (avrdude ist installiert und die Berechtigungen passen). Aber jetzt weiß ich ja wie man die Firmware korrekt kompiliert :)

elektron-bbs

So geht es auch in der FHEM-Oberfläche:

Device SIGNALduino auswählen, dann:
1. Attribut Hardware setzen
2. Attribut updateChannelFW setzen
3. get availableFirmware
4. set flash
5. Reading Version kontrollieren
Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + 2 x rf_Gateway