ct-Open-Source / Basecamp

An Arduino library to ease the use of the ESP32 in IoT projects
GNU General Public License v3.0
254 stars 48 forks source link

Weboberfläche, ERR_CONNECTION_REFUSED #35

Open drschlaumeier opened 6 years ago

drschlaumeier commented 6 years ago

Hallo, ich habe das Beispiel aus der CT 2018/05 mit dem Temperatursensor aufgebaut, kompeliert und in den ESP32 geladen. Temperatur wird mir auf der Serial Console angezeigt. Ich habe auf dem Captive Portal meinen AP SSID & PW eingetragen und der ESP scheint sich auch zu verbinden. Zumindest kann ich den ESP unter der zugewiesenen IP 192.168.1.23 anpingen.

Ich kann aber nicht die Weboberfläche unter 192.168.1.23 aufmachen. Chrome & Firefox sagen ERR_CONNECTION_REFUSED. Was mach ich falsch?

Danke

Hier noch ein paar Debug Mgs:

Loading config file 
/basecamp.json
Settting APSecret to hnh$v4/M(was )
Settting DeviceName to esp32-test2(was )
Settting WifiConfigured to True(was )
Settting WifiEssid to MYAP(was )
Settting WifiPassword to mypwmypwmypwmypwmypwmypw(was )
Settting my-Temperature to 23.50(was )
Config value for DeviceName: esp32-test2
esp32-test2
esp32-test2
Reset reason: 1
Unsuccessful boots: 1
Config value for APSecret: hnh$v4/M
Secret: hnh$v4/M
Config value for WifiEssid: MYAP
Config value for WifiPassword: mypwmypwmypwmypwmypwmypw
Config value for WifiConfigured: True
Config value for APSecret: hnh$v4/M
Connecting to Wifi
Wifi is configured
Connecting to MYAP
[WiFi-event] event. Bootcounter is 1
[WiFi-event] event: 2
Config value for APSecret: hnh$v4/M
MAC-Address: 30:ae:a4:35:d1:a8, Hardware MAC: 30:ae:a4:35:d1:a8
*******************************************
* ACCESS POINT PASSWORD: hnh$v4/M
*******************************************

Config value for my-Temperature: 23.50
Settting my-Temperature to 23.50(was 23.50)
Config value for my-Temperature: 23.50
Cowardly refusing to overwrite existing key with the same value
Saving config file
{
  "APSecret": "hnh$v4/M",
  "DeviceName": "esp32-test2",
  "WifiConfigured": "True",
  "WifiEssid": "MYAP",
  "WifiPassword": "mypwmypwmypwmypwmypwmypw",
  "my-Temperature": "23.50"
}Config value for my-Temperature: 23.50
Settting my-Temperature to 23.50(was 23.50)
Config value for my-Temperature: 23.50
Cowardly refusing to overwrite existing key with the same value
Saving config file
{
  "APSecret": "hnh$v4/M",
  "DeviceName": "esp32-test2",
  "WifiConfigured": "True",
  "WifiEssid": "MYAP",
  "WifiPassword": "mypwmypwmypwmypwmypwmypw",
  "my-Temperature": "23.50"
}[WiFi-event] event. Bootcounter is 1
[WiFi-event] event: 4
[WiFi-event] event. Bootcounter is 1
[WiFi-event] event: 7
Wifi IP address: 192.168.1.23
Temperatur: Config value for my-Temperature: 23.50
Settting my-Temperature to 23.50(was 23.50)
Config value for my-Temperature: 23.50
Cowardly refusing to overwrite existing key with the same value
drschlaumeier commented 6 years ago

Ich werd hier nicht ganz schlau draus. Also wenn ich Basecamp::ConfigurationUI::always setze kommt die Weboberfläche auf 192.168.1.23. Aber das ist doch die Oberfläche vom AP zur Konfiguration. Die will ich ja jetzt nicht haben, da ich den schon konfiguriert habe....Ach ja, zusätzlich hab ich in der letzten Zeile die Aktuelle Temperatur angezeigt.

192.168.1.23/temperatur funktioniert auch.

Wie bekomme ich jetzt die Weboberfläche wie auf S. 174 ganz oben dargestellt? Das hätte ich jetzt nach der Konfiguration des AP erwartet. Stimmt der Beispielcode nicht mit den Screenshoots des Artikels überein?

Kann man den Beispielcode event. auch in das Git mit aufnehmen?

LG

merlinschumacher commented 6 years ago

Hallo Dr. Schlaumeier,

die Darstellung auf Seite 174 ist aus Platzgründen etwas verkürzt, dass heißt das Configinterface ist rausgeschnitten worden. Ich kann aber mal einen Beispielcode bauen, der ein solches ergebnis baut.

drschlaumeier commented 6 years ago

Hallo, Das wäre super. Normalerweise hab ich ein Captive Portal für die Eingabe der SSID, PWD etc. nur einmal beim allerersten Start zur Konfiguration. Danach eigentlich nie wieder. Im Falle des ESP8266 erledige ich das mit dem Wifimanager https://github.com/tzapu/WiFiManager. Ich brauche dann aber einen Webserver mit Webpage zur Darstellung der Messwerte und wahlweise MQTT. Ich habe auch nicht immer MQTT im Einsatz und verwende manchmal nur http, um mir den extra MQTT Broker zu sparen. Also, Im Temperatur Sensor Beispiel genauso so wie die Darstellung auf S 174 oben.

So, die Frage ist jetzt wie ich das jetzt am elegantesten Umsetzen kann. WebServer::addInterfaceElement geht ja recht gut. Aber wie bekomme ich die Elemente wieder weg oder muss ich komplett neue webpage mit html, css, js etc zusammenbauen?

Danke