Module websocket

Dieses Modul implementiert die Möglichkeit mit SmartHomeNG über das Websocket Protokoll zu kommunizieren.

API des Moduls

class modules.websocket.Websocket(*args, **kargs)[Quellcode]

Bases: Module

version = '1.1.2'
longname = 'Websocket module for SmartHomeNG'
port = 0
start()[Quellcode]

If the module needs to startup threads or uses python modules that create threads, put thread creation code or the module startup code here.

Otherwise don’t enter code here

stop()[Quellcode]

If the module has started threads or uses python modules that created threads, put cleanup code here.

Otherwise don’t enter code here

initialize_payload_protocols()[Quellcode]

Initialize the supported payload protocols

Rückgabe:

initialize_payload_protocol(Protocol)[Quellcode]
get_payload_protocol_by_id(id)[Quellcode]
get_port()[Quellcode]

Returns the port used for the ws:// protocol

Rückgabe:

port number

get_tls_port()[Quellcode]

Returns the port used for the secure wss:// protocol

Rückgabe:

port number

get_use_tls()[Quellcode]

Returns True, if secure websocket protocol (wss://) is enabled

Rückgabe:

True, if secure websocket protocol is enabled

USERS = {}
async ws_server(ip, port, ssl_context=None)[Quellcode]
async handle_new_connection(websocket, path)[Quellcode]

Wait for incoming connection and handle the request

async register(websocket)[Quellcode]

Register a new incoming connection

async unregister(websocket)[Quellcode]

Unregister an incoming connection

async log_connection_event(action, websocket)[Quellcode]

Log info about connection/disconnection of users

client_address(websocket)[Quellcode]
get_payload_users(protocol_path)[Quellcode]

Metadaten

module.yaml
# Metadata for the plugin
module:
    # Global plugin attributes
    classname: Websocket
    version: 1.1.2
    sh_minversion: 1.9.1.2
#   sh_maxversion:                  # maximum shNG version to use this module (leave empty if latest)
    py_minversion: 3.7              # minimum Python version to use for this module
#    py_maxversion:                 # maximum Python version to use for this module (leave empty if latest)
    description:
        de: 'Modul implementiert die Websocket Kommunikation für SmartHomeNG'
        en: 'Module implements websocket communication for SmartHomeNG'

parameters:
    # Definition of parameters to be configured in etc/module.yaml
    enabled:
        type: bool
        gui_type: yes_no
        default: True
        description:
            de: 'Websocket Unterstützung aktivieren oder deaktivieren'
            en: 'Enable or disable websocket support'

    ip:
        type: ipv4
        description:
            de: IP Adresse auf der das websocket Modul aktiv sein soll - muss normalerweise nicht angegeben werden
            en: IP adress on which the websocket module should operate - not needed, has only to be specified for special configurations
            fr: Adresse IP sur laquelle le module websocket devrait fonctionner - il n'est généralement pas nécessaire de la spécifier
    port:
        type: int
        valid_min: 0
        valid_max: 65535
        default: 2424
        description:
            de: Portnummer für die unverschlüsselte Websocket Kommunikation
            en: Port number for the unencrypted access to websockets
            fr: Numéro de port pour l'accès à l'interface websocket
    tls_port:
        type: int
        valid_min: 0
        valid_max: 65535
        default: 2425
        description:
            de: Portnummer für die verschlüsselte Websocket Kommunikation
            en: Port number for the encrypted access to websockets
            fr: Numéro de port pour l'accès à l'interface web si utilisation de wss
    use_tls:
        type: bool
        gui_type: yes_no
        default: False
        description:
            de: Auf True setzen, um Zugriffe über wss:// zu ermöglichen (Zertifikat muss installiert sein)
            en: Set to true to allow access over wss:// (certificate has to be installed)
            fr: Mettre sur 'true' pour activer les accès par https (certificats doivent être installés)
    tls_cert:
        type: str
        default: shng.cer
        description:
            de: Name der Zertifikatsdatei mit der Endung '.cer' oder '.pem'. Die Datei muss im Verzeichnis ../etc liegen
            en: Name of the certificate file (with extension .cer od .pem). The file musst be stored in ../etc
            fr: Nom du fichier contanent les certificats. Le fichier doit se trouver dans ../etc
    tls_key:
        type: str
        default: shng.key
        description:
            de: Name der Datei mit dem privaten Schlüssel und der Endung '.key'. Die Datei muss im Verzeichnis ../etc liegen
            en: Name of the private key file. The file musst be stored in ../etc
            fr: Nom du fichier contanent les clés privés. Le fichier doit se trouver dans ../etc

Konfiguration

Konfigurationsdokumentation ist unter Konfiguration auf der Seite Module websocket Neu zu finden.