Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 6,603
» Latest member: GeorgeHaward
» Forum threads: 2,931
» Forum posts: 15,543

Full Statistics

Online Users
There are currently 7 online users.
» 0 Member(s) | 2 Guest(s)
Amazonbot, bot

Latest Threads
MB Specs - 8A per channel...
Forum: KC868-M16 / M1 / MB / M30
Last Post: admin
3 hours ago
» Replies: 1
» Views: 5
KC868-M16v2 configure yam...
Forum: KC868-M16 / M1 / MB / M30
Last Post: admin
Yesterday, 10:44 PM
» Replies: 52
» Views: 5,534
KC868-A8M circuit diagram
Forum: KC868-A8M
Last Post: admin
Yesterday, 10:44 PM
» Replies: 2
» Views: 855
KC868-AG ESP32 I/O pin de...
Forum: KC868-AG / AG Pro / AG8
Last Post: admin
Yesterday, 12:23 PM
» Replies: 12
» Views: 2,618
Low output voltage
Forum: KC868-A16
Last Post: twostar
Yesterday, 11:59 AM
» Replies: 2
» Views: 21
Tuya adapter V2 arduino s...
Forum: KC868-ATC / Tuya adapter V2
Last Post: admin
Yesterday, 01:18 AM
» Replies: 2
» Views: 247
Dummy question: non-zero ...
Forum: T16M
Last Post: jarekD
04-05-2025, 09:00 AM
» Replies: 9
» Views: 165
BM16 Problems
Forum: B16M
Last Post: PWJ
04-04-2025, 08:51 AM
» Replies: 2
» Views: 26
M30 negative power
Forum: KC868-M16 / M1 / MB / M30
Last Post: admin
04-04-2025, 12:10 AM
» Replies: 3
» Views: 27
KC868-A16 analog input
Forum: KC868-A series and Uair Smart Controller
Last Post: admin
04-04-2025, 12:10 AM
» Replies: 5
» Views: 350

  Pull up on A8
Posted by: heffneil - 01-27-2025, 09:04 PM - Forum: KC868-A series and Uair Smart Controller - Replies (17)

I am using ESPHome and I am seeing a lot of problems with the floating input.  Can someone tell me if I can specify pullup?  I tried with esphome normally and it doesn't like it so I am stuck?

Print this item

Wink KC868-A16 IFTT
Posted by: FrBe - 01-27-2025, 08:32 PM - Forum: News - Replies (3)

Hello, I have a K868 A16 card, I would like to use it for photovoltaic.
I followed the procedure to load the BIN file from Kincony, I control the card and I created actions via IFTT.
Unfortunately, I haven't found the source file for your BIN so I can modify the file and reinject it as if it were an Arduino IDE ESP32.
I would have liked to be able to define variables to memorise the state of the battery in charge/discharge, the sun producing more, ...
Not having to use a Raspberry pi, pc ...
Will the RS485 port be able to include the battery BMS and will the board alone be able to extract the data and process the values?
Is it possible to connect a small screen displaying messages via I2C?
How can I add the program via the Arduino IDE without losing the original BIN file?
I'd like to use a voltage divider bridge, connect the voltage of the photovoltaic panels and the battery voltage so that the board controls the starting or stopping of the inverter depending on the amount of sunlight and the state of charge/discharge of the battery.
I'm thinking of using conditions via IFTT because I'd like the card to work locally if the internet isn't working.
I was thinking of using ESPHOME and HA, but if there is no internet the card will be useless I suppose.
Thanks for your help.

Print this item

  PROGRAM KC868 A16 DI, DO AND LIQUID CRYSTAL FROM ARDUINO IDE
Posted by: Cesarcardca - 01-27-2025, 05:43 PM - Forum: KC868-A16 - Replies (18)

I NEED PROGRAM KC868 A16 DI, DO AND LIQUID CRYSTAL I2C FROM ARDUINO IDE. Or if your recommendation is through esphome, I could also try it, I need the syntax, or the devices for inputs and outputs so I can manipulate my program since I also need to interrupt a sensor.



Attached Files Thumbnail(s)
   
Print this item

  IP CAM
Posted by: jacklellel - 01-27-2025, 04:54 PM - Forum: KC868-A2 - Replies (1)

Good morning,
I would like to know if it is possible to connect an IP camera to the Ethernet port of this card, so that it sends the periodic web shots through the SIM7600 module.

Print this item

  UART connection
Posted by: eitan - 01-27-2025, 08:54 AM - Forum: KC868-A16 - Replies (1)

Hi everyone
I recently bought a A16 and I am a bit lost on how to program it.
I have a lot of experience in programming on arduino, but not much on ESP.
I followed another thread https://www.kincony.com/forum/showthread.php?tid=2199, but I am not sure on my results.

Here is my objective (that s pretty simple to my opinion):

I have 4 different current sensors connected to the A16. I want to read these 4 currents and send them to the arduino (portenta c33). I also want the portenta to send 8 states (up or down) to control digital outputs.

How to do so ?

I am currently using Arduino IDE, I am not familiar with KCS...

Thanks,
Eitan

Print this item

  HA + Loxone + NSPanel
Posted by: krzysieks1526 - 01-27-2025, 08:27 AM - Forum: DIY Project - Replies (3)

Hi all,

Do you have solutions for HomeAssistant which is cooperating with Loxone over NSPanels?

I mean I am looking for controllers with power output as NSPanel will use virtual inputs on Loxone and Loxone will execute commands over mqtt/http on your controllers

Any idea? Examples? Controllers without Input?

Best Regards
Krzysztof

Print this item

  how to install KC868-AG without HA
Posted by: ahiel - 01-26-2025, 10:55 AM - Forum: KC868-AG / AG Pro / AG8 - Replies (5)

I've just got KC868-AG and want to install it to use it with MQTT (I'm using openhab).
how can I configure it?
just connected it to power (see green light). but can't see any new wifi network. 
any manual?

thanks!

Print this item

  ESP32-S3 Core Development Board ESP-IDF SSD1306 Demo
Posted by: egionet - 01-26-2025, 09:41 AM - Forum: G1 - No Replies

This driver was developed for generic SSD1306 OLED displays.  Information on features and functionality are documented and can be found in the `ssd1306.h` header file.  The SSD1306 component is a compact and simplified driver compatible with 128x64 and 128x32 displays.  There are three font sizes supported, hardware and software scrolling capabilities, bitmap visualization, and more.  This component has one font implemented now (i.e. 8x8 basic Latin + control + extended Latin) but is ideal for most use cases.

The example initializes a 128x64 SSD1306 display and demonstrates the following features:
- Display large text (x3)
- Display file receive and transmit bitmap icons
- Display medium text (x2)
- Display text
- Display countdown timer
- Display text scrolling up
- Display text scrolling down
- Display text paging down and up
- Display text scrolling horizontally from right and left
- Display text scrolling vertically downwards and upwards
- Display bitmap images
- Display inverted text and fadeout


Generic 128x64 SSD1306 OLED display example:

