Temperaturwerte mit ESP8266 an FHEM senden

Begonnen von Klausi, 26 April 2015, 14:10:12

Vorheriges Thema - Nächstes Thema

Klausi

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

Samsi

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.



FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

Klausi

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

Franz Tenbrock

#3
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
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

Nepumuk4321

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
FHEM@RPI2, HMUSB; Keymatic;Thermostate (HM-CC-RT-DN); Rolladenaktoren(HM-LC-BI1PBU-FM); 2xConfig-Firmata@ArduinoUno mit Relaisausgängen und DS18B20;Schaltaktor(HM-LC-SW1-BA-PCB); Rauchmelder(HM-SEC-SD); ArduinoNano+ nRF24L01 MySensors;   FHEM@RPI1 als Teststation mit RF1101se@ArduinoNano.....

littleswabi

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

Tipetan

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
>-> Eine NULL kann ein bestehendes Problem verzehnfach <-<
Raspberry Pi 2 Model B | FHEM 5.6 | CUL V3.4 (culfw 1.58 + Insta) | HMLAN | Berker (INSTA) Funkkomponenten
Entwicklung auf Raspberry Pi 2 B+

Nepumuk4321

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
FHEM@RPI2, HMUSB; Keymatic;Thermostate (HM-CC-RT-DN); Rolladenaktoren(HM-LC-BI1PBU-FM); 2xConfig-Firmata@ArduinoUno mit Relaisausgängen und DS18B20;Schaltaktor(HM-LC-SW1-BA-PCB); Rauchmelder(HM-SEC-SD); ArduinoNano+ nRF24L01 MySensors;   FHEM@RPI1 als Teststation mit RF1101se@ArduinoNano.....