Rolladensteuerung über Alexa

Begonnen von juemuc, 26 Januar 2020, 20:38:28

Vorheriges Thema - Nächstes Thema

juemuc

Hallo zusammen,

gibt es etwas Neues zum Thema Rolladensteuerung über ALEXA?

Ich kann immer noch nicht über ALEXA sagen:
"ALEXA, setze Rollo Test auf 70%".

Es kommt die Antwort: Rollo Test unterstützt das nicht. In der Alexa-App kann ich aber sehr wohl den %-Satz auswählen und dies wird auch übertragen. Allerdings meldet ALEXA: "Es ist ein Prblem aufgetreten". Und ein in Fhem eingestellter Wert wird in der ALEXA-APP nicht erkannt.

Hat hier schon jemand eine Lösung?

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

amenomade

Wie ist dein Rollo in Fhem definiert ?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

juemuc

so:

Internals:
   CFGFN     
   FUUID      5e2ddf9b-f33f-ca7c-2f33-361c6fe1aa70679a
   NAME       Rollo_Test
   NR         546
   STATE      pct 38
   TYPE       dummy
   READINGS:
     2020-01-26 20:33:00   state           pct 38
Attributes:
   alexaName  Rollo Test
   alias      Rollo Test
   genericDeviceType blind
   room       Büro


bzw.

defmod Rollo_Test dummy
attr Rollo_Test alexaName Rollo Test
attr Rollo_Test alias Rollo Test
attr Rollo_Test genericDeviceType blind
attr Rollo_Test room Büro


Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

MadMax-FHEM

FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

justme1968

dein dummy ist unvollständig. da gibt es weder etwas zum einstellen noch die passenden attribute um set bzw. redings zu definieren.

es ist mindestens ein set mit namen dim oder pct nötig und das zugehörige reading wenn alles automatisch erkannt werden soll. oder ein homebridgeMapping für TargetPosition.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

juemuc

Hallo zusammen,

ich habe jetzt die Attribute aus dem "Original-Dummy" übernommen.
defmod Rollo_Test dummy
attr Rollo_Test alexaName Rollo Test
attr Rollo_Test alias Rollo Test
attr Rollo_Test genericDeviceType blind
attr Rollo_Test readingList state
attr Rollo_Test room Büro
attr Rollo_Test setList state:pct#0,pct#25,pct#50,pct#75,pct#100,STOP
attr Rollo_Test stateFormat {if(ReadingsVal($name,"state","") eq "0%") {my $temp="pct 0";; fhem ("setreading $name state $temp")} else\
{if(ReadingsVal($name,"state","") eq "25%") {my $temp="pct 25";; fhem ("setreading $name state $temp")} else\
{if(ReadingsVal($name,"state","") eq "50%") {my $temp="pct 50";; fhem ("setreading $name state $temp")} else\
{if(ReadingsVal($name,"state","") eq "75%") {my $temp="pct 75";; fhem ("setreading $name state $temp")} else\
{if(ReadingsVal($name,"state","") eq "100%") {my $temp="pct 100";; fhem ("setreading $name state $temp")} else\
{if(ReadingsVal($name,"state","") eq "pct#0") {my $temp="pct 0";; fhem ("setreading $name state $temp")} else\
{if(ReadingsVal($name,"state","") eq "pct#25") {my $temp="pct 25";; fhem ("setreading $name state $temp")} else\
{if(ReadingsVal($name,"state","") eq "pct#50") {my $temp="pct 50";; fhem ("setreading $name state $temp")} else\
{if(ReadingsVal($name,"state","") eq "pct#75") {my $temp="pct 75";; fhem ("setreading $name state $temp")} else\
{if(ReadingsVal($name,"state","") eq "pct#100") {my $temp="pct 100";; fhem ("setreading $name state $temp")} else\
{if(ReadingsVal($name,"state","") eq "pct 0") {"fts_roof_window_shutter_0"} else\
{if(ReadingsVal($name,"state","") eq "pct 25") {"fts_roof_window_shutter_02"}else\
{if(ReadingsVal($name,"state","") eq "pct 50") {"fts_roof_window_shutter_05"} else\
{if(ReadingsVal($name,"state","") eq "pct 75") {"fts_roof_window_shutter_07"} else\
{if(ReadingsVal($name,"state","") eq "pct 100") {"fts_roof_window_shutter_10"} else\
{if(ReadingsVal($name,"state","") eq "STOP") {"STOP"} else\
{{"kein korrekter Wert"} \
}}}}}}}}}}}}}}}}}


