^

Themabewertung:
  • 230 Bewertung(en) - 2.6 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Openhab Item für Alexa
#1
Hallo zusammen,

mit Hilfe von dem Forum hier habe ich mittlerweile Openhab2 mit der PCHK und dem Echo Dot erfolgreich verbinden können und die ersten Lampen lassen sich mit Alexa auch schon bedienen.

Ich verwende Openhab nur dafür, um mit dem Echo Dot die Sprachsteuerung zu integrieren, dafür reicht mir dann auch die Items Datei zu konfigurieren, wenn ich das richtig verstanden habe.
Leider bin ich trotz ausführlicher GITHUB Anleitung nicht im Stande, die Items für Dimmer/Temperaturabfragen oder Rollosteuerung zu realisieren. 
Daher würde ich euch bitten, ob ihr mir je ein Item zeigen könnt, wie die Items aussehen müssen damit ich mit Sprachsteuerung oben genannten Punkte ansteuern kann.

Das Dimmen der Lampen sieht bei mir so aus:
Dimmer essplatz "Licht Esstisch [%s]" <light>  ["Lighting"] {lcn="[myhome:OUTPUT_STATUS.0.101.2],[INCREASE:myhome:ADD.0.101.2.5%], [DECREASE:myhome:SUB.0.101.2.5%], [%i:myhomeBig GrinIM.0.101.1.%i]"}

Das funktioniert soweit auch, bloß gibt es noch 2 Probleme. Wenn ich sage, Alexa Esstisch 30% dann schaltet die Lampe bereits auf 100% Helligkeit, bei 15% hat sie 50% Helligkeit usw. Kann man diese Prozentabstufungen irgendwo gleichstellen oder wo liegt hier der Fehler?
Außerdem kann ich die Lampe nur mit 30% anschalten, wenn ich sage Alexa schalte Esstisch ein passiert gar nichts, kann man das ebenfalls integrieren?


Die Temperaturabfrage sieht bei mir so aus:
String lcnTemp "Wohnzimmer [%s °C]" ["CurrentTemperature"] {lcn="[myhome:VAR_VALUE.0.150.6.Celsius]"}
Das Modul 150 mit der Variable 6 sollte stimmen, allerdings findet Alexa kein Wohnzimmer nicht, also die Temperaturabfrage funktioniert nicht. Stimmt mein Item nicht oder muss man hier Alexa mit einem gesonderten Befehl fragen?

Bei den Raffstore stehe ich auch komplett an:
Wenn ich in der GVS den Raffstore ansteuere werden folgende module geschalten:

Hoch
10:52:37 [PCHK] S000_M002 to M101 Relays: 1 0 - -  - - - -
10:52:37 [PCHK] S000_M101 to M002 pos.receipt
10:52:37 [PCHK] S000_M101 statusL Relays: 1 0 0 0  0 0 0 0
10:52:37 [PCHK] :M000101Rx001

Stopp
10:52:38 [PCHK] S000_M002 to M101 Relays: 0 - - -  - - - -
10:52:38 [PCHK] S000_M101 to M002 pos.receipt
10:52:39 [PCHK] S000_M101 statusL Relays: 0 0 0 0  0 0 0 0
10:52:39 [PCHK] :M000101Rx000

Runter
10:52:40 [PCHK] S000_M002 to M101 Relays: 1 1 - -  - - - -
10:52:40 [PCHK] S000_M101 to M002 pos.receipt
10:52:40 [PCHK] S000_M101 statusL Relays: 1 1 0 0  0 0 0 0
10:52:40 [PCHK] :M000101Rx003

mein item sieht so aus:
Rollershutter raffstore1 "Raffstore 1" <rollershutter> ["Lighting"] {lcn="[DOWN:myhome:RELAYS.0.101.11------], [UP:myhome:RELAYS.0.101.10------], [STOP:myhome:RELAYS.0.101.00------]"}

Auch hier passiert nichts, wenn ich alexa sage schalte raffstore1 an oder hoch. 

Ich hoffe mir kann jemand weiter helfen.

