Somfy Raffstores mit Alexa (ON, OFF, MY)

Begonnen von realkeule, 09 August 2019, 18:29:17

Vorheriges Thema - Nächstes Thema

realkeule

Hallo Leute.

habe mit dem FHEM Connector für Amazon Alexa diverse Geräte (auch die Raffstores) zum laufen bekommen.
Mit etwas 'Unwissen' hatte ich die Rolladen als Schalter definiert. Eigentlich bin ich über die Art froh, ich benötige aber 3 Schaltarten. On/Öffnen, Off/Schließen und MY/go-my.
Ich habe das über alexaMapping versucht. Das ist wohl nicht der richtige weg.

Hat jemand eine Idee zum Erfolg?

Vielen 'Dank schon mal :)


Somfy
Ebus

TomLee

Hallo,

alexamapping ist nur für den Custom-Skill relevant, für das MY/go-my musst du dir eine Routine einrichten.

Gruß

Thomas

realkeule

Zitat von: TomLee am 09 August 2019, 19:51:26
Hallo,

alexamapping ist nur für den Custom-Skill relevant, für das MY/go-my musst du dir eine Routine einrichten.

Gruß

Thomas

Danke für die Info. Mir ist leider nicht ganz klar wie du das meinst. Um eine MY Position anzufahren bräuchte ich ja auch die Möglichkeit für Stopp. Jetz habe ich ja nur den Befehl on und off.
Grüße
Somfy
Ebus

TomLee

Also 4 Schaltarten jetzt oder schon 5 ?

on off  MY/go-my stop

oder

on off  MY go-my stop

Man kann so etwas mit dummy/notify, readingsProxy oder DOIF angehen.

Diese Lösungen stellen Schalter in der Alexa App bereit, die du wiederum über Routinen mit Sprachbefehlen deiner Wahl
steuern kannst.

Kenne deine Rolläden und die Befehle MY/go-my nicht., zeig doch einfach mal
ein list des/der Geräte dann kann man das auch besser nachvollziehen oder sogar :P Lösungen vorschlagen.

Gruß

Thomas


realkeule

Vielen Dank für die Hilfe. Also benötige würden 3 Schaltzustände. Schließen, Öffnen und MY (das ist auch Stopp)
MY stop den Raffstore wenn er sich bewegt und wenn er still steht fährt er an eine Programmierte Position.

Raffstore
Internals:
   ADDRESS    000012
   DEF        000012 xx xxxx
   FUUID      xxxxxx-f33f-bb6a-96f0
   IODev      nanoCUL
   LASTInputDev nanoCUL
   MSGCNT     1
   NAME       KZS
   NR         87
   STATE      MY
   STILLDONETIME 0
   TYPE       SOMFY
   move       stop
   nanoCUL_MSGCNT 1
   nanoCUL_RAWMSG YsAB17096B120000
   nanoCUL_TIME 2019-08-11 08:30:01
   CODE:
     1          000012
   READINGS:
     2019-08-11 08:30:00   enc_key         AB
     2019-08-11 08:30:00   exact           50
     2019-08-11 08:30:01   parsestate      stop
     2019-08-11 08:30:00   position        50
     2019-08-11 08:30:01   received        11
     2019-08-11 08:30:00   rolling_code    xxxx
     2019-08-11 08:30:00   state           go-my
Attributes:
   IODev      nanoCUL
   alexaName  Rolladen Egon
   alias      Egon
   devStateIcon Öffnen:fts_shutter_down Schließen:fts_shutter_up stop:fts_shutter_updown
   eventMap   /go-my:MY/ /on:Schließen/ /off:Öffnen
   genericDeviceType switch
   group      Rolladen
   icon       fts_shutter_updown
   model      somfyshutter
   repetition 3
   room       Egon,Haus
   webCmd     MY:Schließen:Öffnen


Leider habe ich mit den von dir gennanten Optionen noch nicht arbeiten müssen und kenne mich nicht damit aus.

GRüße,

Bernd
Somfy
Ebus

TomLee

Zitathabe mit dem FHEM Connector für Amazon Alexa diverse Geräte (auch die Raffstores) zum laufen bekommen.

Da gehört deine Definition aber nicht dazu, die wird doch nicht wirklich gefunden, mit Name ansprechen gar nicht erst möglich Alexa versteht Rollladen nicht Rolladen ?

Wenn du (es gäb noch andere Lösungen, mit Slider auf Prozent stellen) nur an/aus/stop brauchst würde ich es so angehen:

