NEWS
PWM-Display dimmen: Python-Skript sinnvoll steuern
-
Guten Abend zusammen,
ich habe auf einem Raspberry Pi mit einem ioBroker-Slave das unten aufgeführte Python-Skript laufen. Dieses steuert die Helligkeit eines angeschlossenen Displays, indem es Werte zwischen 0 % und 100 % entgegennimmt und umwandelt.

Um das Skript durch den Benutzer „iobroker“ ausführen zu lassen, habe ich es entsprechend ( /usr/local/bin/) verschoben.
Über den ioBroker Slave/JS-Adapter kann ich das Skript aktivieren, und der erste Wert wird korrekt geschrieben.

Wenn ich allerdings versuche, einen weiteren Wert zu schreiben, funktioniert das nicht, da das Skript bei einer erneuten Ausführung offenbar nicht wie erwartet reagiert.

Wie kann ich Blockly so anpassen, dass es, nachdem das Skript einmal gestartet wurde, weiterhin einzelne Werte vorgeben kann?
Anbei das verwendete Skript:
import sys from gpiozero import PWMLED from time import sleep def main(): led = PWMLED(18) # Check if a value is passed as an argument if len(sys.argv) > 1: try: value = float(sys.argv[1]) if value > 100: led.value = 1 elif value < 0: led.value = 0 else: led.value = value / 100 except ValueError: sys.exit(1) else: led.value = 1 # Default to full brightness # Optional interactive loop try: while True: try: value = input() if value.lower() == "exit": break value = float(value) if value > 100: led.value = 1 elif value < 0: led.value = 0 else: led.value = value / 100 except ValueError: pass sleep(1) except KeyboardInterrupt: # Clean exit on Ctrl+C sys.exit(0) if __name__ == "__main__": main()Viele Grüße
-
@e-i-k-e du musst die zahl in eine variable schreiben und diese dann verwenden. zur zeit rufst du hardcoded 0 oder 100 auf
-
@e-i-k-e du musst die zahl in eine variable schreiben und diese dann verwenden. zur zeit rufst du hardcoded 0 oder 100 auf
-
@e-i-k-e said in PWM-Display dimmen: Python-Skript sinnvoll steuern:
Hat hier jemand eine Idee dazu ?
Schmeiss mal den Teil raus
# Optional interactive loop try: while True: try: value = input() if value.lower() == "exit": break value = float(value) if value > 100: led.value = 1 elif value < 0: led.value = 0 else: led.value = value / 100 except ValueError: pass sleep(1) except KeyboardInterrupt: # Clean exit on Ctrl+C sys.exit(0)So wie ich es sehe wartet das Script da auf eine Eingabe von der Tastatur.
Einfach mal probieren ... Bin nicht so der Python - Raspi - Fachmann. -
@e-i-k-e said in PWM-Display dimmen: Python-Skript sinnvoll steuern:
Hat hier jemand eine Idee dazu ?
Schmeiss mal den Teil raus
# Optional interactive loop try: while True: try: value = input() if value.lower() == "exit": break value = float(value) if value > 100: led.value = 1 elif value < 0: led.value = 0 else: led.value = value / 100 except ValueError: pass sleep(1) except KeyboardInterrupt: # Clean exit on Ctrl+C sys.exit(0)So wie ich es sehe wartet das Script da auf eine Eingabe von der Tastatur.
Einfach mal probieren ... Bin nicht so der Python - Raspi - Fachmann.@blockmove sagte in PWM-Display dimmen: Python-Skript sinnvoll steuern:
@e-i-k-e said in PWM-Display dimmen: Python-Skript sinnvoll steuern:
Hat hier jemand eine Idee dazu ?
Schmeiss mal den Teil raus
# Optional interactive loop try: while True: try: value = input() if value.lower() == "exit": break value = float(value) if value > 100: led.value = 1 elif value < 0: led.value = 0 else: led.value = value / 100 except ValueError: pass sleep(1) except KeyboardInterrupt: # Clean exit on Ctrl+C sys.exit(0)So wie ich es sehe wartet das Script da auf eine Eingabe von der Tastatur.
Einfach mal probieren ... Bin nicht so der Python - Raspi - Fachmann.Danke für deinen Vorschlag.
Die Eingabeeinforderung wird beendet, allerdings funktioniert das Skript dann nicht mehr - es wird nicht mehr gedimmt.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden