Ultraschallsensor HC-SR04 in FHEM einbinden

Begonnen von Jogi, 24 März 2017, 17:16:24

Vorheriges Thema - Nächstes Thema

Jogi

Zitat von: Thorsten Pferdekaemper am 26 März 2017, 18:25:15

Dann versuch's mal damit:
[/code]
Dieses Skript bitte auf der Kommandozeile (ssh) ausprobieren und noch nicht in FHEM einbinden. Was wird ausgegeben? Wie sieht danach "list UC1" aus?
Gruß,
   Thorsten

Wenn ich das in SSH mache kommt folgende Meldung:

pi@raspberrypi:/opt/fhem/FHEM $ sudo /usr/bin/python UC1.sh
UC1.sh:13: RuntimeWarning: This channel is already in use, continuing anyway.  Use GPIO.setwarnings(False) to disable warnings.
  GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
UC1.sh:14: RuntimeWarning: This channel is already in use, continuing anyway.  Use GPIO.setwarnings(False) to disable warnings.
  GPIO.setup(GPIO_ECHO, GPIO.IN)
Traceback (most recent call last):
  File "UC1.sh", line 47, in <module>
    distanceRet = "%.1f" % measure_average() # fuer Mittelwert Messung
NameError: name 'measure_average' is not defined


list UC1 ergibt danach:
Internals:
  Internals:
   NAME       UC1
   NR         31
   STATE      Abstand
   TYPE       dummy
Attributes:
   room       Test




KölnSolar

die function measure_average muss natürlich ins modifizierte Skript.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Thorsten Pferdekaemper

Hi,
ersetze mal das hier:

    distanceRet = "%.1f" % measure_average() # fuer Mittelwert Messung

Durch das hier:

    distanceRet = distanz()

...außerdem: Schau bitte mal mit "ps" nach, ob noch andere Instanzen dieser Skripte laufen. Alternativ: mal die ganze Kiste neu starten.
Gruß,
   Thorsten
FUIP

Franz Tenbrock

Hab das vor einiger Zeit mal gemacht
und läuft seitdem bestens in meiner Zisterne

https://forum.fhem.de/index.php/topic,46205.msg473747.html#msg473747

irgendwo hatte ich auch jeden Schritt dokumentiert
vielleicht hilft es ja

hab das über espeasy gemacht
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

econ_sl83

Zitat von: Franz Tenbrock am 26 März 2017, 21:32:10
Hab das vor einiger Zeit mal gemacht
und läuft seitdem bestens in meiner Zisterne

https://forum.fhem.de/index.php/topic,46205.msg473747.html#msg473747

irgendwo hatte ich auch jeden Schritt dokumentiert
vielleicht hilft es ja

hab das über espeasy gemacht

aber das ist eine 1Wire Lösung, oder?

Wie ist der Stand hierbei? Ich stehe gerade praktisch vor dem gleichen Problem...  :(

fstefan1960

Hallo,

ich habe das Ganze auch mit ESPEasy gemacht. Also ESPEasy auf einen ESP-12 und dort die Ultraschallsensoren angebunden. In ESPEasy kann man die dann ja als Devices einfach über das Webinterface anlegen.
FHEM hat die dann auch sauber gefunden.

Das Problem dabei ist, dass
1. die Werte nicht zuverlässig sind. Das heißt, immer wieder findet eine Messung einen deutlich zu kurzen Abstand. Um das auszuschließen, nehme ich immer 4 Messungen und filtere daraus Fehlmessungen aus. Das führt zum 2. Problem.
Wenn ich will, dass das Ganze einigermaßen zeitnah reagiert, muss ich also oft messen. Schneller als alle 5 Sek klappt eh nicht. Damit dauern Reaktionen schon mal 20 sec. Aber das jagt die Systemlast so nach oben, dass ich also dann doch seltener messe. Dadurch ist die Reaktionszeit (4 mal 20 sec) über eine Minute.

Insofern suche ich noch nach einer anderen Lösung. Denke mal, ich hänge einen Arduino dran, der sehr viel öfter misst (da gehen glaube ich 50 Messungen pro Sekunde) und dann kann der die Logik schon übernehmen. Stelle mir vor, der macht die Filterung und meldet nur, wenn sich was Relevantes ändert. Muss dann mal sehen, wie der die Daten dann an FHEM schickt. Vielleicht via mySensors-Sketch ...


FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

Franz Tenbrock

nein. ist nicht 1wire ist espeasy, hab das Teil mit Heißkleber vergossen, seitdem werkelt es im Dom der Zisterne. ist mit Bewegungsmelder des carports gekoppelt, dh wenn da das Licht angeht bekommt das Teil Strom und überträgt den Wasserstand, muss ja nicht den ganzen Tag Strom verbraten
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Jogi

Also,
ich habe es bis jetzt nicht hinbekommen. Bleibe aber dran.
Ich habe zwar auch einen ESP-12E und mit ESPEasy wird der HC-SR04 auch angezeigt, ABER der ESP-12E liefert keine 5 Volt (nur 3V) und somit ist das -so ohne weiteres- damit nicht umsetzbar.
Ich habe mir jetzt mal einen WeMos D1 Mini bestellt. Vielleicht funktioniert es damit.
Schaun wir mal ...

Ich wollte es eigentlich nutzen, um einerseits einen Wasserstand im Sickerschacht zu überwachen, andererseits wollte ich damit in der Garage ein Einpark-Signal realisieren.
Ich bin mir momentan aber -wegen der Posts mit den Verzögerungszeiten- unsicher, ob das in der Praxis überhaupt zuverlässig funktioniert. Was nutzt mir eine Messung, wenn das Auto schon gegen die Wand gefahren ist, weil die Messabstände zu groß sind?!

Thorsten Pferdekaemper

Hi,
das klingt doch wirklich danach, dass man so etwas mit einem Arduino machen sollte, der dann mit der Zentrale kommuniziert. Wenn Kabel, dann Homebrew Wired, ansonsten vielleicht MySensors.
Gruß,
   Thorsten
FUIP

Franz Tenbrock

schau mal hier
https://forum.fhem.de/index.php/topic,46205.msg472943.html#msg472943

da müsste es stehen wie ich es gemacht hab, hab auch lange rumgegurkt, funktioniert jetzt schon länger ohne Probleme
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Jogi

Nach langem Experimentieren habe ich es nun mit einem WeMos D1 Mini und ESP-Easy hinbekommen, das Ganze in FHEM anzuzeigen. Bei Abfragen im 3-Sekundentakt funktioniert das ganz zuverlässig.

Jetzt muss ich nur noch schauen, ab die Einparksteuerung damit realisierbar ist.

Der Plan:
Ich werde mal versuchen, eine Steuerung zu bauen, bei der der WeMos eingeschaltet wird, wenn das Garagentor geöffnet wird und dann im 3s-Takt Messungen liefert. Wenn ein gewisser Abstand erreicht ist, wird ein Signal ausgegeben. Sobald das Garagentor wieder geschlossen ist, schalte ich den WeMos wieder ab, damit nicht die ganze Zeit Daten gefunkt werden.
Bin mal gespannt, ob das funktioniert. Wenn nicht, wird es doch eine stand-alone-Lösung mir Arduino.


Franz Tenbrock

bei mir hängt das Garagentor an einem HM Schaltaktor, hat also nicht immer Strom, hat was mit sicherheit etc zu tun,
das  dann mit Licht in Garage und dem Wemos kombinieren und schon ist es gut.
wird garantiert funktionieren
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Jogi

Zitat von: Franz Tenbrock am 10 April 2017, 18:00:24
wird garantiert funktionieren
LEIDER funktioniert es nicht so wie ich will.
Ich habe den WeMos, an dem der HC-SR04 hängt, über eine Funksteckdose mit Strom versorgt.
Geht das Garagentor auf, schaltet die Steckdose ein und beim Schließen wieder aus.
LEIDER dauert es nach dem Einschalten dann aber ca. 30 Sekunden, bis der HC-SR04 einen Wert liefert. Bis dahin steht er auf "0".
Nach den 30 Sekunden misst er super, aber das ist natürlich zu spät.
Ich habe den Delay in ESPEasy im Device und in der Config auf 2 gestellt. Trotzdem dauert es so lange.

Hat einer eine Idee?


Franz Tenbrock

für Autos gibt es doch die einbaubaren Sensoren mit dem Display für vorne. Nimm ein 12 Volt Netzteil das eingeschaltet wird sobald das Garagentor Strom bekommt dann geht das Teil sofort an,. die Sensoren klebst du an die Wand und das Display so hoch das man es aus dem Auto sehen kann.
Es geht doch darum das du den Abstand Auto Wand siehts?
Ich habe einfach einen Spiegel so montoert das ich sehe wie nah ich an der Wand bin, analog halt
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Jogi

Zitat von: Franz Tenbrock am 13 April 2017, 18:56:48
für Autos gibt es doch die einbaubaren Sensoren mit dem Display für vorne. Nimm ein 12 Volt Netzteil das eingeschaltet wird sobald das Garagentor Strom bekommt dann geht das Teil sofort an,. die Sensoren klebst du an die Wand und das Display so hoch das man es aus dem Auto sehen kann.
Es geht doch darum das du den Abstand Auto Wand siehts?
Ich habe einfach einen Spiegel so montoert das ich sehe wie nah ich an der Wand bin, analog halt
Das Problem ist, dass das Auto nicht an der Wand, sondern ca. 50 cm davor halten soll, damit man z.B. mit der Mülltonne noch durch kommt.