Attributes:
   IODev      nanoCUL
   alexaName  Egon
   alias      Egon
   devStateIcon Öffnen:fts_shutter_down Schließen:fts_shutter_up stop:fts_shutter_updown
   eventMap   /go-my:MY/ /on:Schließen/ /off:Öffnen
   genericDeviceType switch
   group      Rolladen
   icon       fts_shutter_updown
   model      somfyshutter
   repetition 3
   setList on off
   room       Egon,Haus
   webCmd     MY:Schließen:Öffnen


Also deine Definition einfach nur um setList erweitern, damit wird dein Device in Alexa auch gefunden und du kannst es mit Alexa, stelle Egon ein/aus steuern.
Jetzt erstellst du die 1. Routine (in der App) "Egon schließen" die dein Device einschaltet und die 2. Routine "Egon öffnen" die das Device ausschaltet.

Um den stop Befehl zu erhalten legst du ein readingsProxy an, einfach auf das + drücken, einfügen und Execute drücken:

defmod rp_KZS readingsProxy KZS:state
attr rp_KZS alexaName mystop
attr rp_KZS devStateIcon on:control_on_off@green off:control_standby
attr rp_KZS event-on-change-reading .*
attr rp_KZS genericDeviceType switch
attr rp_KZS room Egon,Haus
attr rp_KZS setFn { return 'MY' if( $CMD eq 'on' );; return 'off';;}
attr rp_KZS setList on off


Damit sollte ein weiteres Device mystop gefunden werden, das du mit ein/aus steuern kannst und beim einschalten den set-Befehl MY ausführt und beim ausschalten den Befehl off  also öffnet (off kannst dir noch durch einen beliebigen anderen Befehl ersetzen ).

Jetzt erstellst du die 3. Routine für deinen MY/stop Befehl "Egon tu was auch immer" der das Device mystop einschaltet.

Gruß

Thomas




realkeule

Zitat von: TomLee am 12 August 2019, 12:36:57
Da gehört deine Definition aber nicht dazu, die wird doch nicht wirklich gefunden, mit Name ansprechen gar nicht erst möglich Alexa versteht Rollladen nicht Rolladen ?

Also wenn ich "Alexa Rolladen Egon ein" sage macht die in dieser Konfig der Rollanden zu. (Bei aus -> auf)

Zitat von: TomLee am 12 August 2019, 12:36:57
Also deine Definition einfach nur um setList erweitern, damit wird dein Device in Alexa auch gefunden und du kannst es mit Alexa, stelle Egon ein/aus steuern.
Jetzt erstellst du die 1. Routine (in der App) "Egon schließen" die dein Device einschaltet und die 2. Routine "Egon öffnen" die das Device ausschaltet.
Meine Definition kann nicht um setList erweitert werden (option nicht vorhanden). Aber egal, on und off geht ja.
Sehr schön mit einer Routine kann ich meiner Sprachbefehle besser definieren! Egon öffnen / Schließen geht schonmal.

Zitat von: TomLee am 12 August 2019, 12:36:57
Um den stop Befehl zu erhalten legst du ein readingsProxy an, einfach auf das + drücken, einfügen und Execute drücken:

defmod rp_KZS readingsProxy KZS:state
attr rp_KZS alexaName mystop
attr rp_KZS devStateIcon on:control_on_off@green off:control_standby
attr rp_KZS event-on-change-reading .*
attr rp_KZS genericDeviceType switch
attr rp_KZS room Egon,Haus
attr rp_KZS setFn { return 'MY' if( $CMD eq 'on' );; return 'off';;}
attr rp_KZS setList on off


Zitat von: TomLee am 12 August 2019, 12:36:57
Damit sollte ein weiteres Device mystop gefunden werden, das du mit ein/aus steuern kannst und beim einschalten den set-Befehl MY ausführt und beim ausschalten den Befehl off  also öffnet (off kannst dir noch durch einen beliebigen anderen Befehl ersetzen ).

Jetzt erstellst du die 3. Routine für deinen MY/stop Befehl "Egon tu was auch immer" der das Device mystop einschaltet.

ich weiß zwar nicht was du mit einfach auf  + drücken meinst, aber ich hab den Code einfach angepasst in die fhem.cfg kopiert (ich weiß, das soll man nicht..) und funzt auf anhieb. Schalter in Alexa vorhanden und mit Routine definiert. Egon Stop geht! (Egon MY erkennt Alexa nicht...)

