Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Kennt sich wer mit Python aus?

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

Kennt sich wer mit Python aus?

Geplant Angeheftet Gesperrt Verschoben Entwicklung
10 Beiträge 2 Kommentatoren 2.0k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • kmxakK Offline
    kmxakK Offline
    kmxak
    Most Active
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • arteckA Offline
      arteckA Offline
      arteck
      Developer Most Active
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • kmxakK Offline
        kmxakK Offline
        kmxak
        Most Active
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • kmxakK Offline
          kmxakK Offline
          kmxak
          Most Active
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • arteckA Offline
            arteckA Offline
            arteck
            Developer Most Active
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • kmxakK Offline
              kmxakK Offline
              kmxak
              Most Active
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • arteckA Offline
                arteckA Offline
                arteck
                Developer Most Active
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • kmxakK Offline
                  kmxakK Offline
                  kmxak
                  Most Active
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • kmxakK Offline
                    kmxakK Offline
                    kmxak
                    Most Active
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • arteckA Offline
                      arteckA Offline
                      arteck
                      Developer Most Active
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      802

                      Online

                      32.4k

                      Benutzer

                      81.6k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe