SOMFY Rolladen und Handsender Status bzw. Position abgleichen mit SIGNALduino

Begonnen von timtom, 20 Mai 2017, 14:35:24

Vorheriges Thema - Nächstes Thema

Elektrolurch

Hallo,

Zitat:
Hast Du verbose vom Signalduino mal auf 5 gesetzt, und kommen da wirklich keine Daten bei jedem Tastendruck? Oder kommen Daten, aber der Signalduino hört ein wenig falsch bzw. zeitlich verschoben? Was sagen die raw data? Kannst Du hier mal das logfile oder EventMonitor mit log Hacken aktiv posten?

Ich habe mir mal vor dem encrypt in der Sompfy_Parse die Bitfolge des Signals ausgeben lassen, kann aber leider nicht erkennen, ob die Bits tatsächlich verschoben sind, da durch das encrypt zwischen zwei Signalen eines gleichen Handsenders durch den rollingcode die bits ja sich auch ändern....
Die Länge stimmt ja jeweils (fast) immer.
Nächster Versuch wäre jetzt mal, falls das device nicht in der parse-fn gefunden wird, die nochmals aufzurufen und vorne ein bit hinzufügen oder wahlweise abschneiden. Aber dazu hatte ich noch keine Zeit.
Oder gibt es da noch andere Ideen, die sich in der SignalDuino - SW leichter umsetzen lassen?
Jedenfalls scheine ich nicht der Einzige zu sein, der das Problem mit den Handsendern hat. Wigner hat ja auch das Gleiche schon berichtet.

Elektrolurch
configDB und Windows befreite Zone!

Pitdahl

Hallo Arnd, hallo Elektrolurch,
anbei mal logfile und eventmonitor log. Hoffe Ihr könnt etwas damit anfangen.
Gruß Pit
Vielen Dank, FHEM 5.8 auf PI2 mit SIGNALduino 433MHz

Kenneth

Mahlzeit,

Danke Elektrolurch, hab die 99_myUtilSomfy.pm eingespielt und soweit funktioniert es auch zumindest mit den Handsendern, der State wurde bei meinen Versuchen immer richtig angezeigt
Ich habe allerdings noch eine Impresario Chronis (FB für mehrere Rolos) die bisher die automatsiche Steuerung übernommen hat, leider kann man nur 4 Fahrbefehle pro Tag ausführen lassen.. was aber für eine vernünftige Beschattung nicht aureichend ist .. aber das nur am Rande...l.
Nun hab ich alle Rollos von der Chronis bedient im FHEM entsprechend via autocreate mitgehört und dann die Zuweisung vorgenommen.
Das blöde Ding sendet jedoch jeden Fahrbefehl mehrfach an jedes Rollo, im Log sieht man immer 3-5 Befehle mit ca. 2-6 Sekunden Verzögerung und das verfälscht den State aber das kann man ja vernachlässigen....
------------

Edit:
ha kaum geschrieben schon ist es passiert,
der State wurde beim einem Rollo nicht aktualisiert obwohl "parsestate" des Handsenders den aktuellen Zeitstempel enthält, beim anderen Rollo wurde hingegen der parsestate der FB nicht aktualisert..
Intel NUC @Ubuntu > FHEM 5.8
HM-LAN, NanoCul, Signalduino
EchoDot, Gardena Sileno, XT1, Somfy RTS
TabletUI

timtom

@Elektrolurch. Sofern ich deine Anpassung verstanden haben, rufst du das Somfy-Device bei Betätigung der FB virtuell auf, um ein Doppel-Senden (Hardware FB und FHEM) zu verhindern? Würde das mit dem DOIF nicht auch analog gehen?
([wz_RolladenHandsender:parsestate] eq "on") ##down
  (attr wz_Rolladen dummy 1)
  (set wz_Rolladen on)
  (attr wz_Rolladen dummy 0)
