10_SOMFY.pm - Somfy RTS (und kompatible)

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

Vorheriges Thema - Nächstes Thema

stefanru

Super werde ich testen und bescheid geben.

Gruß,
Stefan

Ellert

#361
Es gibt folgende Warnung für jedes Gerät mit gesetztem Attribut autoStoreRollingCode nach dem heutigen Update:
2020.04.28 10:52:18.447 1: PERL WARNING: Argument "073D" isn't numeric in numeric gt (>) at ./FHEM/10_SOMFY.pm line 1071.

viegener

Zitat von: Ellert am 28 April 2020, 11:04:00
Es gibt folgende Warnung für jedes Gerät mit gesetztem Attribut autoStoreRollingCode nach dem heutigen Update:
2020.04.28 10:52:18.447 1: PERL WARNING: Argument "073D" isn't numeric in numeric gt (>) at ./FHEM/10_SOMFY.pm line 1071.

Oh - Danke - das werde ich umgehend korrigieren
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Neue Version mit Bugfixes im SVN:

- Keine Warnung mehr mit den neuen rollingcodes in der uniqueID
- Keine Warnung bei leeren ioTypes (passiert nur bei Testinstanzen)

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

gestein

Hallo,

ich habe gerade testweise eine Fernbedienung in fhem erstellen lassen.
Meine Rollos steuere ich mit einem Signalduino.

Hier ein list der Fernbedienung:
Internals:
   ADDRESS    370C65
   CFGFN     
   DEF        370C65 AE 0896
   FUUID      5ea92f6d-f33f-0b7a-7463-4405c40f4908607d
   IODev      mySIGNALduino
   LASTInputDev mySIGNALduino
   MSGCNT     4
   NAME       SOMFY_WZ.Rechts_FB
   NR         40714
   STATE      ???
   TYPE       SOMFY
   move       stop
   mySIGNALduino_DMSG YsA0BDB5294C4077
   mySIGNALduino_MSGCNT 4
   mySIGNALduino_Protocol_ID 43
   mySIGNALduino_RAWMSG MC;LL=-1319;LH=1264;SL=-670;SH=606;D=A0BDB5294C4077;C=643;L=56;R=30;s3;b3;
   mySIGNALduino_RSSI -59
   mySIGNALduino_TIME 2020-04-29 10:17:10
   CODE:
     1          370C65
   READINGS:
     1970-01-01 01:00:00   enc_key         AE
     2020-04-29 10:17:10   parsestate      stop
     2020-04-29 10:17:10   received        11
     1970-01-01 01:00:00   rolling_code    0896
   helper:
     bm:
       SOMFY_Attr:
         cnt        4
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        29.04. 10:16:31
         max        0.000236034393310547
         tot        0.000531196594238281
         mAr:
           set
           SOMFY_WZ.Rechts_FB
           verbose
           5
       SOMFY_Define:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        29.04. 09:40:29
         max        0.0139040946960449
         tot        0.0139040946960449
         mAr:
           HASH(0x84d28b0)
           SOMFY_370C65 SOMFY 370C65 AE 0896
       SOMFY_Set:
         cnt        37
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        29.04. 10:06:43
         max        0.000890970230102539
         tot        0.00674605369567871
         mAr:
           HASH(0x84d28b0)
           SOMFY_WZ.Rechts_FB
           ?
Attributes:
   IODev      mySIGNALduino
   model      somfyremote
   rawDevice  Rollo.WZ.StiegeRechts
   room       SOMFY
   verbose    5


Die Fernbedienung reagiert auch richtig, wenn ich die Tasten drücke.
Allerdings wird die Position im Rollo nicht nachgezogen.
Im log erscheint:
SOMFY_DispatchRemoteCmd SOMFY rawDevice ROLLO.WZ.STIEGERECHTS not found from SOMFY_WZ.Rechts_FB

Ist die Großschreibung des Rollos nur irreführend?
Der Rollo heißt nämlich: Rollo.WZ.StiegeRechts

Was mache ich falsch?
Danke für jeden Hinweis.
Liebe Grüße
Gerhard

viegener

Zitat von: gestein am 29 April 2020, 10:47:19
Hallo,

