10_SOMFY.pm - Somfy RTS (und kompatible)

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

Vorheriges Thema - Nächstes Thema

Schatn

Danke erstmal für den Denkanstoß  :)
Hab das ganze jetzt mal mit folgenden Befehlen angelegt und funktioniert in der Testumgebung erstmal. Richtig testen kann ich es erst am Wochenende.

define notify_Rollo_OG notify Rollo_OG_Angelernt set Rollo_OG.* virtual $EVTPART0
define notify_Rollo_EG notify Rollo_EG_Angelernt set Rollo_EG.* virtual $EVTPART0
define notify_Rollo_Gesamt notify Rollo_Gesamt_Angelernt set Rollo_.* virtual $EVTPART0

Rollo_OG_Angelernt ist das Device, welches an alle Rollo angelernt wurde und die einzeln angelernten Devices beginnen mit Rollo_OG.
So müsste meiner Meinung nach nur ein Sendebefehl geschickt werden und die Postion eines jeden einzelnen Rollos wird richtig angezeigt.

viegener

Zitat von: Schatn am 25 Januar 2021, 16:24:56
Hallo!

Ich hätte dazu auch eine Frage. Vielleicht kann mir jemand helfen.
Ich habe insgesamt 10 Rollo angelernt und die dazugehörigen Handsender. Das funktioniert alles auch ganz gut.
Nun habe ich aber auch noch 3 Devices erstellt die mehrere Rollo steueren.
Also z.b.: Rollo_Gesamt, dieses Device habe ich an alle Rollo angelernt.
Wenn ich nun mit diesem Device alle Rollo öffne, dann ändert sich aber der Status bei den einzelnen Devices nicht.
Mit rawDevice wie bei den Handsendern kann ich das leider auch nicht angeben.
Gibt es da irgendeine Möglichkeit das den einzelnen Rollos mitzuteilen?
Vielen Dank schon mal.

Du kannst im Attribut rawdevice auch mehrere Adressen (durch Leerzeichen getrnnt) angeben. Dann sollten alle darin angebenen Geräte akualisiert werden.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Schatn

Danke, aber das mit dem rawDevice habe ich schon versucht. Das funktioniert leider nur bei den Handsendern (somfyremote).

Das obige notify hab ich auch wieder aufgegeben, da kommen nur Fehler im Logfile.
Dann habe ich es mit "define notify_Rollo_OG notify Rollo_OG_Angelernt:parsestate.* set Rollo_OG.* virtual $EVTPART1" versucht, da passiert leider nichts.
Mit "define notify_Rollo_OG notify Rollo_OG_Angelernt:position:.* set Rollo_OG.* virtual $EVTPART1" geht es zumindest auf und zu aber "stop" wird ignoriert.
Muss also noch weiter probieren  :)

viegener

Zitat von: Schatn am 27 Januar 2021, 18:58:56
Danke, aber das mit dem rawDevice habe ich schon versucht. Das funktioniert leider nur bei den Handsendern (somfyremote).

Das obige notify hab ich auch wieder aufgegeben, da kommen nur Fehler im Logfile.
Dann habe ich es mit "define notify_Rollo_OG notify Rollo_OG_Angelernt:parsestate.* set Rollo_OG.* virtual $EVTPART1" versucht, da passiert leider nichts.
Mit "define notify_Rollo_OG notify Rollo_OG_Angelernt:position:.* set Rollo_OG.* virtual $EVTPART1" geht es zumindest auf und zu aber "stop" wird ignoriert.
Muss also noch weiter probieren  :)

OK - ich hatte das missverstanden, ich dachte, Du hättest Handsender, die mehrer Rolläden steuern und diese als Devices angelegt.

Also wenn ich es richtig verstehe, hast Du Somfy-Devices angelegt, die gleichzeitig an mehreren Rolläden angelernt sind. Diese Somfy-Devices sollen sich nun mit den entsprechenden anderen Devices synchronisieren?

