ESP8266 mit ESPEasy in wenigen Minuten an Fhem anbinden

Begonnen von Reinhart, 26 Dezember 2015, 10:33:51

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

Hi arokh12,

äh wozu den Arduino??

Der ESP ist doch ein (leistungsfähigerer) Microcontroller mit WLAN integriert!

Wenn du bzgl. Programmierung Arduini etc. gewohnt bist (habe auch so begonnen):

der ESP lässt sich auch direkt aus der Arduino-IDE heraus programmieren, im Prinzip wie ein Arduino.

Musst nur das entsprechende Board installieren und evtl. bzgl. Libraries mal schauen, ob es eine spezielle (bessere) für den ESP gibt (prinzipiell kannst du aber erst mal auch mit der Arduino Library ins Rennen gehen).

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MadMax-FHEM

Nachtrag:

bin nicht ganz sicher was du erreichen willst aber der ESP hat eine serielle Schnittstelle Tx/Rx und der Arduino...
...also Tx->Rx und Rx->Tx und sie "unterhalten" sich.

Fehlt nur noch SW die was schickt und was bekommt ;-)

Was es gibt ist eine Software SerialBridge (glaube ich heißt sie), die per WLAN einfach Seriell annimmt und an den ESP weiter gibt, der gibts es dann über seine seriellen Ausgänge weiter und umgekehrt.

Also Serielles Echo über WLAN...

Trotzdem noch mal: ich sehe keinen Sinn im Arduino...
...da der eigentlich nichts kann, was der ESP nicht selber schon kann...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

arokh12

Hallo,

danke für deine Hilfe, ich habe den ESP8266-01, welcher ja nur 2 GPIO hat. Jetzt wollte ich aber 4 Ausgäng schalten, also ist er ja nicht dafür geeignet. Deswegen habe ich den Arduino Pro Mini per Softwareserial bridge mit dem ESP verbunden.

Mein Gedanke war jetzt, dass ich einen Link über http zur ESPeasy aufrufe, welcher mir dann eine Serielle Nachricht an den Arduino sendet, und diesen dann so zu steuern.

So klappt es ja jetzt auch, wenn ich z.b. einen GPIO am esp schalten will.

MfG
arokh12

schka17

Zitat von: arokh12 am 18 Juli 2016, 15:24:42
Hallo,

danke für deine Hilfe, ich habe den ESP8266-01, welcher ja nur 2 GPIO hat. Jetzt wollte ich aber 4 Ausgäng schalten, also ist er ja nicht dafür geeignet. Deswegen habe ich den Arduino Pro Mini per Softwareserial bridge mit dem ESP verbunden.

Mein Gedanke war jetzt, dass ich einen Link über http zur ESPeasy aufrufe, welcher mir dann eine Serielle Nachricht an den Arduino sendet, und diesen dann so zu steuern.

So klappt es ja jetzt auch, wenn ich z.b. einen GPIO am esp schalten will.

MfG
arokh12
Also ja, es gibt die Funktion serial Server (experimentell), aber gibt auch die Möglichkeit einen MiniPro als extender zu verwenden. Dann brauchst du kein Telnet und kannst über HTTP oder MQTT steuern.


Sent from my iPad using Tapatalk
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

arokh12

Hallo schka17,

wie meinst du das mit dem extender? Kannst du das mal näher beschreiben oder mir einen link geben?

Danke,
arokh12

schka17

Zitat von: arokh12 am 18 Juli 2016, 15:44:22
Hallo schka17,

wie meinst du das mit dem extender? Kannst du das mal näher beschreiben oder mir einen link geben?

Danke,
arokh12
Hier findest du die sourcen
https://github.com/ESP8266nu/ESPEasySlaves/tree/master/MiniProExtender
Damit kannst du die i/o-ports eines mini pro mit esp-easy nutzen.


Sent from my iPad using Tapatalk
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

Edi77

Hallo,

War alles etwas einfacher als ich gedachte habe  ;D notify durch at ersetzt und schon läufts


define OLED_ESP67 dummy
define esp_oled67 at +*{2880}00:00:30 {\
my $temp=(ReadingsVal ("KS300","temperature","0"));;\
my $humi=(ReadingsVal ("KS300","humidity","0"));;\
my $wind=(ReadingsVal ("KS300","wind","0"));;\
my $rain=(ReadingsVal ("KS300","rain","0"));;\
my $pressnn=(ReadingsVal ("BMP180OUTDOOR","pressure-nn","0"));;\
my $energieb=(ReadingsVal ("POWERZAEHLER","P_Bezug_Watt","0"));;\
my $energiee=(ReadingsVal ("POWERZAEHLER","P_Einsp_Watt","0"));;\
# Log 3, "set OLED_ESP67: $temp$humi";;\
{GetHttpFile("192.168.1.67:80","/control?cmd=lcdcmd,clear")};;\
{GetHttpFile("192.168.1.67:80","/control?cmd=lcd,1,1,Temp:+$temp+Hum:+$humi")};;\
{GetHttpFile("192.168.1.67:80","/control?cmd=lcd,2,1,Wi:+$wind+Re:+$rain")};;\
{GetHttpFile("192.168.1.67:80","/control?cmd=lcd,3,1,hPa:+$pressnn")};;\
{GetHttpFile("192.168.1.67:80","/control?cmd=lcd,4,1,B:+$energieb+E:+$energiee")};;\
}
attr esp_oled67 verbose 0

Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