ich habe gerade testweise eine Fernbedienung in fhem erstellen lassen.
Meine Rollos steuere ich mit einem Signalduino.

Hier ein list der Fernbedienung:
Internals:
   ADDRESS    370C65
   CFGFN     
   DEF        370C65 AE 0896
   FUUID      5ea92f6d-f33f-0b7a-7463-4405c40f4908607d
   IODev      mySIGNALduino
   LASTInputDev mySIGNALduino
   MSGCNT     4
   NAME       SOMFY_WZ.Rechts_FB
   NR         40714
   STATE      ???
   TYPE       SOMFY
   move       stop
   mySIGNALduino_DMSG YsA0BDB5294C4077
   mySIGNALduino_MSGCNT 4
   mySIGNALduino_Protocol_ID 43
   mySIGNALduino_RAWMSG MC;LL=-1319;LH=1264;SL=-670;SH=606;D=A0BDB5294C4077;C=643;L=56;R=30;s3;b3;
   mySIGNALduino_RSSI -59
   mySIGNALduino_TIME 2020-04-29 10:17:10
   CODE:
     1          370C65
   READINGS:
     1970-01-01 01:00:00   enc_key         AE
     2020-04-29 10:17:10   parsestate      stop
     2020-04-29 10:17:10   received        11
     1970-01-01 01:00:00   rolling_code    0896
   helper:
     bm:
       SOMFY_Attr:
         cnt        4
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        29.04. 10:16:31
         max        0.000236034393310547
         tot        0.000531196594238281
         mAr:
           set
           SOMFY_WZ.Rechts_FB
           verbose
           5
       SOMFY_Define:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        29.04. 09:40:29
         max        0.0139040946960449
         tot        0.0139040946960449
         mAr:
           HASH(0x84d28b0)
           SOMFY_370C65 SOMFY 370C65 AE 0896
       SOMFY_Set:
         cnt        37
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        29.04. 10:06:43
         max        0.000890970230102539
         tot        0.00674605369567871
         mAr:
           HASH(0x84d28b0)
           SOMFY_WZ.Rechts_FB
           ?
Attributes:
   IODev      mySIGNALduino
   model      somfyremote
   rawDevice  Rollo.WZ.StiegeRechts
   room       SOMFY
   verbose    5


Die Fernbedienung reagiert auch richtig, wenn ich die Tasten drücke.
Allerdings wird die Position im Rollo nicht nachgezogen.
Im log erscheint:
SOMFY_DispatchRemoteCmd SOMFY rawDevice ROLLO.WZ.STIEGERECHTS not found from SOMFY_WZ.Rechts_FB

Ist die Großschreibung des Rollos nur irreführend?
Der Rollo heißt nämlich: Rollo.WZ.StiegeRechts

Was mache ich falsch?
Danke für jeden Hinweis.
Liebe Grüße
Gerhard

In rawdevice muss die Adresse des Rolladens und nicht der Name eingetragen werden. Hintergrund - Namen ändern sich, aber die Adressen sind für Somfy die Referenz
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

gestein

Danke, das hat geholfen.
Klingt irgendwie logisch.

Die Fernbedienung reagiert nun auf die Tastendrücke und dem Rollo werden auch die Befehle übergeben.
Aber bekomme ich folgende Meldungen:
2020.04.29 11:04:45.546 4: SOMFY_DispatchRemoteCmd SOMFY_WZ.Rechts_FB found dispatch SOMFY device SOMFY_WZ.Rechts_FB sent command :off:
2020.04.29 11:04:45.547 1: SOMFY_DispatchRemoteCmd SOMFY_WZ.Rechts_FB Internal set :off: to SOMFY_WZ.Rechts_FB returned  SOMFY_set: Unknown argument off, choose one of

2020.04.29 11:04:50.838 4: SOMFY_DispatchRemoteCmd SOMFY_WZ.Rechts_FB found dispatch SOMFY device SOMFY_WZ.Rechts_FB sent command :stop:
2020.04.29 11:04:50.839 1: SOMFY_DispatchRemoteCmd SOMFY_WZ.Rechts_FB Internal set :stop: to SOMFY_WZ.Rechts_FB returned  SOMFY_set: Unknown argument stop, choose one of

