Zmiana stanu encji

Witam
Czy jest jakiś sposób na zmianę stanu encji przy pomocy automatyzacji? W narzędziach deweloperskich można to zrobić natomiast w automatyzacjach nie widzę takiej opcji.

Daj więcej info. Jaka encja?

Encja cover. Mam trochę niestandardową konfiguracje rolet. Rolety sterowane radiowo za pomocą Rflink to MQTT. Jeśli steruje nimi z poziomu AIS to stany są ok. Sterowanie za pomocą pilota nie zmienia tego stanu, dlatego potrzebuje automatyzacje (a może coś innego) co po odebraniu komunikatu MQTT zmieni stan na OPEN lub CLOSE

No to zdaje się że to jest dla Ciebie rozwiązanie:

Jakiś trop, ale nie bardzo rozumiem. Nie mam jako tako stanu rolety. Jedynie informację o nienaciśnięciu przycisku na pilocie.

W tej chwili mój konfig tak wygląda:
cover:

  • platform: mqtt
    name: “roleta salon1”
    command_topic: “rflink/cmd”
    qos: 0
    payload_open: “10;RTS;02FFFF;00;UP”
    payload_close: “10;RTS;02FFFF;00;DOWN”
    payload_stop: “10;RTS;02FFFF;00;STOP”
    optimistic: true

No dobra to może napisz jak to chciałeś rozwiązać.
Jak widzisz można stworzyć switch, który można podpiąć do encji typu cover. Encję switch można w prosty sposób ustawiać z poziomu automatyzacji. Tylko ciekawi mnie logika na jakiej podstawie i kiedy chcesz zmieniać stan encji. Jednak najlepiej się sprawdza czujnik krańcowy, choćby po zigbee, będzie najpewniejszy, a tak to optymistyczne założenia, że np. brama nie trafiła na opór i nie odbiła.

Oczywiście, że najlepsze rozwiązanie to fizyczna krańcówka. Przy bramie garażowej nie ma z tym problemu. Przy rolecie okiennej to już kłopot. Jako że moje rolety mają sterowanie tylko radiowe to stanu mogę się domyślać. W tej chwili stan (teoretyczny) w AIS mam tylko po wysterowaniu przez AIS. Jeśli roletę zamknę lub otworze za pomocą pilota radiowego AIS o tym nie wie i tego stanu nie zmienia. Gdy korzystam z pilota radiowego rflink wysyła ładunek MQTT (np. {“SWITCH”:“01”,“CMD”:“DOWN”,“SWITCH01”:“DOWN”}). I chce to właśnie wykorzystać to zmiany stanu w AIS.

no to zrób automatyzacje, robisz pomocnika, switch STAN ROLETY
jak mqtt {“SWITCH”:“01”,“CMD”:“DOWN”,“SWITCH01”:“DOWN”}) jest to dajesz usluge zmiany switcha na OFF

abo to MQTT Sensor - Home Assistant

powinieneś mieć to tak że jak dajesz pilotem to nie do sterownika rolety tylko do bramki i bramka wysyla do sterownika :slight_smile:

1 polubienie

Poczytaj → How to manually set state/value of sensor? - #19 by ronschaeffer - Configuration - Home Assistant Community
u mnie to działa.
Zawartość pliku set_state.py

#==================================================================================================
#  python_scripts/set_state.py 
#==================================================================================================

#--------------------------------------------------------------------------------------------------
# Set the state or other attributes for the entity specified in the Automation Action
#--------------------------------------------------------------------------------------------------

inputEntity = data.get('entity_id')
if inputEntity is None:
    logger.warning("===== entity_id is required if you want to set something.")
else:    
    inputStateObject = hass.states.get(inputEntity)
    inputState = inputStateObject.state
    inputAttributesObject = inputStateObject.attributes.copy()

    for item in data:
        newAttribute = data.get(item)
        logger.debug("===== item = {0}; value = {1}".format(item,newAttribute))
        if item == 'entity_id':
            continue            # already handled
        elif item == 'state':
            inputState = newAttribute
        else:
            inputAttributesObject[item] = newAttribute
        
    hass.states.set(inputEntity, inputState, inputAttributesObject)

Przykładowa zmiana stanu w automatyzacji:

  action:
  - service: python_script.set_state
    data:
      entity_id: cover.brama
      state: closed

To chyba właśnie to o co mi chodziło. Składnie skryptu masz dokładnie taką ja w tym przykładzie?

Cała składnia automatyzacji:

  alias: Zamkniecia bramy
  description: ''
  trigger:
  - platform: state
    entity_id: binary_sensor.czujnik_bramy
    from: 'on'
    to: 'off'
  condition: []
  action:
  - service: python_script.set_state
    data:
      entity_id: cover.brama
      state: closed
  mode: single

oczywiście wyzwalacz dopasuj do tego co Ty masz

No i gitara. Działa. Dzięki bardzo. Jedyny mankament to to, że nie pamięta stanu po restarcie bramki.

Zrób automatyzację, która przy starcie HA ustawi status bramy na zamknięta i w 99,99% będzie się zgadzało :wink:
EDIT
No tak, w tym przypadku się nie sprawdzi - rolety :upside_down_face:

W przypadku bramy to by się sprawdziło. W moim przypadku chodzi o rolety okienne. Mimo wszystko jestem zadowolony z rezultatu. Kiedyś do tego wrócę. Teraz na widelcu inne integracje, konfiguracje…