Nach ein paar Monaten Pause, will ich mich nochmal meinem Dooya-Problem widmen, mit dem ich immer noch nicht weitergekommen bin.
Ich benutze eine Markise mit Dooya Ansteuerung. Per FHEM funktioniert das einwandfrei. Die Markise erwartet Positionsangaben als "pos" um in Mittelstellungen zu fahren, also z.B. "set Markise pos 30". Der Alexa-Standard-Skill mit dem "genericDeviceType blind" sendet aber Prozentangaben, also z.B. "set Markise pct 30". Das funktioniert natürlich nicht.
Leider werden die Kommandos von Alexa in diesem Fall nicht einmal als Event gelistet, so dass mich auch die Versuche mit Notifys nicht wirklich weitergebracht haben.
Hier ein Auszug aus dem Log:
WEB_127.0.0.1_51588 GET /fhem?cmd=set%20Markise%20pct%2050
Cmd: >set Markise pct 50<
Dooya_Set: Called
Dooya_InternalSet call send Markise Dooya Markise
WEB: /fhem?cmd=set%20Markise%20pct%2050
Mit homebridgemapping habe ich auch schon experimentiert, was aber ganz und gar erfolglos war. Hat jemand eine Idee, wie man das ganz simpel lösen kann?
Kannst du mit Alexa nicht einen Dummy triggern und der über gibt den Wert pct 30 über ein notify oder doif als POS 30 an die Markise weiter?
Hört sich gut an. Kannst du mir einen Tipp geben, wie ich ein Dummy definieren muss, das "pct" verarbeiten kann?
Hier nochmal die Definition der Dooya Markise:
Definition:
defmod Markise Dooya 1001011000000000010101001010_1
attr Markise IODev sduino433
attr Markise devStateIcon open:fts_sunblind_0@green 0:fts_sunblind_0@yellow 10:fts_sunblind_10@yellow 20:fts_sunblind_20@yellow 30:fts_sunblind_30@yellow 40:fts_sunblind_40@yellow 50:fts_sunblind_50@yellow 60:fts_sunblind_60@yellow 70:fts_sunblind_70@yellow 80:fts_sunblind_80@yellow 90:fts_sunblind_90@yellow 100:fts_sunblind_100@yellow closed:fts_sunblind_100@red
attr Markise drive-down-time-to-100 43
attr Markise drive-down-time-to-close 47
attr Markise drive-up-time-to-100 4
attr Markise drive-up-time-to-open 50
attr Markise eventMap on:raus off:rein
attr Markise genericDeviceType blind
attr Markise room Alexa,Außen
Internals:
CHANNEL 1
DEF 1001011000000000010101001010_1
ID 1001011000000000010101001010
IODev sduino433
NAME Markise
NR 114
STATE open
TYPE Dooya
move stop
CODE:
1 1001011000000000010101001010_1
READINGS:
2018-04-06 20:17:57 exact 0
2018-04-06 20:17:57 position 0
2018-04-06 20:17:57 state open
Attributes:
IODev sduino433
devStateIcon open:fts_sunblind_0@green 0:fts_sunblind_0@yellow 10:fts_sunblind_10@yellow 20:fts_sunblind_20@yellow 30:fts_sunblind_30@yellow 40:fts_sunblind_40@yellow 50:fts_sunblind_50@yellow 60:fts_sunblind_60@yellow 70:fts_sunblind_70@yellow 80:fts_sunblind_80@yellow 90:fts_sunblind_90@yellow 100:fts_sunblind_100@yellow closed:fts_sunblind_100@red
drive-down-time-to-100 43
drive-down-time-to-close 47
drive-up-time-to-100 4
drive-up-time-to-open 50
eventMap on:raus off:rein
genericDeviceType blind
room Alexa,Außen
Hi sorry das ich mich erst jetzt melde,
Also ich würde ein dummy und ein DOIF machen
define dummy d_Markise
dann das DOIF
define di_Markise DOIF ([d_Markise] eq "pct 10") set Markise pos 10) DOELSEIF ([d_Markise] eq "pct 20") set Markise pos 20) DOELSEIF ([d_Markise] eq "pct 30") set Markise pos 30) DOELSEIF ([d_Markise] eq "pct 40") set Markise pos 40) DOELSEIF ([d_Markise] eq "pct 50") set Markise pos 50) DOELSEIF ([d_Markise] eq "pct 60") set Markise pos 60) DOELSEIF ([d_Markise] eq "pct 70") set Markise pos 70) DOELSEIF ([d_Markise] eq "pct 80") set Markise pos 80) DOELSEIF ([d_Markise] eq "pct 90") set Markise pos 90) DOELSEIF ([d_Markise] eq "pct 100") set Markise pos 100)
alternativ würde wahrscheinlich auch was mit userreading gehen was das pct in pos umwandelt aber da fällt mir die lösung aus dem Stehgreif nicht ein.
Teste mal und gib rückmeldung
mach mal bitte ein list von Markise wenn du mit alexa die anweisung gegeben hast in eine bestimmte Position zu fahren, will wissen ob dort dann ein reading angelegt wird..... vielleicht geht es dann ohne das Dummy
Zitat von: Tueftler1983 am 07 April 2018, 23:55:04
mach mal bitte ein list von Markise wenn du mit alexa die anweisung gegeben hast in eine bestimmte Position zu fahren, will wissen ob dort dann ein reading angelegt wird..... vielleicht geht es dann ohne das Dummy
Ich habe Alexa gesagt, dass die Markise auf 50% fahren soll. Nach der Bestätigung "ok" habe ich erneut "list Markise" ausgeführt. Es gab keinerlei Änderung zu meinem Posting von 09:34:20. Die Readings sind unverändert. Hast du noch eine Idee?
Ich habe jetzt die Sache mit dem Dummy nochmal verfolgt. Dazu benötigt man einen Dummy und ein Notify. Die Lösung sieht dann wie folgt aus:
define dMarkise dummy
attr dMarkise alexaName Markise
attr dMarkise genericDeviceType blind
attr dMarkise room Alexa,Außen
define nMarkise notify dMarkise:pct.* set Markise pos $EVTPART1
attr nMarkise room Außen
Es ist zwar umständlich, aber funktioniert tatsächlich perfekt!
Eine Lösung ohne die beiden Hilfskonstruktionen wäre mir natürlich lieber. Vielleicht hat noch jemand eine Idee dazu ...
Hättest du das mit dem doif gar nicht versucht? Egal Hauptsache ist du kannst sie jetzt steuern.
Hallo,
hab mich ich bisher nur sehr wenig mit homebridgeMapping beschäftigt und mehr oder weniger keine Ahnung, mich würd's aber interessieren ob mit
attr Markise homebridgeMapping CurrentPosition=position TargetPosition=position,cmd=pos
Positionen angefahren werden können ?
Gruß
Thomas
@Tueftler1983:
Ich habe statt mit DOIF mit einem einzeiligen Notify gearbeitet, da mir das einfacher und kürzer erschien.
@TomLee:
Auch das HomebridgeMapping funktioniert. Und für meinen Geschmack ist es noch etwas eleganter als mit Dummy und Notify.
Danke euch beiden für die Tipps und die Hilfe!!!
gern geschehen, ich bin selbst noch neu in Alexa-Fhem und somit bin ich auch noch nicht fitt it homebridgemapping, muss aber sagen das damit einiges möglich zu sein scheint.
Notifys liegen mir auch nicht so, wahrscheinlich weil ich seit beginn alles mit doif gemacht habe da mir die syntax leichter fiel. Aber ich muss sagen mit notify kann man einiges kürzer halten als mit doif... denke das ich mich in beides mal einarbeiten werde.
Hallo!
Das Dooya Modul arbeitet mit 200%. Ich habe das nun mit dem "homebridgemapping" von @TomLee eingebaut. Was sage ich zu Alexa um die Rollo auf oder zuzumachen. Die % laufen. Nur 100% ist nicht zu sondern 200%.
Wie habt Ihr das gelöst.
lg
Wolfgang
Hallo Wolfgang,
Ich habe exakt das gleiche Problem.
Im Moment löse ich das mit nem notify, welches auf das Reading ,,exact" reagiert.
Hätte aber auch gerne eine ,,schönere Lösung" mittels mapping.
Bist du weiter gekommen?