Alexa cover.set_cover_position - Shelly Plus 2PM

Hallo zusammen,
kann bitte jemand sagen wie man Alexa dazu bringt die Jalousie in eine x-beliebige Position Öffnet oder Schließt “cover.set_cover_position”.

100% - 0% Öffnet oder Schließt habe ich durch 2 Scripte in Node-Red “node-red-contrib-amazon-echo-oztourer” gelöst.

service: cover.open_cover / close_cover / stop_cover
data: {}
target:
  entity_id: cover.jalousie
[{"id":"91923098b4091249","type":"amazon-echo-device","z":"8420e9a7e90a44c7","name":"Jalousie","topic":"","x":860,"y":560,"wires":[["db868ba155fd4bab"]]},{"id":"337cec9def3bee14","type":"api-call-service","z":"8420e9a7e90a44c7","name":"Jalousie Öffnen","server":"1612d3ca.3c79fc","version":5,"debugenabled":false,"domain":"script","service":"turn_on","areaId":[],"deviceId":["1eebf0ecf632b0a4ee1d5c3a4189622e"],"entityId":["script.jalousie_offnen"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1220,"y":580,"wires":[[]]},{"id":"04fd65d55025682a","type":"api-call-service","z":"8420e9a7e90a44c7","name":"Jalousie Schließen","server":"1612d3ca.3c79fc","version":5,"debugenabled":false,"domain":"script","service":"turn_on","areaId":[],"deviceId":["1eebf0ecf632b0a4ee1d5c3a4189622e"],"entityId":["script.jalousie_schliesen"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1230,"y":640,"wires":[[]]},{"id":"db868ba155fd4bab","type":"switch","z":"8420e9a7e90a44c7","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":1050,"y":600,"wires":[["337cec9def3bee14"],["04fd65d55025682a"]]},{"id":"1612d3ca.3c79fc","type":"server","name":"My Home Assistant","addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"","connectionDelay":false,"cacheJson":false,"heartbeat":false,"heartbeatInterval":"","statusSeparator":"","enableGlobalContextStore":false}]

Mit “node-red-contrib-amazon-echo-oztourer” kann man auch die Licht Helligkeit “{{ brightness }}” von light.intitäten steuern, das selbe soll/kann man auch irgendwie von cover zu light umwandeln.

if (msg.payload === "off") msg.payload = {
    "service": "turn_off"
};
else if (msg.colormode === "hs")
    msg.payload = {
        "service": "turn_on",
        data: {
            "rgb_color": msg.rgb,
            "brightness": msg.bri
        }
    };
else
    msg.payload = {
        "service": "turn_on",
        data: {
            "color_temp": msg.ct,
            "brightness": msg.bri
        }
    };
return msg;
    light:
      - platform: template
        lights:
          jalousie:
            friendly_name: "Jalousie"
            level_template: "{{ state_attr('cover.jalousie', 'current_position') }}"
            turn_on:
              service: script.jalousie_offnen
            turn_off:
              service: script.jalousie_schliesen
            set_level:
              service: script.jalousie_automatisch_position
              data:
                brightness: "{{ brightness }}"

ich bekomme das aber nicht richtig hin.

Vielen dank für jede Hilfe!

Leider wollte / konnte mir keiner Helfen, daher musste einige Zeit selbst rumspielen und eine Lösung für mich finden.

Gelöst habe ich mein vorhaben durch erstellen von light, script, input_number und automation in Kombination mit Node-Red und “node-red-contrib-amazon-echo-oztourer”.

  1. erstelle ein separates light:
    light:
      - platform: template
        lights:
          jalousie:
            friendly_name: "Jalousie"
            turn_on:
              service: script.licht_jalousie_script_an
            turn_off:
              service: script.licht_jalousie_script_aus
            set_level:
              service: script.jalousie_automatisch_position
              data:
                brightness: "{{ brightness }}"
  1. erstelle ein input_number unter Einstellungen > Geräte & Dienste > Helfer > Helfer Erstellen > Nummer (eventuell wird es gar nicht benötigt)
  2. der script für light level:
alias: Jalousie Automatisch Position
sequence:
  - service: light.turn_on
    data: {}
    target:
      entity_id: light.jalousie
    alias: Lich Jalousie An
    enabled: true
  - service: input_number.set_value
    data:
      entity_id: input_number.jalousie_automatisch_nummer
      value: "{{ (state_attr('light.jalousie', 'brightness') / 255 * 100) | int }}"
    enabled: true
    alias: Position Script
mode: single
icon: mdi:window-shutter-auto

  1. erstelle eine automation:
alias: Jalousie Automatisch Position
description: Jalousie Automatisch Position
trigger:
  - platform: state
    entity_id:
      - light.jalousie
action:
  - service: homeassistant.update_entity
    data: {}
    target:
      entity_id: light.jalousie
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 500
  - service: cover.set_cover_position
    data_template:
      entity_id: cover.jalousie
      position: "{{ (state_attr('light.jalousie', 'brightness') / 255 * 100) | int }}"
    enabled: true
mode: single
  1. In Node-Red “node-red-contrib-amazon-echo-oztourer” installieren.
[{"id":"91923098b4091249","type":"amazon-echo-device","z":"8420e9a7e90a44c7","name":"Jalousie","topic":"jalousie","x":870,"y":520,"wires":[["fc297b8877f56269"]]},{"id":"fc297b8877f56269","type":"function","z":"8420e9a7e90a44c7","name":"Helligkeit, Farbtemperatur ohne On/Off","func":"if (msg.colormode === \"hs\")\n    msg.payload = {\n        \"service\": \"turn_on\",\n        data: {\n            \"rgb_color\": msg.rgb,\n            \"brightness\": msg.bri\n        }\n    };\nelse\n    msg.payload = {\n        \"service\": \"turn_on\",\n        data: {\n            \"color_temp\": msg.ct,\n            \"brightness\": msg.bri\n        }\n    };\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1130,"y":520,"wires":[["261d39f8ec8c5269"]]},{"id":"261d39f8ec8c5269","type":"api-call-service","z":"8420e9a7e90a44c7","name":"Topic Schalter An/Aus","server":"1612d3ca.3c79fc","version":5,"debugenabled":false,"domain":"homeassistant","service":"turn_{{payload}}","areaId":[],"deviceId":[],"entityId":["script.{{topic}}","light.{{topic}}"],"data":"","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1440,"y":520,"wires":[[]]},{"id":"13aa8c4792cb4612","type":"link in","z":"8420e9a7e90a44c7","name":"Alexa In","links":["48bf27b571569b77"],"x":725,"y":420,"wires":[["940fbf527405d652","752f22a88eea9c3c","9f629bf54aecee0b","08102115de24871b","91923098b4091249"]]},{"id":"1612d3ca.3c79fc","type":"server","name":"My Home Assistant","addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"","connectionDelay":false,"cacheJson":false,"heartbeat":false,"heartbeatInterval":"","statusSeparator":"","enableGlobalContextStore":false}]
  1. Alexa nach neuen Geräten suchen lassen!
  2. Alexa Kommando lautet etwa so: "Alexa Jalousie auf XXX % "

Funktioniert für mich sehr gut!

Trotzdem denke ich es kann noch etwas leichter oder mit weniger “aufwand” gehen.
Für bessere Vorschläge wäre ich sehr dankbar!

1 „Gefällt mir“

hi, hast du schon eine einfachere Lösung gefunden? Mit dem Alexa Skill bekomm ich sie nur auf und zu, kann sie aber nicht auf eine bestimmt Postion fahren.

Warum so kompliziert? Shelly ist bei mir in Alexa als Skill eingebunden. Ich sage Alexa schließe auf 50 % und shelly übernimmt die Anforderung.

1 „Gefällt mir“

ich hab fibaro aktoren und der skill in alexa ist sehr langsam, daher der umweg über home assistant.
witzigerweise funktioniert es bei mir, wenn die rollladen als emulated hue in alexa integriere. alexa steuert dann auch die position an, leider gibt alexa auch jedes mal eine fehlermeldung aus das sie das gerät nicht findet, obwohl sie es schaltet.