Skip to main content

pypx800 - Python GCE IPX800 v4

Control the IPX800 v4 ans its extensions: X-PWM, X-THL, X-4VR, X-4FP, X-8R, X-8D, X-24D and X-Dimmer trough:

  • Relay
  • Virtual output
  • Virtual input
  • Digital input
  • Analog input
  • Counter
  • X-Dimmer output
  • X-PWM channel
  • X-THL (temp, hum, lux)
  • X-4VR output
  • X-4FP zone

IPX800 parameters

  • host: ip or hostname (mandatory)
  • port: (default: 80)
  • api_key: (mandatory)
  • user: name of user or admin (for X-PWM only)
  • password: password of user or admin (for X-PWM only)
  • specific_devices_types: add specific devices types for custom api request (supported: ["counter"])
  • request_retries: number of request retries on error (default: 3)
  • request_timeout: timeout for request (default: 5)
  • request_checkstatus: true to raise error if IPX800 return no success result like partial result, after request_retries retries (default: True)
  • session: aiohttp.client.ClientSession

Example

import asyncio

from pypx800 import (IPX800, X4FP, X4VR, XPWM, XTHL, AInput, VAInput, DInput, Relay,
                     VInput, VOutput, XDimmer)


async def main():
    async with IPX800(host='192.168.1.123', api_key='xxx') as ipx:
        data = await ipx.global_get()
        print("all values:", data)

        print("## Relay ##")
        r15 = Relay(ipx, 15)
        print(await r15.status)
        await r15.on()
        await r15.off()

        print("## X-Dimmer ##")
        g1 = XDimmer(ipx, 1)
        await g1.on()  # default 500 milliseconds
        await g1.set_level(80)  # default 500 milliseconds delay
        await g1.set_level(20, 0)  # 0 milliseconds delay
        await g1.off(2000)  # 2 seconds delay
        print(await g1.level)
        print(await g1.status)

        print("## X-PWM ##")
        pwm1 = XPWM(ipx, 1)
        await pwm1.on()  # default 500 milliseconds delay
        await pwm1.on(1000)  # 1 second delay
        await pwm1.set_level(50)  # default 500 milliseconds delay
        await pwm1.set_level(20, 0)  # 0 millisecond delay
        print(await pwm1.status)
        await pwm1.off()

        print("## Analog Input ##")
        print(await AInput(ipx, 1).value)

        print("## Virtual Analog Input ##")
        print(await VAInput(ipx, 1).value)

        print("## Digital Output ##")
        d1 = DInput(ipx, 1)
        print(await d1.value)

        print("## Virtual Input ##")
        vi = VInput(ipx, 3)
        await vi.on()
        print(await vi.status)

        print("## Virtual Output ##")
        vo = VOutput(ipx, 12)
        await vo.on()
        print(await vo.status)

        print("## X-THL ##")
        sensor = XTHL(ipx, 1)
        print(await sensor.temp)
        print(await sensor.hum)
        print(await sensor.lum)

        print("## X-4VR ##")
        vr = X4VR(ipx, 1, 3)  # Extension number, VR number
        await vr.on()
        await vr.set_level(30)
        await vr.set_pulse_up(5)
        print(await vr.status)
        print(await vr.level)

        print("## X-4FP ##")
        fp = X4FP(ipx, 1, 3)  # Extension number, Zone number
        # 0 confort, 1 Eco, 2 Hors Gel, 3 Stop, 4 Confort -1, 5 Confort -2
        print(await fp.status)
        await fp.set_mode(1)
        await fp.set_mode_all(1)  # set for all zones
        print(await fp.status)

        print("## Counter ##")
        counter = Counter(ipx, 1)
        print(await counter.value)

if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())

Credits

Thank to d3mi1 and marcaurele for inspiration :)

Metadata

Release files for pypx800 2.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pypx800 2.6.0
File Size Uploaded
pypx800-2.6.0.tar.gz 8.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pypx800 2.6.0
File Interpreter ABI Platform
pypx800-2.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 20.9 kB

Release files / pypx800-2.6.0.tar.gz

Download URL pypx800-2.6.0.tar.gz
Size 8.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d6c8dd637adfa1e590fd9af54eb13d31b69d24ea51204d2fc5318b9574574951
BLAKE2b-256 checksum
How to use checksums
de167d7da16ea51a21e411e48dcf0d34448461ea675cfe4655c7ca1a4fa5292f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / pypx800-2.6.0-py3-none-any.whl

Download URL pypx800-2.6.0-py3-none-any.whl
Size 12.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5a19b2bcb77b7a277ac8e3872a44b3b46d80a992d48c1373a182a780be0a9005
BLAKE2b-256 checksum
How to use checksums
68a6c47f3e7c31e77b9e4e481fbe514709042d6a545c30d624514045ffe812a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.6.0 This release

2 release files

2.5.1

2 release files

2.5.0

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.2

2 release files

1.6.1

1 release file

1.5

2 release files

1.4

2 release files

1.3

2 release files

1.2

2 release files

1.1

2 release files

1.0

2 release files

0.7

2 release files

0.6

2 release files

0.5

2 release files

0.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page