ESP8266 Primary GUI

Awatar użytkownika
Piotr61
Posty: 61
Rejestracja: pt wrz 15, 2017 12:59 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:

Kod: Zaznacz cały

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
Posty: 2685
Rejestracja: pn sty 07, 2019 7:51 pm
Lokalizacja: Rybnik

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
Posty: 392
Rejestracja: śr paź 31, 2018 7:58 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
Posty: 5195
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

vajera pisze: pt 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ś.

Kod: Zaznacz cały

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

Kod: Zaznacz cały

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;
	}

}
https://gui-generic-builder.supla.io/
vajera
Posty: 392
Rejestracja: śr paź 31, 2018 7:58 am

Dzięki ;) rozumiem, że tych kilka pierwszych linii kodu w pętli loop też zmieniłeś?
krycha88
Posty: 5195
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

jeżeli poprawiłeś WiFi_up to wg mnie nic nie trzeba było więcej poprawiać w loop'ie.
https://gui-generic-builder.supla.io/
vajera
Posty: 392
Rejestracja: śr paź 31, 2018 7:58 am

krystianmen pisze: pt 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
Posty: 5195
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

vajera pisze: pt 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?
https://gui-generic-builder.supla.io/
vajera
Posty: 392
Rejestracja: śr paź 31, 2018 7:58 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
Posty: 5195
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

vajera pisze: pt 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.
https://gui-generic-builder.supla.io/
ODPOWIEDZ

Wróć do „Nowości”