Ambibox Lightpack rest command switch - SOLVED

I came up with this solution to control ambibox(lightpack.py wasn’t working nor any other solution).

the basic solution:

add this to configuration.yaml:

rest_command:
  tvled_on:
    url: 'http://127.0.0.1:8088/'
    method: POST
    payload: 'status=on'
  tvled_off:
    url: 'http://127.0.0.1:8088/'
    method: POST
    payload: 'status=off'

Add a template switch:

switch:
  - platform: template
    switches:
      tv_led:
        friendly_name: Ambilight
        icon_template: mdi:led-outline
        value_template: '{{ "on" if is_state("sensor.tvled_state", "on") else "off" }}'
        turn_on:
          service: rest_command.tvled_on
        turn_off:
          service: rest_command.tvled_off

add this sensor:


sensor:
  - platform: tcp
    name: tvled_state
    host: 127.0.0.1
    port: 3636
    payload: "getstatus\n"
    value_template: "{{ value.split(':')[2] }}"

if you only use it through HA and dont need updates you’re done.

if youd like to get status for the switch from api then use this solution:

I was finding that the switch (sometimes I turn it off from the interface not HA) was not updating properly and that the sensor is not consecutive so my solution was to add an input boolean thats triggered by the switch and sensor through automation:

configuration.yaml(add the rest command and sensor same as above):


switch:
  - platform: template
    switches:
      tv_led:
        friendly_name: Ambilight
        icon_template: mdi:led-outline
        value_template: '{{ is_state("input_boolean.ledstateboolean", "on") }}'
        turn_on:
          service: script.ledonscript
        turn_off:
          service: script.ledoffscript

input_boolean:
  ledstateboolean:
    name: led_stateboolean
    initial: off

scripts.yaml:

'ledoffscript':
  alias: LED off Script
  sequence:
  - data: {}
    service: rest_command.tvled_off
  - data:
      entity_id: input_boolean.ledstateboolean
    service: input_boolean.turn_off
'ledonscript':
  alias: LED on Script
  sequence:
  - data: {}
    service: rest_command.tvled_on
  - data:
      entity_id: input_boolean.ledstateboolean
    service: input_boolean.turn_on

automations.yaml:

- id: '1573611111585'
  alias: tvled_bool_on
  trigger:
  - entity_id: sensor.tvled_state
    platform: state
    to: 'on'
  condition: []
  action:
  - data:
      entity_id: input_boolean.ledstateboolean
    service: input_boolean.turn_on
- id: '1573611111123'
  alias: tvled_bool_off
  trigger:
  - entity_id: sensor.tvled_state
    platform: state
    to: 'off'
  condition: []
  action:
  - data:
      entity_id: input_boolean.ledstateboolean
    service: input_boolean.turn_off

enjoy.

1 Like

Thank you so much, it’s working perfectly ! just a little delay to update the light state sensor
replaced also Switch by Light since now we can use template platform in lights

1 Like

Did this thread still actual? Mine tvled_state sensor works weird. Sometimes it updates it’s status, but as a rule it is empty (even not “unknown”). As I found in API manual getstatus command only works in lock mode.
Does this sensor need to be updated according to this or I just do something wrong?

try to check if there is a firewall block or try to open the port 3636 in your router.
I tried several commands was it always buggy getting the status.

1 Like