DOELSEIF ([wz_RolladenHandsender:parsestate] eq "off") ##up
  (attr wz_Rolladen dummy 1)
  (set wz_Rolladen off)
  (attr wz_Rolladen dummy 0)
DOELSEIF ([wz_RolladenHandsender:parsestate] eq "stop") ##stop
  (attr wz_Rolladen dummy 1)
  (set wz_Rolladen stop)
  (attr wz_Rolladen dummy 0)

Elektrolurch

Ja. Da ich aber mit Doifelse mich nicht beschäftigt habe, kann ich Dir nicht sagen, ob das oben richtig ist.

Aber ich rufe den Rolladen mit dem Parameter "virtual" aus der Parse_FN auf:

DoSet($ad,'virtual',$newstate);

Funktioniert aber nur, wenn Sender und Empfänger auf dem gleichen fhem laufen. Wenn da noch fhem2fhem zum Einsatz kommt, muss man wahrscheinlich irgendwas mit IOWrite da machen. Habe ich mich aber noch nicht damit beschäftigt.

Leider empfängt mein SignalDuiono die Handsender nicht immer korrekt, so das der Status der Rolladen auch nicht immer korrekt ist.

Elektrolurch
configDB und Windows befreite Zone!

buennerbernd

Etwas Off-Topic: Bei mir steht der Einbau der Velux Rollläden noch bevor. Muss man sich Gedanken machen, wenn man die Rollläden automatisch herunter fährt und die Fenster geöffnet sind? Geht da was kaputt?
Modulentwickler von KLF200 und KLF200Node

hugo

Hallo, ich klinke mich hier einmal ein.
Ich steuere meine 14 somfy rts mit einem "Impresario Chronis", das funktioniert auch sehr gut. Zusätzlich habe ich die Rollos an FEHM mit CUL-HM angebunden. Um induviduelle Steuerung vorzunehmen.
Durch den "Impresario Chronis" bekomme ich natürlich den Status im Fhem nicht mit. Jetzt war mein Gedanke mit einem Signaldino das senden des "Impresario Chronis" abzuhören und dann den Status in Fhem zu setzen, gleiches Vorgehen könnte auch für die Wandsender verwendet werden.
Allerdings habe ich keine Ahnung wie ich den Signaldino einstellen muss, damit er die Funksignal abhört und anschließend diese auszuwerten.
Habt Ihr schon sowas gemacht oder ist mein Ansatz falsch?
Für Vorschläge bin ich dankbar. Mir ist bewusst, dass das setzen vom Status nur einen Schönheitskaracter hat.
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

RaspiLED

Hi,
Eigentlich reicht es im SIGNALDuino (mit cc1101 Chip!) die Freq auf 433.420 zu setzen.
Danach werden die Somfy FB als Device mit Rollingcode angelegt und bekommen den Status mit.
Gruß Arnd


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

babajun

Bezüglich Empfang habe ich die besten Ergebnisse mit folgenden Werten ausgetestet:

ccconf

freq:433.420MHz bWidth:464KHz rAmpl:42dB sens:16dB

hugo

Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

RaspiLED

Hi hugo,
zeig mal ein
list <dev>
<dev> mit dem Namen Deines Signalduinos ersetzen.

Normalerweise mit
set <dev> cc1101_freq 433.420
set <dev> cc1101_sens 16

Gruß Arnd


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

hugo

Hallo,
hier das List. Konnte die Werte jetzt setzen, Sehe Sie aber im List nicht. Shutodwn und restart durchgeführt.
Jetzt hat er ein Device angelegt und kann auch über Fhem das Rollo bewegen.
Wenn ich mit der FB das Rollo bewege, bekomme ich nur den Status off mit geteilt und erhalte im LOGFILE eine Fehlermeldung.

