Ankündigung

Einklappen
Keine Ankündigung bisher.

Jalousien mit Alexa und OpenHAB2 steuern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Jalousien mit Alexa und OpenHAB2 steuern

    Hallo zusammen,

    nach etlichen Schwierigkeiten läuft nun openHAB2 mit PI3 und Alexa. Danke nochmals an Udo1Toni.
    Ich möchte nun gerne meine Jalousien auch per Sprache steuern mittels auf/ab Befehlen. Später vieleicht noch die Lamelle
    1.Schritt:
    Switch eg_wz_r "Rolladen Büro" [ "Lighting" ]{knx="2/2/20"} --> ein und aus funktionieren und fahren hoch runter.
    2.Schritt:
    Dimmer alexa_buero_beschattung "Beschattung Büro" [ "Lighting" ] { knx="<2/2/20,2/2/25,2/2/50" }
    Hier habe ich nur das Problem, dass die Lamelle immer auf 50% gestellt wird und ich nicht dazwischen anhalten kann.
    knx Gruppenadressen:
    2/2/20 Jal auf/ab
    2/2/25 Jal Kurzbefehl
    2/2/20 Jal Behanglänge

    Hat jemand eine Lösung, dass ich mit dem Befehl "Jalousien Büro" auf /ab reagiert?

    Ich habe mal im Netz das hier gefunden, aber bekomme das nicht zum laufen.

    meine.Items
    Switch eg_wz_r "Rolladen Büro" [ "Lighting" ] {knx="2/2/20"}

    meine.rules
    /* Regel */
    rule "EG_WZ_RS"
    when
    Item eg_wz_r received command
    then
    switch(receivedCommand) {
    case ON : eg_wz_r_site.sendCommand(UP)
    case OFF : eg_wz_r_site.sendCommand(DOWN)
    }
    end

    Fehler im meine.rules File im eclipse editor bei Case: The method or field eg_wz_r_site is undefined

    Wie habt Ihr das mit euren Jalousien gelöst.
    Zuletzt geändert von frischling; 09.03.2017, 12:42.

    #2
    Jalousien sollten als Rollershutter Item definiert werden. Für die Lamellenverstellung kannst Du dann zusätzlich ein Dimmer Item verwenden (ohne Funktionsgarantie, ich hab keine Jalousien, hab aber hier schon mal ein entsprechendes Codebeispiel gesehen)

    Wenn ich es richtig verstanden habe, kann Alexa aber kein Up/stop/Down Kommando ausgeben, also wird ein Switch als Proxy eingesetzt.
    Alexa schaltet den Switch, der wiederum eine Rule triggert, die dann die eigentlichen Steuerbefehle an das Rollershutter Item weiter gibt.
    Du musst also das passende Item statt eg_wz_r_site einsetzen.
    Da Du kein Item mit diesem Namen hast, gibt es eine entsprechende Fehlermeldung.

    Welchen Jalousieaktor verwendest Du?

    Kommentar


      #3
      Bei mir funktioniert Alexa mit der normalen Item Definition für einen Rollo
      Code:
      Rollershutter RolloWohnzimmerLinks    "Rollo Wohnzimmer Links [%d %%]"     (gRollo,gWohnzimmer)    [ "Lighting" ]    { knx="1/3/0,1/3/9,1/3/18+<3/3/18" }
      Allerdings versteht die Alexa Smarthome Skill kein auf und ab, drum muss ich halt sagen:
      "Alexa, stelle den Rollo Wohnzimmer link auf 50%" oder 100% wäre dann zu. Das funktioniert, ist aber nicht 100% intuitiv. Man muss halt wissen, was zu sagen ist.

      Kommentar


        #4
        ich hätte da auch eine Frage bez. Rolladen Umkehr.

        wenn ich sage: Alexa, Rolladen XXXX schließen------dann öffnet der Rolladen und umgekehrt.

        kann man das in der ITEMS wo ändern dass das Gegenteilige gemacht wird?...quasi wo eine "Reverse" etc... setzen?

        Kommentar


          #5
          Zitat von MrWichtig Beitrag anzeigen
          ich hätte da auch eine Frage bez. Rolladen Umkehr.

          wenn ich sage: Alexa, Rolladen XXXX schließen------dann öffnet der Rolladen und umgekehrt.

          kann man das in der ITEMS wo ändern dass das Gegenteilige gemacht wird?...quasi wo eine "Reverse" etc... setzen?
          Einfach eine Rule dazwischen schalten, die aus 1 0 macht un umgekehrt

          Kommentar


            #6
            wäre das dann die Rule wie von User "frischling" bereits hier angeführt?

            HTML-Code:
            meine.rules
            /* Regel */
            rule "EG_WZ_RS"
            when
            Item eg_wz_r received command
            then
            switch(receivedCommand) {
            case ON : eg_wz_r_site.sendCommand(UP)
            case OFF : eg_wz_r_site.sendCommand(DOWN)
            }
            end

            Kommentar


              #7
              Zitat von MrWichtig Beitrag anzeigen
              case ON : eg_wz_r_site.sendCommand(UP)
              case OFF : eg_wz_r_site.sendCommand(DOWN)
              Einfach die Logik umkehren:

              statt
              case ON : eg_wz_r_site.sendCommand(UP)
              case OFF : eg_wz_r_site.sendCommand(DOWN)

              entweder
              case OFF : eg_wz_r_site.sendCommand(UP)
              case ON : eg_wz_r_site.sendCommand(DOWN)

              oder
              case ON : eg_wz_r_site.sendCommand(DOWN)
              case OFF : eg_wz_r_site.sendCommand(UP)



              Kommentar


                #8
                Danke! hätte ich mit Deiner Command Erklärung jetzt verstanden....

                funken tuts aber (noch) nicht.....muss ich die Rule sonst noch wo verknüpfen?

                mein ITEM Command wäre:

                HTML-Code:
                /*Rollladen*/
                Rollershutter RolloEssen    "Rollladen Essen [%d %%]"     (gRollo)    [ "Lighting" ]    { knx="4/4/0,4/5/0,4/4/0+<4/5/0" }
                und meine rule dazu:

                HTML-Code:
                /* Regel */
                rule "RolloEssen"
                when
                Item RolloEssen received command
                then
                switch(receivedCommand) {
                case ON : RolloEssen_site.sendCommand(DOWN)
                case OFF : RolloEssen_site.sendCommand(UP)
                }
                end
                was mir in meiner Rule aufgefallen ist, dass mit eine Lampe mit einem "x" angezeigt wird....dürfte aber nur ein Hinweis sein sonst würde ja ein "X" angezeigt werden?!
                Angehängte Dateien

                Kommentar


                  #9
                  Du verwirrst mich.

                  Wenn es hier

                  Zitat von MrWichtig Beitrag anzeigen
                  wenn ich sage: Alexa, Rolladen XXXX schließen------dann öffnet der Rolladen und umgekehrt.
                  falsch herum funktioniert, dann kann es mit einer Logikumkehr

                  Zitat von MrWichtig Beitrag anzeigen
                  funken tuts aber (noch) nicht.....
                  auf einmal nicht mehr funktionieren? Du hast inzwischen auch andere Item Namen verwendet, der Fehler kann also auch jetzt anderswo eingebaut worden sein.

                  Edit:
                  Ich stand gerade neben mir, mein vorherige Antwort habe ich gelöscht, es sollte wie folgt aussehen:

                  items:
                  Code:
                  Rollershutter RolloEssen_site    "Rollladen Essen [%d %%]"     (gRollo)    [ "Lighting" ]    { knx="4/4/0,4/5/0,4/4/0+<4/5/0" }
                  Switch [FONT=Arial]RolloEssen [/FONT]"Rollladen Essen"
                  Code:
                    
                  rule "RolloEssen"
                  when
                  Item RolloEssen received command
                  then
                  switch(receivedCommand)
                  {
                  case ON : RolloEssen_site.sendCommand(DOWN)
                  case OFF : RolloEssen_site.sendCommand(UP)
                  }
                  end
                  Der Switch ist ein virtueller Switch und nicht an irgendwelche Hardware gebunden.
                  Ich wäre auch vorsichtig mit dem Verwenden von Kommentaren in Rules, eigentlich ist nur "//" zugelassen zum auskommentieren, das
                  Code:
                   /* Regel */
                  würde ich mal weglassen

                  Gegebenenfalls kann man auch die Logik in KNX umdrehen, mit KNX kenne ich mich aber nicht aus ...
                  Zuletzt geändert von sihui; 22.07.2017, 11:04.

                  Kommentar


                    #10
                    Interesanterweise muss ich nichts umkehren...
                    Items (braucht man 2):
                    Code:
                    Rollershutter WZ_Rollo_Fenster    "Wohnzimmer Fenster1"    <rollershutter>        {knx="2/1/20, 2/2/20, 2/4/20+2/3/20"}
                    Switch WZ_Rollo_Fenster_Alexa "Wohnzimmer Fenster"     ["Switchable"]
                    Rule:
                    Code:
                    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)
                    }
                    end
                    "Alexa, Wohnzimmer Fenster aufmachen" uns schon gehen die Rollos hoch
                    "Alexa, Wohnzimmer Fenster schließen" uns schon gehen die runter.

                    Kommentar


                      #11
                      sihui

                      Verwirrung schaffen ist nicht mine Absicht! :-) sorry!

                      - bez. ITEM Namen habe ich nichts geändert!...Wortlaut bei mir war immer "RolloEssen" .....ganz am Anfang meines Posts habe ich nur von User "frischling" die Rule Zitiert und somit sind auch seine Namen drinn gestanden ;-)

                      - bez- Logikumkehr bei mir:
                      was ich genau damit meinte war (ich hatte ja noch keine Rule sondern nur die "*.ITEMS" dass wenn ich sage ÖFFNEN dann schliesst die Rollo und wenn ich sage SCHLIESSEN dann öffnet die Rollo.


                      - mittlerweile habe ich beide Rule Varianten ausprobiert und keine hat eine Veränderung herbeigebracht.
                      mir kommt es so vor als ob die Rule Datei bei mir nicht wirklich beachtet wird. (ist auch meine erste Rule muss ich gestehen)

                      die Datei heißt test.rules wo ich die Rule eingetragen habe und befindet sich im Verzeichnis "rules".
                      muss die evtl. auch gleich wie die "*.items" heißen? meine items datei lautet "alexa.items"

                      Kommentar


                        #12
                        Schau in dein events.log ob die Kommandos dort ankommen und schau in dein openhab.log ob irgendwelche Fehler auftreten.
                        Namen von items und/oder rules Dateien sind frei wählbar, passt also bei dir.
                        Lösche auf alle Fälle die erste Zeile mit den Kommentaren ...

                        Kommentar


                          #13
                          wie die Dateien heißen ist in diesem Fall egal.
                          Schau oben wie ich gemacht habe. Man braucht 2 Items. Ein Item speziell für Alexa und noch ein für KNX (bzw. für die UI).
                          Dann "sendet" Alexa an Alexa Item und die Rule "übersetzt" an KNX-Item. Ich glaube mit nur einem Item wird es nicht so funktionieren. Zumindest hat es bei mit so nicht geklappt. Nachteil von meiner Lösung: man kann keine Prozentualeposition mehr angeben, aber dass brauche ich auch nicht.

                          Kommentar


                            #14
                            Also bitte mal etwas geordnet: MrWichtig Bitte poste mal Deine Itemdefinition für den Rollladen und die Anbindung von Alexa. Falls Du schon eine Rule nutzt, um die Steuerung mittels Alexa zu realisieren, poste bitte auch diese.

                            Kommentar


                              #15
                              Hi,

                              ok...ich versuche es nochmal zu beschreiben:

                              ich habe einen Rollershutter (Rollo Essen...derzeit mein erster und einziger Rollershutter) und möchte den Rollladen AUF u. AB fahren lassen. Das Funktioniert eigentlich schon, NUR sind AUF u. AB vertauscht....sprich wenn ich sage

                              Alexa, Rollladen Essen "SCHLIEßEN" ..........fährt dieser AUF sprich öffnet

                              und bei...

                              Alexa, Rollladen Essen "ÖFFNEN".......fährt dieser AB und Schließt


                              meine items sind folgendermaßen dazu aus:

                              HTML-Code:
                              /*Rollladen*/
                              Rollershutter     RolloEssen_site        "Rollladen Essen [%d %%]"   <rollershutter>    (gRollo)    [ "Switchable" ] { knx="4/4/0,4/5/0,4/4/0+<4/5/0" }
                              Switch             RolloEssen             "Rollladen Essen"
                              meine Rule dazu sieht folgendermaßen dazu aus:

                              HTML-Code:
                              rule "RolloEssen"
                              when
                              Item RolloEssen received command
                              then
                              switch(receivedCommand) {
                              case ON : RolloEssen_site.sendCommand(UP)
                              case OFF : RolloEssen_site.sendCommand(DOWN)
                              }
                              end
                              ich habe die Commands "UP" u. "DOWN" auch schon vertauscht gehabt aber ohne Ergebnis....sprich alles beim alten geblieben.


                              das eventlog habe ich auch noch angesehen:

                              Ausgangssituation: Rollladen geöffnet.......Gesagt habe ich dann: Alexa, Rollladen Essen ÖFFNEN.....und Rollladen hat sich geschloßen
                              HTML-Code:
                              2017-07-22 13:21:27.135 [ItemCommandEvent          ] - Item 'RolloEssen_site' received command 100
                              Ausgangssituation: Rollladen ggeschlossen.......Gesagt habe ich dann: Alexa, Rollladen Essen SCHLIEßEN.....und Rollladen hat sich geöffnet
                              HTML-Code:
                              2017-07-22 13:21:34.694 [ItemCommandEvent          ] - Item 'RolloEssen_site' received command 0


                              ich hoffe es ist so einigermaßen verständlich....

                              lg

                              Kommentar

                              Lädt...
                              X