2020.04.29 11:08:09.035 4: SOMFY_DispatchRemoteCmd SOMFY_WZ.Rechts_FB found dispatch SOMFY device SOMFY_WZ.Rechts_FB sent command :on:
2020.04.29 11:08:09.035 1: SOMFY_DispatchRemoteCmd SOMFY_WZ.Rechts_FB Internal set :on: to SOMFY_WZ.Rechts_FB returned  SOMFY_set: Unknown argument on, choose one of


Ich kann aber mit "on", "off" und "stop" die Rollos aus fhem heraus bedienen.
Was mache ich nun wieder falsch?
Danke im Voraus
liebe Grüße
Gerhard

viegener

Zitat von: gestein am 29 April 2020, 11:11:15
Danke, das hat geholfen.
Klingt irgendwie logisch.

Die Fernbedienung reagiert nun auf die Tastendrücke und dem Rollo werden auch die Befehle übergeben.
Aber bekomme ich folgende Meldungen:
2020.04.29 11:04:45.546 4: SOMFY_DispatchRemoteCmd SOMFY_WZ.Rechts_FB found dispatch SOMFY device SOMFY_WZ.Rechts_FB sent command :off:
2020.04.29 11:04:45.547 1: SOMFY_DispatchRemoteCmd SOMFY_WZ.Rechts_FB Internal set :off: to SOMFY_WZ.Rechts_FB returned  SOMFY_set: Unknown argument off, choose one of

2020.04.29 11:04:50.838 4: SOMFY_DispatchRemoteCmd SOMFY_WZ.Rechts_FB found dispatch SOMFY device SOMFY_WZ.Rechts_FB sent command :stop:
2020.04.29 11:04:50.839 1: SOMFY_DispatchRemoteCmd SOMFY_WZ.Rechts_FB Internal set :stop: to SOMFY_WZ.Rechts_FB returned  SOMFY_set: Unknown argument stop, choose one of

2020.04.29 11:08:09.035 4: SOMFY_DispatchRemoteCmd SOMFY_WZ.Rechts_FB found dispatch SOMFY device SOMFY_WZ.Rechts_FB sent command :on:
2020.04.29 11:08:09.035 1: SOMFY_DispatchRemoteCmd SOMFY_WZ.Rechts_FB Internal set :on: to SOMFY_WZ.Rechts_FB returned  SOMFY_set: Unknown argument on, choose one of


Ich kann aber mit "on", "off" und "stop" die Rollos aus fhem heraus bedienen.
Was mache ich nun wieder falsch?
Danke im Voraus
liebe Grüße
Gerhard

Kann es sein dass Du dieselbe Adresse für FB und Rollo hast?
Oder hast Du die Adresse für die FB in rawdevice eingetragen?

Für die FB sollte die Adresse des physischen Gerätes in rawdevice eingetragen werden. Wenn ich recht erinnere ist das Modell wie folgt

Rollo 0x1111

FB 0x2222

Rollo mit Adresse 0x1111 definieren

FB mit 0x2222 als remote definieren
rawdevice an FB mit Wert 0x1111 setzen

Hoffe das stimmt jetzt so, da ich es nicht direkt überprüfen kann





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

gestein

Ma, das ist mir jetzt fast peinlich.
Du hast natürlich vollkommen recht.
Danke für den Stupser. Da hätte ich mich wieder zum Eumel gesucht.
Man sollte nicht zu viele Dinge nebenbei machen.

Kaum macht man es richtig, funktioniert es auch.

Eine Frage bitte noch:
Für die my-Position der Rollos wurde noch keine Lösung gefunden. Oder?
lg, Gerhard

viegener

Zitat von: gestein am 29 April 2020, 12:43:23
Ma, das ist mir jetzt fast peinlich.
Du hast natürlich vollkommen recht.
Danke für den Stupser. Da hätte ich mich wieder zum Eumel gesucht.
Man sollte nicht zu viele Dinge nebenbei machen.

Kaum macht man es richtig, funktioniert es auch.

