Proszę o testy: MCP23017, PCF8575 oraz PCF8574

LukaszH
Posty: 642
Rejestracja: sob gru 14, 2019 11:49 pm

Dotarły do mnie PCF8575 ale faktycznie nie idzie tak prosto:
1. Na oficjalnym builderze jak generuje soft to niestety ale nie chcą się załączyć opcja ekspanderów w ustawienia GG. Pomimo iż biorę "załącz" to jak by tego nie wczytuje i ponownie ustawia się "wyłącz". W opcjach dla przekaźników/przycisków jak załączę PCF8575 to i tak nie mogę wybrać pinów ekspandera tylko piny ESP32.
2. Na testowym builderze próbowałem wygenerować soft i wywala mi błąd:

Kod: Zaznacz cały

×
Błąd generowania
GUI-Generic_test_bv4.22_gv6.0.5_pl_16fccbbe56c71283629069fdf0b84ec9/SuplaConfigManager.cpp: In constructor 'SuplaConfigManager::SuplaConfigManager()':
GUI-Generic_test_bv4.22_gv6.0.5_pl_16fccbbe56c71283629069fdf0b84ec9/SuplaConfigManager.cpp:315:38: error: 'MAX_TOKEN_SIZE' was not declared in this scope
     this->addKey(KEY_PUSHOVER_TOKEN, MAX_TOKEN_SIZE, false);
                                      ^~~~~~~~~~~~~~
GUI-Generic_test_bv4.22_gv6.0.5_pl_16fccbbe56c71283629069fdf0b84ec9/SuplaConfigManager.cpp:315:38: note: suggested alternative: 'MAX_HOST_SIZE'
     this->addKey(KEY_PUSHOVER_TOKEN, MAX_TOKEN_SIZE, false);
                                      ^~~~~~~~~~~~~~
                                      MAX_HOST_SIZE
GUI-Generic_test_bv4.22_gv6.0.5_pl_16fccbbe56c71283629069fdf0b84ec9/SuplaConfigManager.cpp:316:37: error: 'MAX_USER_SIZE' was not declared in this scope
     this->addKey(KEY_PUSHOVER_USER, MAX_USER_SIZE, false);
                                     ^~~~~~~~~~~~~
GUI-Generic_test_bv4.22_gv6.0.5_pl_16fccbbe56c71283629069fdf0b84ec9/SuplaConfigManager.cpp:316:37: note: suggested alternative: 'XT_USER_SIZE'
     this->addKey(KEY_PUSHOVER_USER, MAX_USER_SIZE, false);
                                     ^~~~~~~~~~~~~
                                     XT_USER_SIZE
GUI-Generic_test_bv4.22_gv6.0.5_pl_16fccbbe56c71283629069fdf0b84ec9/SuplaConfigManager.cpp:317:40: error: 'MAX_MESSAGE_SIZE' was not declared in this scope
     this->addKey(KEY_PUSHOVER_MASSAGE, MAX_MESSAGE_SIZE * MAX_PUSHOVER_MESSAGE, false);
                                        ^~~~~~~~~~~~~~~~
GUI-Generic_test_bv4.22_gv6.0.5_pl_16fccbbe56c71283629069fdf0b84ec9/SuplaConfigManager.cpp:317:40: note: suggested alternative: 'MAX_SSID_SIZE'
     this->addKey(KEY_PUSHOVER_MASSAGE, MAX_MESSAGE_SIZE * MAX_PUSHOVER_MESSAGE, false);
                                        ^~~~~~~~~~~~~~~~
                                        MAX_SSID_SIZE
GUI-Generic_test_bv4.22_gv6.0.5_pl_16fccbbe56c71283629069fdf0b84ec9/SuplaWebPageRelay.cpp: In function 'void handleRelaySet(int)':
GUI-Generic_test_bv4.22_gv6.0.5_pl_16fccbbe56c71283629069fdf0b84ec9/SuplaWebPageRelay.cpp:212:19: error: 'MAX_MESSAGE_SIZE' was not declared in this scope
   massage.reserve(MAX_MESSAGE_SIZE);
                   ^~~~~~~~~~~~~~~~
GUI-Generic_test_bv4.22_gv6.0.5_pl_16fccbbe56c71283629069fdf0b84ec9/SuplaWebPageRelay.cpp:212:19: note: suggested alternative: 'MAX_SSID_SIZE'
   massage.reserve(MAX_MESSAGE_SIZE);
                   ^~~~~~~~~~~~~~~~
                   MAX_SSID_SIZE
GUI-Generic_test_bv4.22_gv6.0.5_pl_16fccbbe56c71283629069fdf0b84ec9/SuplaWebPageRelay.cpp: In function 'void handleRelaySetMCP23017(int)':
GUI-Generic_test_bv4.22_gv6.0.5_pl_16fccbbe56c71283629069fdf0b84ec9/SuplaWebPageRelay.cpp:304:19: error: 'MAX_MESSAGE_SIZE' was not declared in this scope
   massage.reserve(MAX_MESSAGE_SIZE);
                   ^~~~~~~~~~~~~~~~
GUI-Generic_test_bv4.22_gv6.0.5_pl_16fccbbe56c71283629069fdf0b84ec9/SuplaWebPageRelay.cpp:304:19: note: suggested alternative: 'MAX_SSID_SIZE'
   massage.reserve(MAX_MESSAGE_SIZE);
                   ^~~~~~~~~~~~~~~~
                   MAX_SSID_SIZE

Error during build: exit status 1
xxxxxxxxxxxxxxxxxx
BOARD esp32:esp32:d32:PartitionScheme=min_spiffs
BOARD_NAME
TEMPLATE_JSON
JSON_DEFINITION
OPTIONS -DBUILDER_TEST -DATOMIC_FS_UPDATE -DMIMETYPE_MINIMAL -DBEARSSL_SSL_BASIC -DSUPLA_ACTION_TRIGGER -DSUPLA_BME280 -DSUPLA_BUTTON -DSUPLA_CONDITIONS 
-DSUPLA_CONFIG -DSUPLA_DS18B20 -DSUPLA_ENABLE_GUI -DSUPLA_IMPULSE_COUNTER -DSUPLA_LIMIT_SWITCH -DSUPLA_OLED -DSUPLA_OTA -DSUPLA_PCF8575 -DSUPLA_RELAY 
-DSUPLA_SI7021


Możesz wesprzeć autorów w dalszym rozwoju projektu.

Postaw nam kawę na buycoffee.to Przekaż darowiznę za pomocą przycisku PayPal
SPI Flash Config:
Crystal Freq: 26MHz
SPI Speed: 40MHz
SPI Mode: DOUT
Flash size ESP82xx: 8Mbit
Flash size ESP32: 32Mbit
(8Mbit = 1MB)
GUI-Generic Builder [TEST]
GUI-Generic: v6.0.4; Builder: v4.22.1
Board ESP8266: v3.0.2; Board ESP32: v2.0.4
Wideo poradnikWideo poradnik
Przewodnik online 📖https://forum.supla.orghttps://forum.supla.org
Uploader dwuetapowyUploader dwuetapowy (bin.gz)
Ustawienia kompilacji
Płytka
ESP32 Dev Module
Procesor
ESP32
Pamięć FLASH
Minimal SPIFFS (Large APPS with OTA)
Dostępne opcje dla modułu
Podstawowe
Konfiguracja (LED, Config)
Aktualizacja przez WWW
Dostępne GUI podczas pracy modułu
Szyfrowane połączenie z serwerem (SSL)
Tryb głębokiego uśpienia (Deep Sleep)
Sterowanie
Przekaźniki
Przyciski
Wyzwalacze akcji
Rolety
Krańcówki
LED załączenia przekaźnika
Pushover
Linki bezpośrednie
Bramka RF 315/433MHz
Ekspandery
MCP23017
PCF8575
PCF8574/A
1Wire
Sensor DS18B20
Sensor DHT11
Sensor DHT22
Sensor Si7021 Sonoff
I2C
Sensor BME280
Sensor BMP280
Sensor SHT3x
Sensor SHTxx
Sensor Si7021
Sensor VL53L0X
Sensor HDC1080
Wyświetlacz OLED SSD1306, SH1106
Wyświetlacz LCD HD44780
Sensor BH1750
Sensor MAX44009
SPI
Termopara MAX6675
Termopara MAX31855
Analogowe
Pomiar analogowy (ADC Pin)
Termistor NTC 10K
Czujnik ciśnienia MPX5xxx
Licznik Energii Elektrycznej
Licznik energii HLW8012, BL0937
Licznik energii PZEM V3
Licznik energii CSE7766
Licznik energii ADE7953
Inne
RGBW, RGB, Dimmer
Czujnik odległości HC-SR04
Licznik impulsów
Linki bezpośrednie - odczyt temperatury (stare)
Linki bezpośrednie - odczyt wartości kanału
Czujnik czystości powietrza
IKEA VINDRIKTNING
PMSx003
Testowe
SUPLA_CONDITIONS
SUPLA_WT32_ETH01_LAN8720
SUPLA_COMM_DEBUG
SUPLA_WAKE_ON_LAN
SUPLA_MODBUS_SDM
SUPLA_MODBUS_SDM_ONE_PHASE

Generuj

Wygenerowano: 48531, pobrano: 66243
krycha88
Posty: 5187
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

LukaszH pisze: śr lut 15, 2023 7:54 pm 2. Na testowym builderze próbowałem wygenerować soft i wywala mi błąd:
Zobacz teraz, sprawdzaj tylko wersję z testa :)
https://gui-generic-builder.supla.io/
LukaszH
Posty: 642
Rejestracja: sob gru 14, 2019 11:49 pm

krycha88 pisze: śr lut 15, 2023 8:01 pm
LukaszH pisze: śr lut 15, 2023 7:54 pm 2. Na testowym builderze próbowałem wygenerować soft i wywala mi błąd:
Zobacz teraz, sprawdzaj tylko wersję z testa :)
Niestety jeszcze taki błąd wyrzuciło:

Kod: Zaznacz cały

Błąd generowania
GUI-Generic_test_bv4.22_gv6.0.6_pl_16fccbbe56c71283629069fdf0b84ec9/SuplaWebPageSensorI2c.cpp: In function 'void handleSensorI2c(int)':
GUI-Generic_test_bv4.22_gv6.0.6_pl_16fccbbe56c71283629069fdf0b84ec9/SuplaWebPageSensorI2c.cpp:161:22: error: 'class SuplaConfigESP' has no member named 'checkActiveExpander'
       if (ConfigESP->checkActiveExpander(FUNCTION_BUTTON)) {
                      ^~~~~~~~~~~~~~~~~~~
GUI-Generic_test_bv4.22_gv6.0.6_pl_16fccbbe56c71283629069fdf0b84ec9/SuplaWebPageSensorI2c.cpp: In function 'void handleSensorI2cSave()':
GUI-Generic_test_bv4.22_gv6.0.6_pl_16fccbbe56c71283629069fdf0b84ec9/SuplaWebPageSensorI2c.cpp:355:18: error: 'class SuplaConfigESP' has no member named 'checkActiveExpander'
   if (ConfigESP->checkActiveExpander(FUNCTION_BUTTON)) {
                  ^~~~~~~~~~~~~~~~~~~

Error during build: exit status 1
xxxxxxxxxxxxxxxxxx
BOARD esp32:esp32:d32:PartitionScheme=min_spiffs
BOARD_NAME
TEMPLATE_JSON
JSON_DEFINITION
OPTIONS -DBUILDER_TEST -DATOMIC_FS_UPDATE -DMIMETYPE_MINIMAL -DBEARSSL_SSL_BASIC -DSUPLA_ACTION_TRIGGER -DSUPLA_BME280 -DSUPLA_BUTTON -DSUPLA_CONDITIONS 
-DSUPLA_CONFIG -DSUPLA_DS18B20 -DSUPLA_ENABLE_GUI -DSUPLA_IMPULSE_COUNTER -DSUPLA_LIMIT_SWITCH -DSUPLA_OLED -DSUPLA_OTA -DSUPLA_PCF8575 -DSUPLA_RELAY 
-DSUPLA_SI7021
krycha88
Posty: 5187
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

LukaszH pisze: śr lut 15, 2023 8:11 pm Niestety jeszcze taki błąd wyrzuciło:
Poprawiłem, ale najpierw zacznij od prostych konfiguracji czyli przekaźnik, przycisk, krańcówki + PCF itd. nie rób takich rozbudowanych konfiguracji bo jak wyjdzie jakiś problem to łatwiej jest namierzyć.
https://gui-generic-builder.supla.io/
LukaszH
Posty: 642
Rejestracja: sob gru 14, 2019 11:49 pm

krycha88 pisze: śr lut 15, 2023 8:20 pm
LukaszH pisze: śr lut 15, 2023 8:11 pm Niestety jeszcze taki błąd wyrzuciło:
Poprawiłem, ale najpierw zacznij od prostych konfiguracji czyli przekaźnik, przycisk, krańcówki + PCF itd. nie rób takich rozbudowanych konfiguracji bo jak wyjdzie jakiś problem to łatwiej jest namierzyć.
builder poszedł ale zrobiłem aktualizację OTA i ubiło mi ESP32 i nie mogę go postawić do życia. Spróbuję to jakimiś zewnętrznymi programami - dam znać jak mi się uda
LukaszH
Posty: 642
Rejestracja: sob gru 14, 2019 11:49 pm

Ok postawiłem do życia wgrywając przez flash download tool wszystkie pliki. Natomiast dziwnie to jakoś poszło:
1. Na 192.168.4.1 nie mogłem ustawić P2 ani na przekaźnikach ani na przyciskach
2. Jak już moduł się zresetował i z mojego IP to pojawiła się opcja P2, więc wszystko ustawiłem
3. W cloud pokazały 16x przekaźnik

Natomiast na tym etapie nic więcej nie mogę przetestować, ponieważ ekspandery nie reagują. Jeden na adresie 0x20 16x przekaźników i drugi adres 0x21 16 przycisków. Sprawdzałem różne opcje sterowania LOW/High i nic nie pomaga. Z poziomu apki mogę zmieniać stany on/off ale nie reaguje nic na ekspanderze, a na mierniku tylko pierwszy P00 ma 1,8V, a reszta 0V. Ogólnie włączanie/wyłączanie kanałów z poziomu apki nie zmienia nic na wskazaniach miernika na wszystkich pinach. To samo w stosunku ekspandera dla przycisków - nie reaguje (bez względu czy z pull up, czy nie i jakie ustawienia bym nie zrobił).
krycha88
Posty: 5187
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

LukaszH pisze: śr lut 15, 2023 9:29 pm Ok postawiłem do życia wgrywając przez flash download tool wszystkie pliki. Natomiast dziwnie to jakoś poszło:
1. Na 192.168.4.1 nie mogłem ustawić P2 ani na przekaźnikach ani na przyciskach
2. Jak już moduł się zresetował i z mojego IP to pojawiła się opcja P2, więc wszystko ustawiłem
3. W cloud pokazały 16x przekaźnik

Natomiast na tym etapie nic więcej nie mogę przetestować, ponieważ ekspandery nie reagują. Jeden na adresie 0x20 16x przekaźników i drugi adres 0x21 16 przycisków. Sprawdzałem różne opcje sterowania LOW/High i nic nie pomaga. Z poziomu apki mogę zmieniać stany on/off ale nie reaguje nic na ekspanderze, a na mierniku tylko pierwszy P00 ma 1,8V, a reszta 0V. Ogólnie włączanie/wyłączanie kanałów z poziomu apki nie zmienia nic na wskazaniach miernika na wszystkich pinach. To samo w stosunku ekspandera dla przycisków - nie reaguje (bez względu czy z pull up, czy nie i jakie ustawienia bym nie zrobił).
adresy dobre znajduje na zakładce i2c? pcf8575 nie obsługuje pullup.
https://gui-generic-builder.supla.io/
LukaszH
Posty: 642
Rejestracja: sob gru 14, 2019 11:49 pm

krycha88 pisze: śr lut 15, 2023 9:40 pm
LukaszH pisze: śr lut 15, 2023 9:29 pm ....
adresy dobre znajduje na zakładce i2c? pcf8575 nie obsługuje pullup.
Tak wykrywa mi prawidłowo adresy 0x20 i 0x21 chociaż dziwne bo w datasheet https://www.ti.com/lit/ds/symlink/pcf85 ... %253Daw.ds strona 18, pokazane jest jakby 40/41 i 42/43 ale to może kwestia nazewnictwa ?
Druga sprawa to nie mam opcji tak jak w poprzednich wersjach GG aby "załączyć" ekspander w zakładce I2C. Natomiast faktycznie pojawiły się do ustawienia w zakładkach przekaźników jak i przycisków - więc ustawiłem odpowiednio adresy 0x20 i 0x21 zgodnie z tym co wykryło w zakładce I2C.
LukaszH
Posty: 642
Rejestracja: sob gru 14, 2019 11:49 pm

Hmm jeszcze jedną rzecz się dopatrzyłem ale nie wiem na ile to ma znaczenie, ponieważ na moich modułach mam PCF8575TS zamówiłem z alledrogo ale z chin idą takie same: https://pl.aliexpress.com/item/10050029 ... pt=glo2pol
I faktycznie jedne to Texas Instruments z datasheet jaki wysłałem poprzednio ale te z dopiskiem TS to producentem są NXP Semicon, a w datasheet ma logo Philips (może na licencji): https://datasheet.lcsc.com/lcsc/2106080 ... 652296.pdf

I chciałem zobaczyć czy na tym drugim jakby I2C (można ustawić w sumie dwa niezależne szyny I2C) ale po zapisaniu ponownie ubiło mi moduł i musiałem wgrywać zewnętrznie aby postawić do życia. Nie wiem czy wspomniałem wcześniej ale moduł to ESP32 Wroom devkit v1 - może to też ma znaczenie :)
LukaszH
Posty: 642
Rejestracja: sob gru 14, 2019 11:49 pm

Tak kombinuje na różne sposoby i uruchomiłem na jednym ekspanderze. No i jak to bywa zadziałało, a co śmieszniejsze jak podłączyłem drugi ekspander jako przyciski także poszło (co było nie tak to nie wiem). Natomiast nie jest tak kolorowo:
1. Jedyna opcja jaka działa to sterowanie stanem LOW
2. Pojawia się efekt "dyskoteki" czyli po podaniu zasilania pojawia się krótki impuls na wyjściach
3. Mam spore lagi na tym module czyli po kliknięciu w apce stan kanału zmienia się ale po około sekundzie. Ale tutaj nie jestem w 100% pewny, ponieważ mam IOS, a apka ostatnio działa tak delikatnie mówiąc z dużymi opóźnieniami i nie na wszystko działa jak należy.
4. Przyciski aby zadziałały muszą mieć fizyczny pull up i sterowanie LOW - inaczej nie wykrywa stanów. Może, dlatego że reszta pinów nie jest podłączona to sieje mi sygnałami i spowalnia ESP.
5. Aby zadziałał przycisk, to niezależnie co ustawie na multiclick/hold to należy przytrzymać około 1 sek aby zareagował. Tak jakby ekspander potrzebował chwili na potwierdzenie stanu. No to jest dosyć kłopotliwe, bo jak sobie klikałem to myślałem że to nie działa ale przypadkiem przytrzymałem kabelki i dopiero zadziałało. Także klasyczne kliknięcie włącznikiem nie zapali światła tylko trzeba przytrzymać..
ODPOWIEDZ

Wróć do „GUI Generic”