Hallo,
Ich hoffe ich blamiere mich jetzt nicht vollkommen aber ich bekomme meine Jalousien nicht korrekt zum laufen.
Ich verwende einen nanoCul zusammen mit Somfy RTS empfängern. Ich hab sowohl culfw als auch a-culfw versucht beides aber mit dem gleichen, folgenden Ergebnis.
- Die Empfänger werden in den Programmiermodus gebracht, ich send über das Somfy-FHEM Device den "Prog" Befehl aus und die Jalousie bestätigt mit einer kurzen auf/ab Bewegung (soweit OK)
- Das Somfy-FHEM Device wird auf "on" gesetzt und die Jalousie fährt ca. 1 Sekunde ab. Mit "off" fährt sie ca. 1 Sekunde auf.
- On-for-timer lässt die Jal. wie vorhin 1 Sekunde fahren, dann ist bis zum Ablauf des Timers Ruhe bis FHEM den "Stop" Befehl absetzt. Da sich die Jal. in Wirklichkeit aber nicht bewegt lässt der "Stop" Befehl die Jal. auf die "my-pos" fahren.
Wenn ich das richtig sehe, sollte der "on" Befehl die Jal. bis ganz unten fahren, was in meinem Fall aber nicht funktioniert. Ich habe mittlerweilen unterschiedliche Empfänger getestet und überall das gleiche Verhalten.
Ich hab auch bereits versucht die Betriebsmodi (US/EU) zu änderen. Auf die normale Fernsteuerung verhält sich die Jal. in den Modi auch anders nur von FHEM aus hat sich das Verhalten nicht geändert.
Würde mich freuen wenn mir jemand weiterhelfen könnte.
lg
Christian
Wie verhält sich denn die normale Fernsteuerung?
Fährt das Rollo ganz runter/rauf bis zum Ende wenn Du einmal auf der Fernbedienung die entsprechende Richtung drückst?
-----
Kannst Du mal ein ein list
von Deinem Somfydevice in FHEM machen und hier posten?
Johannes
Hallo Johannes
Danke für die schnelle Antwort.
Mit der normale Vernsteuerung verhält sie sich wie erwartet:
Im "EU" Modus fährt sie mit einem kurzen Tastendruck nur ein kleines Stück bzw. mit einem langen ganz nach oben / unten
Im "US" Modus verhält sie sich umgekehrt. Also mit einem kurzen ganz rauf/runter ; mit einem langen nur ein Stück bis die Taste wieder losgelassen wird.
Aus FHEM ist es wie gesagt egal welchen Modus ich wähle. Da ist das Verhalten wie beschrieben. Auch die korrekten "drive-up|down" Parameter (sind aktuell nicht gesetzt) haben nichts gebracht. Wenn ich mit gesetzten Parametern einen "Pos" Befehl absetze Verhält sie sich wie bei "on|off-for-timer. (ist vermutlich intern die gleihe routine)
Hier das Ergebnis des LIST Befelhs:
Internals:
ADDRESS 42ABCD
DEF 42ABCD A5 0A1C
IODev nanoCUL433
LASTInputDev nanoCUL433
MSGCNT 8
NAME rollo_3_original
NR 111
STATE closed
TYPE SOMFY
exact closed
move on
nanoCUL433_MSGCNT 8
nanoCUL433_RAWMSG YsAF49001FCDAB42
nanoCUL433_TIME 2015-11-14 16:59:41
position 200
CHANGETIME:
Code:
1 42ABCD
Helper:
Dblog:
Exact:
Logdb:
TIME 1447516716.94727
VALUE moving
Parsestate:
Logdb:
TIME 1447516781.04364
VALUE on
Position:
Logdb:
TIME 1447516716.94727
VALUE 50
State:
Logdb:
TIME 1447516716.94727
VALUE moving
Readings:
2015-11-14 16:59:40 enc_key A0
2015-11-14 16:59:40 exact closed
2015-11-14 16:59:41 parsestate on
2015-11-14 16:59:40 position 200
2015-11-14 16:59:40 rolling_code 0020
2015-11-14 16:59:40 state closed
Attributes:
IODev nanoCUL433
drive-down-time-to-100 20
drive-down-time-to-close 20
loglevel 6
model somfyshutter
switch_rfmode 0
Kannst Du mal die Attribute drive-down-time-to-100 und drive-down-time-to-close löschen?
Danach bitte attribut verbose auf 5 und mal den log-auszug einer Bewegung des Rollos, die nach 1 sek stoppt posten.
Ich habe leider nur Rolladen, aber bei denen ist das Verhalten so, dass wenn man den aufwärts knopf drückt, bewegt der sich solange bis das Ende erreicht ist oder man stop drückt. Ebenso bei abwärts. Die kurze Bewegung gibt es bei denen gar nicht. Die timing-Routinen verlassen sich auf dieses Verhalten also es wird quasi ein start kommando geschickt und dann ein Stop wenn das Ziel/Zeitpunkt erreicht ist. Wenn sich Dein ROllo anders verhält müsste man erstmal etwas experimentieren.
Sodala Parameter gesetzt und hier der Log Auszug
2015.11.14 18:48:37 4: SOMFY_set: rollo_3_original -> entering with mode :send: cmd :off: arg1 :: pos :closed:
2015.11.14 18:48:37 3: SOMFY_set: handled command off --> move :off: newState :open:
2015.11.14 18:48:37 5: SOMFY_set: handled for drive/udpate: updateState :: drivet :0: updatet :0:
2015.11.14 18:48:37 4: SOMFY_sendCommand: rollo_3_original -> cmd :off:
2015.11.14 18:48:37 5: SOMFY_sendCommand: rollo_3_original -> message :sA220002242ABCD:
2015.11.14 18:48:37 5: nanoCUL433 sending YsA220002242ABCD
2015.11.14 18:48:37 5: SW: YsA220002242ABCD
2015.11.14 18:48:37 5: CUL/RAW: /YsA22C0022CDAB42
2015.11.14 18:48:38 4: CUL_Parse: nanoCUL433 YsA22C0022CDAB42
2015.11.14 18:48:38 5: nanoCUL433 dispatch YsA22C0022CDAB42
2015.11.14 18:48:38 4: SOMFY rollo_3_original off
Apropos Rollo, in meinem Fall is es eine Jalousie/Raffstore.
Die verwendeten Empfänger sind diese hier https://www.somfy.at/file.cfm/Soliris_Modulis_Slim_Receiver_DE-geschl.pdf?contentid=305982
...
Aua das hatte ich befürchtet, Deine Jalousie verhält sich anders als die anderen SOMFY-Geräte.
Kannst Du mal Deine Jalousie in den US-Modus versetzen und dann mal versuchen sie mit FHEM zu steueren.
Was passiert dann?
Es wäre inetressant zu sehen, was Deine Fernbeidenung bei kurz / lang sendet, denn das könnte man dann vermutlich in FHEM nachbilden.
Johannes
Obwohl der US Modus deinem Funktionsprinzip entspricht (kuzer Tastendruck lässt die Jal. bis zu einem stop Befehl oder Endposition fahren ) verhält sich die Ansteuerung über FHEM gleich wie zuvor beschrieben. :(
Kannst du mir einen Tipp geben wie ich die Signale von der Fernbedienung aufzeichnen kann?
Aufzeichnen würde über einen FHEMDuino gehen http://www.fhemwiki.de/wiki/FHEMduino (http://www.fhemwiki.de/wiki/FHEMduino), der kann normalerweise die gesendeten SOMFY Kommandos aufzeichnen, dann könnte man die Unterschiede analysieren.
Ich habe leider jetzt erstmal keine Infos mit Google zu den möglichen Unterschieden gefunden.
Vielen Danke für deine Mühe! Das Sender / Empfänger Modul für den Fhemduino ist bereits bestellt ;-) ich meld mich wieder wenn ich neuigkeiten hab
Gerne doch! Das Somfy-Protokoll ist ja nirgendwo dokumentiert, sondern von Leuten "reverse engineered" worden und interpretiert. Wenn Somfy das inzwischen weiterentwickelt hat, wäre es sicher interessant das noch für FHEM verfügbar zu machen.
Auch wenn Du dafür momentan das Versuchskaninchen bist...
Stell mich gerne als Versuchskanditat zur Verfügung ;D Hauptsache es klappt irgendwann! Mich wundert es allerdings, dass ich der erste mit Somfy Raffstores bzw. meinen Receivern bin?! Vor allem weil die alles andere als neu sind. Auch die Fernbedienung ist eine standard Somfy RTS Fernbedienung aus der "Bucht" . Also nix was jetzt speziell für die receier gedacht ist. Oder wird im somfy Protokoll etwa die type abgefragt und dann unterschiedliche codes gesendet?
Wie auch immer... Ab nächstem we kann ich hoffentlich mehr input liefern. Lg
Zitat von: scuba am 15 November 2015, 07:28:11
Mich wundert es allerdings, dass ich der erste mit Somfy Raffstores bzw. meinen Receivern bin?! Vor allem weil die alles andere als neu sind.
Du bist nicht der Erste.
Ich habe das "Problem" vor längerem bereits im passenden Beitrag im passenden Forenbereich angesprochen.
Da Somfy aber "re-engineered" werden musste gibt es für dieses Problem (noch) keine Lösung.
Die Fernbedienung kann ja nicht wissen welche Empfänger angeprochen werden also muss im jeweiligen Antrieb die Verarbeitung anders erfolgen da die Fernbedienung
immer die gleichen Signale sendet.
Ja, ich habe Somfy die mit FHEM tadellos funktionieren und auf der Terrasse welche die auch nur step-by-step fahren wollen und die Umstellerei US/EU habe ich auch durchgespielt.
Zitat von: Puschel74 am 15 November 2015, 10:06:27
Du bist nicht der Erste.
Ich habe das "Problem" vor längerem bereits im passenden Beitrag im passenden Forenbereich angesprochen.
Das habe ich dann wohl überlesen. Wenn mir jemand temporär eine Fernbedienung zusendet, kann ich gerne versuchen das bei mir auszulesen und ins somfy modul einzubauen.
Ich brauche euch aber trotzdem als tester :D
Das somfyprotokoll ist ja nicht wirklich komplex und es sind auch nicht viele teile dabei die somfy erweitern könnte. Da prinzipiell die kommandos ja akzeptiert werden von euren jalousien, hoffe ich, das es eigentlich nur geringfügig andere befehle sind.
@Puschel: Danke für die Info. Somit scheint es klar zu sein, dass es nicht an meinem Setup liegt.
Allerdings würde deine Annahme
ZitatDie Fernbedienung kann ja nicht wissen welche Empfänger angeprochen werden also muss im jeweiligen Antrieb die Verarbeitung anders erfolgen da die Fernbedienung
immer die gleichen Signale sendet.
bedeuten, dass sich die Jalousie im US Mode gleich verhalten müsste wie bei Viegeners Rollos, was aber nicht der Fall ist.
Kann es also sein, dass der von FHEM versendete Befehl nicht zu 100% dem Somfy Protokoll entspricht oder vermutet ihr dass sowieso ganz andere Befehle von der Fernsteuerung abgesendet werden? Die RTS Fernsteuerung dürften doch alle die selben sein oder? Zumindest steht bei meinen Aktoren, dass sie mit allen RTS Fernsteuerungen funktionieren.
@ Viegener: Leider kann ich dir meine Fernsteuerung nicht zusenden, da ich derzeit nur die eine habe ;-) Aber ich werde wie gesagt versuchen die Kommunikation mitzutracken sobald ich den entsprechenden Empfänger habe.
@vigener:
Hab mich ein bisschen im Code umgesehen... hab ich das richtig verstanden?
Der Somfy Befehl setzt sich aus folgenden Komponenten zusammen <CUL_Command> <KEY> <Command> <Rolling Code> <Address>.
Der Eigentliche Befehl für on | off | stop ist nur <Command> ? ON=40, OFF=20, STOP/my-pos=11?
Mit dem FHEM Befehl "z_custom" kann ich selbst einen <Command> übergeben?
Somit könnte ich mich durch die 256 Möglichkeiten durchprobieren bis ich den richtigen hab... oder stell ich mir die Welt zu einfach vor?
Wenn es danach ginge, wäre es noch einfacher, denn es gibt nur 16 Codes = 4bit (der zweite Nibble im Command wird durch die Checksum gefüllt).
Bisher sind auch alle Kommandos einzelne bit werte 1 = 0001 / 2 = 0010 / 4 = 0100 / 8 = 1000
Es könnte also eine Kombination sein, allerdings gibt es im Protokoll noch ein ganzes ungenutztes Byte am Anfang über das noch wenig bekannt ist (ausser dass Ax ein guter Wert ist). Bei den Fernbedienungen die ich angeschaut habe, wird dieser Code variiert nach mir unbekannten Regeln (je nachdem, ob dasselbe Kommando wiederholt wird oder ein neues Kommando).
Ausserdem ist bisher unbekannt ob sich nicht die Fernbedienung anders verhält (Also nach 1s nochmals etwas anderes sendet)...
Das erhöht die Möglichkeiten extrem.
Was z_custom momentan macht, kann ich gar nicht genau sagen, aber meines Wissens erlaubt es nicht das frei Setzen des commands.
Für direkte Kommandos musst Du direkt an den CUL nicht über Somfy (Kommando Y...)
Wär ja auch wirklich zu einfach gewesen ;D
hab leider auch gerade gesehen , dass das z_command nicht das macht was ich erwartet hab....
obwohl ich schon glaube, dass das so gedacht ist ...
if($command eq "XX") {
# use user-supplied custom command
$command = $args[1];
}
$message = "s"
. $enckey
. $command
. $rollingcode
. uc( $hash->{ADDRESS} );
wird aber vermutlich noch woanders abgefangen...
sollt sich kein passender Command Bruteforcen lassen muss ich wirklich warten bis der Empfänger für den Fhemduino da ist.
Einfach durchiterieren der Kommands hat nichts gebracht... ABER mit einem "Doppelklick" auf on oder off fährt meine Jal. jetzt ganz rauf bzw. runter. :D Hattest also recht, dass der Befehl anscheinend 2 mal abgesendet wird. Allerdings kommt jetzt ab und an der bekannte "nanoCul Hänger bei zu schneller Kommandofolge" zu tragen. Werde etwas später heute Abend deine "gefixte Firmware aus deinem anderen Thread testen.... jetzt will mein Hund erst mal raus ;)
@Puschel: Kannst du das Verhalten bei dir nachstellen bzw. bestätigen. Falls ja könnte man ja über eine Implementierung nachdenken.
lg
Das wäre schonmal ein interessanter ansatz, jetzt wäre die frage ob man durch schnelles hintereinandersenden der befehle in fhem das auch erreichen kann.
Also entweder durch 2 mal schnell hintereinander druecken von auf oder ab im somfy device oder zur not über zwei raw commands. Die frage ist immer noch, was die mit den anderen elementen des befehls machen (rolling code und control code)
Zitat von: viegener am 16 November 2015, 19:59:49
Das wäre schonmal ein interessanter ansatz, jetzt wäre die frage ob man durch schnelles hintereinandersenden der befehle in fhem das auch erreichen kann.
Also entweder durch 2 mal schnell hintereinander druecken von auf oder ab im somfy device oder zur not über zwei raw commands. Die frage ist immer noch, was die mit den anderen elementen des befehls machen (rolling code und control code)
Das mit dem Doppelklick hab ich auf dem somfy device aus fhem durchgeführt. Also Doppelklick auf on oder off klappt.Die jal . verhält sich allerdings aber nicht zu 100% wie mit der Fernsteuerung.Beim Doppelklick macht sie zuerst den 1sekunden step und fährt erst dann in die Endlagen. Ich Spiel mich gerade mit dem timing in welchem Abstand die befehle ausgeführt werden müssen.
Mal sehen ::)
Gesendet von meinem CUBOT X6 mit Tapatalk
Klingt gut!
Wenn Du es über den nanocul direkt ausprobieren willst, kannst Du als raw Befehle am CUL device eingeben und den Befehl folgendermassen zusammenbauen:
YsA020<vierstelliger Rolling code><addresse 6 stellig>
für Aufwärts.
Also z.B:
YsA020010BABCDEF
und dann
YsA020010CABCDEF
wobei ABCDEF die Adresse und 010B bzw, 010C die rolling codes sind.
Der Doppelklick scheint nur mit a-culfw zu funzen. Mit deiner "gefixteten" bzw. der originalen culfw klappts komischerweise nicht.
Ich nehme an, das ist einer der Seiteneffekte des Fixes. Ich denke es ist wichtig rauszufinden, was die FB wirklich sendet.
ja ist vermutlich.. Bis auf weiteres hab ich mich mit einem dummy beholfen und lass ein notify den on/off Befehl einfach zweimal absetzen. Klappt bis auf die gelegentlichen Hänger auch recht gut.
Leider ist meine Sender/Empfänger letzte Woche noch nicht angekommen.
Allerdings hab ich den Tipp von Vigener das Attribut "repetition" auf "2" zu setzen (eigentlich um die nanoCul hänger zu beseitigen) ausprobiert und ... tada... jetzt fahren meine Jalousien auch ohne Doppelklick bzw. zweifachem Absenden des Befehls nach oben!! Wie sich der Parameter auf die Stabilität des CULs auswirkt wird sich erst zeigen...
Soda, mittlerweilen ist mein Empfänger angekommen und ich konnte einen FHEMduino zusammenbasteln bzw. meine Fernbedienung auslesen.
Folgende Erkentnisse konnte ich jetzt mal sammeln:
- Die Befehle 40/20/10/80 für ab/auf/stop/program sind auch bei meiner Fernbedienung ident. Wie sich die Motoren verhalten hängt wie erwartet einzig vom verwendeten Empfänger ab.
- Zusätzlich konnte ich noch 2 weitere Befehle auslesen: "90" lässt die "Soliris" Aktoren auf Wind und Sonnensensoren reagieren."a0" lässt sie nur auf Windsensoren reagieren. Vermutlich gibt es noch weitere Befehle die von Wind/Sonnensensoren abgesendet werden.
- Die Aktoren reagieren nicht nur auf den Empfang eines einzelnen Befehls sondern auch die Anzahl / Dauer der empfangenen Befehle spielt eine Rolle. Hierbei darf sich der ENC-KEY sowie der Rolling Code nicht ändern.
Bsp: Der Befehl "90" wird 7 mal abgesetzt.
Ys a6 90 2eb9 6d40cf
Ys a6 90 2eb9 6d40cf
Ys a6 90 2eb9 6d40cf
Ys a6 90 2eb9 6d40cf
Ys a6 90 2eb9 6d40cf
Ys a6 90 2eb9 6d40cf
Ys a6 90 2eb9 6d40cf
... Zum einleiten des Programmiermodus muss der Befehl 80 ebenfalls öfters hintereinander abgesetzt werden.
- Die Ursache warum meine Jal. nur ein Stück gefahren sind liegt ebenfalls in der Wiederholung der Pakete. Wie bereits in deinem anderen Thread erwähnt schickt ein "Somfy FHEM Device" standardmäßig alle Pakete 6x hintereinander ab. Mit dem Attribut "Repetition 1" können meine Jalousien nun korrekt angesteuert werden.
- Windsensoren senden zyklisch einen "Alive" Befehl an die Aktoren aus. Sollte dieser ausbleiben fahren die Jal. nach einer gewissen Zeit aus sicherheitsgründen ganz nach oben.(Info vom Somfy Support) Ich habe gebrauchte Empfänger im Einsatz an denen anscheinend Windsensoren eingelernt waren ;-)
- Aus noch ungeklärten Gründen, möglicherweise durch zu häufiges programmieren, können die Empfänger ihren ?RollingCode? verlieren. Zumindest reagieren sie dann auf keinerlei Befehle von bereits eingelernten Fernbedienungen. Sie lassen sich mit den eingelernten FBs weder in den Programmiermodus versetzen noch auf Werkseinstellung zurücksetzen oder anderwertig bedienen. (hier konnte mir der Somfy Support auch nicht weiterhelfen).
Das Phänomen kann auf 2 Arten behoben werden:
1) mit einer weiteren noch nicht verwendeten FB ein Werksreset durchführen.
2) Funktioniert zumindest mit "Somfy Telis" FB. Gehäuse der FB öffnen. Rechts neben der Batterie befinden sich 2 Lötpads mit der Beschriftung "ADR". Diese beiden Pads mit einem Drahtstück für ca. 3 Sekunden brücken. Die LED blinkt 2 mal. Damit dürfte sich die Adresse der FB ändern und kann somit neu in die Empfänger eingelernt werden.
Ich werde mich in den nächsten Tagen noch mit den Timings in den unterschiedlichen Betriebsmodi (EU/US) spielen. Vielleicht könnte man am "model" Attribut ansetzen um entsprechend des eingestellten Modells die nötigen Wiederholungen anzupassen.
Was haltet ihr von einem Wiki Beitrag zu den Themen oder ist das etwas zu offtopic bzw. produktspezifisch?
OK, das ist ja eine Menge Erkenntnis, damit lässt sich auf jeden Fall eine Menge anfangen. Danke für den ganzen Aufwand.
Ich fange mal hinten an: Ja ein wiki-Eintrag würde sicher Sinn machen, die Erkenntnisse sind je eher nicht flüchtige Infos, damit können Sie auch für andere relevant sein. Insbesondere das Zurücksetzen der FB ist bestimmt hilfreich.
Das mit dem model-Attribut wäre sicher die Lösung der Wahl.
Model shutter (rolladen)
- repetition default 6?
- Kommandos wie bisher
Model jalousie (soliris)
- repetition default 1?
- kommandos wie shutter, zusätzlich
- on-short (on mit repetition 6)
- off-short (off mit repetition 6)
Die zusätzlichen Befehle sind sicher interessant, würde ich jetzt aber nicht als vordringlich sehen, oder hast Du vor noch Windsensoren zuzurüsten? Das automatische Hochfahren würde ich jetzt auch eher bei fhem selbst sehen.
Ich hab bei meinen Raffstores repetition 2 AFAIK. Darüber wurde vor langer zeit mal diskutiert.
Gesendet von meinem SM-T530 mit Tapatalk
edit//
repetition 3 galt bei mir als bestes ergebnis. wenn lange gedrückt wird läuft der raffstore solange wie gedrückt wird. bei kurzen druck läuft er bis stop oder ende. aber das wurde ja schon geklärt.