Danke
Retai
Zitieren
#2
Moin, 
also zumindest für die Raffstore müsstest du meiner Ansicht nach den Typ von "Lighting" auf "Switchable" umstellen. Bei deinen anderen Problemen hängt es bei mir zum Teil auch.
Gruß
Zitieren
#3
Hallo, leider hat das mit dem Switch auch nicht funktioniert, am wichtigsten wäre mir vorerst mal die Raffstore und die Prozentangabe zu korrigieren/zum Laufen zu bringen.

Die Raffstore werden über ein r4m2h Relais gesteuert.

Muss man sich vielleicht auf der Openhab Cloud anmelden, um Raffstore und Dimmer richtig zu steuern? Meiner Meinung nach sollte doch die Logik über die Items erstellt sein, ohne dass ich die Cloud brauche?

Danke für eure Hilfe.
Retai
Zitieren
#4
Moin,
Nee die Cloud ist nur notwendig wenn du von Aussen auf deine Anlage zugreifen willst.
Die gesamte Intelligenz musst in den .items und .rules etc programmieren.
Switchable muss da drin stehen. Und ich hab festgestellt das Obenhab teilweise echt zickig ist was groß und klein Schreibung betrifft.
Viel erfolg
Sven
Zitieren
#5
Hallo, also leider bleiben Jalousie und Dimmer ohne Erfolg. Ich habe wie gesagt keine Openhab Cloud am laufen und auch keine rules erstellt, benötigt man denn eine rule zur Steuerung der raffstore? für mein Verständnis sollte alles nur mit den items möglich sein.
Der tip mit dem switchable hat leider auch nicht funktioniert, egal ob groß oder klein geschrieben.
Zitieren
#6
Hallo,

ich habe es so gelöst.

Schritt 1: Anlegen von 2 items:

Rollershutter WZ_Rollo_Fenster "Fenster1" <rollershutter> {lcn="[DOWN:myhome:RELAYS.0.13.11------], [UP:myhome:RELAYS.0.13.10------], [STOP:myhome:RELAYS.0.13.0-------]"}

Switch WZ_Rollo_Fenster_Alexa "Fenster" ["Switchable"]

Schritt 2: Anlegen folgender rule:

rule "WZ_Rollo_Fenster_Alexa"
when
    Item WZ_Rollo_Fenster_Alexa received command
then
switch(receivedCommand) {
    case ON : WZ_Rollo_Fenster.sendCommand(UP)
    case OFF : WZ_Rollo_Fenster.sendCommand(DOWN)
    case STOP : WZ_Rollo_Fenster.sendCommand(STOP)
}
end

Funktioniert einwandfrei. Das einzige, was ich bisher noch nicht lösen konnte, ist die Umsetzung des STOP-Befehls. Wäre für entsprechende Hinweise, ob und wie sich das machen lässt, sehr dankbar.

Gruß, Jens
Zitieren
#7
Hallo Jens,

vielen Dank für deine Hilfe, mit den Rules funktioniert nun endlich auch die Raffstore Steuerung, jetzt fehlt wie gesagt nur der STOP Befehl dann wäre es perfekt Smile
Zitieren
#8
Hallo Retai,

ich habe jetzt auch den Alexa-Stop-Befehl in der von mir gewünschten Weise erfolgreich umsetzen können Big Grin . Das bedeutet, ich kann den Rollladen jetzt per Sprachbefehl Hoch- und Runterfahren und dabei an jeder beliebigen Stelle stoppen. Das Ganze ist aber nicht völlig auf meinem eigenen Mist gewachsen, sondern hat sich am Ende nur durch die exzellente Unterstützung der Openhab Community umsetzen lassen. Ist ein klein bisschen ticky, also dann mal los. Hier die Beschreibung:

1.  Anlegen folgender 3 items:
Rollershutter WZ_Rollo_01 "WoZi_kleines_Fenster_links" <rollershutter> (gWoZiEG, gEGRollos, gHausRollos) {lcn="[DOWN:myhome:RELAYS.0.13.------11], [UP:myhome:RELAYS.0.13.------10], [STOP:myhome:RELAYS.0.13.------0-]"}
Switch WZ_Rollo_01_AlexaUPDOWN "Rollo" ["Switchable"]
Switch WZ_Rollo_01_AlexaSTOP "Rollo_Halt" ["Switchable"] {expire="1s, command=OFF"}

