GCE IPX800 integration?

Hello,

I’m new here, i’m still evaluating if i will go for HASS of Openhab, one thing that still makes a no go for me is a IPX800 integration.
All my home automation is on Myhome SCS form Legrand/Bicino, but my pool automation runs on the IPX800.
Since i would like to integrate everything in a HA “HUB/Software” this is quite important for me.
Everything else i need/have has an existing module (Sonos, Hue, SCs myhome, Pioneer AVR, Panasonic TV, Doorbirde, Waze, Daikin, Synology SS, Kodi, …) wich is impressing!

Are there plan to make a component for the IPX800?

Thank you

+1 I’m also very interested to have IPX800 integration into HA

thanks

Hello,

Do you have find a solution for you Ipx800?

Hi all,

I’m also very interested to have IPX800 integration into HA or Siemens PLCs Integration. S7-1200, S7-1500 and logo.

thanks

I’m a domoticz user and I’m trying Home Assistant but unfortunately I don’t know how to interface my IPX800v4 which manage all lights in my house. I have understood that it’s not possible because it’s not integrated. Is it true?
Even if there is no plug and play solution, how could I interface it ? By a script ?

Very interested by IPX800 integration.
Thanks,
Patrick - Belgium

1 Like

Dears,

I made the integration IPX800-V3 & HA
In a nutshell

1 - Create switch REST to send cmd in HTTP
2 - Send notif from IPX to HA to update switch status
3 - Retreive swithc status from IPX via status.xml to update HA switches at starting time

So need to find time to explain it in details + sharing code

ThL

Hi,

Yes @tt-hass, please share the details and code…

Thanks, lionel

Very good news! I am alos waiting for integration of IPX800
Thanks,
Patrick ( Belgium)

He my solution for the ipx800 v2

ipx800_7_vmc:
      command_on: 'curl "http://192.168.210.31/preset.htm?led7=1" >/dev/null'
      command_off: 'curl "http://192.168.210.31/preset.htm?led7=0" >/dev/null'
      command_state: 'curl "http://192.168.210.31/status.xml"'
      value_template: '{% set status = value | regex_findall_index("<led6>(.*)</led6>") %} {% if status == "1" %} true {%- endif -%}'
      friendly_name: VMC

More infos in french for HA…


I’m new here.
Can you tell me exactly how to add it to your home assistant?
What should I set in configuration.yaml and what component should I install?
I have:
IPX800 pro and IPX800 V3
Thank you very much.

I use this…

- platform: command_line

  switches:

# IPX800 v2

    ipx800_1_sejour:

      command_on: 'curl "http://192.168.210.31/preset.htm?led1=1" >/dev/null'

      command_off: 'curl "http://192.168.210.31/preset.htm?led1=0" >/dev/null'

      command_state: 'curl "http://192.168.210.31/status.xml"'

      value_template: '{% set status = value | regex_findall_index("<led0>(.*)</led0>") %} {% if status == "1" %} true {%- endif -%}'

      friendly_name: 'Convecteur : Séjour'
1 Like

Dear all,

Good news, this morning I have learned that somebody has developped a custom component for IPX800v4 and extension device like X-8R, X-DIMMER, X-PWM, X-24D. Below the link.

=> GCE Forum : Intégration IPX800 Home Assistant
=> Github : IPX800

Thanks, but not for the v2 and v3, and no CGE initiativ…

Hi @Laco_Jurdik,

I did as @Canaletto explained.

Luckily I only have switches. :grinning:

here is my code in the configuration.yaml file
That’s the only thing to be done.

switch:
  - platform: command_line
    switches:
        ipx800_r1:
          command_on: 'curl "http://10.0.0.201/preset.htm?led1=1" >/dev/null'
          command_off: 'curl "http://10.0.0.201/preset.htm?led1=0" >/dev/null'
          command_state: 'curl "http://10.0.0.201/status.xml"'
          value_template: '{% set status = value | regex_findall_index("<led0>(.*)</led0>") %} {% if status == "1" %} true {%- endif -%}'
          friendly_name: Master Bedroom

  - platform: command_line
    switches:
        ipx800_r2:
          command_on: 'curl "http://10.0.0.201/preset.htm?led2=1" >/dev/null'
          command_off: 'curl "http://10.0.0.201/preset.htm?led2=0" >/dev/null'
          command_state: 'curl "http://10.0.0.201/status.xml"'
          value_template: '{% set status = value | regex_findall_index("<led1>(.*)</led1>") %} {% if status == "1" %} true {%- endif -%}'
          friendly_name: Dressing

  - platform: command_line
    switches:
        ipx800_r3:
          command_on: 'curl "http://10.0.0.201/preset.htm?led3=1" >/dev/null'
          command_off: 'curl "http://10.0.0.201/preset.htm?led3=0" >/dev/null'
          command_state: 'curl "http://10.0.0.201/status.xml"'
          value_template: '{% set status = value | regex_findall_index("<led2>(.*)</led2>") %} {% if status == "1" %} true {%- endif -%}'
          friendly_name: Extra Kamer

  - platform: command_line
    switches:
        ipx800_r4:
          command_on: 'curl "http://10.0.0.201/preset.htm?led4=1" >/dev/null'
          command_off: 'curl "http://10.0.0.201/preset.htm?led4=0" >/dev/null'
          command_state: 'curl "http://10.0.0.201/status.xml"'
          value_template: '{% set status = value | regex_findall_index("<led3>(.*)</led3>") %} {% if status == "1" %} true {%- endif -%}'
          friendly_name: Badkamer Boven

  - platform: command_line
    switches:
        ipx800_r5:
          command_on: 'curl "http://10.0.0.201/preset.htm?led5=1" >/dev/null'
          command_off: 'curl "http://10.0.0.201/preset.htm?led5=0" >/dev/null'
          command_state: 'curl "http://10.0.0.201/status.xml"'
          value_template: '{% set status = value | regex_findall_index("<led4>(.*)</led4>") %} {% if status == "1" %} true {%- endif -%}'
          friendly_name: Slaapkamer Norah

  - platform: command_line
    switches:
        ipx800_r6:
          command_on: 'curl "http://10.0.0.201/preset.htm?led6=1" >/dev/null'
          command_off: 'curl "http://10.0.0.201/preset.htm?led6=0" >/dev/null'
          command_state: 'curl "http://10.0.0.201/status.xml"'
          value_template: '{% set status = value | regex_findall_index("<led5>(.*)</led5>") %} {% if status == "1" %} true {%- endif -%}'
          friendly_name: Slaapkamer Maud

  - platform: command_line
    switches:
        ipx800_r7:
          command_on: 'curl "http://10.0.0.201/preset.htm?led7=1" >/dev/null'
          command_off: 'curl "http://10.0.0.201/preset.htm?led7=0" >/dev/null'
          command_state: 'curl "http://10.0.0.201/status.xml"'
          value_template: '{% set status = value | regex_findall_index("<led6>(.*)</led6>") %} {% if status == "1" %} true {%- endif -%}'
          friendly_name: Toilet Boven

  - platform: command_line
    switches:
        ipx800_r8:
          command_on: 'curl "http://10.0.0.201/preset.htm?led8=1" >/dev/null'
          command_off: 'curl "http://10.0.0.201/preset.htm?led8=0" >/dev/null'
          command_state: 'curl "http://10.0.0.201/status.xml"'
          value_template: '{% set status = value | regex_findall_index("<led7>(.*)</led7>") %} {% if status == "1" %} true {%- endif -%}'
          friendly_name: Gang Boven

  - platform: command_line
    switches:
        ipx800_r9:
          command_on: 'curl "http://10.0.0.201/preset.htm?led9=1" >/dev/null'
          command_off: 'curl "http://10.0.0.201/preset.htm?led9=0" >/dev/null'
          command_state: 'curl "http://10.0.0.201/status.xml"'
          value_template: '{% set status = value | regex_findall_index("<led8>(.*)</led8>") %} {% if status == "1" %} true {%- endif -%}'
          friendly_name: Zolder

  - platform: command_line
    switches:
        ipx800_r10:
          command_on: 'curl "http://10.0.0.201/preset.htm?led10=1" >/dev/null'
          command_off: 'curl "http://10.0.0.201/preset.htm?led10=0" >/dev/null'
          command_state: 'curl "http://10.0.0.201/status.xml"'
          value_template: '{% set status = value | regex_findall_index("<led9>(.*)</led9>") %} {% if status == "1" %} true {%- endif -%}'
          friendly_name: Ventilator Afzuiging

off course 10.0.0.201 is the IP address of my IPX800 V3
Mind the difference in numbering between command_on/off and the value_template.

This is giving the following card in Lovelace UI

How to add sensors as well, can be found here:
https://forum.home-assistant.lu/t/ipx800-v3/147

hope this helps.

1 Like

Good news,

The custom components for IPX800 v4 is now available on HACS.

=>https://github.com/Aohzan/ipx800

Blockquote

for those who might be interested, here’s the configuration with the new command_line:

entry in configuration.yaml:

# Entry for GCE IPX800 V3
command_line: !include configurations/GCE_IPX800_V3.yaml

the content of the configurations/GCE_IPX800_V3.yaml file

# ipx800_r1
- switch:
    name: Licht Master Bedroom
    command_on: 'curl "http://10.0.0.201/preset.htm?led1=1" >/dev/null'
    command_off: 'curl "http://10.0.0.201/preset.htm?led1=0" >/dev/null'
    command_state: 'curl "http://10.0.0.201/status.xml"'
    value_template: '{% set status = value | regex_findall_index("<led0>(.*)</led0>") %} {% if status == "1" %} true {%- endif -%}'
    unique_id: "Licht_Master_Bedroom"

