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
# 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.