Anmerkung: Die Namen der beiden Alexa items entsprechend eigenem Gusto anpassen!

2. Anlegen folgender 2 rules:
rule "WZ_Rollo_01_Alexa_UPDOWN"
when
    Item WZ_Rollo_01_AlexaUPDOWN received command
then
    logInfo("Rollo Alexa", "Alexa command: " + receivedCommand)
    switch(receivedCommand)
    {
        case ON: WZ_Rollo_01.sendCommand(UP)
        case OFF: WZ_Rollo_01.sendCommand(DOWN)
    }
end

rule "WZ_Rollo_01_Alexa STOP"
when
    Item WZ_Rollo_01_AlexaSTOP changed to ON
then
    logInfo("Rollo Alexa", "Alexa command: STOP")
    WZ_Rollo_01.sendCommand(STOP)
end

3. Das Expire-Binding mittels PaperUI installieren.

4. Geräte unter Alexa suchen. That's it.

5. Sprachsteuerung wie folgt:
"Alexa Rollo AN" --> Rollo fährt hoch
"Alexa Rollo_HALT AN" --> Rollo stoppt nach 1s

"Alexa Rollo AUS" --> Rollo fährt runter
"Alexa Rollo_HALT AN" --> Rollo stoppt nach 1s

Probier's einfach mal aus. Sollte klappen.

Gruß, Jens
Zitieren
#9
Hallo Jens,

danke für das Update, die Logik funktioniert, nur Alexa scheint nun etwas durcheinander zu bringen, wenn ich jetzt z.B mehrere Rollläden habe, fragt sie immer nach: "Es scheint mehrere Geräte zu geben, welches wolltest du".

Ich hatte davor für die Ein und Aus Rolladen 1-8 normal durchnummeriert und es hat ohne nachfragen funktioniert, jetzt mit dem Haltbefehl ist es anscheinend zu viel. Gibt es dazu auch noch einen Workaround?
Zitieren
#10
Hallo Retai,

ja, das war bei mir auch der Fall. Weiß der Kuckuck, warum Alexa das mit den Namen jetzt nicht rafft. Als workaround kann ich Dir zunächst empfehlen, die Namen der Switch-items dergestalt zu ändern, dass Alexa sie wueder auseinanderhalten kann. Ich habe die Switch-items meiner Rollos erst einmal wie folgt umbenannt:

Rollershutter WZ_Rollo_01 "WoZi_kleines_Fenster_links" <rollershutter> (gWoZiEG, gEGRollos, gHausRollos) {lcn="[DOWN:myhome:RELAYS.0.13.------11], [UP:myhome:RELAYS.0.13.------10], [STOP:myhome:RELAYS.0.13.------0-]"}
Switch WZ_Rollo_01_AlexaUPDOWN "Erstes Rollo" ["Switchable"]
Switch WZ_Rollo_01_AlexaSTOP "Eins" ["Switchable"] {expire="1s, command=OFF"}
.
.
.
Rollershutter WZ_Rollo_04 "WoZi_grosses_Fenster_rechts" <rollershutter> (gWoZiEG, gEGRollos, gHausRollos) {lcn="[DOWN:myhome:RELAYS.0.13.------11], [UP:myhome:RELAYS.0.13.------10], [STOP:myhome:RELAYS.0.13.------0-]"}
Switch WZ_Rollo_04_AlexaUPDOWN "Viertes Rollo" ["Switchable"]
Switch WZ_Rollo_04_AlexaSTOP "Vier" ["Switchable"] {expire="1s, command=OFF"}

Sprachbefehl dann also wie folgt:
"Alexa Erstes Rollo AN" --> Rollo fährt hoch
"Alexa Eins AN" --> Rollo stoppt nach 1s

"Alexa Erstes Rollo AUS" --> Rollo fährt runter
"Alexa Eins AN" --> Rollo stoppt nach 1s

usw. usw.