Wenn Du es über ein notify realisieren willst, müsstest Du vermutlich nicht die position synchronisieren sondern das gesendete Kommando als virtuelles Kommando an den anderen Device weiterleiten. Allerdings gibt es kein Reading, dass ein notify triggern könnte wenn ein Kommando ausgelöst wird.

Deshalb vielleicht ein ganz anderer Ansatz: Wenn Du nur bestimmte Kommandos auf mehreren Rolläden ausführen möchtest gäbe es ja die Möglichkeit, dass anders zu realisieren. Zum Beispiel als Macro (notify), dass über den trigger Befehl ausgelöst wird. Je nach Sender musst Du nur eine kurze Pause zwischen den Sendebefehlen einhalten.

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

Schatn

Genau, ich habe jeweils ein Somfy Device für das Erdgeschoss, den 1. Stock und eines für Gesamt angelegt, welche an mehrere Rollo angelernt sind.
Wenn ich jetzt z.B. das Erdgeschoss schließe, sehe ich das bei den einzelnen Somfy Devices nicht. Also im Prinzip sollte das gleiche passieren wie bei den Handsendern, nur funktiort das hier eben nicht mit dem rawdevice.

Könntest du das bitte etwas genauer beschreiben, wie du das mit dem Macro meinst? Bin in FHEM nicht so bewandert, da ich eigentlich alles mit iobroker mache und nur die Somfy Rolläden über Fhem steuere.
Danke!

viegener

Zitat von: Schatn am 28 Januar 2021, 17:30:23
Genau, ich habe jeweils ein Somfy Device für das Erdgeschoss, den 1. Stock und eines für Gesamt angelegt, welche an mehrere Rollo angelernt sind.
Wenn ich jetzt z.B. das Erdgeschoss schließe, sehe ich das bei den einzelnen Somfy Devices nicht. Also im Prinzip sollte das gleiche passieren wie bei den Handsendern, nur funktiort das hier eben nicht mit dem rawdevice.

Könntest du das bitte etwas genauer beschreiben, wie du das mit dem Macro meinst? Bin in FHEM nicht so bewandert, da ich eigentlich alles mit iobroker mache und nur die Somfy Rolläden über Fhem steuere.
Danke!

Makros sind in der commandref beim notify beschrieben:
https://fhem.de/commandref_DE.html#notify

Mir ging es um folgendes. Wenn es nur ganz wenige Befehle sind, die Du auf verschiedenen Rolläden gleichzeitig ausführen möchtest, dann legst Du jeweils ein Makro an, dass dann die Befehle für die einzelnen Rolläden zusammenfasst (mit etwaigem fhem sleep dazwischen).
Per trigger-Befehl lässt sich das ausführen und die einzelnen Rolläden werden auch korrekt geführt. Dabei lässt sich auch ein zusätzlicher Parameter (z.B. für position) mitgeben - siehe trigger-Befehl
https://fhem.de/commandref_DE.html#trigger
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Schatn

Danke erstmal für die Hilfe. Hab mir das jetzt mal angesehen. Wenn ich das richtig verstanden habe, dann würde so jedes Rollo wieder extra angesprochen werden und das wollte ich eigentlich vermeiden, indem ich ein Device an alle Rollo anlerne. Mein Vater hat einen nervösen Finger und wenn alle Rollo verzögert reagieren, dann bekommt er wieder die Kriese :) Im Prinzip funktioniert es mit dem Notify auf die Position, nur auf das "Stop" müsste ich noch irgendwie reagieren können, aber dafür gibt es kein spezielles Event. Da wird nur die aktuelle Position im Event Log ausgegeben und nicht "Stop".

nagelreo

Hallo viegener,

auf der Such nach einer Möglichkeit zur Reduktion der Einträge im Somfy Logfile bin ich auf das Attribut finalPosReading gestoßen. Im Prinzip funktioniert das sehr gut, die Zwischen-Positionen werden nicht geloggt. Neben der finalen Endposition wird aber auch die Start-Position geloggt.
Kann man die Start-Position unterdrücken?

