MadBlinds v2 - Como Controlares os estores eléctricos e "estimares" a sua posição


(Nuno Neves) #21

Ok. Fácil! :wink:
Nas automações aberturapeloslider e fechopeloslider, no service mqtt_publish, o tópico está errado. Não mudaste wemosd1mini pelo teu… :wink:

Depois diz coisas…


(Flávio Afonso) #22

Boas pessoal, Há uns tempos que tinha isto a funcionar através do Dual R2 mas decidi encomendar o Sonoff T1 para experimentar. Funciona às 10 maravilhas! Pensei que não fosse aguentar com a corrente dos estores mas até agora tem estado impecável.


(Nuno Neves) #23

O problema são os picos no arranque dos motores… Provavelmente pifam ao fim de algum tempo… 2A é muito “justo”…


(Flávio Afonso) #24

Pois é disso que tenho receio mas comprei mesmo para testar. Vamos ver quanto tempo aguenta.


(André F. Cruz) #25

Paran tentar perceber se o erro estava a ser causado por uma troca de nome, deixei o sonoff dual R2 com as seguintes configuraçoes:

foto1
foto2

Se usar as setas no hassio consigo abrir e fechar as persianas, só não está a funcionar com a barra que estima a posição dos estores.


(Jorge Assunção) #26

Acho que não podes ter os friendly name 1 e 2 iguais…


(Nuno Neves) #27

Se já alteraste assim no tasmota. Apaga a config que tens no HA e copia de novo o meu código exatamente como está no tutorial… Depois diz coisas…


(André F. Cruz) #28

@j_assuncao, tb pendei nisso ( friendly name 1 e 2 iguais ).
Mudei o nome nas configurações do Tasmota e nas configurações do HA, e continua igual.


(Jorge Assunção) #29

Isso é muito estranho… É só o slider que não funciona?


(André F. Cruz) #30

É. de resto abre e fecha com as setas e para quando mando parar.


(André F. Cruz) #31

Continua igual.

Por via das duvidas testei os codigos que estão nas paginas abaixo:


(Nuno Neves) #32

confirma que a automação esteja activa no HA…


(André F. Cruz) #33

A tua dica deu-me uma ideia.

Colei o seguinte codigo dentro do ficheiro automatiom.yaml e a barra já funciona.

  - id: iniciofecho
    alias: começou a fechar
    trigger:
    - platform: state
      entity_id: binary_sensor.rele_2
      to: 'on'
    action:
      service: input_text.set_value
      data_template:
        entity_id: input_text.iniciofecho
        value: '{{ now() }}'
  - id: fimfecho
    alias: parou de fechar
    trigger:
    - platform: state
      entity_id: binary_sensor.rele_2
      to: 'off'
    condition:
    - condition: state
      entity_id: 'input_boolean.alterarslider'
      state: 'on'
    action:
    - service: input_number.set_value
      data_template:
        entity_id: input_number.aberturapersianaold
        value: >-
          {% if (states.input_number.aberturapersiana.state)|int - ((as_timestamp(now()) - (as_timestamp(states.input_text.iniciofecho.state))|float|round(2))*100/(states.input_text.tempodefecho.state|int))|int < 4 %}
            0
          {% else %}
            {{ (states.input_number.aberturapersiana.state)|int - ((as_timestamp(now()) - (as_timestamp(states.input_text.iniciofecho.state))|float|round(2))*100/(states.input_text.tempodefecho.state|int))|int }}
          {% endif %}
    - service: input_number.set_value
      data_template:
        entity_id: input_number.aberturapersiana
        value: '{{ states.input_number.aberturapersianaold.state }}'
  - id: inicioabertura
    alias: começou a abrir
    trigger:
    - platform: state
      entity_id: binary_sensor.rele_1
      to: 'on'
    action:
      service: input_text.set_value
      data_template:
        entity_id: input_text.inicioabertura
        value: '{{ now() }}'
  - id: fimabertura
    alias: parou de abrir
    trigger:
    - platform: state
      entity_id: binary_sensor.rele_1
      to: 'off'
    condition:
    - condition: state
      entity_id: 'input_boolean.alterarslider'
      state: 'on'
    action:
    - service: input_number.set_value
      data_template:
        entity_id: input_number.aberturapersianaold
        value: >-
          {% if (states.input_number.aberturapersiana.state)|int + ((as_timestamp(now()) - (as_timestamp(states.input_text.inicioabertura.state))|float|round(2))*100/(states.input_text.tempodeabertura.state|int))|int > 96 %}
            100
          {% else %}
            {{ (states.input_number.aberturapersiana.state)|int + ((as_timestamp(now()) - (as_timestamp(states.input_text.inicioabertura.state))|float|round(2))*100/(states.input_text.tempodeabertura.state|int))|int }}
          {% endif %}
    - service: input_number.set_value
      data_template:
        entity_id: input_number.aberturapersiana
        value: '{{ states.input_number.aberturapersianaold.state }}'

  - id: aberturapeloslider
    alias: Abertura pelo slider
    trigger:
      platform: state
      entity_id: input_number.aberturapersiana
    condition:
    - condition: template
      value_template: '{{ states.input_number.aberturapersiana.state|int > states.input_number.aberturapersianaold.state|int }}'
    action:
    - service: input_boolean.turn_off
      data:
        entity_id: input_boolean.alterarslider
    - service: mqtt.publish
      data:
        topic: 'cmnd/wemosd1mini/Backlog'
        payload_template: "POWER1 ON; delay {% if is_state('input_number.aberturapersiana', '100.0') %} {{ (((states.input_number.aberturapersiana.state|int - states.input_number.aberturapersianaold.state|int)*(states.input_text.tempodeabertura.state|float)/100)|round(1)*10)|round(0) + 20 }} {% else %}
{{ (((states.input_number.aberturapersiana.state|int - states.input_number.aberturapersianaold.state|int)*(states.input_text.tempodeabertura.state|float)/100)|round(1)*10)|round(0) }} {% endif %}; POWER1 OFF"
    - delay:
        milliseconds: 800
    - wait_template: "{{ is_state('binary_sensor.rele_1', 'off') }}"
    - service: input_boolean.turn_on
      data:
        entity_id: input_boolean.alterarslider
    - service: input_number.set_value
      data_template:
        entity_id: input_number.aberturapersianaold
        value: '{{ states.input_number.aberturapersiana.state }}'
  - id: fechopeloslider
    alias: Fecho pelo slider
    trigger:
      platform: state
      entity_id: input_number.aberturapersiana
    condition:
    - condition: template
      value_template: '{{ states.input_number.aberturapersiana.state|int < states.input_number.aberturapersianaold.state|int }}'
    action:
    - service: input_boolean.turn_off
      data:
        entity_id: input_boolean.alterarslider
    - service: mqtt.publish
      data:
        topic: 'cmnd/wemosd1mini/Backlog'
        payload_template: "POWER2 ON; delay {% if is_state('input_number.aberturapersiana', '0.0') %} {{ (((states.input_number.aberturapersianaold.state|int - states.input_number.aberturapersiana.state|int)*(states.input_text.tempodefecho.state|float)/100)|round(1)*10)|round(0) + 20 }} {% else %}
{{ (((states.input_number.aberturapersianaold.state|int - states.input_number.aberturapersiana.state|int)*(states.input_text.tempodefecho.state|float)/100)|round(1)*10)|round(0) }} {% endif %}; POWER2 OFF"
    - delay:
        milliseconds: 800
    - wait_template: "{{ is_state('binary_sensor.rele_2', 'off') }}"
    - service: input_boolean.turn_on
      data:
        entity_id: input_boolean.alterarslider
    - service: input_number.set_value
      data_template:
        entity_id: input_number.aberturapersianaold
        value: '{{ states.input_number.aberturapersiana.state }}'