Code:
void i2c0_ssd1306_task( void *pvParameters ) {
    // initialize the xLastWakeTime variable with the current time.
    TickType_t          last_wake_time   = xTaskGetTickCount ();
    //
    // initialize i2c device configuration
    i2c_ssd1306_config_t dev_cfg         = I2C_SSD1306_128x64_CONFIG_DEFAULT;
    i2c_ssd1306_handle_t dev_hdl;
    //
    // init device
    i2c_ssd1306_init(i2c0_bus_hdl, &dev_cfg, &dev_hdl);
    if (dev_hdl == NULL) {
        ESP_LOGE(APP_TAG, "ssd1306 handle init failed");
        assert(dev_hdl);
    }
    //
    // task loop entry point
    for ( ;; ) {
        ESP_LOGI(APP_TAG, "######################## SSD1306 - START #########################");
        //
        int center = 1, top = 1, bottom = 4;
        char lineChar[16];
        uint8_t image[24];
        ESP_LOGI(APP_TAG, "Panel is 128x64");
        // Display x3 text
        ESP_LOGI(APP_TAG, "Display x3 Text");
        i2c_ssd1306_clear_display(dev_hdl, false);
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);
        i2c_ssd1306_display_text_x3(dev_hdl, 0, "Hello", 5, false);
        vTaskDelay(3000 / portTICK_PERIOD_MS);
        // Display bitmap icons
        ESP_LOGI(APP_TAG, "Display bitmap icons");
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);
        i2c_ssd1306_clear_display(dev_hdl, false);
        i2c_ssd1306_display_bitmap(dev_hdl, 31, 0, data_rx_img_32x32, 32, 32, false);
        vTaskDelay(500 / portTICK_PERIOD_MS);
        i2c_ssd1306_display_bitmap(dev_hdl, 31, 0, data_tx_img_32x32, 32, 32, false);
        vTaskDelay(1000 / portTICK_PERIOD_MS);
        // Display x2 text
        ESP_LOGI(APP_TAG, "Display x2 Text");
        i2c_ssd1306_clear_display(dev_hdl, false);
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);
        i2c_ssd1306_display_text_x2(dev_hdl, 0, "{xTEXTx}", 8, false);
        i2c_ssd1306_display_text_x2(dev_hdl, 2, " X2-X2", 6, false);
        vTaskDelay(3000 / portTICK_PERIOD_MS);
        // Display text
        ESP_LOGI(APP_TAG, "Display Text");
        i2c_ssd1306_clear_display(dev_hdl, false);
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);
        i2c_ssd1306_display_text(dev_hdl, 0, "SSD1306 128x64", 14, false);
        i2c_ssd1306_display_text(dev_hdl, 1, "Hello World!!", 13, false);
        i2c_ssd1306_display_text(dev_hdl, 2, "SSD1306 128x64", 14, true);
        i2c_ssd1306_display_text(dev_hdl, 3, "Hello World!!", 13, true);
        vTaskDelay(3000 / portTICK_PERIOD_MS);
        // Display Count Down
        ESP_LOGI(APP_TAG, "Display Count Down");
        memset(image, 0, sizeof(image));
        i2c_ssd1306_display_image(dev_hdl, top, (6*8-1), image, sizeof(image));
        i2c_ssd1306_display_image(dev_hdl, top+1, (6*8-1), image, sizeof(image));
        i2c_ssd1306_display_image(dev_hdl, top+2, (6*8-1), image, sizeof(image));
        for(int font = 0x39; font > 0x30; font--) {
            memset(image, 0, sizeof(image));
            i2c_ssd1306_display_image(dev_hdl, top+1, (7*8-1), image, 8);
            memcpy(image, font8x8_latin_tr, 8);
            if (dev_hdl->flip_enabled) i2c_ssd1306_flip_buffer(image, 8);
            i2c_ssd1306_display_image(dev_hdl, top+1, (7*8-1), image, 8);
            vTaskDelay(1000 / portTICK_PERIOD_MS);
        }
        // Page Down
        ESP_LOGI(APP_TAG, "Page Down");
        i2c_ssd1306_clear_display(dev_hdl, false);
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);
        i2c_ssd1306_display_text(dev_hdl, 0, "---Page   DOWN---", 16, true);
        i2c_ssd1306_set_software_scroll(dev_hdl, 1, (dev_hdl->pages-1) );
        for (int page = 0; page < bottom+10; page++) {
            if ( (page % (dev_hdl->pages-1)) == 0) i2c_ssd1306_clear_scroll_display(dev_hdl);
            lineChar[0] = 0x02;
            sprintf(&lineChar[1], " Line %02d", page);
            i2c_ssd1306_display_scroll_text(dev_hdl, lineChar, strlen(lineChar), false);
            vTaskDelay(500 / portTICK_PERIOD_MS);
        }
        vTaskDelay(3000 / portTICK_PERIOD_MS);
        // Horizontal Scroll
        ESP_LOGI(APP_TAG, "Horizontal Scroll");
        i2c_ssd1306_clear_display(dev_hdl, false);
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);
        i2c_ssd1306_display_text(dev_hdl, center, "Horizontal", 10, false);
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_RIGHT, I2C_SSD1306_SCROLL_2_FRAMES);
        vTaskDelay(5000 / portTICK_PERIOD_MS);
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_LEFT, I2C_SSD1306_SCROLL_2_FRAMES);
        vTaskDelay(5000 / portTICK_PERIOD_MS);
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_STOP, I2C_SSD1306_SCROLL_2_FRAMES);
        // Vertical Scroll
        ESP_LOGI(APP_TAG, "Vertical Scroll");
        i2c_ssd1306_clear_display(dev_hdl, false);
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);
        i2c_ssd1306_display_text(dev_hdl, center, "Vertical", 8, false);
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_DOWN, I2C_SSD1306_SCROLL_2_FRAMES);
        vTaskDelay(5000 / portTICK_PERIOD_MS);
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_UP, I2C_SSD1306_SCROLL_2_FRAMES);
        vTaskDelay(5000 / portTICK_PERIOD_MS);
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_STOP, I2C_SSD1306_SCROLL_2_FRAMES);
        // Bitmaps
        ESP_LOGI(APP_TAG, "Bitmaps");
        i2c_ssd1306_display_text(dev_hdl, 1, "BATMAN", 6, false);
        int bitmapWidth = 4*8;
        int width = dev_hdl->width;
        int xpos = width / 2; // center of width
        xpos = xpos - bitmapWidth/2;
        int ypos = 16;
        ESP_LOGD(APP_TAG, "width=%d xpos=%d", width, xpos);
        i2c_ssd1306_display_bitmap(dev_hdl, xpos, ypos, batman, 32, 13, false);
        vTaskDelay(3000 / portTICK_PERIOD_MS);
        for(int i=0;i<128;i++) {
            i2c_ssd1306_set_display_wrap_arround(dev_hdl, I2C_SSD1306_SCROLL_RIGHT, 2, 3, 0);
        }
        vTaskDelay(2000 / portTICK_PERIOD_MS);
        i2c_ssd1306_clear_display(dev_hdl, false);
        i2c_ssd1306_display_bitmap(dev_hdl, 0, 0, fleischer, 128, 64, false);
        vTaskDelay(2000 / portTICK_PERIOD_MS);
        // Invert
        ESP_LOGI(APP_TAG, "Invert");
        i2c_ssd1306_clear_display(dev_hdl, true);
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);
        i2c_ssd1306_display_text(dev_hdl, center, "  Good Bye!!", 12, true);
        vTaskDelay(5000 / portTICK_PERIOD_MS);
        // Fade Out
        ESP_LOGI(APP_TAG, "Fade Out");
        i2c_ssd1306_fadeout_display(dev_hdl);
        //
        ESP_LOGI(APP_TAG, "######################## SSD1306 - END ###########################");
        //
        //
        // pause the task per defined wait period
        vTaskDelaySecUntil( &last_wake_time, I2C0_TASK_SAMPLING_RATE + 10 );
    }
    //
    // free resources
    i2c_ssd1306_delete( dev_hdl );
    vTaskDelete( NULL );
}

The source code for the above example and component are available here:
- Example: https://github.com/K0I05/ESP32-S3_ESP-ID...306_task.c
- Component: https://github.com/K0I05/ESP32-S3_ESP-ID...sp_ssd1306

Print this item

  KC868-A16
Posted by: juansa2 - 01-25-2025, 11:37 PM - Forum: "KCS" v2 firmware system - Replies (5)

can i extend IO A16 with two A16?

Print this item

  Problem with KC868-A16 Firmware
Posted by: jvargas - 01-25-2025, 10:35 PM - Forum: "KCS" v2 firmware system - Replies (3)

I have problems. It doesn't connect.
[Image: 1AjSOhWGY7Vq9yZ1nK5C_iwLsPlDhnFFJ]

Print this item