Dann noch eine Frage zu den Handsendern.
Meine Handsender habe ich als SOMFY device (somfyshutter) mit dem Attribut associated-devices definiert und  gleiche die Position der Rollos über ein Notify ab. Auch das funktioniert im Prinzip ganz gut. Die Position der my-Taste mit den beiden Funktionen ,,goto my position" und ,,stop current movement" gleiche ich dabei mit dem decStateIcon ,,fts_shutter_50" ab, die genaue Position ist so einfach leider nicht möglich.

Als Alternative für das Attribut associated-devices mit dem Notify finde ich den direkten Weg über ,,somfyremote" mit dem Attribut ,,rawdevice" eleganter.
Die up- und down-Tasten werden damit mit allen Zwischenpositionen (devStateIcon) abgeglichen, die my-Taste wird leider nicht berücksichtigt.
Fehlt in meiner Definition noch etwas?

Vielen Dank und Gruß
Rolf

isy

#503
Moin zusammen,

ich nutze einen 433 MHz Signalduino mit V 3.4.0 SIGNALduino cc1101 auf  433.920 MHz ursprünglich nur für IT und Thermometer. Die Frequenz ist also durchaus nicht auf Somfy abgestimmt.

Vor ein paar Tagen (Datum unklar) wurde die Taste 1 der Schlüsselbund-Fernbedienung (GX328) für mein Garagentor #1 automatisch angelegt und funktioniert super.
Unerwartet, aber sehr schön!

Wenn ich die Taste 2 (für das Garagentor #2) an der gleichen Schlüsselbund-Fernbedienung drücke, gibt es eine FM im Log.
Da beide Garagentor-Steuerungen gleich sind - was kann das sein?

Hier die Logmeldung. Es sieht aus, als würde das Telegramm abgeschnitten o.ä.
2021.04.13 11:43:11 1: sduino433: SOMFY_Parse : Somfy RTS message format error (length must be 14 or 20)! :4545751B57588C40019:
2021.04.13 11:43:11 3: sduino433: Unknown code Ys4545751B57588C40019, help me!
2021.04.13 11:43:11 1: sduino433: SOMFY_Parse : Somfy RTS message format error (length must be 14 or 20)! :522A2BA8DABAC46400130:
2021.04.13 11:43:11 3: sduino433: Unknown code Ys522A2BA8DABAC46400130, help me!
2021.04.13 11:43:11 1: sduino433: SOMFY_Parse : Somfy RTS message format error (length must be 14 or 20)! :522A2BA8DABAC46600198:
2021.04.13 11:43:11 3: sduino433: Unknown code Ys522A2BA8DABAC46600198, help me!
2021.04.13 11:43:12 1: sduino433: SOMFY_Parse : Somfy RTS message format error (length must be 14 or 20)! :522A2BA8DABAC446001B8:
2021.04.13 11:43:12 3: sduino433: Unknown code Ys522A2BA8DABAC446001B8, help me!


Hat jemand eine Idee?
Danke im Voraus,
Helmut
Ein Weg wird erst zu einem Weg, wenn man ihn geht

nagelreo

Hallo Helmut,

nach meiner Erfahrung kommt von den Somfy RTS Sender bei 433.92 kein Signal mehr. Der trigger für die Somfy Signale ist die glock time. Wenn die passt, wird für alle im Empfänger aktivierten Protokolle nach einem passenden Device gesucht.
Hast du im sduino433 das Somfy Protokoll 43 aktiviert?

Gruß
Rolf

isy

Hallo Rolf,
vielen Dank für die Info. Ich hatte mir schon so was gedacht. Ja, Somfy ist aktiviert.

Interessant halt, dass der linke Taster erkannt wurde und sich das Garagentor in 25m Entfernung fehlerfrei steuern lässt. Vermutlich ist der Empfänger im Tor nicht so selektiv oder mein 433er Signalduino hat mehr Sendeleistung als der Handsender.

Ich werde noch etwas experimentieren und hier informieren.

Wie gesagt, ein Zufallsergebnis. Ich steuere beide Tore über Homematic HM-LC-SW1-PL-CT-R1.
VG Helmut
Ein Weg wird erst zu einem Weg, wenn man ihn geht

isy

Moin zusammen,
heute morgen konnte ich die 2. Taste der Fernbedienung anlernen.
In einem bestimmten Abstand (ca. 1m) zum 433MHz Signalduino wurde die Taste per Autocreate angelegt. Größere oder geringere Distanzen gingen nicht.
Das 2. Garagentor lässt sich damit prima rauf und runter fahren, der Abstand zum Signalduino beträgt 6m.

Wegen der Frequenzabweichung unerwartet - aber eine schöne Sache!

VG Helmut
Ein Weg wird erst zu einem Weg, wenn man ihn geht

nagelreo

Hallo Helmut,

Jetzt bin ich aber neugierig. Was ist dS für ein Garagentor/Sender und mit welchem Protokoll wurde der Sender erkannt?
Gruß Rolf

isy

#508
Hallo Rolf,
hier ein List des rechten Tasters:
Internals:
   ADDRESS    FDC0E4
   DEF        FDC0E4
   IODev      sduino433
   NAME       SOMFY_FDC0E4
   NR         1043
   STATE      closed
   TYPE       SOMFY
   move       off
   CODE:
     1          FDC0E4
   READINGS:
     2021-04-21 17:02:32   enc_key         xx
     2021-04-21 17:02:32   exact           0
     2021-04-21 17:02:32   position        0
     2021-04-21 17:02:32   rolling_code    xxxx
     2021-04-21 17:02:32   state           closed
Attributes:
   IODev      sduino433
   alias      Garage (Somfy, neu)
   eventMap   on:runter off:rauf
   model      somfyshutter
   room       Garagen


Auf der Schlüsselbund Fernbedienung steht GX328. Wie kann ich den Typ des Antriebes herausbekommen? Das Tor, welches mit diesem Device gesteuert wird ist 26 Jahre alt, das neuere Garagentor vielleicht 10 Jahre alt.

Wie gesagt, beide Antriebe lassen sich "mit dem ersten Klick" über FHEM bedienen.
Beide Devices wurden per Autocreate angelegt, keine weiteren Attribute (außer Alias) notwendig.

Beste Grüße,
Helmut
Ein Weg wird erst zu einem Weg, wenn man ihn geht

nagelreo

Hallo Helmut,

die Fernbediedung  GX328 kenne ich nicht, auf Anhieb habe im Internet keine detaillierte Angabe zur Frequenz gefunden. Da die FB mit autocreate als Somfy erkannt wurde und die Garagetore mit dem Device gesteuert werden können, wird es wohl ei  Somfy Produkt sein.

   2021.04.13 11:43:11 1: sduino433: SOMFY_Parse : Somfy RTS message format error (length must be 14 or 20)! :4545751B57588C40019:
2021.04.13 11:43:11 3: sduino433: Unknown code Ys4545751B57588C40019, help me! /code]
Auffällig ist, dass die 3 Signale zwar als Somfy erkannt wurden (clock time 610 - 680), aber die Signallänge nicht passte.
Interessant wäre, wie oft die Signale der FB fehlerhaft sind.

Die 433.92 MHz bei deinem sduino433 bezieht sich auf die Frequenz beim Empfang von Signalen. Wenn die GX328 FB eine sehr breite bwth hat, könnte das Signal vielleicht auch bei 433.92 MHz empfangen werde.
Die Frequenz beim Senden wird mit dem Somfy Protokoll 43 auf 433.42 eingestellt.

Gruß Rolf