(Nuno Neves) #34

Ainda bem. Por vezes as automações ficam desligadas… è uma questão de as ligares…


(André F. Cruz) #35

Eu não liguei a automação, o extranho é que quando acedo ás automaçoes, tenho lá uma lista de automaçoes, mas ao abri-las, aparentam estar activas.
Creio que não tenho a trabalhar correctamente os packages.


(Nuno Neves) #36

As automações das packages não podem ser editadas no UI… Mas podem ser activadas e desactivadas se não tiveres o default view personalizado… Podes sempre pôr o grupo all_automations numa view…


(Jorge Assunção) #37

Ou utilizar a opção initial_state: true


(André F. Cruz) #38

Já tenho a cabeça cheia de galos de tantas cabeçadas que estou a dar com os estores.
Se tirar as confiuração dentro do ficheiro automação.yaml a barra dos estores deixam de funcionar.


(Jorge Assunção) #39

E o outro ficheiro que estás a usar é um package?

PS.: Devias usar capacete antes de dares cabeçadas…


(André F. Cruz) #40

Creio que é um package.

homeassistant:



switch:


#Monitor
  - platform: mqtt
    name: "Monitor"
    icon: mdi:television
    state_topic: "stat/monitor/POWER"
    command_topic: "cmnd/monitor/POWER"
    availability_topic: "tele/monitor/LWT"
    payload_available: "Online"
    payload_not_available: "Offline" 
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    retain: true

#Tomada
  - platform: mqtt
    name: "Tomada"
    icon: mdi:power-socket-eu
    state_topic: "stat/Tomada/POWER"
    command_topic: "cmnd/Tomada/POWER"
    availability_topic: "tele/Tomada/LWT"
    payload_available: "Online"
    payload_not_available: "Offline" 
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    retain: true

#Tv
  - platform: mqtt
    name: "TV"
    icon: mdi:power-socket-eu
    state_topic: "stat/Tv/POWER"
    command_topic: "cmnd/Tv/POWER"
    availability_topic: "tele/Tv/LWT"
    payload_available: "Online"
    payload_not_available: "Offline" 
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    retain: true    


automation:


  - alias: Desligar Tomada
    trigger:
      platform: time
      at: '00:59:00'
    action:
      - service: homeassistant.turn_off
        entity_id: switch.Tomada
      
# 
  - alias: Desligar Monitor
    trigger:
      platform: time
      at: '00:45:00'
    action:
      - service: homeassistant.turn_off
        entity_id: switch.monitor

  - alias: Desligar TV
    trigger:
      platform: time
      at: '21:30:00'
    action:
      - service: homeassistant.turn_off
        entity_id: switch.Tv
      
#estore hall
  - alias: Abrir estores as 8
    trigger:
      platform: time
      at: '15:36'
    action:
      service: cover.open_cover
      data:
        entity_id: cover.persianahall
      

  - alias: fechar estores as 22
    trigger:
      platform: time
      at: '22:00'
    action:
      service: cover.close_cover
      data:
        entity_id: cover.persianahall
        
        
        
        
        

sensor:
#"" ""




binary_sensor:
#"" ""

camera:
#""     ""



###########################################
#                                                                                 #
#  isto é um grupo                                                      #
###########################################



group:

  quarto:
    view: yes
    name: Quarto
    entities:
      - group.quartogroup

  quartogroup:
    control: hidden
    name: Quarto
    entities:
      - switch.monitor
      - switch.tomada
      - swich.tv