Tests soweit OK. Jetzt kommt die Fleißarbeit ...

Vielen Dank Thomas!
Gruß
Bernd
Somfy
Ebus

TomLee

Zitat von: realkeule am 12 August 2019, 15:30:16
ich weiß zwar nicht was du mit einfach auf  + drücken meinst, aber ich hab den Code einfach angepasst in die fhem.cfg kopiert

Das + gibts bisher nur im Standard-Style f18  (und im neuen flex) oben links neben der Befehlszeile.
In jedem anderen Style steht aber auch unter jedem Device der Punkt Raw Definition zu Verfügung, in dem Dialogfeld kann man die vorhandene Definition einfach durch neuen Code ersetzen und Execute drücken, die Definition die zuvor drin stand geht nicht verloren oder ersetzt.
Näheres hier, die Vorteile gegenüber dem editieren der fhem.cfg werden gleich am Anfang in dem Informationsfeld aufgeführt

Gutes Beispiel jetzt hier.

Stell dir vor ich hätte dir eine "falsche" Raw Definition mit setList on off für deinen Rollo gezeigt und du diese direkt in die fhem .cfg eingetragen.
Du speicherst also ein Attribut in die fhem.cfg das es für dieses Gerät aber gar nicht gibt. Welche Auswirkungen das hier jetzt genau hätte weiß ich auch nicht, aber machst du das über das + oder den Punkt Raw Defintion würde der Fehler (denk ich zumindest) durch die Syntaxprüfung erkannt werden.

Gruß

Thomas


realkeule

WOW. War wohl schon lange nicht mehr hier  :)
Das mit dem + ist eine sehr gute Verbesserung und macht Sinn. Vor allem der Code Check.
Flex auch dazu gefügt. TOP!

Vielen Dank :)
Somfy
Ebus

Benno66

Hallo,
ich habe die Einstellungen übernommen. Nochmals vielen Dank für die Tipps. Alexa kann das Rollo öffnen und schließen. Allerdings die My-Position führt es nicht an. Bei dem Schalter/der Routine kommt es immer zu Problemen. ich habe es genauso übernommen, wie geschrieben, nur den Namen "Egon" habe ich durch "Rollo Jule Fenster" ersetzt. Meine Einstellungen in FHEM:

defmod rollo.Jule_2 SOMFY 000010 A6 0006
attr rollo.Jule_2 IODev MapleCUL_1_433
attr rollo.Jule_2 alexaName Rollo Jule Fenster
attr rollo.Jule_2 alexaRoom alexaroom
attr rollo.Jule_2 alias Rollo Jule Fenster
attr rollo.Jule_2 devStateIcon closed:fts_shutter_90@black: my:fts_shutter_50@blue: open:fts_shutter_10@green: 9\d.*:fts_shutter_90@black: 8\d.*:fts_shutter_80@blue: 7\d.*:fts_shutter_70@blue: 6\d.*:fts_shutter_60@blue: 5\d.*:fts_shutter_50@blue: 4\d.*:fts_shutter_40@blue: 3\d.*:fts_shutter_30@blue: 2\d.*:fts_shutter_20@blue: 1\d.*:fts_shutter_10@green
attr rollo.Jule_2 eventMap off:Schließen go-my:my on:Öffnen
attr rollo.Jule_2 genericDeviceType switch
attr rollo.Jule_2 group Rolladen
attr rollo.Jule_2 icon fts_shutter_updown
attr rollo.Jule_2 model somfyshutter
attr rollo.Jule_2 repetition 2
attr rollo.Jule_2 room Funkempfänger
attr rollo.Jule_2 webCmd Öffnen:my:Schließen

setstate rollo.Jule_2 closed
setstate rollo.Jule_2 2019-11-29 20:19:56 enc_key A6
setstate rollo.Jule_2 2019-11-29 20:19:56 exact 200
setstate rollo.Jule_2 2019-11-29 20:19:56 parsestate on
setstate rollo.Jule_2 2019-11-29 20:19:56 position 200
setstate rollo.Jule_2 2019-11-29 20:19:56 received 40
setstate rollo.Jule_2 2019-11-29 20:19:56 rolling_code 0006
setstate rollo.Jule_2 2019-11-29 20:19:56 state closed

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Benno66

Ja, Danke. Ich dachte, es hat noch jemand ein Problem, mit Alexa 4 Zustände abzubilden: hoch, runter, stop, go-my