Wpadło mi do ręki takie coś, podoba mi się, ale mam kilka pytań.
(prostsze)
Jak podłączyć przyciski (łączniki) do wejść cyfrowych?
- wydaje mi się, że należy je zwierać do masy (złącze tuż obok; w tej samej "kostce"), ale nie jestem pewien
(trudniejsze)
Jak użyć w supla device:
1. wejścia i wyjścia cyfrowe (są na expanderach PCF8574P)?
2. RTC (jest to podobno DS1307)?
Czy jest to w ogóle do zrobienia w supla-device od ręki, czy trzeba by sobie jakieś rzeczy (biblioteki) dopiero zaimplementować?
KC868-A6
-
- Posts: 179
- Joined: Wed Jan 27, 2021 4:04 pm
Próbuję przerobić pomysły na działające projekty w ArduinoIDE.
-
- Posts: 126
- Joined: Wed Dec 23, 2020 1:23 pm
https://www.kincony.com/kc868-a6-hardwa ... tails.html
sekcja Digital Inputs - zwarcie do masy, sterowanie po 3.3V
Wejścia i wyjścia cyfrowe są na expanderach PCF8574P. Obsługiwane w GUI Generic. Problem z roletami opisywałem - nierozwiązane.
RTC nie jest imho obsługiwany w Supla.
Napisz jak ogarniesz coś przez LORA.
sekcja Digital Inputs - zwarcie do masy, sterowanie po 3.3V
Wejścia i wyjścia cyfrowe są na expanderach PCF8574P. Obsługiwane w GUI Generic. Problem z roletami opisywałem - nierozwiązane.
RTC nie jest imho obsługiwany w Supla.
Napisz jak ogarniesz coś przez LORA.
Sebek-74
11xSRW-02m, SRW-01, 4xROW-04m, 5xROW-02, ROW-01, Sonoff Mini
SmartBob ESP32 + LAN8720: sterowanie nawodnieniem: pompa + 7 obwodów + 2xDS18B20
Kincony KC868-A6: integracje Satel Integra, NVR, rekuperator + 3xDS18B20
11xSRW-02m, SRW-01, 4xROW-04m, 5xROW-02, ROW-01, Sonoff Mini
SmartBob ESP32 + LAN8720: sterowanie nawodnieniem: pompa + 7 obwodów + 2xDS18B20
Kincony KC868-A6: integracje Satel Integra, NVR, rekuperator + 3xDS18B20
-
- Posts: 2060
- Joined: Wed Aug 24, 2016 7:26 pm
- Location: Opole
RTC jest obsługiwane na DS1307 w supli, ale nie wiem czy w GUI.
-
- Posts: 179
- Joined: Wed Jan 27, 2021 4:04 pm
LoRa mnie nie interesuje i nawet nie mam modułu. GG w tym wypadku też mniej, bo potrzebuję własną sekwencję włączania przekaźników. Dlatego interesuje mnie obsługa w supla-device i szukam jakiegoś przykładu aby nie rozgryzać od kamienia łupanego. Zegarek może w przyszłości się przyda, więc fajnie by było móc go użyć.Sebek74 wrote: Thu Feb 13, 2025 2:20 pm https://www.kincony.com/kc868-a6-hardwa ... tails.html
sekcja Digital Inputs - zwarcie do masy, sterowanie po 3.3V
Wejścia i wyjścia cyfrowe są na expanderach PCF8574P. Obsługiwane w GUI Generic. Problem z roletami opisywałem - nierozwiązane.
RTC nie jest imho obsługiwany w Supla.
Napisz jak ogarniesz coś przez LORA.
Próbuję przerobić pomysły na działające projekty w ArduinoIDE.
-
- Posts: 179
- Joined: Wed Jan 27, 2021 4:04 pm
Znalazłem w Changelogu:Duch__ wrote: Thu Feb 13, 2025 4:08 pm RTC jest obsługiwane na DS1307 w supli, ale nie wiem czy w GUI.
22.10.05 (N/A)
Add: (Arduino ESPx, Arduino Mega) DS1307 external RTC support (thanks @lukfud)
Dlatego szukam jakiegoś przykładu. Nie zamierzam używać GG tylko własny soft pod supla-device.
Próbuję przerobić pomysły na działające projekty w ArduinoIDE.
-
- Posts: 10704
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
-
- Posts: 179
- Joined: Wed Jan 27, 2021 4:04 pm
W końcu chyba coś znalazłem na forum o ekspanderach w supla-dev:
viewtopic.php?t=12586
Udało mi się też osuplować KC868 GG. Problemem początkowym był kabelek USB-C, który nie chciał współdziałać z Kincony (z innymi rzeczami jakoś mi działa, więc nie wiem o co chodzi.
Ale ustawić expanderów w GG już mi się nie udało. Ustawienie inputów wiesza całość. @krycha88 Dodatkowo nie można ustawić P2 - brak do wyboru w rozwijanej liście.
Jutro zaczynam próby własnego softu bazując na tym co podałem na początku i co @klew podrzucił.
viewtopic.php?t=12586
Udało mi się też osuplować KC868 GG. Problemem początkowym był kabelek USB-C, który nie chciał współdziałać z Kincony (z innymi rzeczami jakoś mi działa, więc nie wiem o co chodzi.
Ale ustawić expanderów w GG już mi się nie udało. Ustawienie inputów wiesza całość. @krycha88 Dodatkowo nie można ustawić P2 - brak do wyboru w rozwijanej liście.
Jutro zaczynam próby własnego softu bazując na tym co podałem na początku i co @klew podrzucił.
Próbuję przerobić pomysły na działające projekty w ArduinoIDE.
-
- Posts: 2314
- Joined: Thu Nov 23, 2017 11:33 pm
- Location: Warszawa
Code: Select all
/*
Copyright (C) AC SOFTWARE SP. Z O.O.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef SRC_SUPLA_CONTROL_EXT_PCF8574_H_
#define SRC_SUPLA_CONTROL_EXT_PCF8574_H_
/*
Dependency: https://github.com/RobTillaart/PCF8574
use library manager to install it
*/
#include <Wire.h>
#include <PCF8574.h>
#include <supla/io.h>
#include <supla/log_wrapper.h>
namespace Supla {
namespace Control {
class ExtPCF8574 : public Supla::Io {
public:
ExtPCF8574(uint8_t address = 0x20, uint8_t value = false)
: pcf(address), Supla::Io(false) {
if (!pcf.begin(value)) {
SUPLA_LOG_DEBUG("Unable to find PCF8574");
} else {
SUPLA_LOG_DEBUG("PCF8574 is connected at address: 0x%x", address);
isConnected = true;
}
}
void customPinMode(int channelNumber, uint8_t pin, uint8_t mode) override {
if (mode == INPUT_PULLUP) {
pcf.write(pin, HIGH);
}
}
void customDigitalWrite(int channelNumber, uint8_t pin,
uint8_t val) override {
if (isConnected) {
pcf.write(pin, val);
}
}
int customDigitalRead(int channelNumber, uint8_t pin) override {
return isConnected ? pcf.read(pin) : 0;
}
unsigned int customPulseIn(int channelNumber, uint8_t pin, uint8_t value,
uint64_t timeoutMicro) override {
return 0;
}
void customAnalogWrite(int channelNumber, uint8_t pin, int val) override {}
int customAnalogRead(int channelNumber, uint8_t pin) override {
return 0;
}
protected:
::PCF8574 pcf;
bool isConnected = false;
};
}; // namespace Control
}; // namespace Supla
#endif // SRC_SUPLA_CONTROL_EXT_PCF8574_H_
Code: Select all
#define STATUS_LED_GPIO 2
#define I2C_SCL 5
#define I2C_SDA 4
#define PCF_I2C_ADDR 0x27
#define PCF_BTN_PIN 3
#define PCF_RELAY_PIN 4
#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;
void setup() {
Serial.begin(115200);
Wire.begin(I2C_SDA, I2C_SCL);
extpcf = new Supla::Control::ExtPCF8574(PCF_I2C_ADDR);
button = new Supla::Control::Button(extpcf, PCF_BTN_PIN, true, true);
relay = new Supla::Control::Relay(extpcf, PCF_RELAY_PIN, true, 224);
button->addAction(Supla::TOGGLE, relay, Supla::ON_CLICK_1);
SuplaDevice.setSuplaCACert(suplaCACert);
SuplaDevice.setSupla3rdPartyCACert(supla3rdCACert);
SuplaDevice.begin();
}
void loop() {
SuplaDevice.iterate();
}
https://www.facebook.com/groups/supladiy/
-
- Posts: 126
- Joined: Wed Dec 23, 2020 1:23 pm
Jak chcesz żeby działało z GG to najpierw musisz przelutować stopkę, żeby zmienić adres jednego z ekspanderów na 0x20. Trzeba odciąć stopkę 3 i połączyć z drugą aby zmienić fizycznie adres.malarz wrote: Fri Feb 14, 2025 8:42 pm Ale ustawić expanderów w GG już mi się nie udało. Ustawienie inputów wiesza całość. @krycha88 Dodatkowo nie można ustawić P2 - brak do wyboru w rozwijanej liście.
Potem już będziesz mógł dodać oba ekspandery pod I2C. Jak widać zgłasza się jeszcze OLED i RTC.
Ustawienia dla przekaźników i przycisków (ja mam akurat krańcówki zamiast przycisków)
P2 da się wybrać. Wybierz najpierw coś innego, zapisz i zmień na P2 bo się już pojawi.
You do not have the required permissions to view the files attached to this post.
Sebek-74
11xSRW-02m, SRW-01, 4xROW-04m, 5xROW-02, ROW-01, Sonoff Mini
SmartBob ESP32 + LAN8720: sterowanie nawodnieniem: pompa + 7 obwodów + 2xDS18B20
Kincony KC868-A6: integracje Satel Integra, NVR, rekuperator + 3xDS18B20
11xSRW-02m, SRW-01, 4xROW-04m, 5xROW-02, ROW-01, Sonoff Mini
SmartBob ESP32 + LAN8720: sterowanie nawodnieniem: pompa + 7 obwodów + 2xDS18B20
Kincony KC868-A6: integracje Satel Integra, NVR, rekuperator + 3xDS18B20
-
- Posts: 179
- Joined: Wed Jan 27, 2021 4:04 pm
Super, dzięki. To jest właśnie to co jest najbardziej potrzebne. Dlaczego tego nie wrzuciłeś do supla-device?lukfud wrote: Sat Feb 15, 2025 7:46 amCode: Select all
... #define SRC_SUPLA_CONTROL_EXT_PCF8574_H_ ...
Zmodyfikuj tylko pierwszą linię:
Code: Select all
Copyright (C) AC SOFTWARE SP. Z O.O.
Code: Select all
auto ext_input = new Supla::Control::ExtPCF8574(PCF_I2C_INPUT);
auto ext_relay = new Supla::Control::ExtPCF8574(PCF_I2C_RELAY);
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);
2 - po restarcie włączany na ułamek sekundy
Próbuję przerobić pomysły na działające projekty w ArduinoIDE.