2017.08.27 13:04:54 4: RC_SIGNALduino/msg READ: OK
2017.08.27 13:04:54 5: RC_SIGNALduino/msg READ: regexp=^OK$ cmd=ping msg=OK
2017.08.27 13:04:54 4: RC_SIGNALduino/HandleWriteQueue: nothing to send, stopping timer
2017.08.27 13:05:40 4: RC_SIGNALduino/msg READ: MU;P0=1351;P1=-581;P2=-15612;P3=-120;P4=2620;P5=-2612;P6=4820;P7=-1220;D=2345456707012121212707210127212107210127012701272121212121072107012721012127210707070722;CP=0;R=241;
2017.08.27 13:05:40 5: RC_SIGNALduino: applying filterfunc SIGNALduino_filterSign
2017.08.27 13:05:40 5: RC_SIGNALduino: applying filterfunc SIGNALduino_compPattern
2017.08.27 13:05:40 5: RC_SIGNALduino: applying filterfunc SIGNALduino_filterMC
2017.08.27 13:05:40 4: RC_SIGNALduino: Fingerprint for MU Protocol id 63 -> Warema matches, trying to demodulate
2017.08.27 13:05:40 5: RC_SIGNALduino: Starting demodulation at Position 0
2017.08.27 13:05:40 5: RC_SIGNALduino: dispatching bits: 0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0
2017.08.27 13:05:40 4: RC_SIGNALduino: decoded matched MU Protocol id 63 dmsg u63529492A4AA length 40 RSSI = -81.5
2017.08.27 13:05:40 5: RC_SIGNALduino Dispatch: u63529492A4AA, test ungleich: disabled
2017.08.27 13:05:40 5: RC_SIGNALduino Dispatch: u63529492A4AA, -81.5 dB, dispatch
2017.08.27 13:05:40 5: RC_SIGNALduino: dispatch u63529492A4AA
2017.08.27 13:05:40 3: RC_SIGNALduino: Unknown code u63529492A4AA, help me!
2017.08.27 13:05:40 4: RC_SIGNALduino/msg READ: MC;LL=-1333;LH=1341;SL=-585;SH=691;D=B0B3B24FDA6355;C=658;L=56;R=242;
2017.08.27 13:05:40 4: RC_SIGNALduino: Found manchester Protocol id 43 clock 658 RSSI -81 -> Somfy RTS
2017.08.27 13:05:40 5: RC_SIGNALduino: extracted data 10110000101100111011001001001111110110100110001101010101 (bin)
2017.08.27 13:05:40 4: RC_SIGNALduino: Somfy bitdata: 10110000101100111011001001001111110110100110001101010101 (56)
2017.08.27 13:05:40 5: RC_SIGNALduino Dispatch: YsB0B3B24FDA6355, test ungleich: disabled
2017.08.27 13:05:40 5: RC_SIGNALduino Dispatch: YsB0B3B24FDA6355, -81 dB, dispatch
2017.08.27 13:05:40 5: RC_SIGNALduino: dispatch YsB0B3B24FDA6355
2017.08.27 13:05:40 1: ERROR: >Somfy RTS message format error!< returned by the SOMFY ParseFn is invalid, notify the module maintainer
2017.08.27 13:05:54 4: RC_SIGNALduino/keepalive ok, retry = 0
2017.08.27 13:06:54 4: RC_SIGNALduino/KeepAlive not ok, retry = 1 -> get ping
2017.08.27 13:06:54 5: AddSendQueue: RC_SIGNALduino: P (1)
2017.08.27 13:06:54 5: RC_SIGNALduino SW: P
2017.08.27 13:06:54 4: RC_SIGNALduino/msg READ: OK
2017.08.27 13:06:54 5: RC_SIGNALduino/msg READ: regexp=^OK$ cmd=ping msg=OK
2017.08.27 13:06:54 4: RC_SIGNALduino/HandleWriteQueue: nothing to send, stopping timer
2017.08.27 13:07:54 4: RC_SIGNALduino/keepalive ok, retry = 0



Internals:
   Clients    :IT:CUL_TCM97001:SD_RSL:OREGON:CUL_TX:SD_AS:Hideki:SD_WS07:SD_WS09: :SD_WS:RFXX10REC:Dooya:SOMFY:SD_UT:SD_WS_Maverick:FLAMINGO:CUL_WS:Revolt:FS10:SIGNALduino_un:
   DEF        /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@57600
   DMSG       nothing
   DevState   initialized
   DeviceName /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@57600
   FD         11
   LASTDMSG   nothing
   NAME       RC_SIGNALduino
   NR         30
   PARTIAL
   STATE      opened
   TIME       1503830277
   TYPE       SIGNALduino
   sendworking 0
   version    V 3.3.1-dev SIGNALduino cc1101 - compiled at Mar 10 2017 22:54:50
   MatchList:
     10:SD_WS07 ^P7#[A-Fa-f0-9]{6}F[A-Fa-f0-9]{2}(#R[A-F0-9][A-F0-9]){0,1}$
     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   ^u30#.*
     18:FLAMINGO ^P13#[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]+
     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]+
     X:SIGNALduino_un ^[u]\d+#.*
   QUEUE:
   READINGS:
     2017-08-27 12:48:22   ping            OK
     2017-08-27 12:39:22   state           opened
     2017-08-27 12:39:22   version         V 3.3.1-dev SIGNALduino cc1101 - compiled at Mar 10 2017 22:54:50
   getcmd:
   keepalive:
     ok         0
     retry      0
   mcIdList:
     10
     11
     12
     18
     43
     47
     52
     57
     58
   msIdList:
     0
     1
     13
     14
     15
     17
     2
     22
     23
     25
     3
     32
     33
     35
     38
     4
     41
     51
     55
     6
     68
     7
   muIdList:
     13.1
     16
     20
     21
     24
     26
     27
     28
     29
     30
     31
     34
     36
     37
     39
     40
     44
     44.1
     45
     46
     48
     49
     5
     50
     56
     59
     60
     61
     62
     63
     64
     65
     66
     67
     8
     9
Attributes:
   flashCommand avrdude -c arduino -b [BAUDRATE] -P [PORT] -p atmega328p -vv -U flash:w:[HEXFILE] 2>[LOGFILE]
   hardware   nanoCC1101
   verbose    5
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

RaspiLED

Hugo!
Ein wenig einlesen würde Dir helfen ;-)

In meinem Beitrag waren drei Hinweise!

Signalduino mit "CC1101" - okay hast Du
Freq auf 433.42 MHz - hast Du jetzt auch
RollingCode - tja was ist das?
https://wiki.fhem.de/wiki/Somfy_via_SIGNALduino

Hier mal versucht kurz zu erklären:
Du wolltest Den Status des Somfy mitbekommen, wenn Du die FB drückst - Das geht jetzt!
Wenn Du per FHEM den Somfy bewegen willst, dann brauchst Du ein neues FHEM Device, dass Du an die Somfy als neue Fernbedienung anlernen musst.
Sonst kannst Du nicht mehr mit Deiner Hardware Fernbedienung auslösen, da der RollingCode nicht mehr passt!

Gruß Arnd


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

hugo

Hallo Arnd,
vielen Dank für deinen Hinweis. Bin mir über die Thematik von RollingCode bewusst, hattes aber in diesem Zusammenhang total vernachlässigt.
Ist jetzt so wie du sagst in meinem Device werden die FB-Stati im "parsestate" "on/stop/off" angezeigt. Somit kann ich jetzt mit einem notify und setstate meinen Status setzen.
Nochmals Danke für die Bemühungen.
Hugo  :)
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

habeIchVergessen

@hugo: kannst du bitte ein list vom SOMFY-Device posten?
meiner Meinung nach, sollte kein Status angezeigt werden, da keine korrekte SOMFY-Nachricht empfangen wurde.