immi

Zitat von: schka17 am 18 Juli 2016, 15:38:11
Also ja, es gibt die Funktion serial Server (experimentell), aber gibt auch die Möglichkeit einen MiniPro als extender zu verwenden. Dann brauchst du kein Telnet und kannst über HTTP oder MQTT steuern.

Hi arokh12
I changed a little the ser2net of espeasy in order to attach 2 serial ports
http://www.esp8266.nu/forum/viewtopic.php?f=6&t=1087#p5915
It is running very well since 4 weeks for me for  a different application, in which I connect 2 serial ports to one esp8266 and share them to fhem.

But in your case I would follow the suggestion of schka17; no ser2net no further arduino.
if you want several pins use a pin multiplier or buy a ESP8266-12E.



b.r.
immi

Franz Tenbrock

Hallo Joachim MadMax-FHEM
hab auf einem Breadboard den HC_SR04 aufgebaut und es klappt alles soweit mit der Messung.
Da ich den DYB nicht ans laufen bekomme, irgendwie hab ich beim flashen der nodemcu Probleme, soll hier aber nicht weiter stören, werde ich nun es doch mit dem HC probieren.

Was muss man beachten um eine möglichst lange Kabellänge zwischen Sensor und Nodemcu zu realisieren. die beiden Widerstände die am Echo sind in die Nähe des Sensors, oder besser oben an die Nodemcu

Ultraschall Aufbau.JPG

Bei 150 cm überhaupt keien Probleme , 120 ginge so grade, denke die nodemcu sollte nicht im feuchten Dom hängen. Ev kann ich den Sensor mit Vergussmasse schützen.
Hab an Widerständen einen 2,2 k und einen 4,7 K
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

MadMax-FHEM

Hi Franz,

das mit den Widerständen sollte egal sein (gut man könnte jetzt noch die einzelnen Kabelwiderstände reinrechnen und schauen wo eher 3,3V rauskommen ;-)  ).

Ich selbst habe (wie geschrieben) die Pegelwandler im Einsatz.
Dieser wandelt immer (in beide Richtungen) auf den vom Empfänger "gewünschten" Pegel...

Ja, ich denke der ESP sollte nicht feucht werden ;-)

Bei mir ist es so:

ich habe den Ultraschall in einem Rohr (Installationskunststoffrohr 5cm Durchmesser oder so), damit der Wasserpegel etwas ruhiger erfasst werden kann (hab ich irgendwo mal auf youtube gesehen und fand es logisch/gut).
Weil ich den da eh schon mit Silikon festgeklebt hab, hab ich ihn auch gleich noch "vergossen", also bis auf die Ultraschallöffnungen natürlich ;-)

Der ESP hängt dann an 1 oder 1,2m Kabel sicher in einem Gehäuse verbaut in einem (trockenen) Kämmerchen auf dem Balkon wo auch der Tank (in 1m Entfernung ;-)  ) drinnen "hängt".

Ich hatte den Ultraschall sogar schon (gleich das erste Mal) geflutet.
War etwas zu optimistisch beim Befüllen, obwohl ich ja per Browser im schnellen Takt nachgesehen habe wie voll er denn ist ;-)

Dachte schon er wär kaputt...
Habe dann einen 2ten mal geflutet (den bereits gefluteten wollte ich nicht ausbauen weil ja der Tank grad voll war und extra leer laufen lassen wollte ich ihn nicht) um zu sehen, ob der das aushält und nach einigem Ausschütteln und so ging er wieder.

Der im Tank (also der eigentlich wichtige) ging nach ein paar Tagen (oder war es auch nur ein langer Tag ;-)  ) wieder und geht noch: ca. 4 Monate mittlerweile.

Wie lang der Sensor das macht in der doch etwas feuchteren Umgebung wird sich zeigen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Franz Tenbrock

#250
so habe nun auf 2 Rasterplatinchen alles verlötet
Kabellänge 135 cm ( Netzwerkkabel ) dann alles mit Heisskleber vergossen

vorher natürlich Funktionsprobe

es läuft !

mit espeasy eigentlich ein Klacks


Hier die Einstellungen

Nodemcu esoeasy device.JPG
Nodemcu esoeasy device.JPG
nodemcu espeasy Hardware.JPG

und hier wie die Hardware aussieht
Ultraschall fertig.JPG

so nun einbauen und die Werte an FHEM übertragen
dann in die Berechnung von der Zisterne integrieren ( FHEMWIKI Zisterne Ultraschall )

Hier die Definitio den MQTT
#MQTT FHEM
define mqttServer MQTT 127.0.0.1:1883
attr mqttServer room MQTT

define ESP1_D1 MQTT_DEVICE
attr ESP1_D1 IODev mqttServer
attr ESP1_D1 room MQTT

#Abstand ist die Variable die vom ESP übergeben wird
attr ESP1_D1 stateFormat Abstand
attr ESP1_D1 subscribeReading_Abstand /fhem/ESP1/1/Abstand

?? irgendwie konnte man doch früher Bilder einfügen ??
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

arokh12

Hallo,

danke für den Tipp mit dem Promini Extender. Es funktioniert perfekt.
Genau so habe ich mir das vorgestellt.

Danke nochmal,

arokh12

Franz Tenbrock

#252
Hallo
wer kann mal kurz helfen, hab da gerade ein Brett vor dem Kopf

Abstand ist ja die Variable die vom ESP an FHEM übergeben wird und
als ESP_D1   mit hier nun 5,91 angezeigt wird.

MQTT
mqttServer      opened
MQTT_DEVICE
ESP1_D1    5.91

http://www.fhemwiki.de/wiki/Zisterne:_Füllstandsberechnung_mittels_Ultraschallsensor#Berechnung_des_Tankinhalts

Die Berechnung mit dem 1wire Sensor im Wiki ist folgende:


define Zisterne OWCOUNT DS2423 A2D993000002 3600
attr Zisterne room OWX
Der verwendete 1-Wire Counter hat zwei Eingänge: A und B. Mit BName wird nur der Wert von Eingang B für die Berechnung benutzt:
attr Zisterne BName USensor
Es ist möglich, direkt einen Offset anzugeben. Das ist der Abstand vom Oberrand der Zisterne bis zum Ultraschallsensor.
attr Zisterne BOffset -32
attr Zisterne BUnit cm|cm
Weitere erforderliche Attribute:
attr Zisterne IODev USB9097
attr Zisterne model DS2423emu
attr Zisterne nomemory 1
Berechnung des aktuellen Wasserstands in cm vom Grund der Zisterne:
define Wasserstand readingsProxy Zisterne:USensor
attr Wasserstand alias Wsserstand (max 160) aktuell in cm
attr Wasserstand group Zisterne
attr Wasserstand room OWX
attr Wasserstand valueFn { (-1*(ReadingsVal("Zisterne","USensor", "160")-160)) }
Berechnung des aktuellen Wasservolumens in der Zisterne:
define Tankinhalt readingsProxy Zisterne:USensor
attr Tankinhalt alias Zisterne (max 10000) aktuell  in Liter
attr Tankinhalt group Zisterne
attr Tankinhalt room OWX
Wichtig: die folgende Attribut-Definition ist ohne Zeilenumbrüche einzugeben:
attr Tankinhalt valueFn { int((0.5*(20106-((6400*(acos(1-((ReadingsVal("Zisterne","USensor", "160")+0)/80)))-(sqrt(160*(ReadingsVal("Zisterne", "USensor", "160")+0)-((ReadingsVal("Zisterne", "USensor", "160")+0)**2))*(80-(ReadingsVal("Zisterne", "USensor", "160")+0)))))))) }



define Abstand_ohne_Offset readingsProxy ESP1_D1:Abstand
Abstand wird auch schonmal angezeigt, jetzt muss der Offset abgezogen werden einfach 30 cm zB
das ist der Abstand des Sensors zum maximalen Füllstand der Zisterne
??
valueFn { (-1*(ReadingsVal("????????","???????", "160")-160)) }

wenn alles läuft pack ich das als weiteres Beispiel ins Wiki
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

Edi77

Hallo Franz Tenbrock,

Gefällt mir was du da gemacht hast, wird ich bei Gelegenheit auch mal umsetzen!

Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Edi77

Um nach mal auf meinen Beitrag https://forum.fhem.de/index.php/topic,46205.msg471660.html#msg471660 zurück zu kommen.
Der ESP hat ständig Verbindung ließt die Werte der Sensoren, aber sendet nicht an den FHEM.
Auf dem FHEM Server komme keine Werte an. Habe jetzt mal Sensor Delay auf 150 Sek. gestellt. Bis jetzt hat er sich immer nach 3 - 5 Tagen verabschiedet.
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D