Bis vor einigen Wochen hat hat es so wunderbar funktioniert.
Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

justme1968

was um alles in der welt ist das denn... stateFormat zum setzen von readings zu missbrauchen ist zwar kreativ, aber absolut unübersichtlich und auch für die performance nicht ideal. das gleiche gilt für das setzen der icons und das endlose verschachteln der if statements. alles über state zu regeln und dann ich noch drei verschiedene formate zu erlauben macht es auch nicht übersichtlicher. x-mal ReadingsVal aufrufen statt ein einziges mal ist auch alles andere als optimal.

vielleicht solltest du dir devStateIcon, readingList und userReadings noch mal anschauen. und auch das es in perl ein elsif gibt.

ohne readingList kann alexa automatisch kein kommando erkennen und du musst ein passendes homebridgeMapping erstellen. wenn das mit alexa funktioniert hat dann war das zufall.

ich vermute die fts_roof_window_shutter_.. icons hast du selber benannt, dann mach es dir doch einfach und benenne sie so das sich der name einfach automatisch aus dem wert erzeugen lässt. d.h. die zahl sollte immer gleich viele stellen haben. nicht mal eine mal eine führende 0 und mal zwei.


vielleicht fangen wir mal bei 0 an:
- warum verwendest du deinen dummy für den rollladen? und kein echtes device?
- was genau macht stop? alexa kann damit nichts anfangen
- von wo aus wird das device überall bedient? alexa, fhemweb? ftui?

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

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

juemuc

Zitat von: MadMax-FHEM am 26 Januar 2020, 21:54:23
Vielleicht auch interessant: https://forum.fhem.de/index.php/topic,105473.msg994073.html#msg994073

Gruß, Joachim

Hallo Joachim,
ja das hatte ich schon gelesen. Ich muss meine Rollos leider so steuer https://forum.fhem.de/index.php/topic,12772.msg693741.html#msg693741. Mit dem Dummy steuere ich meinen "Sender".

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

justme1968

selbst dann ist deine umsetzung sehr unkonventionell und erlaubt alexa deshalb nicht irgendetwas automatisch zu erkennen. entweder stellst du das um oder baust dir ein homebridgeMapping.

schau dir auch mal das ROLLO modul an. das implementiert ein 'normales' rollo das du vor deine steuerung klemmen kannst.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

juemuc

Mit einem Hombridgemapping bin ich bisher kläglich gescheitert. Ich versuche es einmal mit dem Rollo-Modul.

Viele Grüße

Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

juemuc

Noch eine Zusatzinfo.

Die eigenliche Steuerung erfolgt über ein DOIF:

defmod Velux_Steuerung_3 DOIF ##1 hoch                                               \
([Rollo_Buero:state] eq "pct 0")\
(IF ([Rollo_Sync_Buero:state] eq "off") \
   (set HMCCU3 var Rollo_Buero 0%,\
    set raspberrypi_2_raspberrypi3B get HMCCU3 vars Rollo_Buero,\
    set HM_MOD_Re_8_OEQ0206895_5 on-for-timer 0.5)\
  ELSE\
   (set Rollo_Sync_Buero off))\
##2 25%\
DOELSEIF ([Rollo_Buero:state] eq "pct 25")\
(IF ([Rollo_Sync_Buero:state] eq "off") \
   (set HMCCU3 var Rollo_Buero 25%,\
    set raspberrypi_2_raspberrypi3B get HMCCU3 vars Rollo_Buero,\
    set HM_MOD_Re_8_OEQ0206895_5 on-for-timer 0.5,\
    sleep 60,\
    set HM_MOD_Re_8_OEQ0206895_6 on-for-timer 12)\
  ELSE\
   (set Rollo_Sync_Buero off))\
##3 50%\
DOELSEIF ([Rollo_Buero:state] eq "pct 50")\
(IF ([Rollo_Sync_Buero:state] eq "off")\
   (set HMCCU3 var Rollo_Buero 50%,\
    set raspberrypi_2_raspberrypi3B get HMCCU3 vars Rollo_Buero,\
    set HM_MOD_Re_8_OEQ0206895_5 on-for-timer 0.5,\
    sleep 60,\
    set HM_MOD_Re_8_OEQ0206895_6 on-for-timer 24)\
  ELSE\
   (set Rollo_Sync_Buero off))\