Eine Frage bitte noch:
Für die my-Position der Rollos wurde noch keine Lösung gefunden. Oder?
lg, Gerhard

Nein, denn die my-position ist ja etwas internes im physischen Gerät, ausserdem gibt es das Problem, dass auch die Funkbefehle für my-pos und stop nicht so einfach zu unterscheiden sind (wenn ich recht erinnere hängt das davon ab, ob sicher Rolladen egrade bewegt).

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

Steigerbalett

Spricht eigentlich etwas dagegen, dass man die Prototypen und return undef; laut Perl::Critic aus dem Code entfernt?

gestein

Ja genau. Je nachdem ob sicher Rollo bewegt oder nicht, wird die Stopp-Taste anders interpretiert.
Rollo bewegt sich -> Stopp
Rollo bewegt sich (noch) nicht -> anfahren der my-Position.

Ich weiß, dass wurde schon öfters diskutiert.

Das Rollo-Device weiß doch, dass ob sich der Rollo bewegt.
Wenn nun ein Stopp kommt, dann ist es stop.
Bewegt sich der Rollo nicht, soll die my-Position angefahren werden.
Und die könnte man in einem Attribut abspeichern.

Wenn der SignalDuino erkennen könnte, dass eine Taste länger gedrückt wird, dann könnte der Rollo die aktuelle Position auch automatisch als myPos abspeichern.

Aber anscheinend hat schon bisher einiges dagegegen gesprochen, das so zu implementieren.

lg, Gerhard

viegener

Zitat von: gestein am 30 April 2020, 10:04:50
Ja genau. Je nachdem ob sicher Rollo bewegt oder nicht, wird die Stopp-Taste anders interpretiert.
Rollo bewegt sich -> Stopp
Rollo bewegt sich (noch) nicht -> anfahren der my-Position.

Ich weiß, dass wurde schon öfters diskutiert.

Das Rollo-Device weiß doch, dass ob sich der Rollo bewegt.
Wenn nun ein Stopp kommt, dann ist es stop.
Bewegt sich der Rollo nicht, soll die my-Position angefahren werden.
Und die könnte man in einem Attribut abspeichern.

Wenn der SignalDuino erkennen könnte, dass eine Taste länger gedrückt wird, dann könnte der Rollo die aktuelle Position auch automatisch als myPos abspeichern.

Aber anscheinend hat schon bisher einiges dagegegen gesprochen, das so zu implementieren.

lg, Gerhard

Nein das Rollo-device schätzt nur ab, wie lange sich das device bewegt und im Falle von Handfernbedienungen kann es das nicht mal wirklich abschätzen.
Bei meinen eigenen Somfy-Rolladen (die ich leider nicht mehr habe), war die Erfahrung bei den Tests, dass es ziemlich störend ist, wenn durch falsche my-position asbchätzung der Rolladen faslch steht, deshalb habe ich lieber auf das Setzen von my-positions verzichtet und damit das Problem umgangen. Immer dann wenn eine spezielle my-position notwendig ist habe ich dann dazu einen spezielln Befehl über FHEM eingerichtet.

Inzwischen habe ich aber gar keine SOMFY-Rolläden mehr...


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

gestein

Danke für die Erklärung.
Kann mir gut vorstellen, dass das nur über zeitliche Abschätzung irgendwann auseinander läuft.

Lg, Gerhard


N0rdl1cht

Zitat von: viegener am 29 April 2020, 11:22:56
Kann es sein dass Du dieselbe Adresse für FB und Rollo hast?
Oder hast Du die Adresse für die FB in rawdevice eingetragen?

Für die FB sollte die Adresse des physischen Gerätes in rawdevice eingetragen werden. Wenn ich recht erinnere ist das Modell wie folgt

Rollo 0x1111

FB 0x2222

Rollo mit Adresse 0x1111 definieren

FB mit 0x2222 als remote definieren
rawdevice an FB mit Wert 0x1111 setzen

Hoffe das stimmt jetzt so, da ich es nicht direkt überprüfen kann

Könnte das bitte im Wiki ergänzt werden? Ich denke die Funktion ist auch für andere Nutzer interessant.