Ist zwar nicht ganz so elegant, wie ich es mir wünschen würde, und zugegeben auch nicht unbedingt sehr intuitiv, aber es funktioniert ich könnte mich wohl auch dran gewöhnen. Was ich aktuell gerade ausprobiere, ist eine etwas andere Umsetzung, die mit einem einzigen Switch-item je Rollo und entsprechend angepasster rule auskommt (und dann hoffentlich auch wieder intuitivere Bezeichner ermöglicht). Das funktioniert soweit inzwischen auch, hat aber (zumindest bisher noch) die Einschränkung, dass das Stop-Kommando nur funktioniert, wenn das Rollo ruhterfährt, d.h., beim Hochfahren funktioniert der Stop-Befehl nicht. Bin aber schon am Überlegen, ob mir das so nicht am Ende völlig ausreicht...

Hallo Retai,

ja, das war bei mir auch der Fall. Weiß der Kuckuck, warum Alexa das mit den Namen jetzt nicht rafft. Als workaround kann ich Dir zunächst empfehlen, die Namen der Switch-items dergestalt zu ändern, dass Alexa sie wueder auseinanderhalten kann. Ich habe die Switch-items meiner Rollos erst einmal wie folgt umbenannt:

Rollershutter WZ_Rollo_01 "WoZi_kleines_Fenster_links" <rollershutter> (gWoZiEG, gEGRollos, gHausRollos) {lcn="[DOWN:myhome:RELAYS.0.13.------11], [UP:myhome:RELAYS.0.13.------10], [STOP:myhome:RELAYS.0.13.------0-]"}
Switch WZ_Rollo_01_AlexaUPDOWN "Erstes Rollo" ["Switchable"]
Switch WZ_Rollo_01_AlexaSTOP "Eins" ["Switchable"] {expire="1s, command=OFF"}
.
.
.
Rollershutter WZ_Rollo_04 "WoZi_grosses_Fenster_rechts" <rollershutter> (gWoZiEG, gEGRollos, gHausRollos) {lcn="[DOWN:myhome:RELAYS.0.13.------11], [UP:myhome:RELAYS.0.13.------10], [STOP:myhome:RELAYS.0.13.------0-]"}
Switch WZ_Rollo_04_AlexaUPDOWN "Viertes Rollo" ["Switchable"]
Switch WZ_Rollo_04_AlexaSTOP "Vier" ["Switchable"] {expire="1s, command=OFF"}

Sprachbefehl dann also wie folgt:
"Alexa Erstes Rollo AN" --> Rollo fährt hoch
"Alexa Eins AN" --> Rollo stoppt nach 1s

"Alexa Erstes Rollo AUS" --> Rollo fährt runter
"Alexa Eins AN" --> Rollo stoppt nach 1s

usw. usw.

Ist zwar nicht ganz so elegant, wie ich es mir wünschen würde, und zugegeben auch nicht unbedingt sehr intuitiv, aber es funktioniert ich könnte mich wohl auch dran gewöhnen. Was ich aktuell gerade ausprobiere, ist eine etwas andere Umsetzung, die mit einem einzigen Switch-item je Rollo und entsprechend angepasster rule auskommt (und dann hoffentlich auch wieder intuitivere Bezeichner ermöglicht). Das funktioniert soweit inzwischen auch, hat aber (zumindest bisher noch) die Einschränkung, dass das Stop-Kommando nur funktioniert, wenn das Rollo ruhterfährt, d.h., beim Hochfahren funktioniert der Stop-Befehl nicht. Bin aber schon am Überlegen, ob mir das so nicht am Ende völlig ausreicht...

Hallo Retai,

ja, das war bei mir auch der Fall. Weiß der Kuckuck, warum Alexa das mit den Namen jetzt nicht rafft. Als workaround kann ich Dir zunächst empfehlen, die Namen der Switch-items dergestalt zu ändern, dass Alexa sie wueder auseinanderhalten kann. Ich habe die Switch-items meiner Rollos erst einmal wie folgt umbenannt:

