10_SOMFY.pm - Somfy RTS (und kompatible)

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

Vorheriges Thema - Nächstes Thema

Schnello

#90
Das wäre Super. Hab schon versucht das ganze via den RAW Codes zu testen aber da legt er mir nur ein neues Rollo an.

Edit:
Ok geschaft. Mit 9 geht die Markise in den Sonnenmodus. Mit A in den Wind Mode. Die ganzen anderes Codes wie 5,6,3 sagen mir auch nichts.


Grüße

viegener

Zitat von: Schnello am 29 Dezember 2016, 12:42:56
Das wäre Super. Hab schon versucht das ganze via den RAW Codes zu testen aber da legt er mir nur ein neues Rollo an.

Edit:
Ok geschaft. Mit 9 geht die Markise in den Sonnenmodus. Mit A in den Wind Mode. Die ganzen anderes Codes wie 5,6,3 sagen mir auch nichts.


Grüße

In Githiub befindet sich eine neue Version des Somfy-Moduls mit zwei neuen Set commands
(wind_sun_9 / wind_only_a)

https://github.com/viegener/Telegram-fhem/tree/master/Somfy

Vielleicht kannst Du das bei Gelegenheit mal ausprobieren?

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Schnello

Danke  8)

Also Wind only funktioniert. Zumindest bestätigt die Markise die Aktion.
Wind + Sonne da passt die Verknüpfung noch nicht.

Fehlermeldung:

SOMFY_set: Please set attr drive-down-time-to-100, drive-down-time-to-close, etc


Grüße

viegener

Zitat von: Schnello am 30 Dezember 2016, 16:32:25
Danke  8)

Also Wind only funktioniert. Zumindest bestätigt die Markise die Aktion.
Wind + Sonne da passt die Verknüpfung noch nicht.

Fehlermeldung:

SOMFY_set: Please set attr drive-down-time-to-100, drive-down-time-to-close, etc


Grüße

Du hast ja so recht, so ist das wenn man Dinge zu schnell macht und nicht ordentlich testet. Neue Version ist eingecheckt in github

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Schnello

Perfekt danke.

Beide Commandos werden nun bestätigt und sollte auch lt. der FB auch richtig sein.
Werden das morgen wenn ich Zeit finde und die Sonne sich zeigt genauer testen.

Danke und einen guten Rutsch in neue Jahr.


Grüße

viegener

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Schnello

Ich danke fürs implementieren.

Btw. Die ersten Sonnenstrahlen haben heute gezeugt das alles so tut wie es soll.

Grüße und einen guten Rutsch,
Christian

viegener

OK, Danke für die Rückmeldung ich habe die neuen set-Befehle gerade ins SVN eingechecked, die kommen jetzt per update:

- 10_SOMFY: new RTS commands 0x9 und 0xA (set wind_sun_9/wind_only_a)

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

jueff

#98
Noch etwas zum Sonnensensor: Der Sensor schickt laut meinem Log alle ca. 15' dreimal kurz hintereinander entweder

A0 E3 0000 87C09D   keine Sonne
oder
A0 E1 0002 87C09D   Sonne
oder
A0 E0 0003 87C09D   Wind (mit Sonne)

Daraus resultiert $comand = 'E' -> welches in %codes nicht enthalten und daher ignoriert wird.
Das 4. digit (0, 1 oder 3) ist, wenn ich den Code richtig verstanden habe, die Checksumme - diese wird ausmaskiert. Die Digits 5-8 sind der RollingCode.
Nun verstehe ich nicht, wo ist dann die Information Sonne/keine Sonne/Wind versteckt - im rolling code?
Wenn ich mir den RollingCode so ansehe könnte das letzte Digit bitcodiert die Stati enthalten
Bit 0: Sonne erkannt
Bit 1: Wind erkannt

Hat jemand die "Sonne/keine Sonne/Wind Information" schon einmal für weitere Steuerungen verwendet?








viegener

@jueff: Das sieht wirklich so aus, als ob hier der Rolling code missbraucht wird um Sonnen/Wind Informationen zu senden. Wenn ich es richtig verstehe hast Du mehrfach protokolliert, dass hier wirklich nur die rolling codes 0 2 oder 3 gesendet werden?

Ich sehe mal für ein Update eine Funktion vor, um auch solche Sondercodes zu senden.

Wie soll denn der Rolladen auf die Codes reagieren?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

majorshark

Hallo.

Irgend etwas scheint nicht zu funktionieren oder ich habe den Sinn der drive-time Attribute nicht verstanden.

Meine Definition:
defmod RolloHWR SOMFY 100002
attr RolloHWR IODev sduinoCC1101
attr RolloHWR alias Hauswirtschaftsraum
attr RolloHWR drive-down-time-to-100 17.8
attr RolloHWR drive-down-time-to-close 19.8
attr RolloHWR drive-up-time-to-100 4.5
attr RolloHWR drive-up-time-to-open 19.0
attr RolloHWR genericDeviceType blind
attr RolloHWR group Rolladen
attr RolloHWR homebridgeMapping CurrentPosition=position,minValue=0,maxValue=100 TargetPosition=position,minStep=10,cmd=
attr RolloHWR positionInverse 1
attr RolloHWR repetition 3
attr RolloHWR room 1.18_Hauswirtschaft,2.3_Rollo,9.6_Homekit
attr RolloHWR verbose 3
attr RolloHWR webCmd off:go-my:on:pos


Jetzt sieht es so aus, dass der Rolladen mit 'off' hoch an die obere Position fährt. So fahre ich den Rolladen an einen definierten Zustand.
In den Readings steht zu diesem Zeitpunkt:
setstate RolloHWR open
setstate RolloHWR 2017-04-19 20:30:29 enc_key A8
setstate RolloHWR 2017-04-19 20:30:48 exact 100
setstate RolloHWR 2017-01-07 14:36:34 parsestate off
setstate RolloHWR 2017-04-19 20:30:48 position 100
setstate RolloHWR 2017-04-19 20:30:29 rolling_code 0578
setstate RolloHWR 2017-04-19 20:30:48 state open


Wenn ich jetzt den Rolladen auf 10% fahre, dass entspricht also der alten go-my Position ist alles i.O
Readings:
setstate RolloHWR down
setstate RolloHWR 2017-04-19 20:34:39 enc_key AA
setstate RolloHWR 2017-04-19 20:34:39 exact 10
setstate RolloHWR 2017-01-07 14:36:34 parsestate off
setstate RolloHWR 2017-04-19 20:34:39 position 10
setstate RolloHWR 2017-04-19 20:34:39 rolling_code 057A
setstate RolloHWR 2017-04-19 20:34:39 state down


Jetzt möchte ich den Rolladen schließen. Also setze ich den Rolladen auf 0%. Der Rolladen fährt zu und nach ca. 12-14 Sekunden wieder auf die go-my Position.

Wo habe ich jetzt den Fehler? Müssen die drive-time Angaben mit den Attribut positionInverse 1 getauscht werden?
Grüße aus Dewitz

VM auf Synology DS718+ mit FHEM 5.9 auf Debian 9.5/32-Bit (stretch)
Nächster Leipziger Stammtisch:

viegener

@majorshark: Nein die Werte für die Attribute müssen nicht verdreht werden bei positioninverse. Ich vermute etwas anderes:

Somfy unterscheidet nicht zwischen stop und my-pos in beiden Fällen wird dasselbe Kommando gesendet. Generell wird my-pos angefahren, wenn im angehaltenen Zustand ein Stopp-Befehl gesendet wird.

Bei 0% läuft der Rolladen ja bis zur Endposition und das SOMFY-Modul schickt aber, da es eine exakte Positionsangabe ist nochmals ein Stopp-Befehl. Wenn nun der Rolladen aber bereits angeschaltet hat, dann wird durch den Stopp-Befehl my-pos angefahren. Hier scheinen die Zeiten etwas grosszügig zu sein, insbesondere wenn er erst nach 12-14 Sekunden die Position anfährt.

Ich mache mal eine Änderung, die aber erst kommen kann, wenn der laufende Umstieg auf Signalduino endlich abgeschlossen ist.

Momentane Lösung:Die Zeiten weniger grosszügig machen oder off statt 0% senden
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

majorshark

Ok. Danke für Deine Antwort. Also werde ich vorerst nicht weiter testen. Was mich nur verwundert das niemand anderes dies Problem hat.
Grüße aus Dewitz

VM auf Synology DS718+ mit FHEM 5.9 auf Debian 9.5/32-Bit (stretch)
Nächster Leipziger Stammtisch:

viegener

Zitat von: majorshark am 19 April 2017, 22:22:45
Ok. Danke für Deine Antwort. Also werde ich vorerst nicht weiter testen. Was mich nur verwundert das niemand anderes dies Problem hat.

Ich bin mir nicht sicher, ob das klar wurde. Dein Problem tritt nur bei 0% auf und auch nur, wenn die Zeitangaben zu stark von der Fahrzeit abweichen und gleichzeitig eine my-pos festgelegt ist. Alle anderen Prozentwerte und Befehle sollten auch bei den Timingwerten funktionieren (z.B. funktioniert 0% bei mir ohne Probleme).

Mein Vorschlag ist eigentlich eher die my-pos zu löschen.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

majorshark

#104
Die Fahrzeiten sind mit der Stopuhr gemessen. Die Zeiten für das Modul sind dann noch abgerundet. Bis 10% funktioniert es auch.

Meinst Du die my-pos im Antrieb oder im Modul?

Ich verstehe auch nicht wie es überhaupt mit den Zeiten funktionieren soll. Weicht die hoch/runter Fahrzeit nur um Bruchteile von Sekunden ab summiert sich das über die Anzahl der Fahrten auf. Dann ist 100% nur noch 90%. Und bei der nächsten Fahrt nach unten ist das Rollo schon lange unten bevor das Modul den Stop Befehl sendet.

Und noch eine Frage. Der Antrieb kennt doch nur den Auf/Ab Befehl und den my-pos als Stop Befehl wenn der Rollladen gerade fährt. Wenn der Rollladen steht fährt dieser mit dem my-pos Befehl an die vordefinierte Position und hält an.

Edit:
Jetzt habe ich, glaube ich zumindest Deine Logik verstanden. Die Positionen 0/100 mit den Befehlen close/open anfahren und den Rest mit der Positionsangabe Angabe 10-90%. Macht Sinn. Dann wird das Reading 'position' auch immer schön mit dem tatsächlichen Stand des Rollladens angepasst und es kommt zu keinen Fehlverhalten bei der Positionsbestimmung durch die Zeit.
Grüße aus Dewitz

VM auf Synology DS718+ mit FHEM 5.9 auf Debian 9.5/32-Bit (stretch)
Nächster Leipziger Stammtisch: