Zerowanie licznika impulsów przy resecie ESP32

iM@rek
Posts: 376
Joined: Thu Feb 09, 2023 1:25 pm

Post

klew wrote: Sat Apr 13, 2024 2:20 pm Włącz moduł, nabij trochę impulsów, poczekaj 1h i wtedy zresetuj.
ok, tak zrobię.
Jak/gdzie mam sprawdzić ten czas, o którym pisałeś?
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

W poprzednim poście napisałem jaką metodą się go ustawia. Przeszukaj repo GG i zobacz ile tam jest ustawione
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

https://github.com/krycha88/GUI-Generic ... GUI.h#L250

W GG dla liczników ustawione jest 10 min, zmień na 10s

Jeśli w logach (z fram) widzisz xRead / xWrite (dodałem "x") to odczyt i zapis działa poprawnie.
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
iM@rek
Posts: 376
Joined: Thu Feb 09, 2023 1:25 pm

Post

Dziękuję kolegom.
Faktycznie, po dłuższym czasie nie tracił impulsów.
@LukFud: Zmieniłem na 10s.
Podłączyłem monitor i dołączam kawałek logów.

Nie podoba mu się ID produktu: 0x358 i nie może znaleźć FRAMa - zaznaczyłem "***"

Code: Select all

Creating Impulse Counter: impulsePin(14), delay(10 ms)
Supla - starting initialization
*** Unexpected Product ID: 0x358 ***
*** Unable to find I2C FRAM ***
SuplaConfigManager: config file size 401
SuplaConfigManager: initializing storage from file…
SuplaConfigManager: init result 1
GPM[0]: config loaded successfully
GPM[1]: config loaded successfully
GPM[2]: config loaded successfully
GPM[3]: config loaded successfully
Z kolei na stronie konfiguracji modułu pokazuje kilka czujników I2C, min. FRAM o adr. 0x50
FRAM jest ok, zapisywałem i odczytywałem z niego informacje pod Arduino, działa.
Kawałek rozpoznania FRAM z Arduino:

Code: Select all

I2C device address 0x50
WP pin number 13
Write protect management: true
Memory Chip initialized
FRAM Device IDs
Manufacturer 0xA
ProductID 0x358
Density code 0x3
Density 64K
Device identfied automatically
Kilka postów wyżej jest kawałek kodu do obsługi FRAM, tylko aktualnie offset zmieniłem na 40.
Pewnie coś jeszcze trzeba ustawić, tylko co?
A może Supla odrzuca ten identyfikator 0x358 - to pamięć Fujitsu MB85RC64TA

Szukam dalej:
komunikat: "Unable to find I2C FRAM" pochodzi z biblioteki fram_i2c.h

Przy okazji: jest w niej też czas zapisu do FRAM:

Code: Select all

#define SUPLA_FRAM_WRITING_PERIOD 10 * 1000ul
Czyli 10 ms. Jak to się ma do zaproponowanej wcześniej zmiany z 600 na 10 sekund?
EDIT: to jest dla FRAM, a tamto do normalnej pamięci, więc się nie gryzie ;-)
Last edited by iM@rek on Sun Apr 14, 2024 6:13 am, edited 1 time in total.
iM@rek
Posts: 376
Joined: Thu Feb 09, 2023 1:25 pm

Post

Po dalszych sprawdzeniach:
1. w GUI-Generic.ino:

Code: Select all

#include <supla/storage/fram_i2c.h>
Supla::FramI2c fram(0x50, FRAM_OFFSET);
FramI2C.h jest od kolegi @LukFud. "Wprowadza" obsługę pamięci FRAM do Supli przy pomocy bibliotek Adafruit.
2. FramI2c.h bazuje na Adafruit FRAM I2C library, a ta nie rozpoznaje pamięci Fujitsu MB85RC64...
Tak to chyba wygląda.
Mam biblioteki, które współpracują z tymi pamięciami:
https://github.com/sosandroid/FRAM_MB85RC_I2C

No i chyba trzeba by pozmieniać FramI2c.h, żeby z nimi współpracowało...
Dobrze myślę?
Ale jestem za cienki, żeby to dopasować.
A może jest jakiś inny sposób, żeby zaczęło to działać?
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

iM@rek wrote: Sat Apr 13, 2024 9:08 pm
W poprzedniej wypowiedzi wprowadziłem Cię w błąd, zmiana o której napisałem (600 -> 10) nie ma zastosowania dla framu w GG.

Ogólnie, jeśli zabrałeś się za modyfikację GG, to równie dobrze mógłbyś poskładać swoją kompilację na bazie WebInterface biblioteki SD.

Co do

Code: Select all

ProductID 0x358
tą linię biblioteki adafruit https://github.com/adafruit/Adafruit_FR ... 2C.cpp#L70, zamień na:

Code: Select all

