KC868-A6

User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

malarz wrote: Sat Feb 15, 2025 10:14 pm Super, dzięki. To jest właśnie to co jest najbardziej potrzebne. Dlaczego tego nie wrzuciłeś do supla-device?
Bo nie jestem pewny czy działa poprawnie. Jak widać nie ;)
malarz wrote: Sat Feb 15, 2025 10:14 pm Mam tylko problem, bo w momencie startu urządzenia wszystkie przełączniki są ustawiane a ON. Jak próbowałem coś zmienić to jedyne co udało mi się uzyskać to wachnięcie na ułamek sekundy na starcie na ON i następnie wyłączenie. Co mogę robić nie tak? Czy może jest to specyfika extendera (ale nie zaobserwowałem jej na firmowym sofcie KCS)
1 - po restarcie włączony
2 - po restarcie włączany na ułamek sekundy
Zostaw 2 opcję, czyli sterowanie stanem niskim i zmień w klasie ekspandera "false" na "0xFF"

Code: Select all

ExtPCF8574(uint8_t address = 0x20, uint8_t value = 0xFF)
Daj znać, czy pomogło.
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
User avatar
malarz
Posts: 506
Joined: Wed Jan 27, 2021 4:04 pm
Been thanked: 2 times

Post

lukfud wrote: Sun Feb 16, 2025 1:59 pm
malarz wrote: Sat Feb 15, 2025 10:14 pm Super, dzięki. To jest właśnie to co jest najbardziej potrzebne. Dlaczego tego nie wrzuciłeś do supla-device?
Bo nie jestem pewny czy działa poprawnie. Jak widać nie ;)
Czyli jak rozumiem nie testowałeś jej w ogóle i należy traktować ją jak podejrzaną?
Próbuję przerobić pomysły na działające projekty w ArduinoIDE.
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

malarz wrote: Sun Feb 16, 2025 5:52 pm Czyli jak rozumiem nie testowałeś jej w ogóle i należy traktować ją jak podejrzaną?
Tylko na prototypie z jedną diodą i przyciskiem.
Dziś podłączyłem klon KC868-A16 i po wspomnianej zmianie działa poprawnie.
https://github.com/RobTillaart/PCF8574 - domyślnie biblioteka na starcie ustawia piny w stanie wysokim, co jest właściwe dla przycisków i przekaźników sterowanych stanem niskim.
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
User avatar
malarz
Posts: 506
Joined: Wed Jan 27, 2021 4:04 pm
Been thanked: 2 times

Post

lukfud wrote: Sun Feb 16, 2025 8:12 pm
malarz wrote: Sun Feb 16, 2025 5:52 pm Czyli jak rozumiem nie testowałeś jej w ogóle i należy traktować ją jak podejrzaną?
Tylko na prototypie z jedną diodą i przyciskiem.
Dziś podłączyłem klon KC868-A16 i po wspomnianej zmianie działa poprawnie.
https://github.com/RobTillaart/PCF8574 - domyślnie biblioteka na starcie ustawia piny w stanie wysokim, co jest właściwe dla przycisków i przekaźników sterowanych stanem niskim.
A nie właściwsze by było zostawienie jak było, natomiast wywołanie tej klasy z drugim parametrem:

Code: Select all

  auto ext_input = new Supla::Control::ExtPCF8574(PCF_I2C_INPUT, 0xFF);
  auto ext_relay = new Supla::Control::ExtPCF8574(PCF_I2C_RELAY, 0xFF);
Przecież sterowanie stanem wysokim to chyba nie jest właściwość expandera, a konkretnego jego użycia w postaci KC868? Czyli my też powinniśmy to zmienić jedynie dla tego użycia expandera, czyli modyfikując nie klasę a jej wywołanie w tym konkretnym przypadku.
Próbuję przerobić pomysły na działające projekty w ArduinoIDE.
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

malarz wrote: Sun Feb 16, 2025 9:45 pm A nie właściwsze by było zostawienie jak było, natomiast wywołanie tej klasy z drugim parametrem:
Nie, "false" w klasie, to był mój błąd. Domyślna wartość drugiego parametru powinna być 0xFF.
malarz wrote: Sun Feb 16, 2025 9:45 pm Przecież sterowanie stanem wysokim to chyba nie jest właściwość expandera, a konkretnego jego użycia w postaci KC868? Czyli my też powinniśmy to zmienić jedynie dla tego użycia expandera, czyli modyfikując nie klasę a jej wywołanie w tym konkretnym przypadku.
Odwrotnie, sterowanie stanem niskim to właściwość tego ekspandera.
Po podaniu zasilania, jego piny zawsze są w stanie wysokim, więc do sterowania stanem wysokim nie za bardzo się nadaje (jeśli chcemy uniknąć migawki po podaniu zasilania)
Jeśli jednak chcemy użyć go do sterowania stanem wysokim, wtedy w konstruktorze dodajemy drugi parametr z wartością 0x0.

W KC868 zastosowane są te układy, bo (moje przypuszczenie) są po prostu tańsze od MCP.
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
brodaa
Posts: 21
Joined: Mon Nov 22, 2021 11:46 am

Post

Próbuję uruchomić te ekspandery na A16 takim zlepkiem kodu z tego wątku plus moje wypociny:

Code: Select all

#define STATUS_LED_GPIO 2
#define I2C_SCL 5
#define I2C_SDA 4
#define PCF_I2C_INPUT  0x22  // Adres I2C dla wejść
#define PCF_I2C_RELAY  0x24  // Adres I2C dla przekaźników

#include <SuplaDevice.h>
#include <supla/network/esp_wifi.h>
Supla::ESPWifi wifi;
#include <supla/device/status_led.h>
Supla::Device::StatusLed statusLed(STATUS_LED_GPIO, true);
#include <supla/storage/eeprom.h>
Supla::Eeprom eeprom;
#include <supla/storage/littlefs_config.h>
Supla::LittleFsConfig configSupla(2048);
#include <supla/network/esp_web_server.h>
Supla::EspWebServer suplaServer;

#include <supla/network/html/device_info.h>
#include <supla/network/html/protocol_parameters.h>
#include <supla/network/html/wifi_parameters.h>
#include <supla/device/supla_ca_cert.h>

#include <supla/control/EXT_PCF8574.h>
Supla::Control::ExtPCF8574 *extpcf = nullptr;

#include <supla/control/button.h>
Supla::Control::Button *button = nullptr;

#include <supla/control/relay.h>
Supla::Control::Relay *relay = nullptr;

Supla::Html::DeviceInfo htmlDeviceInfo(&SuplaDevice);
Supla::Html::WifiParameters htmlWifi;
Supla::Html::ProtocolParameters htmlProto;

auto ext_input = new Supla::Control::ExtPCF8574(PCF_I2C_INPUT);
auto ext_relay = new Supla::Control::ExtPCF8574(PCF_I2C_RELAY);

void setup() {

  Serial.begin(115200);
  Wire.begin(I2C_SDA, I2C_SCL);

  auto button1 = new Supla::Control::Button(ext_input, 0, true, true);
  auto relay1 = new Supla::Control::Relay(ext_relay, 0, true, SUPLA_BIT_FUNC_LIGHTSWITCH);
  button1->addAction(Supla::TOGGLE, relay1, Supla::ON_PRESS);

  auto button2 = new Supla::Control::Button(ext_input, 1, true, true);
  auto relay2 = new Supla::Control::Relay(ext_relay, 1, false, SUPLA_BIT_FUNC_LIGHTSWITCH);
  button2->addAction(Supla::TOGGLE, relay2, Supla::ON_PRESS);

 
  SuplaDevice.setSuplaCACert(suplaCACert);
  SuplaDevice.setSupla3rdPartyCACert(supla3rdCACert);
  SuplaDevice.begin();
}

void loop() {
  SuplaDevice.iterate();
}
kod się kompiluje i wgrywa do K868-A16 ale niestety nie ma reakcji na zwarcie GND do IN1 i IN2. Podpowie ktoś ki czort tam siedzi?
User avatar
malarz
Posts: 506
Joined: Wed Jan 27, 2021 4:04 pm
Been thanked: 2 times

Post

brodaa wrote: Mon Feb 17, 2025 7:31 pm Próbuję uruchomić te ekspandery na A16 takim zlepkiem kodu z tego wątku plus moje wypociny:

kod się kompiluje i wgrywa do K868-A16 ale niestety nie ma reakcji na zwarcie GND do IN1 i IN2. Podpowie ktoś ki czort tam siedzi?
A patrzyłeś czy może zwarcie IN9, IN10 do GND coś zmienia? Tam są pod dwa ekspandery na wejścia i dwa na wyjścia. Ale jak są podpięte adresami nie wiem (0x21 i 0x22 to podobno IN, 0x24 i 0x25 to podobno OUT).

Może lepiej skonfiguruj w sofcie po pierwszym porcie każdego z ekspanderów (czyli praktycznie IN1, IN9, OUT1, OUT9) i zobacz co wyszło.
Próbuję przerobić pomysły na działające projekty w ArduinoIDE.
Sebek74
Posts: 173
Joined: Wed Dec 23, 2020 1:23 pm

Post

lukfud wrote: Mon Feb 17, 2025 8:25 am
Nie, "false" w klasie, to był mój błąd. Domyślna wartość drugiego parametru powinna być 0xFF.
Prośba o wyjaśnienie: czy robisz tu korekty które lądują w kodzie supla-dev? Jeśli tak, to czy zostaną one zaciągnięte przy budowie GG poprzez GG Builder? (ten błąd z mignięciem na chwile stanami przy restarcie jest także w GG).
Sebek-74
11xSRW-02m, SRW-01, 4xROW-04m, ROW-02m, 6xROW-02, 2xROW-01, Sonoff Mini
GG SmartBob ESP32 + LAN8720: sterowanie nawodnieniem: pompa + 7 obwodów + 2xDS18B20
GG Kincony KC868-A6: integracje Satel Integra, NVR, rekuperator + 3xDS18B20
User avatar
malarz
Posts: 506
Joined: Wed Jan 27, 2021 4:04 pm
Been thanked: 2 times

Post

Sebek74 wrote: Tue Feb 25, 2025 12:13 pm
lukfud wrote: Mon Feb 17, 2025 8:25 am
Nie, "false" w klasie, to był mój błąd. Domyślna wartość drugiego parametru powinna być 0xFF.
Prośba o wyjaśnienie: czy robisz tu korekty które lądują w kodzie supla-dev? Jeśli tak, to czy zostaną one zaciągnięte przy budowie GG poprzez GG Builder? (ten błąd z mignięciem na chwile stanami przy restarcie jest także w GG).
W GG jest raczej użyta klasa z plików:
https://github.com/krycha88/GUI-Generic ... CF8574.cpp
https://github.com/krycha88/GUI-Generic ... rPCF8574.h
korzystający z biblioteki
https://github.com/adafruit/Adafruit_PCF8574

Klasa lukfuda korzysta z biblioteki
https://github.com/RobTillaart/PCF8574

Zatem to o czym tu dyskutujemy raczej nie ma bezpośredniego wpływu na GG.

W samym kodzie supla-dev nie ma jeszcze nic do obsługi tych ekspanderów. Zamierzam przyjrzeć się uważniej obydwu rozwiązaniom i coś sobie wybrać. Wolałbym też aby to co wybiorę było dostępne w supla-dev, dlatego też namawiam lukfuda aby swoją klasę tam umieścił. Co do poprawek w GG to lepiej pytaj @krycha88.
Próbuję przerobić pomysły na działające projekty w ArduinoIDE.
User avatar
veeroos
Posts: 1081
Joined: Sun Mar 20, 2022 9:30 am
Location: Głogów
Has thanked: 1 time
Been thanked: 9 times

Post

Zmień bibliotekę expandera. Też korzystam z biblioteki Łukasza, ale musiałem ja lekko.przerobic aby nie klepały mi przekaźniki.
Nie mam odpalonego kompa ale znalazłem w moim archiwum na telefonie takie zdjęcie jak sobie poradziłem z.ta bo biblioteką pod płytkę Kicony
IMG-20250120-WA0004.jpg
You do not have the required permissions to view the files attached to this post.
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more

https://github.com/v33r005

Return to “supla-dev”