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. HC-SR04 an PiZeroW Messung nach ioBroker importieren...

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    366

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

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

HC-SR04 an PiZeroW Messung nach ioBroker importieren...

Scheduled Pinned Locked Moved Skripten / Logik
5 Posts 3 Posters 522 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.
  • A Offline
    A Offline
    Albyricus
    wrote on last edited by
    #1

    Hi Leute,

    ich habe einen Pi4 als ioBroker Master laufen und an einem PiZeroW habe ich ein HC-SR04 Modul angeschlossen und kann über ein Pythonskipt auch wunderbar Entfernungen messen, jetzt wollte ich das ganze über den rpi adapter (wg. GPIO) und blocky in den iobroker aufnehmen und habe festgestellt, dass blocky wohl "nur" in millisekunden rechnen / messen kann...:dizzy_face: . Das ist für eine Entfernungsmessung viel zu ungenau.... Javascript kann ich leider nicht, und nach meinen bisherigen Recherchen ist javascript auch auf millisekunden beschränkt.... (oder sitzte ich hier einem Irrtum auf)

    wie bringe ich denn jetzt die cm Werte aus folgendem Python-Skript am besten / einfachsten in meinen ioBroker???

    #Bibliotheken einbinden
    import RPi.GPIO as GPIO
    import time
    
    #GPIO Modus (BOARD / BCM)
    GPIO.setmode(GPIO.BCM)
    
    #GPIO Pins zuweisen
    GPIO_TRIGGER = 18
    GPIO_ECHO = 24
    
    #Richtung der GPIO-Pins festlegen (IN / OUT)
    GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
    GPIO.setup(GPIO_ECHO, GPIO.IN)
    
    def distanz():
        # setze Trigger auf HIGH
        GPIO.output(GPIO_TRIGGER, True)
    
        # setze Trigger nach 0.01ms aus LOW
        time.sleep(0.00001)
        GPIO.output(GPIO_TRIGGER, False)
    
        StartZeit = time.time()
        StopZeit = time.time()
    
        # speichere Startzeit
        while GPIO.input(GPIO_ECHO) == 0:
            StartZeit = time.time()
    
        # speichere Ankunftszeit
        while GPIO.input(GPIO_ECHO) == 1:
            StopZeit = time.time()
    
        # Zeit Differenz zwischen Start und Ankunft
        TimeElapsed = StopZeit - StartZeit
        # mit der Schallgeschwindigkeit (34300 cm/s) multiplizieren
        # und durch 2 teilen, da hin und zurueck
        distanz = (TimeElapsed * 34300) / 2
    
        return distanz
    
    if __name__ == '__main__':
        try:
            while True:
                abstand = distanz()
                print ("Gemessene Entfernung = %.1f cm" % abstand)
                time.sleep(1)
    
            # Beim Abbruch durch STRG+C resetten
        except KeyboardInterrupt:
            print("Messung vom User gestoppt")
            GPIO.cleanup()
    

    Vielen Dank vorab und viele Grüße

    bahnuhrB nukleuzN 2 Replies Last reply
    0
    • A Albyricus

      Hi Leute,

      ich habe einen Pi4 als ioBroker Master laufen und an einem PiZeroW habe ich ein HC-SR04 Modul angeschlossen und kann über ein Pythonskipt auch wunderbar Entfernungen messen, jetzt wollte ich das ganze über den rpi adapter (wg. GPIO) und blocky in den iobroker aufnehmen und habe festgestellt, dass blocky wohl "nur" in millisekunden rechnen / messen kann...:dizzy_face: . Das ist für eine Entfernungsmessung viel zu ungenau.... Javascript kann ich leider nicht, und nach meinen bisherigen Recherchen ist javascript auch auf millisekunden beschränkt.... (oder sitzte ich hier einem Irrtum auf)

      wie bringe ich denn jetzt die cm Werte aus folgendem Python-Skript am besten / einfachsten in meinen ioBroker???

      #Bibliotheken einbinden
      import RPi.GPIO as GPIO
      import time
      
      #GPIO Modus (BOARD / BCM)
      GPIO.setmode(GPIO.BCM)
      
      #GPIO Pins zuweisen
      GPIO_TRIGGER = 18
      GPIO_ECHO = 24
      
      #Richtung der GPIO-Pins festlegen (IN / OUT)
      GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
      GPIO.setup(GPIO_ECHO, GPIO.IN)
      
      def distanz():
          # setze Trigger auf HIGH
          GPIO.output(GPIO_TRIGGER, True)
      
          # setze Trigger nach 0.01ms aus LOW
          time.sleep(0.00001)
          GPIO.output(GPIO_TRIGGER, False)
      
          StartZeit = time.time()
          StopZeit = time.time()
      
          # speichere Startzeit
          while GPIO.input(GPIO_ECHO) == 0:
              StartZeit = time.time()
      
          # speichere Ankunftszeit
          while GPIO.input(GPIO_ECHO) == 1:
              StopZeit = time.time()
      
          # Zeit Differenz zwischen Start und Ankunft
          TimeElapsed = StopZeit - StartZeit
          # mit der Schallgeschwindigkeit (34300 cm/s) multiplizieren
          # und durch 2 teilen, da hin und zurueck
          distanz = (TimeElapsed * 34300) / 2
      
          return distanz
      
      if __name__ == '__main__':
          try:
              while True:
                  abstand = distanz()
                  print ("Gemessene Entfernung = %.1f cm" % abstand)
                  time.sleep(1)
      
              # Beim Abbruch durch STRG+C resetten
          except KeyboardInterrupt:
              print("Messung vom User gestoppt")
              GPIO.cleanup()
      

      Vielen Dank vorab und viele Grüße

      bahnuhrB Online
      bahnuhrB Online
      bahnuhr
      Forum Testing Most Active
      wrote on last edited by
      #2

      @albyricus sagte in HC-SR04 an PiZeroW Messung nach ioBroker importieren...:

      PiZeroW

      wemos d1 mini
      tasmota drauf
      HC-sr04 anschließen
      fertig.

      Kosten ca 5,- Euro für den D1


      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
      Danke.
      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
      ScreenToGif :https://www.screentogif.com/downloads.html

      1 Reply Last reply
      0
      • A Albyricus

        Hi Leute,

        ich habe einen Pi4 als ioBroker Master laufen und an einem PiZeroW habe ich ein HC-SR04 Modul angeschlossen und kann über ein Pythonskipt auch wunderbar Entfernungen messen, jetzt wollte ich das ganze über den rpi adapter (wg. GPIO) und blocky in den iobroker aufnehmen und habe festgestellt, dass blocky wohl "nur" in millisekunden rechnen / messen kann...:dizzy_face: . Das ist für eine Entfernungsmessung viel zu ungenau.... Javascript kann ich leider nicht, und nach meinen bisherigen Recherchen ist javascript auch auf millisekunden beschränkt.... (oder sitzte ich hier einem Irrtum auf)

        wie bringe ich denn jetzt die cm Werte aus folgendem Python-Skript am besten / einfachsten in meinen ioBroker???

        #Bibliotheken einbinden
        import RPi.GPIO as GPIO
        import time
        
        #GPIO Modus (BOARD / BCM)
        GPIO.setmode(GPIO.BCM)
        
        #GPIO Pins zuweisen
        GPIO_TRIGGER = 18
        GPIO_ECHO = 24
        
        #Richtung der GPIO-Pins festlegen (IN / OUT)
        GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
        GPIO.setup(GPIO_ECHO, GPIO.IN)
        
        def distanz():
            # setze Trigger auf HIGH
            GPIO.output(GPIO_TRIGGER, True)
        
            # setze Trigger nach 0.01ms aus LOW
            time.sleep(0.00001)
            GPIO.output(GPIO_TRIGGER, False)
        
            StartZeit = time.time()
            StopZeit = time.time()
        
            # speichere Startzeit
            while GPIO.input(GPIO_ECHO) == 0:
                StartZeit = time.time()
        
            # speichere Ankunftszeit
            while GPIO.input(GPIO_ECHO) == 1:
                StopZeit = time.time()
        
            # Zeit Differenz zwischen Start und Ankunft
            TimeElapsed = StopZeit - StartZeit
            # mit der Schallgeschwindigkeit (34300 cm/s) multiplizieren
            # und durch 2 teilen, da hin und zurueck
            distanz = (TimeElapsed * 34300) / 2
        
            return distanz
        
        if __name__ == '__main__':
            try:
                while True:
                    abstand = distanz()
                    print ("Gemessene Entfernung = %.1f cm" % abstand)
                    time.sleep(1)
        
                # Beim Abbruch durch STRG+C resetten
            except KeyboardInterrupt:
                print("Messung vom User gestoppt")
                GPIO.cleanup()
        

        Vielen Dank vorab und viele Grüße

        nukleuzN Offline
        nukleuzN Offline
        nukleuz
        wrote on last edited by
        #3

        @albyricus

        Du musst in deinem Skript lediglich über pip oder pip3 paho.mqtt installieren und im ioBroker den MQTt Adapter/Server installieren.

        Hier ne Anleitung, die weiterhelfen sollte:
        https://tutorials-raspberrypi.de/datenaustausch-raspberry-pi-mqtt-broker-client/

        Intel NUC -> ProxMox -> Debian -> ioBroker (Master)| RPI3B+ -> rtl_433 (Slave) | CCU2

        A 1 Reply Last reply
        0
        • nukleuzN nukleuz

          @albyricus

          Du musst in deinem Skript lediglich über pip oder pip3 paho.mqtt installieren und im ioBroker den MQTt Adapter/Server installieren.

          Hier ne Anleitung, die weiterhelfen sollte:
          https://tutorials-raspberrypi.de/datenaustausch-raspberry-pi-mqtt-broker-client/

          A Offline
          A Offline
          Albyricus
          wrote on last edited by
          #4

          @nukleuz said in HC-SR04 an PiZeroW Messung nach ioBroker importieren...:

          @albyricus

          Du musst in deinem Skript lediglich über pip oder pip3 paho.mqtt installieren und im ioBroker den MQTt Adapter/Server installieren.

          Hier ne Anleitung, die weiterhelfen sollte:
          https://tutorials-raspberrypi.de/datenaustausch-raspberry-pi-mqtt-broker-client/

          Merci....

          nukleuzN 1 Reply Last reply
          0
          • A Albyricus

            @nukleuz said in HC-SR04 an PiZeroW Messung nach ioBroker importieren...:

            @albyricus

            Du musst in deinem Skript lediglich über pip oder pip3 paho.mqtt installieren und im ioBroker den MQTt Adapter/Server installieren.

            Hier ne Anleitung, die weiterhelfen sollte:
            https://tutorials-raspberrypi.de/datenaustausch-raspberry-pi-mqtt-broker-client/

            Merci....

            nukleuzN Offline
            nukleuzN Offline
            nukleuz
            wrote on last edited by
            #5

            @albyricus

            :+1:

            Intel NUC -> ProxMox -> Debian -> ioBroker (Master)| RPI3B+ -> rtl_433 (Slave) | CCU2

            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

            735

            Online

            32.7k

            Users

            82.5k

            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