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 :)
Hallo,
alexamapping ist nur für den Custom-Skill relevant, für das MY/go-my musst du dir eine Routine einrichten.
Gruß
Thomas
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
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
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
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
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
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 (https://forum.fhem.de/index.php/topic,101749.msg953603.html#msg953603)) 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 (https://wiki.fhem.de/wiki/Import_von_Code_Snippets), 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
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 :)
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
zu alexa und rollläden steht hier: https://forum.fhem.de/index.php/topic,105473.msg994073.html#msg994073 (https://forum.fhem.de/index.php/topic,105473.msg994073.html#msg994073) noch etwas.
Ja, Danke. Ich dachte, es hat noch jemand ein Problem, mit Alexa 4 Zustände abzubilden: hoch, runter, stop, go-my