ESP8266 Primary GUI

User avatar
Piotr61
Posts: 54
Joined: Fri Sep 15, 2017 12:59 pm

Fri Feb 22, 2019 12:20 pm

To prawdopodobnie przez zbyt długie ... "przebywanie" w funkcji SuplaDevice.iterate().
A WatchDog czuwa i resetuje uC.
Spróbuj w ramach testu zmienić rozdzielczość DS-ów na 9-bitów, co znacząco skróci czas oczekiwania na konwersję temperatury.
Popatrz:

Code: Select all

double get_temperature(int channelNumber, double last_val) {
  double t = -275;
  if ( sensor[channelNumber].getDeviceCount() > 0 ) {
    sensor[channelNumber].requestTemperatures();	
    t = sensor[channelNumber].getTempCByIndex(0);
    if (t == -127) t = -275;
  }
  return t;
}
5(DS-ów) * 0.85s(czas konwersji dla 12 bitów )do tego paręnaście resetów magistrali 1wire, to już będzie z 5 sekund jak nic , a to już wieczność dla mikrokontrolera ESP i nie tylko ;-)
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem
Patryk
Posts: 353
Joined: Mon Jan 07, 2019 7:51 pm

Fri Feb 22, 2019 1:30 pm

Znów WIELKIE dzięki !!!

Miałem rozdzielczość ustawioną na 11.
Zmieniłem pierwsze na 9 i wszystko zaczęło działać.
Teraz zmieniłem na 10 i nadal działa.
Czyli 1 x DHT22 i 5 x DS.
Jeszcze raz dziękuję !!!.
vajera
Posts: 177
Joined: Wed Oct 31, 2018 7:58 am

Fri Mar 08, 2019 7:56 am

Dodałem kod ze strony 11 do procedury WiFi_up(), ale przy braku WiFi przekaźniki dalej nie działają :-( Dopiero teraz analizując Primary GUI doszedłem do wniosku, że ten kod powinien też pojawić się w pętli loop żeby w przypadku braku połączenia mogła zadziałać metoda Iterate - dobrze myślę? I jeszcze jedno - czy ta modyfikacja kodu może mieć jakiś wpływ na to, że nie mogę się zalogować do modułu po IP?
krycha88
Posts: 199
Joined: Fri Nov 16, 2018 7:25 am

Fri Mar 08, 2019 8:09 am

vajera wrote:
Fri Mar 08, 2019 7:56 am
Dodałem kod ze strony 11 do procedury WiFi_up(), ale przy braku WiFi przekaźniki dalej nie działają :-( Dopiero teraz analizując Primary GUI doszedłem do wniosku, że ten kod powinien też pojawić się w pętli loop żeby w przypadku braku połączenia mogła zadziałać metoda Iterate - dobrze myślę? I jeszcze jedno - czy ta modyfikacja kodu może mieć jakiś wpływ na to, że nie mogę się zalogować do modułu po IP?
ja rozwiązałem sobie to poprawiając w SuplaDeviceClass::iterate w pliku SuplaDevice oraz WiFi_up() w taki sposób jak to napisałeś.

Code: Select all

if (!Params.cb.svr_connected()) {

	status(STATUS_DISCONNECTED, "Not connected");
	registered = 0;
	last_response = 0;
	last_sent = 0;
	last_ping_time = 0;

	if (!Params.cb.svr_connect(Params.reg_dev.ServerName, 2015)) {

		supla_log(LOG_DEBUG, "Connection fail. Server: %s", Params.reg_dev.ServerName);
		Params.cb.svr_disconnect();

		wait_for_iterate = millis() + 2000;
		return;
	}

}
na

Code: Select all

if (!Params.cb.svr_connected()) {

	status(STATUS_DISCONNECTED, "Not connected");
	registered = 0;
	last_response = 0;
	last_sent = 0;
	last_ping_time = 0;

	if (time_diff > 0) {

		for (a = 0; a < Params.reg_dev.channel_count; a++) {

			iterate_relay( & channel_pin[a], &Params.reg_dev.channels[a], time_diff, a);
			iterate_sensor( & channel_pin[a], &Params.reg_dev.channels[a], time_diff, a);
			iterate_thermometer( & channel_pin[a], &Params.reg_dev.channels[a], time_diff, a);
			iterate_relaybutton( & channel_pin[a], &Params.reg_dev.channels[a], time_diff, a);

		}

		last_iterate_time = millis();
	}

	if (!Params.cb.svr_connect(Params.reg_dev.ServerName, 2015)) {

		supla_log(LOG_DEBUG, "Connection fail. Server: %s", Params.reg_dev.ServerName);
		Params.cb.svr_disconnect();

		wait_for_iterate = millis() + 2000;
		return;
	}

}
vajera
Posts: 177
Joined: Wed Oct 31, 2018 7:58 am

Fri Mar 08, 2019 9:15 am

Dzięki ;) rozumiem, że tych kilka pierwszych linii kodu w pętli loop też zmieniłeś?
krycha88
Posts: 199
Joined: Fri Nov 16, 2018 7:25 am

Fri Mar 08, 2019 9:36 am

jeżeli poprawiłeś WiFi_up to wg mnie nic nie trzeba było więcej poprawiać w loop'ie.
vajera
Posts: 177
Joined: Wed Oct 31, 2018 7:58 am

Fri Mar 08, 2019 10:09 am

krystianmen wrote:
Fri Mar 08, 2019 9:36 am
jeżeli poprawiłeś WiFi_up to wg mnie nic nie trzeba było więcej poprawiać w loop'ie.
masz rację - w loop jest "if" a nie "while" :-)

ps. a jakieś pomysły dlaczego nie mogę zalogować się na stronę konfiguracyjną po IP modułu? na Wemos to działało?
może to być kwestia routera?
krycha88
Posts: 199
Joined: Fri Nov 16, 2018 7:25 am

Fri Mar 08, 2019 11:26 am

vajera wrote:
Fri Mar 08, 2019 10:09 am
ps. a jakieś pomysły dlaczego nie mogę zalogować się na stronę konfiguracyjną po IP modułu? na Wemos to działało?
może to być kwestia routera?
masz namyśli tryb konfiguracyjny 192.168.4.1? Co oznacza, że nie możesz się zalogować, błędne hasło czy strona się nie wyświetla?
vajera
Posts: 177
Joined: Wed Oct 31, 2018 7:58 am

Fri Mar 08, 2019 11:37 am

nie, chodzi mi o zalogowanie się "na moduł" po IP gdy jest podłączony do routera, np. celem zmiany ustawień albo aktualizacji online.
krycha88
Posts: 199
Joined: Fri Nov 16, 2018 7:25 am

Fri Mar 08, 2019 11:47 am

vajera wrote:
Fri Mar 08, 2019 11:37 am
nie, chodzi mi o zalogowanie się "na moduł" po IP gdy jest podłączony do routera, np. celem zmiany ustawień albo aktualizacji online.
a jaki masz objaw? strona modułu nie chce się załadować czy jeszcze inny.
Post Reply