Hallo Zusammen,
ich habe meine Somfy IO Rolläden erfolgreich über die Connexoon Box und dem Tahoma Plugin in FHEM eingebunden.
Was ich aber nicht schaffe, sie über Alexa-fhem mit Alexa steuerbar zu machen.
Erstmal das List eines Rolladens:
Internals:
COMMANDS dim:slider,0,1,100 cancel:noArg close:noArg delayedStopIdentify down:noArg getName:noArg identify:noArg my:noArg open:noArg refreshMemorized1Position:noArg setClosure setDeployment setMemorized1Position setName setPosition setSecuredPosition startIdentify:noArg stop:noArg stopIdentify:noArg up:noArg wink
DEF DEVICE io://xxxx-xxxx-xxxx/xxxxxxx
FUUID xxxxxxxxxxxxxxxxx
IODev Connexoon
NAME Arbeitszimmerrolladen
NR 160
NTFY_ORDER 50-tahoma_2895280
STATE dim0
SUBTYPE DEVICE
TYPE tahoma
device io://xxxx-xxxx-xxxx/xxxxxxx
fid 289xxxx
inClass RollerShutter
inControllable io:RollerShutterGenericIOComponent
inLabel Arbeitszimmer
inPlaceOID b44a636a-9fc1-48e5-a795-dd0ab9e1fb2b
inType 1
READINGS:
2019-04-30 07:16:50 ClosureState 0
2019-04-30 03:08:11 NameState Arbeitszimmer
2019-04-30 07:16:50 OpenClosedState open
2019-04-30 03:08:11 PriorityLockTimerState 0
2019-04-30 09:49:06 RSSILevelState 20.0
2019-04-30 03:08:11 StatusState available
2019-04-30 07:16:50 devicestate open
2019-04-30 07:16:50 state dim0
Attributes:
IODev Connexoon
alexaName Arbeitszimmerrolladen
alias Arbeitszimmerrolladen
genericDeviceType blind
room ioBroker,tahoma
webCmd dim
Durch genericDeviceType blind wird das Device in Alexa angezeigt, aber ohne Möglichkeit der Steuerung.
Soweit ich verstehe fehlt pcm oder position, was man wohl durch ein Mapping erreichen kann.
Ich verstehe leider nur nicht genau wie.
Kann mir da jemand bei helfen?
Danke und Gruß
Marco
Ich nochmal,
vielleicht ein paar Beispiele zu Mappings würden mir evtl schon helfen falls keiner die endgültige Lösung hat.
Danke.
Keine Ahnung, ob es eleganter geht, aber im Prinzip braucht Dein Device nur 3 Dinge, um Kommandos wie "0%" oder "100%" zu empfangen:
- genericDeviceType blind
- ein Attribut "alexaName"
- ein Kommando "pct"
Ein Ansatz sollte sein, einen ReadingProxy zu definieren. Etwa so:
define rolli readingsProxy <DeinTasmotaDevice>:ClosureState
attr rolli alexaName Küche
attr rolli genericDeviceType blind
attr rolli setFn {($CMD eq "on")?"dim 100":($CMD eq "off"?"dim 0":"dim " . sprintf("%3d",$ARGS))}
attr rolli setList on off pct
Wenn ein Kommando wie
set rolli pct 50
danach was bringt, sollte auch Alexa nach Reload und Gerätesuche glücklich sein.
So, habs geschafft mit "einfachem" homebridgemaping:
TargetPosition=dim::ClosureState,minValue=0,maxValue=100,minStep=10,cmd=dim CurrentPosition=ClosureState,minValue=0,maxValue=100