Aktivierung und Deaktivierung eines systemd-Dienstes in Python mit DBus

Der kommende picockpit-client reagiert auf Löschvorgänge des Frontends, indem er seinen Dienst deaktiviert (die Anwendung bleibt jedoch installiert). Wenn Sie sich entscheiden, picockpit-client connect erneut zu starten, wird der Dienst wieder aktiviert und automatisch für Sie gestartet. Dies ist über die Python DBus-Schnittstelle möglich. Der DBus ist ein Bussystem zur Interaktion mit...

Weiterlesen

sichere Befehlsausführung mit Python: subprocess.Popen

Sicherheit ist mir bei der Entwicklung des PiCockpit-Clients wichtig. Das Folgende gilt für Linux-Systeme (ist aber wahrscheinlich auf alle Unix-ähnlichen Systeme anwendbar, einschließlich macOS) Python erlaubt es, externe Befehle mit dem Modul subprocess auszuführen. import subprocess In der kommenden Version von PiCockpit werden Benutzer in der Lage sein, ihre eigenen Schaltflächen zu erstellen (einfach...

Weiterlesen

TermiShell: eine webbasierte Shell für den Raspberry Pi (Entwicklungsnotizen)

Einleitung Im Zuge der Entwicklung von PiCockpit werde ich ein webbasiertes Terminal namens TermiShell hinzufügen. TermiShell Symbol, von: Stephanie Harvey via unsplash.com TermiShell wird es ermöglichen, sich über PiCockpit.com (und den PiCockpit-Client) in den Raspberry Pi einzuloggen - ohne zusätzliche Anwendungen auf beiden Seiten. Das sollte sehr komfortabel sein,...

Weiterlesen

Python Paho MQTT-Client selbstsignierte Zertifikate Websockets, howto

Die Verwendung von Paho in Python mit Websockets und selbstsignierten Zertifikaten für eine https:// Websocket-Verbindung birgt einige Fallstricke, die ich hier mit etwas Beispielcode angehe: import ssl import time import paho.mqtt.client as mqtt class PCPMQTTClient: def on_connect(self, client, userdata, flags, rc): self.connection_status = rc if rc == 0: self.connected_flag = True self.connection_error_flag...

Weiterlesen

envoy, Docker und Websockets - Fehlersuche und Konfiguration

Websockets sind eine aufregende Technologie, die es Ihnen ermöglicht, eine HTTP-Verbindung zu einer dauerhaften binären Verbindung auszubauen, die Sie zum Senden bidirektionaler Nachrichten verwenden können. Nebenbei bemerkt kann das MQTT-Protokoll über Websockets transportiert werden - die einzige (?) Möglichkeit für einen JavaScript-Client, der von der Website ausgeliefert wird, zum Beispiel. In...

Weiterlesen

Einführung in das SNAP-Protokoll

Einführung S.N.A.P. ist ein Protokoll für die Kommunikation zwischen mehreren verbundenen Hosts. Es bietet: - Adressierung - Flags - ack/nak-Abfrage - Fehlererkennung (verschiedene Fehlererkennungsmethoden verfügbar) Es kann über verschiedene Medien, einschließlich RS485, betrieben werden. Es ist für einen kleinen Footprint optimiert (begrenzte Rechen- und Speicherressourcen), aber je nach Bedarf skalierbar. Grundsätzlich,...

Weiterlesen

Paketierung von Python-Projekten für Debian / Raspbian mit dh-virtualenv

Dieser Artikel zielt darauf ab, Entwicklern, die Python nicht so häufig verwenden, einige Dinge zu erklären, da sie sonst mit einigen Konzepten Schwierigkeiten haben könnten. Ich empfehle dringend die Lektüre des folgenden Artikels als Einführung in die hier besprochenen Konzepte: https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/ pypi.org pypi.org ist ein offizielles Repository mit Software für die Programmiersprache Python....

Weiterlesen