if (prodID != 0x510 && prodID != 0x358) {
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
iM@rek
Posts: 376
Joined: Thu Feb 09, 2023 1:25 pm

Post

lukfud wrote: Sun Apr 14, 2024 7:31 am
iM@rek wrote: Sat Apr 13, 2024 9:08 pm
W poprzedniej wypowiedzi wprowadziłem Cię w błąd, zmiana o której napisałem (600 -> 10) nie ma zastosowania dla framu w GG.
Tak, zorientowałem się i zrobiłem EDIT w poprzednim poście.
Ogólnie, jeśli zabrałeś się za modyfikację GG, to równie dobrze mógłbyś poskładać swoją kompilację na bazie WebInterface biblioteki SD.
Może w przyszłości, brak wiedzy i czasu. Wolę bazować na GG Krychy, to załatwia wiele spraw za mnie, np. Konfigurację przez www.
Co do

Code: Select all

ProductID 0x358
tą linię biblioteki adafruit https://github.com/adafruit/Adafruit_FR ... 2C.cpp#L70, zamień na:

Code: Select all

if (prodID != 0x510 && prodID != 0x358) {
Też wpadłem w nocy na to, że można spróbować "oszukać" identyfikator w bibl. Ady.
Dziękuję za pomysł i gotowca. Zmienię i dam znać.
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

iM@rek wrote: Sun Apr 14, 2024 10:15 am Też wpadłem w nocy na to, że można spróbować "oszukać" identyfikator w bibl. Ady.
Dziękuję za pomysł i gotowca. Zmienię i dam znać.
Na pewno będzie działać, bo u siebie mam tak samo ;)
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
iM@rek
Posts: 376
Joined: Thu Feb 09, 2023 1:25 pm

Post

Nie wytrzymałem i sprawdziłem po zmianach. Jest ok z małym wyjątkiem.

Code: Select all

Creating Impulse Counter: impulsePin(14), delay(10 ms)
Supla - starting initialization

I2C FRAM is connected at address: 0x50
Storage initialization
xReadStorage: 8; Read: [53 55 50 4C 41 1 0 1 ]
Storage: Number of sections 1
Reading section: 0
xReadStorage: 7; Read: [3 8 0 C0 21 C0 21 ]
Section type: 3; size: 8
storedCRC 8640, CRC calc 8640[/b]
	SuplaConfigManager: config file size 401
	SuplaConfigManager: initializing storage from file…
	SuplaConfigManager: init result 1
	GPM[0]: config loaded successfully
	GPM[1]: config loaded successfully
	GPM[2]: config loaded successfully
	GPM[3]: config loaded successfully
	Button[0]::onLoadConfig: skip
	Channel[4] temperature correction 0.000000
	Channel[4] humidity correction 0.000000
Validating storage state section with current device configuration
Storage state section validation successful
xReadStorage: 8; Read: [6 0 0 0 0 0 0 0 ]
ImpulseCounter[5] - set counter to 6
Czyli jest ok, ale później, co kilkadziesiąt linii, jest:

Code: Select all

[  4931][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
Powtarza się to w takiej mniej więcej sekwencji:

Code: Select all

[  9292][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
Received ChannelConfigFinished for channel 1
[ 10314][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
Received SetChannelConfig for channel 2, function 520, config type 0, config size 108
Channel[2]: handleChannelConfig, func 520, configtype 0, configsize 108
Sending channel config result OK (1)
Send: [53 55 50 4C 41 15 0B 00 00 00 B4 02 00 00 03 00 00 00 01 00 02 ]
Send: [53 55 50 4C 41 ]
Send: [53 55 50 4C 41 15 0C 00 00 00 67 00 00 00 0E 00 00 00 00 00 00 00 00 00 00 00 00 00 98 16 75 40 ]
Send: [53 55 50 4C 41 ]
[ 11383][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
Channel(2) value changed to 33.65
Channel(3) value changed to 1017.04
Received ChannelConfigFinished for channel 2
Send: [53 55 50 4C 41 15 0D 00 00 00 67 00 00 00 0E 00 00 00 01 00 00 00 00 00 00 00 00 E0 7A 54 39 40 ]
Send: [53 55 50 4C 41 ]
[ 12423][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
Received SetChannelConfig for channel 3, function 520, config type 0, config size 108
Channel[3]: handleChannelConfig, func 520, configtype 0, configsize 108
Sending channel config result OK (1)
Send: [53 55 50 4C 41 15 0E 00 00 00 B4 02 00 00 03 00 00 00 01 00 03 ]
Send: [53 55 50 4C 41 ]
Send: [53 55 50 4C 41 15 0F 00 00 00 67 00 00 00 0E 00 00 00 02 00 00 00 00 00 00 00 00 00 80 D3 40 40 ]
Send: [53 55 50 4C 41 ]
[ 13483][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
Received ChannelConfigFinished for channel 3
Send: [53 55 50 4C 41 15 10 00 00 00 67 00 00 00 0E 00 00 00 03 00 00 00 00 00 00 00 00 60 57 C8 8F 40 ]
Send: [53 55 50 4C 41 ]
[ 14531][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
Teraz to wysyłam, żeby nie uciekło, potem zobaczę, co jest w tej 513 linii Wire.cpp

I jeszcze czasami powtarza się coś takiego:

Code: Select all

[296365][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿtFrom(): i2cRead returned Error 263
[298423][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
Reasumując:
Liczy, komunikuje się, pamięta stan po resecie.
Tylko te komunikaty o błędzie odczytu...
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

iM@rek wrote: Sun Apr 14, 2024 12:50 pm Tylko te komunikaty o błędzie odczytu...
U mnie takich błędów nie ma.
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl

Return to “Ogólna dyskusja”