Blocking Python facade for driving Extron SIS devices over SSH
Project description
sismatic
An open-sourced library for working with the Simple Instruction Set used by many Extron devices. The name comes from SIS + automatic, because it handles the SIS machinery behind the scenes without human control.
Why?
There are several reasons why this library is worthwhile:
- Relies on a stable, unchanging protocol.
- Hides complexities of managing connections.
- Hides complexities of byte-level communication.
Crates
- core
- python
- web
- cli
Configuration Example
# Global settings
[defaults]
port = 22023
connect_secs = 5
command_secs = 3
eager = true # eagerly establish connections to pay the cost of the full SSH handshake up front (default: false; connect upon first instruction)
sis_keepalive_secs = 120 # interval at which to send a probe instruction to SMPs to keep connection open; SMPs idle timer is set to 5 minutes by default. (default: 120)
[[device]]
id = "atrium-101"
host = "10.0.0.7"
username = "admin"
password = "extron"
[[device]]
id = "annex-far"
host = "10.0.0.8"
username = "admin"
password = "extron"
connect_secs = 10 # override default connect timeout
command_secs = 8 # override default command timeout
Warm versus Cold Connections
The premise is that the SSH handshakes are expensive, so having a "warm" or
preestablished connection is important for runtime responsiveness. Device
connections are lazy by default, which means that connection is delayed and
first established when first instruction is sent. After a connection is
established, the SSH layer will automatically keep the connection alive until
the device itself terminates the connection due to inactivity (no instructions
sent for some interval). The default interval is 5 minutes on some devices
after which the connection will go "cold" again and be reestablished upon the
next command. If desired, it is possible to eagerly open connections to devices
by settings the eager configuration option. This will enable maximum
performance at runtime because it will cause connections to devices to open up
front i.e. pay the cost of the full SSH handshake at startup. To keep the
connections "warm", there is the sis_keepalive_secs setting, which sets an
interval in which a benign instruction is sent to the device to reset the
device's inactivity timer periodically.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sismatic-0.2.15.tar.gz.
File metadata
- Download URL: sismatic-0.2.15.tar.gz
- Upload date:
- Size: 85.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e93459b3cee180a7ba19a227e2cdb2a53b1e39bf8dce348eb5b92ae525846d0b
|
|
| MD5 |
cf2e33aadb100ab97969450cc25c090b
|
|
| BLAKE2b-256 |
a63a4d31865ee5fa44ce11f250080713f95764af5d9aaf55918ae5cb9d586d21
|
Provenance
The following attestation bundles were made for sismatic-0.2.15.tar.gz:
Publisher:
pipeline.yml on metzenseifner/sismatic
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sismatic-0.2.15.tar.gz -
Subject digest:
e93459b3cee180a7ba19a227e2cdb2a53b1e39bf8dce348eb5b92ae525846d0b - Sigstore transparency entry: 2181513273
- Sigstore integration time:
-
Permalink:
metzenseifner/sismatic@7d0e8f80f5599317af48f8297c9bd85c0641c6ba -
Branch / Tag:
refs/tags/v0.2.15 - Owner: https://github.com/metzenseifner
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pipeline.yml@7d0e8f80f5599317af48f8297c9bd85c0641c6ba -
Trigger Event:
push
-
Statement type:
File details
Details for the file sismatic-0.2.15-cp39-abi3-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: sismatic-0.2.15-cp39-abi3-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.9+, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f782110f29e8bbfce04c9b269920d02d816cc65e1f74a4804987807da45d584a
|
|
| MD5 |
ee3337ff221e1326918fd572c1e7f600
|
|
| BLAKE2b-256 |
e136041fea84ff777f7e723c1f5f845d50c09f8321ea16da43718e76e0e68e63
|
Provenance
The following attestation bundles were made for sismatic-0.2.15-cp39-abi3-manylinux_2_28_x86_64.whl:
Publisher:
pipeline.yml on metzenseifner/sismatic
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sismatic-0.2.15-cp39-abi3-manylinux_2_28_x86_64.whl -
Subject digest:
f782110f29e8bbfce04c9b269920d02d816cc65e1f74a4804987807da45d584a - Sigstore transparency entry: 2181513553
- Sigstore integration time:
-
Permalink:
metzenseifner/sismatic@7d0e8f80f5599317af48f8297c9bd85c0641c6ba -
Branch / Tag:
refs/tags/v0.2.15 - Owner: https://github.com/metzenseifner
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pipeline.yml@7d0e8f80f5599317af48f8297c9bd85c0641c6ba -
Trigger Event:
push
-
Statement type:
File details
Details for the file sismatic-0.2.15-cp39-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: sismatic-0.2.15-cp39-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.9+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27e8516778bdfb4323a2d9daff65a74bb1cdbefde69ef60d5f3a432c69613a94
|
|
| MD5 |
6746c60018abba439a4c37656750ebf4
|
|
| BLAKE2b-256 |
c807f07ebff76c8ea81477f04055a98afaf5f8807435eb63c8d8f05d4024b813
|
Provenance
The following attestation bundles were made for sismatic-0.2.15-cp39-abi3-macosx_11_0_arm64.whl:
Publisher:
pipeline.yml on metzenseifner/sismatic
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sismatic-0.2.15-cp39-abi3-macosx_11_0_arm64.whl -
Subject digest:
27e8516778bdfb4323a2d9daff65a74bb1cdbefde69ef60d5f3a432c69613a94 - Sigstore transparency entry: 2181513639
- Sigstore integration time:
-
Permalink:
metzenseifner/sismatic@7d0e8f80f5599317af48f8297c9bd85c0641c6ba -
Branch / Tag:
refs/tags/v0.2.15 - Owner: https://github.com/metzenseifner
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pipeline.yml@7d0e8f80f5599317af48f8297c9bd85c0641c6ba -
Trigger Event:
push
-
Statement type:
File details
Details for the file sismatic-0.2.15-cp39-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: sismatic-0.2.15-cp39-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.9+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee8c505e50cf1dfa63f9e362e48bbd5835cf2aea03b560d3f463493570c351bb
|
|
| MD5 |
f9740f97edd54cccd334a07a91aa6f11
|
|
| BLAKE2b-256 |
feed61a8eaacc354c66571421895c04cfddbeba7150f47a9034623bc5256d75b
|
Provenance
The following attestation bundles were made for sismatic-0.2.15-cp39-abi3-macosx_10_12_x86_64.whl:
Publisher:
pipeline.yml on metzenseifner/sismatic
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sismatic-0.2.15-cp39-abi3-macosx_10_12_x86_64.whl -
Subject digest:
ee8c505e50cf1dfa63f9e362e48bbd5835cf2aea03b560d3f463493570c351bb - Sigstore transparency entry: 2181513396
- Sigstore integration time:
-
Permalink:
metzenseifner/sismatic@7d0e8f80f5599317af48f8297c9bd85c0641c6ba -
Branch / Tag:
refs/tags/v0.2.15 - Owner: https://github.com/metzenseifner
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pipeline.yml@7d0e8f80f5599317af48f8297c9bd85c0641c6ba -
Trigger Event:
push
-
Statement type: