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
-
Hat hier jemand eine Idee dazu ?
-
@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
-
@arteck sagte in PWM-Display dimmen: Python-Skript sinnvoll steuern:
@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
Kann ich das direkt über ein Blockly machen?
-
@arteck sagte in PWM-Display dimmen: Python-Skript sinnvoll steuern:
@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
Kannst du mich da etwas unter die Arme greifen?
-
sry blockly ist nicht so meinz
-
@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.