##4 75%\
DOELSEIF ([Rollo_Buero:state] eq "pct 75")\
(IF ([Rollo_Sync_Buero:state] eq "off") \
   (set HMCCU3 var Rollo_Buero 75%,\
    set raspberrypi_2_raspberrypi3B get HMCCU3 vars Rollo_Buero,\
    set HM_MOD_Re_8_OEQ0206895_6 on-for-timer 0.5,\
    sleep 60,\
    set HM_MOD_Re_8_OEQ0206895_5 on-for-timer 12)\
  ELSE\
   (set Rollo_Sync_Buero off))\
##5 runter\
DOELSEIF ([Rollo_Buero:state] eq "pct 100")\
(IF ([Rollo_Sync_Buero:state] eq "off") \
   (set HMCCU3 var Rollo_Buero 100%,\
    set raspberrypi_2_raspberrypi3B get HMCCU3 vars Rollo_Buero,\
    set HM_MOD_Re_8_OEQ0206895_6 on-for-timer 0.5)\
  ELSE\
   (set Rollo_Sync_Buero off))\
##6 STOP\
DOELSEIF ([Rollo_Buero:state] eq "STOP")\
(IF ([Rollo_Sync_Buero:state] eq "off") \
   (set HMCCU3 var Rollo_Buero STOP,\
    set raspberrypi_2_raspberrypi3B get HMCCU3 vars Rollo_Buero,\
    set HM_MOD_Re_8_OEQ0206895_5 off,\
    set HM_MOD_Re_8_OEQ0206895_6 off)\
  ELSE\
   (set Rollo_Sync_Buero off))
attr Velux_Steuerung_3 alias Rollo Büro
attr Velux_Steuerung_3 devStateStyle style="text-align:right"
attr Velux_Steuerung_3 do always
attr Velux_Steuerung_3 group HM Funkschalter
attr Velux_Steuerung_3 icon it_remote@black
attr Velux_Steuerung_3 room Homematic
attr Velux_Steuerung_3 sortby 02



Deshalb auch "Stop" als Zustand.

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

juemuc

Hallo justme,

da ich aktuell nur 5 Positionen (0%, 25%, 50%, 75%, 100%) ansteuern kann, habe ich aktuell ein Problem mit dem Modul ROLLO. Dort gibt es nur 0% - 100% in 10-er Schritten. Kann man das ändern?

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

amenomade

Zitat von: juemuc am 27 Januar 2020, 21:40:55
Hallo justme,

da ich aktuell nur 5 Positionen (0%, 25%, 50%, 75%, 100%) ansteuern kann, habe ich aktuell ein Problem mit dem Modul ROLLO. Dort gibt es nur 0% - 100% in 10-er Schritten. Kann man das ändern?

Viele Grüße
Jürgen
Was meinst Du? Man kann doch "set ROLLO pct 25" machen.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

juemuc

Hallo zusammen,

ich habe nun ein TestRollo definiert.
defmod TestRollo ROLLO
attr TestRollo alexaName TestRollo
attr TestRollo cmdIcon open:fts_shutter_up closed:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr TestRollo devStateIcon open:fts_shutter_10:closed closed:fts_shutter_100:open half:fts_shutter_50:closed drive-up:fts_shutter_up@red:stop drive-down:fts_shutter_down@red:stop pct-100:fts_shutter_100:open pct-90:fts_shutter_80:closed pct-80:fts_shutter_80:closed pct-70:fts_shutter_70:closed pct-60:fts_shutter_60:closed pct-50:fts_shutter_50:closed pct-40:fts_shutter_40:open pct-30:fts_shutter_30:open pct-20:fts_shutter_20:open pct-10:fts_shutter_10:open pct-0:fts_shutter_10:closed
attr TestRollo genericDeviceType blind
attr TestRollo rl_autoStop 0
attr TestRollo rl_excessBottom 1
attr TestRollo rl_excessTop 1
attr TestRollo rl_secondsDown 1
attr TestRollo rl_secondsUp 1
attr TestRollo rl_switchTime 1
attr TestRollo rl_type normal
attr TestRollo room Büro
attr TestRollo webCmd open:closed:half:stop:pct


Auch diesen kann ich nicht über Alexa per Sprache steuern. Wenn ich sage:
ZitatAlexa: stelle TestRollo auf 50%
erhalte ich die Antwort: TestRollo unterstützt das nicht.
Somit bin ich leider keinen Schritt weiter. Was mache ich falsch?

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

amenomade

Kann man ein "list" von diesem Testrollo bitte sehen?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus