Entwicklung: Sensor mit dem ESP8266 WLAN-Funkmodul

Begonnen von locutus, 09 November 2014, 19:30:06

Vorheriges Thema - Nächstes Thema

Franz Tenbrock

Ich überlege ob man nicht neue Threads aufmachen sollte, jeder für einen Sensor Typ.
Hier dann eher allgemeine Fragen oder Entwicklungsarbeit, sonst ist der Thread demnächst so voll das man nichts mehr findet. Nur so als Vorschlag. Ich hab hier ja auch schon einiges zugemüllt. Im Anfängerbereich hat das sicher aber auch nichts zu suchen.
Es wäre dann toll wenn im ersten Post des Threads jeweils die lua Dateien liegen würden und ev auch eine kleine Einführung
So findet man einfach schneller was man sucht.

Ich werde im Wiki auch Schwierigkeiten erwähnen, am Ende...
Muss mich im Wiki aber erst mal einarbeiten. Aber Fotos klappt schon mal :-)

Änderungswünsche dann am besten per pn an mich

Ich selbst hab ja noch CodeProbleme mit dem US Sensor
und ein Regensensor würde mich auch interessieren, vom Code ist das ja sicher ganz einfach, Hab zwar nun einiges zu Lua gelesen ...

Denek es ist besser ich kümmer mich um das Wiki und andere die das Coding beherrschen um den Code
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

locutus

Hallo Franz,

Korrektur für Wiki: Es gibt mindestens 13 verschiedene Versionen ...
Neu hinzugekommen ist das ESP-13.

Ein neuer Thread wird auch früher oder später zugemüllt. Es sei denn, du sperrst den Thread nachdem Posting. Die Dateien gehören in das FHEM SVN Repository (mein Vorschlag: sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/esp8266) oder auf Github abgelegt werden.

Ich habe im ersten Post die Beiträge entsprechend verlinkt.

Franz Tenbrock

OK
ich denke da wird es noch mehr Korrekturen geben.
schon geändert :-)

Ich hab heute einfach mal angefangen damit.
Hab vor gut 1 Jahr schon mal was im WIKI geschrieben, aber anfangs hab ich mich schon etwas schwer getan.

Wenn ich weiß wo ich im Netz suchen muss dann finde ich die lua s ...
Kann den Link ja dann ins Wiki schreiben.

Wäre schön wenn wir in den nächsten Wochen für die meisten Anwendungsfälle lua s hätten.

Mit deiner Platine komme ich schon gut zurecht, blöder Weise hat der USB Adapter ja Zicken gemacht. Wenn ich so was sohn mal gemacht hätte wäre mir das ev. früher aufgefallen
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

Wzut

@Franz, du hast im Wiki das Beispiel mit dem DS1820. Ich verstehe nicht wenn du das auf der einen Seite einfach für Anfänger machen willst du auf der anderen Seite so kompliziert den Wert via GET Methode dem Web Interface übergibst. Ich habe bei meinen Tests den Dummys immer via Telnet den Wert direkt ins Hirn geschossen. Also statt
conn:connect(8083,"192.168.178.46")
conn:send("GET /fhem?cmd=setreading%Entfernungtemp%20state%20T:%20" ..t.. "\r\n"
            .. "HTTP/1.1\r\n"
            .. "Host: www.local.lan\r\n"
            .. "Authorization: Basic dskfhskfh==\r\n"
            .. "Connection: keep-alive\r\n"
            .. "Accept: */*\r\n\r\n")

einfach mit
conn:connect(7072,"192.168.178.46")
conn:send("set Entfernungtemp" .t. "\nexit\n")
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Franz Tenbrock

#169
Als Anfänger der ich immer noch bin, bin ich nicht in der Lage so einen code zu schreiben.
d.h.
Ich habe ihn übernommen und war froh, das das Problem der Anmeldung auf Anhieb funktioniert hat.

Sorry hab gerade gesehen das du dich auf die Entfernungsmessung beziehst, ich dachte es ging um das WIKI !
Das unten geschrieben bezieht sich auch auf die Entfernungsmessung, die leider die letzten 2 Tage liegen geblieben ist.


Zum WIKI ESP8266

Im Doc ist es ja noch etwas ausführlicher erklärt.
Ich lese gerade einiges zu LUA und versuche auch den code zu verstehen, komplizierte verschachtelte Teile geht leider noch nicht.

Für viele Anfänger ist es doch erst einmal wichtig das es überhaupt funktioniert.

Was wir Anfänger brauchen sind sicher gut dokumentierte Sketche, wo also genau erklärt wird was das alles zu bedeuten hat.
Also nicht nur tausche den String hier und da aus , sondern auch warum...

Ich erarbeite mir gerade die LUA Befehle.Es macht mir keinen Spass immer zu fragen, ich wüsste es schon gerne selber.
Auf der anderen Seite bin ich ja nur hierher gekommen weil ich ein Problem habe
Ich möchte meinen defekten US Sensor in der Zisterne austauschen.
mysensors hat aufgrund der Reichweite nicht geklappt, auch da habe ich jeden Schritt dokumentiert, in erster Linie für mich, damit ich auch Wochen später das noch hinbekomme.

Für Profis reichen die INfos sicher in der commandref...

Soweit es die Zeit zulässt kann ich ja die unterschiedlichen Möglichkeiten im WIKI aufnehmen, dabei lerne ich ja auch was  ;D
aber ich hab doch gestern erst angefangen.
So ist es doch schon besser als nichts.

Die Frage ist und die hab ich ja da gestellt
Kann ein Anfänger mit der Information die er da bekommt die Schritte nachmachen ohne Fragen stellen zu müssen.
Da brauche ich Rückmeldungen.

Alternative Wege wie mache ich was,
probleme was kann passieren, bei mir mal wieder inkompatible Hardware,,,
etc

Titel müsste ja auch noch geändert werden da man ja auch noch mit anderer Software mit dem Teil was machen kann.
Ich bin für alle Vorschläge offen.

Locutus hat ja vorgeschlagen bei github die sketche zu sammeln
auch den Link dorthin werde ich einbauen.

Versorgt mich mit Input ich werde es versuchen umzusetzen.

ok?
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

PeMue

Hallo Franz,

ich kann gerne das Wiki korrekturlesen bzw. korrigieren wenn Du willst.
Ich habe mir schon überlegt, analog zu betateilchens RSS_feed Workshop einen für ESP8266 zu machen, denn die Infos sind doch im Netz arg verstreut und der ESP8266 ist ja auch recht vielseitig.
Grundidee: einen Thread nur für den Workshop, einen "Quengel"-Thread für den Rest.
Grundgerüst:
Hardware
  Erklärung
  diverse Typen
  Anschluß Hardware bzw. Programmierung
  ggf. Speicherbereiche
  Linksammlung
Firmware
  AT-Firmware (Expressiv, etc.)
  NodeMCU und ESPlorer
  Programmierung mit Arduino IDE (aber ohne Arduino)
  ...
Aber das ist alles noch recht unausgegoren, aber ich sammle gerade alle Infos als PDF.

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Franz Tenbrock

Schön wenn ich einen Stein ins rollen gebracht habe,,,,
Freue mich über jeden Vorschlag Verbesserung etc...
Fr und Sa allerdings keine Zeit
das vorab
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

PeMue

#172
Zitat von: Wzut am 26 Mai 2015, 10:10:03
Blättere mal zurück bis Antwort #83 am 10 März 2015 von locutus.
Die Transparent Bridge hat es mir angetan :)
Hallo zusammen,

ich hatte eigentlich gedacht, dass dies mit der normalen AT-Firmware und der Konfiguration der Baudrate erledigt ist. Aber es geht scheinbar doch nicht so einfach. Ich wäre mal mit folgenden Befehlen ins Rennen gegangen (meine Firmware kann leider noch keine Baudrate setzen):

AT+CWMODE=1                  // or 3 for both
AT+RST                       // reset
AT+CWJAP="SSID","PASS"       // connect to router
AT+CIFSR                     // get IP address
AT+CIPMUX=0                  // single connection mode
AT+CIPSTART="TCP","192.168.1.11",7778
AT+CIPMODE=1                 // change to data mode

Vielleicht gelingt es, dann muss man nicht immer eine andere Firmware flashen. Hoffentlich ist es dann auch "reboot"-fest.

Gruß PeMue

Edit:
Geht doch nicht so einfach wie beim BTM222, siehe http://forum.fhem.de/index.php/topic,18996.msg299286.html#msg299286.
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Franz Tenbrock

Hallo Franz,

ich kann gerne das Wiki korrekturlesen bzw. korrigieren wenn Du willst.


gerne

hab ja auch immer die docx hochgeladen, darf alles verbessert geändert oder sonst was werden
Ich hoffe halt das durch eine etwas asuführlcihere Doku andere Anfänger weniger Probleme haben....

Wäre klasse wenn hier im Forum bald für jeden erdenklichen Sensor eine ausführlich kommentierte Lösung vorhanden wäre
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

PeMue

Zitat von: Wzut am 28 Mai 2015, 11:26:55
@Franz, du hast im Wiki das Beispiel mit dem DS1820. Ich verstehe nicht wenn du das auf der einen Seite einfach für Anfänger machen willst du auf der anderen Seite so kompliziert den Wert via GET Methode dem Web Interface übergibst. Ich habe bei meinen Tests den Dummys immer via Telnet den Wert direkt ins Hirn geschossen. Also statt
conn:connect(8083,"192.168.178.46")
conn:send("GET /fhem?cmd=setreading%Entfernungtemp%20state%20T:%20" ..t.. "\r\n"
            .. "HTTP/1.1\r\n"
            .. "Host: www.local.lan\r\n"
            .. "Authorization: Basic dskfhskfh==\r\n"
            .. "Connection: keep-alive\r\n"
            .. "Accept: */*\r\n\r\n")

einfach mit
conn:connect(7072,"192.168.178.46")
conn:send("set Entfernungtemp" .t. "\nexit\n")

Hallo wzut,

da fehlt vermutlich noch ein 20, oder?
cmd=setreading%20Entfernungtemp%20state%20T:%20" ..t.. "\r\n"

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Franz Tenbrock

Hallo
das Beispiel was er oben gebracht hat ist doch nicht aus dem Wiki ..
das steht und stand im Wiki
:
conn:send("GET /fhem?cmd=setreading%20esp8266temp%20state%20T:%20" ..t.. "\r\n"
           .. "HTTP/1.1\r\n"
           .. "Host: www.local.lan\r\n"
           .. "Authorization: Basic Rsdfsfdsno6MDYwMg==\r\n"
           .. "Connection: keep-alive\r\n"
           .. "Accept: */*\r\n\r\n")

wo ich das her habe habe ich auch geschrieben

Das Beispiel was ihr da habt war vom Versuch den Dsistanz Sensor mit dem ESP zu verbinden.
Da fehlt mir einfach Erfahrung mit der Programmierei.

Denke werde das Wiki noch ändern,
zuerst was allgmeines dann einige Beispiele, den Temp Sensor halt als erstes.
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

PeMue

Hallo Franz,

die beiden Beispiele sind (bis auf den Variablennamen und das "halbe" fehlende Leerzeichen (%20) identisch.
Bei mir klappt die Übertragung (sogar mit Passwort), allerdings gibt der Sensor nur 10 ° raus bzw. jetzt nur noch 3 °, obwohl ich kurzärmelig dasitze  >:( Da muss ich mal suchen, was ich bei locutus' Board falsch verkabelt/initialisiert habe. Eigentlich sollte da nichts schief gehen können ...

Schönen Abend noch.

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Franz Tenbrock

Hallo
bei mit funktioniert es sowohl mit Locutus Teil als auch mit ESP 8266 01
Ich habe so einen Temp Sensor : DS18B20 Waterproof Dallas Temperature Sensors

Gerade noch mal mit mysensors gespielt, leider ist die Reichweite gegenüber dem kleinen ESP schlecht.

Ziel ist es einen Distanzsensor in die Zisterne einzubauen.  DYP-ME007Y Ultrasonic Sensor Module
Einen Regensensor mit so was aufzubauen:  Rain Detection Sensor

Die Sensoren sind von der mysensors.org Seite.

Hatte halt erst mit mysensors experimentiert

Aber leider bin ich noch auf Code Beispiele von anderen angewiesen.

Bin froh das ich schon mal so viele FHEM Projekte umgesetzt habe
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

PeMue

#178
Zitat von: PeMue am 31 Mai 2015, 20:02:57
Bei mir klappt die Übertragung (sogar mit Passwort), allerdings gibt der Sensor nur 10 ° raus bzw. jetzt nur noch 3 °, obwohl ich kurzärmelig dasitze  >:
Klar, ich habe einen alten DS1820 verbaut und die Umrechnung passt nicht ... Ich versuche mal, das lua Skript anzupassen. Habe jetzt mal meine alten Sensoren aussortiert, damit das nicht mehr passiert.
@Franz/locutus: Mir fehlt da übrigens noch ein Pullup von 1-wire Daten nach Versorgungsspannung, bin mir nicht sicher, ob man den weglassen sollte/kann.

Gruß PeMue

Edit:
Ok, jetzt tut es, ich habe 27 °C, allerdings kann das Skript nur Ganzzahlig, d.h. ich würde die Temperature mit Faktor 10 übertragen und dann wieder teilen.

Wenn jemand weiß, wie man per lua eine passwortgesicherte telnet-Verbindung öffnet, wäre das echt toll. Die html-Geschichte ist mir deutlich zu aufwändig. Falls das bei mir spielt, lade ich es hoch ...
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Franz Tenbrock

Hallo
hier gibts ne Menge Infos
http://iot-playground.com/2-uncategorised/36-esp8266-door-window-sensor-nodemcu-lua-no-arduino
das zB müsste man leicht ändern können für einen Regensensor.
Da gibt es die unterschiedlichsten Sensoren

http://iot-playground.com/

Habe leider die nächsten Tage bis So Abend sehr wenig Zeit
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