# ipx800_r2
- switch:
    name: Licht Dressing
    command_on: 'curl "http://10.0.0.201/preset.htm?led2=1" >/dev/null'
    command_off: 'curl "http://10.0.0.201/preset.htm?led2=0" >/dev/null'
    command_state: 'curl "http://10.0.0.201/status.xml"'
    value_template: '{% set status = value | regex_findall_index("<led1>(.*)</led1>") %} {% if status == "1" %} true {%- endif -%}'
    unique_id: "Licht_Dressing"

# ipx800_r3
- switch:
    name: Licht Chillkamer
    command_on: 'curl "http://10.0.0.201/preset.htm?led3=1" >/dev/null'
    command_off: 'curl "http://10.0.0.201/preset.htm?led3=0" >/dev/null'
    command_state: 'curl "http://10.0.0.201/status.xml"'
    value_template: '{% set status = value | regex_findall_index("<led2>(.*)</led2>") %} {% if status == "1" %} true {%- endif -%}'
    unique_id: "Licht_Chillkamer"

# ipx800_r4
- switch:
    name: Licht Badkamer boven
    command_on: 'curl "http://10.0.0.201/preset.htm?led4=1" >/dev/null'
    command_off: 'curl "http://10.0.0.201/preset.htm?led4=0" >/dev/null'
    command_state: 'curl "http://10.0.0.201/status.xml"'
    value_template: '{% set status = value | regex_findall_index("<led3>(.*)</led3>") %} {% if status == "1" %} true {%- endif -%}'
    unique_id: "Licht_Badkamer_boven"

# ipx800_r5  
- switch:
    name: Licht Slaapkamer Norah
    command_on: 'curl "http://10.0.0.201/preset.htm?led5=1" >/dev/null'
    command_off: 'curl "http://10.0.0.201/preset.htm?led5=0" >/dev/null'
    command_state: 'curl "http://10.0.0.201/status.xml"'
    value_template: '{% set status = value | regex_findall_index("<led4>(.*)</led4>") %} {% if status == "1" %} true {%- endif -%}'
    unique_id: "Licht_Slaapkamer_Norah"
 
 # ipx800_r6 
- switch:
    name: Licht Slaapkamer Maud
    command_on: 'curl "http://10.0.0.201/preset.htm?led6=1" >/dev/null'
    command_off: 'curl "http://10.0.0.201/preset.htm?led6=0" >/dev/null'
    command_state: 'curl "http://10.0.0.201/status.xml"'
    value_template: '{% set status = value | regex_findall_index("<led5>(.*)</led5>") %} {% if status == "1" %} true {%- endif -%}'
    unique_id: "Licht_Slaapkamer_Maud"

# # ipx800_r7
- switch:
    name: Licht Toilet boven
    command_on: 'curl "http://10.0.0.201/preset.htm?led7=1" >/dev/null'
    command_off: 'curl "http://10.0.0.201/preset.htm?led7=0" >/dev/null'
    command_state: 'curl "http://10.0.0.201/status.xml"'
    value_template: '{% set status = value | regex_findall_index("<led6>(.*)</led6>") %} {% if status == "1" %} true {%- endif -%}'
    unique_id: "Licht_Toilet_Boven"

# ipx800_r8
- switch:
    name: Licht Gang boven
    command_on: 'curl "http://10.0.0.201/preset.htm?led8=1" >/dev/null'
    command_off: 'curl "http://10.0.0.201/preset.htm?led8=0" >/dev/null'
    command_state: 'curl "http://10.0.0.201/status.xml"'
    value_template: '{% set status = value | regex_findall_index("<led7>(.*)</led7>") %} {% if status == "1" %} true {%- endif -%}'
      #there's a bug in the firmware which does not allow the preset.htm?ledx=0 to be used for leds bigger than 8. preset.htm?setx=0 is to be used
    unique_id: "Licht_Gang_boven"

# ipx800_r9
- switch:
    name: Licht Zolder
    command_on: 'curl "http://10.0.0.201/preset.htm?set9=1" >/dev/null'
    command_off: 'curl "http://10.0.0.201/preset.htm?set9=0" >/dev/null'
    command_state: 'curl "http://10.0.0.201/status.xml"'
    value_template: '{% set status = value | regex_findall_index("<led8>(.*)</led8>") %} {% if status == "1" %} true {%- endif -%}'
    unique_id: "Licht_Zolder"

# ipx800_r10  
- switch:
    name: Ventilator Afzuiging
    command_on: 'curl "http://10.0.0.201/preset.htm?set10=1" >/dev/null'
    command_off: 'curl "http://10.0.0.201/preset.htm?set10=0" >/dev/null'
    command_state: 'curl "http://10.0.0.201/status.xml"'
    value_template: '{% set status = value | regex_findall_index("<led9>(.*)</led9>") %} {% if status == "1" %} true {%- endif -%}'
    unique_id: "Ventilator Afzuiging"