Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. PWM-Display dimmen: Python-Skript sinnvoll steuern

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.1k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

PWM-Display dimmen: Python-Skript sinnvoll steuern

Scheduled Pinned Locked Moved Skripten / Logik
8 Posts 3 Posters 649 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • E Offline
    E Offline
    e-i-k-e
    wrote on last edited by e-i-k-e
    #1

    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.

    66c92a64-c72d-40c0-97ea-b30995952a74-image.png

    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.

    190f7077-43d6-492f-801a-dda58c623624-image.png

    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.

    b16c0560-74a7-4997-8480-6b86847a8150-image.png

    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

    1 Reply Last reply
    0
    • E Offline
      E Offline
      e-i-k-e
      wrote on last edited by
      #2

      Hat hier jemand eine Idee dazu ?

      arteckA B 2 Replies Last reply
      0
      • E e-i-k-e

        Hat hier jemand eine Idee dazu ?

        arteckA Offline
        arteckA Offline
        arteck
        Developer Most Active
        wrote on last edited by
        #3

        @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

        zigbee hab ich, zwave auch, nuc's genauso und HA auch

        E 2 Replies Last reply
        0
        • arteckA arteck

          @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 Offline
          E Offline
          e-i-k-e
          wrote on last edited by
          #4

          @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?

          1 Reply Last reply
          0
          • arteckA arteck

            @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 Offline
            E Offline
            e-i-k-e
            wrote on last edited by
            #5

            @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?

            1 Reply Last reply
            0
            • arteckA Offline
              arteckA Offline
              arteck
              Developer Most Active
              wrote on last edited by
              #6

              sry blockly ist nicht so meinz

              zigbee hab ich, zwave auch, nuc's genauso und HA auch

              1 Reply Last reply
              0
              • E e-i-k-e

                Hat hier jemand eine Idee dazu ?

                B Offline
                B Offline
                Blockmove
                wrote on last edited by
                #7

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

                The difference beetween Man and Boys:
                The price of their toys 😀

                E 1 Reply Last reply
                0
                • B Blockmove

                  @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 Offline
                  E Offline
                  e-i-k-e
                  wrote on last edited by
                  #8

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

                  1 Reply Last reply
                  0
                  Reply
                  • Reply as topic
                  Log in to reply
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  407

                  Online

                  32.5k

                  Users

                  81.7k

                  Topics

                  1.3m

                  Posts
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                  ioBroker Community 2014-2025
                  logo
                  • Login

                  • Don't have an account? Register

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • Home
                  • Recent
                  • Tags
                  • Unread 0
                  • Categories
                  • Unreplied
                  • Popular
                  • GitHub
                  • Docu
                  • Hilfe