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. Entwicklung
  4. Kennt sich wer mit Python aus?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Kennt sich wer mit Python aus?

Scheduled Pinned Locked Moved Entwicklung
10 Posts 2 Posters 2.0k Views
  • 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.
  • kmxakK Offline
    kmxakK Offline
    kmxak
    Most Active
    wrote on last edited by
    #1

    Ich suche jemanden der sich mit Python auskennt und mir bei einem Script kurz weiterhelfen kann.

    Es geht darum in ein Script einen Befehl zum warten bevor fortgesetzt wird einzubauen.

    Einfach kurz schreiben ich melde mich dann.

    Gruß Alex

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

      wasn ???

      eine einfache time.sleep(yx)

      #!/usr/bin/python
      import time
      
      print "anfang: %s" % time.ctime()
      time.sleep(2)
      print "ende: %s" % time.ctime()
      
      

      reicht nicht ??

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

      1 Reply Last reply
      0
      • kmxakK Offline
        kmxakK Offline
        kmxak
        Most Active
        wrote on last edited by
        #3

        Danke ich probiere es nachher mal. Hatte gestern nur das time.sleep eingefügt das ging aber nicht.

        Gesendet von meinem SM-G928F mit Tapatalk

        Gruß Alex

        1 Reply Last reply
        0
        • kmxakK Offline
          kmxakK Offline
          kmxak
          Most Active
          wrote on last edited by
          #4

          Ich bekomme es nun hin das das komplette Script pausiert aber nicht das es da stoppt wenn ich es will.

          Das Script ist für das RFID Projekt.

          Das Script fragt den Chip selbst bei langsamen dran halten extrem oft ab. Das wollte ich unterbinden das wenn ein Chip erkannt wird einfach X Sekunden gewartet wird und dann das Script einfach weiter macht.

          Wollte unter den Prints für Karte1,2 oder wrong card````
          time.sleep(X)

          
          

          import MFRC522
          import signal
          import time

          continue_reading = True
          MIFAREReader = MFRC522.MFRC522()

          Karten konfigurieren

          karte1 = [xy]
          karte2 = [yx]

          def end_read(signal, frame):
          global continue_reading
          continue_reading = False
          print "Ctrl+C captured, ending read."
          MIFAREReader.GPIO_CLEEN()

          signal.signal(signal.SIGINT, end_read)

          Script starten

          print "\x1b[2J" # Terminal leeren
          print "RFID Card Reader ioBroker Script"
          print "Zum Abbrechen des Skripts STRG-C druecken."

          while continue_reading:
          (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
          if status == MIFAREReader.MI_OK:
          print "Card detected"
          (status,backData) = MIFAREReader.MFRC522_Anticoll()
          if status == MIFAREReader.MI_OK:
          print "Card read UID: "+str(backData[0])+","+str(backData[1])+","+str(backData[2])+","+str(backData[3])+","+str(backData[4])
          # Hier werden die Karten abgefragt
          if backData == karte1:
          import urllib
          urllib.urlretrieve('http://ip/set/Test?value=true') # ioBroker URL
          print "Status True gesetzt! - Karte 1"
          elif backData == karte2:
          print "Karte 2"
          else:
          print "wrong Card"

          Gruß Alex

          1 Reply Last reply
          0
          • arteckA Offline
            arteckA Offline
            arteck
            Developer Most Active
            wrote on last edited by
            #5
            import MFRC522
            import signal
            import time
            
            continue_reading = True
            MIFAREReader = MFRC522.MFRC522()
            
            # Karten konfigurieren
            karte1 = [xy]
            karte2 = [yx]
            
            def end_read(signal, frame):
              global continue_reading
              continue_reading = False
              print "Ctrl+C captured, ending read."
              MIFAREReader.GPIO_CLEEN()
            
            signal.signal(signal.SIGINT, end_read)
            
            # Script starten
            
            print "\x1b[2J" # Terminal leeren
            print "RFID Card Reader ioBroker Script"
            print "Zum Abbrechen des Skripts STRG-C druecken."
            
            while continue_reading:
              (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
              if status == MIFAREReader.MI_OK:
                print "Card detected"
            # hier könntest du es einbauen warte 1 sec. = 1000 milisec
                time.sleep(1000)
            
               (status,backData) = MIFAREReader.MFRC522_Anticoll()
            
               if status == MIFAREReader.MI_OK:
                print "Card read UID: "+str(backData[0])+","+str(backData[1])+","+str(backData[2])+","+str(backData[3])+","+str(backData[4])
                    # Hier werden die Karten abgefragt
                if  backData == karte1:
                  import urllib
                  urllib.urlretrieve('http://ip/set/Test?value=true') # ioBroker URL
                  print "Status True gesetzt! - Karte 1"
                elif backData == karte2:
                  print "Karte 2"
                else:
                  print "wrong Card"
            

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

            1 Reply Last reply
            0
            • kmxakK Offline
              kmxakK Offline
              kmxak
              Most Active
              wrote on last edited by
              #6

              nein das ist auch nicht die passende Lösung.

              Es kommt dann Card detected und dann muss ich die Karte die ganze Wartezeit über dran halten damit er die dann richtig liest.

              time.sleep(1000) sind meine ich übrigens 1000 sekunden kann das sein?

              time.sleep(.1000) sollten 1000 ms sein oder?

              Gruß Alex

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

                ok ich dachte du willst die länger drann halten dann so..

                import MFRC522
                import signal
                import time
                import urllib
                
                continue_reading = True
                MIFAREReader = MFRC522.MFRC522()
                
                # Karten konfigurieren
                karte1 = [xy]
                karte2 = [yx]
                
                def end_read(signal, frame):
                  global continue_reading
                  continue_reading = False
                  print "Ctrl+C captured, ending read."
                  MIFAREReader.GPIO_CLEEN()
                
                signal.signal(signal.SIGINT, end_read)
                
                # Script starten
                
                print "\x1b[2J" # Terminal leeren
                print "RFID Card Reader ioBroker Script"
                print "Zum Abbrechen des Skripts STRG-C druecken."
                
                while continue_reading:   
                  (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
                  if status == MIFAREReader.MI_OK:
                    print "Card detected"
                
                   (status,backData) = MIFAREReader.MFRC522_Anticoll()
                
                   if status == MIFAREReader.MI_OK:
                    print "Card read UID: "+str(backData[0])+","+str(backData[1])+","+str(backData[2])+","+str(backData[3])+","+str(backData[4])
                        # Hier werden die Karten abgefragt
                
                #   hier direkt nach erkennen der Karte 
                    time.sleep(1)        
                
                    if  backData == karte1:     
                      urllib.urlretrieve('http://ip/set/Test?value=true') # ioBroker URL
                      print "Status True gesetzt! - Karte 1"
                    elif backData == karte2:
                      print "Karte 2"
                    else:
                      print "wrong Card"
                
                #   oder am ende der schleife
                    time.sleep(1)
                
                

                priber mal aus

                das kommt davon wenn man mit mehrere Sprachen hantiert.. die funktion arbeitet mit sekunden

                time.sleep(1)

                solltest auch mal den import urllib nach oben ziehen

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

                1 Reply Last reply
                0
                • kmxakK Offline
                  kmxakK Offline
                  kmxak
                  Most Active
                  wrote on last edited by
                  #8

                  Am ende ging auch was nicht müsste ich heute abend nochmal schauen. Am besten wäre es direkt hinter die letzten print von den Karten. Aber da bekomme ich einen Script Fehler. Heute Abend geht es weiter. Danke dir schon mal

                  Gesendet von meinem SM-G928F mit Tapatalk

                  Gruß Alex

                  1 Reply Last reply
                  0
                  • kmxakK Offline
                    kmxakK Offline
                    kmxak
                    Most Active
                    wrote on last edited by
                    #9

                    selbst wenn ich es so mache kommt die wartezeit erst wenn ich das script mit strg c abbreche:

                    import MFRC522
                    import signal
                    import time
                    import urllib
                    
                    continue_reading = True
                    MIFAREReader = MFRC522.MFRC522()
                    
                    # Karten konfigurieren
                    karte1 = [1111111111]
                    karte2 = [1111111111]
                    
                    def end_read(signal, frame):
                      global continue_reading
                      continue_reading = False
                      print "Ctrl+C captured, ending read."
                      MIFAREReader.GPIO_CLEEN()
                    
                    signal.signal(signal.SIGINT, end_read)
                    
                    # Script starten
                    
                    print "\x1b[2J" # Terminal leeren
                    print "RFID Card Reader ioBroker Script"
                    print "Zum Abbrechen des Skripts STRG-C druecken."
                    
                    while continue_reading:
                      (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
                      if status == MIFAREReader.MI_OK:
                        print "Card detected"
                      (status,backData) = MIFAREReader.MFRC522_Anticoll()
                      if status == MIFAREReader.MI_OK:
                        print "Card read UID: "+str(backData[0])+","+str(backData[1])+","+str(backData[2])+","+str(backData[3])+","+str(backData[4])
                            # Hier werden die Karten abgefragt
                        if  backData == karte1:
                          urllib.urlretrieve('http://ip/set/Test?value=true') # ioBroker URL
                          print "Status True gesetzt! - Karte 1"
                        elif backData == karte2:
                          print "Karte 2"
                        else:
                          print "wrong Card"
                    time.sleep(5)
                    print "wartezeit"
                    
                    

                    verstehe das einfach nicht.

                    Scanne eine "falsche karte" nach meinem verständnis müsste nun wrong card kommen und nach 5 sec wartezeit. das tut es aber nicht. es kommt immer wieder im millisekundentakt wrong card und das wartezeit erst mit strg c

                    Gruß Alex

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

                      @kmxak:

                      selbst wenn ich es so mache kommt die wartezeit erst wenn ich das script mit strg c abbreche:

                      import MFRC522
                      import signal
                      import time
                      import urllib
                      
                      continue_reading = True
                      MIFAREReader = MFRC522.MFRC522()
                      
                      # Karten konfigurieren
                      karte1 = [1111111111]
                      karte2 = [1111111111]
                      
                      def end_read(signal, frame):
                        global continue_reading
                        continue_reading = False
                        print "Ctrl+C captured, ending read."
                        MIFAREReader.GPIO_CLEEN()
                      
                      signal.signal(signal.SIGINT, end_read)
                      
                      # Script starten
                      
                      print "\x1b[2J" # Terminal leeren
                      print "RFID Card Reader ioBroker Script"
                      print "Zum Abbrechen des Skripts STRG-C druecken."
                      
                      while continue_reading:
                        (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
                        if status == MIFAREReader.MI_OK:
                          print "Card detected"
                        (status,backData) = MIFAREReader.MFRC522_Anticoll()
                        if status == MIFAREReader.MI_OK:
                          print "Card read UID: "+str(backData[0])+","+str(backData[1])+","+str(backData[2])+","+str(backData[3])+","+str(backData[4])
                              # Hier werden die Karten abgefragt
                          if  backData == karte1:
                            urllib.urlretrieve('http://ip/set/Test?value=true') # ioBroker URL
                            print "Status True gesetzt! - Karte 1"
                          elif backData == karte2:
                            print "Karte 2"
                          else:
                            print "wrong Card"
                            
                          time.sleep(5)
                          print "wartezeit"
                      
                      

                      verstehe das einfach nicht.

                      Scanne eine "falsche karte" nach meinem verständnis müsste nun wrong card kommen und nach 5 sec wartezeit. das tut es aber nicht. es kommt immer wieder im millisekundentakt wrong card und das wartezeit erst mit strg c `

                      wie währe es wenn du dich mit python ein wenig auseinander setzt..

                      wiki Python_(Programmiersprache)

                      vor allem der Absatz

                      #Syntax

                      das

                      while continue_reading:
                        (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
                        if status == MIFAREReader.MI_OK:
                          print "Card detected"
                        (status,backData) = MIFAREReader.MFRC522_Anticoll()
                        if status == MIFAREReader.MI_OK:
                          print "Card read UID: "+str(backData[0])+","+str(backData[1])+","+str(backData[2])+","+str(backData[3])+","+str(backData[4])
                              # Hier werden die Karten abgefragt
                          if  backData == karte1:
                            urllib.urlretrieve('http://ip/set/Test?value=true') # ioBroker URL
                            print "Status True gesetzt! - Karte 1"
                          elif backData == karte2:
                            print "Karte 2"
                          else:
                            print "wrong Card"
                      time.sleep(5)
                      print "wartezeit"
                      
                      

                      ist was andereas als das

                      while continue_reading:
                        (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
                        if status == MIFAREReader.MI_OK:
                          print "Card detected"
                        (status,backData) = MIFAREReader.MFRC522_Anticoll()
                        if status == MIFAREReader.MI_OK:
                          print "Card read UID: "+str(backData[0])+","+str(backData[1])+","+str(backData[2])+","+str(backData[3])+","+str(backData[4])
                              # Hier werden die Karten abgefragt
                          if  backData == karte1:
                            urllib.urlretrieve('http://ip/set/Test?value=true') # ioBroker URL
                            print "Status True gesetzt! - Karte 1"
                          elif backData == karte2:
                            print "Karte 2"
                          else:
                            print "wrong Card"
                      
                          time.sleep(5)
                          print "wartezeit"
                      
                      

                      aus die Einrückung kommt es an wann was ausgeführt wird

                      zumidest Grundinformationen habe ich erwartet

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

                      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

                      555

                      Online

                      32.7k

                      Users

                      82.4k

                      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