Rollershutter WZ_Rollo_01 "WoZi_kleines_Fenster_links" <rollershutter> (gWoZiEG, gEGRollos, gHausRollos) {lcn="[DOWN:myhome:RELAYS.0.13.------11], [UP:myhome:RELAYS.0.13.------10], [STOP:myhome:RELAYS.0.13.------0-]"}
Switch WZ_Rollo_01_AlexaUPDOWN "Erstes Rollo" ["Switchable"]
Switch WZ_Rollo_01_AlexaSTOP "Eins" ["Switchable"] {expire="1s, command=OFF"}
.
.
.
Rollershutter WZ_Rollo_04 "WoZi_grosses_Fenster_rechts" <rollershutter> (gWoZiEG, gEGRollos, gHausRollos) {lcn="[DOWN:myhome:RELAYS.0.13.------11], [UP:myhome:RELAYS.0.13.------10], [STOP:myhome:RELAYS.0.13.------0-]"}
Switch WZ_Rollo_04_AlexaUPDOWN "Viertes Rollo" ["Switchable"]
Switch WZ_Rollo_04_AlexaSTOP "Vier" ["Switchable"] {expire="1s, command=OFF"}

Sprachbefehl dann also wie folgt:
"Alexa Erstes Rollo AN" --> Rollo fährt hoch
"Alexa Eins AN" --> Rollo stoppt nach 1s

"Alexa Erstes Rollo AUS" --> Rollo fährt runter
"Alexa Eins AN" --> Rollo stoppt nach 1s

usw. usw.

Ist zwar nicht ganz so elegant, wie ich es mir wünschen würde, und zugegeben auch nicht unbedingt sehr intuitiv, aber es funktioniert ich könnte mich wohl auch dran gewöhnen. Was ich aktuell gerade ausprobiere, ist eine etwas andere Umsetzung, die mit einem einzigen Switch-item je Rollo und entsprechend angepasster rule auskommt (und dann hoffentlich auch wieder intuitivere Bezeichner ermöglicht). Das funktioniert soweit inzwischen auch, hat aber (zumindest bisher noch) die Einschränkung, dass das Stop-Kommando nur funktioniert, wenn das Rollo ruhterfährt, d.h., beim Hochfahren funktioniert der Stop-Befehl nicht. Bin aber schon am Überlegen, ob mir das so nicht am Ende völlig ausreicht...

Hallo Retai,

ja, das war bei mir auch der Fall. Weiß der Kuckuck, warum Alexa das mit den Namen jetzt nicht rafft. Als workaround kann ich Dir zunächst empfehlen, die Namen der Switch-items dergestalt zu ändern, dass Alexa sie wueder auseinanderhalten kann. Ich habe die Switch-items meiner Rollos erst einmal wie folgt umbenannt:

Rollershutter WZ_Rollo_01 "WoZi_kleines_Fenster_links" <rollershutter> (gWoZiEG, gEGRollos, gHausRollos) {lcn="[DOWN:myhome:RELAYS.0.13.------11], [UP:myhome:RELAYS.0.13.------10], [STOP:myhome:RELAYS.0.13.------0-]"}
Switch WZ_Rollo_01_AlexaUPDOWN "Erstes Rollo" ["Switchable"]
Switch WZ_Rollo_01_AlexaSTOP "Eins" ["Switchable"] {expire="1s, command=OFF"}
.
.
.
Rollershutter WZ_Rollo_04 "WoZi_grosses_Fenster_rechts" <rollershutter> (gWoZiEG, gEGRollos, gHausRollos) {lcn="[DOWN:myhome:RELAYS.0.13.------11], [UP:myhome:RELAYS.0.13.------10], [STOP:myhome:RELAYS.0.13.------0-]"}
Switch WZ_Rollo_04_AlexaUPDOWN "Viertes Rollo" ["Switchable"]
Switch WZ_Rollo_04_AlexaSTOP "Vier" ["Switchable"] {expire="1s, command=OFF"}

Sprachbefehl dann also wie folgt:
"Alexa Erstes Rollo AN" --> Rollo fährt hoch
"Alexa Eins AN" --> Rollo stoppt nach 1s

"Alexa Erstes Rollo AUS" --> Rollo fährt runter
"Alexa Eins AN" --> Rollo stoppt nach 1s

usw. usw.

