Hallo liebe FHEM-Gemeinde,
ich möchte Daten, die das ESP8266-Modul ermittelt, an FHEM per WLAN senden.
Als Beispiel verwende ich die LUA-Scripts von:
http://blog.moneybag.de/fhem-temperaturmessung-mit-dem-esp-8266-und-ds18b20-ohne-arduino-datenuebertragung-per-wlan/
Wenn ich die 3 Lua-Scripte über ESPlorer in den ESP8266 lade und starte erfolgt nach kurzer Zeit:
Temp:20.75 C
HTTP/1.1 401 Authorization Required
WWW-Authenticate: Basic realm="Fhem: login required"
Content-Length: 0
Diese Ausgabe wiederholt sich im 30 sec. Zeitraum.
Die gemessenen Werte erscheinen nicht in FHEM
Kommentiere ich in fhem.cfg die Zeile attr WEB basicAuth d2lraTpwZWRpYQ== aus,
define WEB FHEMWEB 8083 global
#attr attr WEB basicAuth d2lraTpwZWRpYQ==
dann erfolgt
Temp:20.75 C
HTTP/1.1 302 Found
Content-Length: 0
Location: /fhem
in 30 sec Wiederholung.
Die gemessenen Werte erscheinen nun auch in FHEM
Nun meine Frage:
Was muss ich tun, um mit aktiviertem basicAuth attribute, die Daten in FHEM zu empfangen ?
Ich habe ohne Erfolg versucht, innerhalb des
conn:send('GET /fhem?cmd=setreading%20esp8266temp%20state%20T:%20' ..t.. '\r\n HTTP/1.1\r\nHost: .........)
über "Authorization: Basic d2lraTpwZWRpYQ=="
die HTTP-Authentifizierung anzugeben.
Vielen Dank für Eure Hilfe
Klausi
Hi,
also zunächst müsste da stehen:
#attr attr WEB basicAuth d2lraTpwZWRpYQ==
Dann wäre es Sinvoll, wenn Du den ganzen HTTP Aufruf hier posten würdest, der müsste ja dann ungefähr so aussehen:
conn:send('GET /fhem?cmd=setreading%20esp8266temp%20state%20T:%20' ..t.. '\r\n HTTP/1.1\r\nHost: .........\r\nAuthorization: Basic d2lraTpwZWRpYQ==" )
Du kannst dir den Aufbau des Headers auch mit Firebug im Firefox recht gut anschauen, wenn du die seite in Deinem Browser aufrufst und dann vergleichen mit dem was Du sendest.
Vielen Dank Samsi für deine Hilfe,
Ich habe den send-Aufruf nun wie folgt erweitert:
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 d2lraTpwZWRpYQ==\r\n"
.. "Connection: keep-alive\r\n"
.. "Accept: */*\r\n\r\n")
Die Daten treffen nun auch mit aktiviertem <attr WEB basicAuth d2lraTpwZWRpYQ== > in FHEM ein
Nun steht dem Empfang von ESP8266-Daten nichts mehr im Wege
Gruß
Klausi
Hallo, also das hier ist benutzername und Passwort das man über Firebug verschlüsselt vorfindet??
Hab nun noch nie mit Firebug gearbeitet und habe nicht gefunden wo es ist....
Also Firebug installieren
dannn Firefox neu starten
Firebug über das Menü aktivieren, es erscheint die Konsole
dann FHEM starten, es erscheint die Abfrage Benutzer und Passwort.
das gebe ich ein und bestätige dies
richtig??
dann sollte ich soweit ich es verstanden habe das Passwort finden , dies muss ich dann indem lua script einfügen...
Könnt ihr das für Anfänger etwas besser beschreiben dann pack ich das in die Anleitung für dummys. die ist ansonsten soweit fertig
hier die fertige Anleitung, Fehler melden damit ich die dann beseitigen kann. Ich denke damit sollte jeder der Kabel zusammenstecken kann eine esp Temp Sensor bauen können
Hallo,
bin auch gerade an dem Thema dran.
Dank der Anleitung von Franz Tenbrock war das ganze recht einfach umzusetzen. Danke nochmal dafür!!!
Auf meiner Teststation läuft das ganze auch wunderbar (auch mit basicAut).
Auf meinem Hauptsystem, das sich nur durch SSL Verschlüsselung unterscheidet (also Aufruf: https://.....) , geht nichts.
Ich gehe mal davon aus, dass der man hier:
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 d2lraTpwZWRpYQ==\r\n"
.. "Connection: keep-alive\r\n"
.. "Accept: */*\r\n\r\n")
was ändern muss, weiß nur nicht was ?
Gruß
Frank
Hallo :)
ich hätte da auch eine Frage dazu.... man kann doch bestimmt auch mehrere TempSensoren anschließen... Wie muss den das Skript angepasst werden?!
Danke
Hallo Nepumuk4321,
gibt es Neuigkeiten zur SSL Verschlüsselung? Hab nähmlich das gleiche Problem.
Zitat von: Nepumuk4321 am 10 Februar 2016, 19:41:56
....
Auf meinem Hauptsystem, das sich nur durch SSL Verschlüsselung unterscheidet (also Aufruf: https://.....) , geht nichts.
...
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 [i]abcdefgheijklm[/i]\r\n"
.. "Connection: keep-alive\r\n"
.. "Accept: */*\r\n\r\n")
was ändern muss, weiß nur nicht was ?
Gruß
Frank
Gruß
Tipetan
Zitat von: Tipetan am 01 Februar 2017, 14:14:12
Hallo Nepumuk4321,
gibt es Neuigkeiten zur SSL Verschlüsselung? Hab nähmlich das gleiche Problem.
Gruß
Tipetan
Hallo,
Nein der Esp8266 kann meines Wissens kein SSL, bzw gibt keine Lib dafür. Ich habe es so gelöst, dass ich einen zusätzlichen Web Port im Fhem deklariert habe, der nicht verschlüsselt ist. Diesen Port habe ich natürlich nicht ins Internet geroutet. Aus meiner Sicht ist das sicher, da im eigenen WLAN ja WPA2 Verschlüsselung existiert und ein Angreifer in meinem WLAN sein müsste.
Gruß
Gesendet von meinem Redmi 3S mit Tapatalk