Ist zwar nicht ganz so elegant, wie ich es mir wünschen würde, und zugegeben auch nicht unbedingt sehr intuitiv, aber es funktioniert ich könnte mich wohl auch dran gewöhnen. Was ich aktuell gerade ausprobiere, ist eine etwas andere Umsetzung, die mit einem einzigen Switch-item je Rollo und entsprechend angepasster rule auskommt (und dann hoffentlich auch wieder intuitivere Bezeichner ermöglicht). Das funktioniert soweit inzwischen auch, hat aber (zumindest bisher noch) die Einschränkung, dass das Stop-Kommando nur funktioniert, wenn das Rollo ruhterfährt, d.h., beim Hochfahren funktioniert der Stop-Befehl nicht. Bin aber schon am Überlegen, ob mir das so nicht am Ende völlig ausreicht...

(06.02.2018, 19:25)retai schrieb: Hallo Jens,

danke für das Update, die Logik funktioniert, nur Alexa scheint nun etwas durcheinander zu bringen, wenn ich jetzt z.B mehrere Rollläden habe, fragt sie immer nach: "Es scheint mehrere Geräte zu geben, welches wolltest du".

Ich hatte davor für die Ein und Aus Rolladen 1-8 normal durchnummeriert und es hat ohne nachfragen funktioniert, jetzt mit dem Haltbefehl ist es anscheinend zu viel. Gibt es dazu auch noch einen Workaround?

Hallo Retai,

ja, das war bei mir auch der Fall. Weiß der Kuckuck, warum Alexa das mit den Namen jetzt nicht rafft. Als workaround kann ich Dir zunächst empfehlen, die Namen der Switch-items dergestalt zu ändern, dass Alexa sie wueder auseinanderhalten kann. Ich habe die Switch-items meiner Rollos erst einmal wie folgt umbenannt:

Rollershutter WZ_Rollo_01 "WoZi_kleines_Fenster_links" <rollershutter> (gWoZiEG, gEGRollos, gHausRollos) {lcn="[DOWN:myhome:RELAYS.0.13.------11], [UP:myhome:RELAYS.0.13.------10], [STOP:myhome:RELAYS.0.13.------0-]"}
Switch WZ_Rollo_01_AlexaUPDOWN "Erstes Rollo" ["Switchable"]
Switch WZ_Rollo_01_AlexaSTOP "Eins" ["Switchable"] {expire="1s, command=OFF"}
.
.
.
Rollershutter WZ_Rollo_04 "WoZi_grosses_Fenster_rechts" <rollershutter> (gWoZiEG, gEGRollos, gHausRollos) {lcn="[DOWN:myhome:RELAYS.0.13.------11], [UP:myhome:RELAYS.0.13.------10], [STOP:myhome:RELAYS.0.13.------0-]"}
Switch WZ_Rollo_04_AlexaUPDOWN "Viertes Rollo" ["Switchable"]
Switch WZ_Rollo_04_AlexaSTOP "Vier" ["Switchable"] {expire="1s, command=OFF"}

Sprachbefehl dann also wie folgt:
"Alexa Erstes Rollo AN" --> Rollo fährt hoch
"Alexa Eins AN" --> Rollo stoppt nach 1s

"Alexa Erstes Rollo AUS" --> Rollo fährt runter
"Alexa Eins AN" --> Rollo stoppt nach 1s

usw. usw.

Ist zwar nicht ganz so elegant, wie ich es mir wünschen würde, und zugegeben auch nicht unbedingt sehr intuitiv, aber es funktioniert ich könnte mich wohl auch dran gewöhnen. Was ich aktuell gerade ausprobiere, ist eine etwas andere Umsetzung, die mit einem einzigen Switch-item je Rollo und entsprechend angepasster rule auskommt (und dann hoffentlich auch wieder intuitivere Bezeichner ermöglicht). Das funktioniert soweit inzwischen auch, hat aber (zumindest bisher noch) die Einschränkung, dass das Stop-Kommando nur funktioniert, wenn das Rollo ruhterfährt, d.h., beim Hochfahren funktioniert der Stop-Befehl nicht. Bin aber schon am Überlegen, ob mir das so nicht am Ende völlig ausreicht...
Zitieren


Gehe zu: