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

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 5,374
» Latest member: tziku
» Forum threads: 2,577
» Forum posts: 13,328

Full Statistics

Online Users
There are currently 47 online users.
» 3 Member(s) | 27 Guest(s)
Bytespider, Crawl, Google, PetalBot, Semrush, Yandex, bot, admin, ingersoj

Latest Threads
Kc868 a8 in workshop
Forum: KC868-A8
Last Post: admin
5 minutes ago
» Replies: 1
» Views: 1
KC868-A2 configure yaml f...
Forum: KC868-A2
Last Post: admin
9 minutes ago
» Replies: 16
» Views: 7,689
One input switch - turn o...
Forum: KinCony AS
Last Post: admin
14 minutes ago
» Replies: 1
» Views: 1
change wake up name
Forum: KinCony AS
Last Post: admin
15 minutes ago
» Replies: 15
» Views: 111
KC868-A8 Switch
Forum: KC868-A series and Uair Smart Controller
Last Post: admin
24 minutes ago
» Replies: 3
» Views: 36
H32L - home assistant
Forum: KC868-HxB series Smart Controller
Last Post: admin
26 minutes ago
» Replies: 1
» Views: 3
Problem with IFTTT automa...
Forum: "KCS" firmware system
Last Post: Poczwara13
2 hours ago
» Replies: 7
» Views: 66
how to use AS ESP32-S3 vo...
Forum: KinCony AS
Last Post: biofects
3 hours ago
» Replies: 14
» Views: 474
How can I power multiple ...
Forum: KC868-A series and Uair Smart Controller
Last Post: admin
Yesterday, 09:03 AM
» Replies: 12
» Views: 140
A32 Pro ESPHome yaml incl...
Forum: KC868-A32/A32 Pro
Last Post: admin
12-18-2024, 11:15 PM
» Replies: 18
» Views: 191

  [Arduino source code for KC868-A4]-18 one GPIO with multiple DS18B20 sensor
Posted by: admin - 09-14-2022, 01:49 AM - Forum: KC868-A4 - Replies (2)

these 10pcs of DS18B20 temperature sensors work with one ESP32 GPIO. program will print 10 sensor's value at the same time.
   
   
   

Code:
// Include the libraries we need
#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 13
#define TEMPERATURE_PRECISION 9

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

// arrays to hold device addresses
DeviceAddress sensor1,sensor2,sensor3,sensor4,sensor5,sensor6,sensor7,sensor8,sensor9,sensor10;


void setup(void)
{
  // start serial port
  Serial.begin(115200);

  // Start up the library
  sensors.begin();

  // locate devices on the bus
  Serial.print("Locating devices...");
  Serial.print("Found ");
  Serial.print(sensors.getDeviceCount(), DEC);
  Serial.println(" devices.");

  //
  // method 1: by index
  if (!sensors.getAddress(sensor1, 0)) Serial.println("Unable to find address for Device 0");
  if (!sensors.getAddress(sensor2, 1)) Serial.println("Unable to find address for Device 1");
  if (!sensors.getAddress(sensor3, 2)) Serial.println("Unable to find address for Device 1");
  if (!sensors.getAddress(sensor4, 3)) Serial.println("Unable to find address for Device 1");
  if (!sensors.getAddress(sensor5, 4)) Serial.println("Unable to find address for Device 1");
  if (!sensors.getAddress(sensor6, 5)) Serial.println("Unable to find address for Device 1");
  if (!sensors.getAddress(sensor7, 6)) Serial.println("Unable to find address for Device 1");
  if (!sensors.getAddress(sensor8, 7)) Serial.println("Unable to find address for Device 1");
  if (!sensors.getAddress(sensor9, 8)) Serial.println("Unable to find address for Device 1");
  if (!sensors.getAddress(sensor10, 9)) Serial.println("Unable to find address for Device 1");


  // set the resolution to 9 bit per device
  sensors.setResolution(sensor1, TEMPERATURE_PRECISION);
  sensors.setResolution(sensor2, TEMPERATURE_PRECISION);
  sensors.setResolution(sensor3, TEMPERATURE_PRECISION);
  sensors.setResolution(sensor4, TEMPERATURE_PRECISION);
  sensors.setResolution(sensor5, TEMPERATURE_PRECISION);
  sensors.setResolution(sensor6, TEMPERATURE_PRECISION);
  sensors.setResolution(sensor7, TEMPERATURE_PRECISION);
  sensors.setResolution(sensor8, TEMPERATURE_PRECISION);
  sensors.setResolution(sensor9, TEMPERATURE_PRECISION);
  sensors.setResolution(sensor10, TEMPERATURE_PRECISION);
}

void loop(void)
{
  // call sensors.requestTemperatures() to issue a global temperature
  // request to all devices on the bus
// sensors.requestTemperatures();
  float tempC1 = sensors.getTempC(sensor1);
  float tempC2 = sensors.getTempC(sensor2);
  float tempC3 = sensors.getTempC(sensor3);
  float tempC4 = sensors.getTempC(sensor4);
  float tempC5 = sensors.getTempC(sensor5);
  float tempC6 = sensors.getTempC(sensor6);
  float tempC7 = sensors.getTempC(sensor7);
  float tempC8 = sensors.getTempC(sensor8);
  float tempC9 = sensors.getTempC(sensor9);
  float tempC10 = sensors.getTempC(sensor10);   
  Serial.println(tempC1);
  Serial.println(tempC2);
  Serial.println(tempC3);
  Serial.println(tempC4);
  Serial.println(tempC5);
  Serial.println(tempC6);
  Serial.println(tempC7);
  Serial.println(tempC8);
  Serial.println(tempC9);
  Serial.println(tempC10);
  Serial.println("*************");
 
}

Print this item

Big Grin [Arduino source code for KC868-A4]-17 homekit work with 4 relay and 4 switch buttons
Posted by: admin - 09-13-2022, 02:51 AM - Forum: KC868-A4 - Replies (8)

this arduino source code for KC868-A4 work with 4 relay and 4 momentary switch buttons via Apple homekit app. you can download the BIN firmware directly without chanage any code. Or you can open arduino source code project to compile.
here are KC868-A4 board with 6 gang switch panel (actually I have used 4 buttons) and iPhoneXR.
   

this is demo video:
   

here is source code:

.zip   RealPushButtons-4DO-4DI.zip (Size: 624.09 KB / Downloads: 386)
this is firmware and source code, BIN file included.

if you want to use source code, you should do:
1. install ESP32 V2 board in arduino IDE.
   
2. install "homespan" library for arduino.
   

after you downloaded firmware, first time to use, need type "W" in serial monitor, chose number of wifi SSID, input password. 
   
   
   
   

then use your iPhone or iPad to pair KC868-A4.
                                       

Print this item

  How to return my password account application smart home
Posted by: engmohades - 09-09-2022, 07:16 AM - Forum: KC868-HxB series Smart Controller - Replies (1)

I can not login my account application smart home because i don't remember my password .

how  can i return my password account smart home and how to change it?

Print this item

Photo kincony_kc-H868B_relay32B HomeAssistant Mqtt Not Working After 2022.12.0 Update
Posted by: Shemi - 09-08-2022, 01:27 PM - Forum: KC868-HxB series Smart Controller - Replies (1)

Hi,
I updated HOME ASSISTANT to the latest version and now I get an error message. 
The controller is an H32B model, And the connection is via MQTT.
I can't connect to the controller and nothing is responding, through the HOMEASSISTANT interface.
Before the update I could activate all the relays and see the state of the inputs.


The controller itself works and I can enter the settings through the WEB interface.

This is the message I see in the HOME ASSISTANT interface:
https://im.ge/i/Screenshot-2[img]Manually configured MQTT switch(s) found under platform key switch.[/img]022-09-08-15552800002.OkBDd9



[Image: 72a659600ea6bc80f7ff00799a07540993a558fc.png]


I am attaching a picture of the settings:

[Image: 70496a3eda87726c9a2f3732b93f4167e3db657b.png]



I tried to change the settings to the new format as shown in the instructions and that doesn't work either.

[Image: 159df7bd75704d204ff13ac4286a5dfe7b75fbc3.png]

I assume the problem stems from incorrect settings in the CONFIGURATION.YAML file.
The format should probably be changed.
I would love to get help please.

Thanks in advance,
Shemi Cohen

Print this item

  Poor IR transmitter range
Posted by: onlyoneme - 09-08-2022, 11:13 AM - Forum: KC868-AG / AG Pro / AG8 - Replies (3)

Hello, I've just bought this device and after some preliminary tests I've noticed that IR range is terribly poor comparing to my another transmitter, which is a cheap Tuya based device.

Is it a matter of weak IR LEDs or reason is something else?

Print this item

  KC868-A16 Ethernet ESP32
Posted by: davesmithr1 - 09-08-2022, 09:23 AM - Forum: KC868-A series and Uair Smart Controller - Replies (1)

KC868-A16 Ethernet ESP32 Development Board

does anyone know how to make alexa work using this through the LAN? how to would be awesome i have NO IDEA!!! PLEASE HELP!!! 
Also i want the inputs (dry contact)  to trigger the outputs, 

if someone wants to message me and spend some time to teach/ show me how im willing to pay,

thanks again!

Print this item

  proplem mqtt sensor configration
Posted by: engmohades - 09-08-2022, 06:26 AM - Forum: KC868-HxB series Smart Controller - Replies (1)

hello every one
i have h32bs integrated in home assistant by mqtt  . please see pictures
how can solve it



Attached Files Thumbnail(s)
           
Print this item

  [Arduino IDE demo source code for KC868-A8S]--#17-A8S_Digital input_Ethernet_Web_serv
Posted by: KinCony Support - 09-08-2022, 03:17 AM - Forum: KC868-A8S - Replies (7)

[Arduino IDE demo source code for KC868-A8S]--#17-A8S_Digital input_Ethernet_Web_server_code

.zip   KC868-A8S_Digital_input_Web_Server-ETH.zip (Size: 468.1 KB / Downloads: 326)


PC and phone webpage display
   

Code:
  /***********************************************************
* Create Your own WebServer for KC868-A8s Smart Controller*
* https://www.kincony.com                                **
***********************************************************/

#include "PCF8574.h"
#define DEBUG_ETHERNET_WEBSERVER_PORT       Serial

// Debug Level from 0 to 4
#define _ETHERNET_WEBSERVER_LOGLEVEL_       3

#include <WebServer_WT32_ETH01.h>

WiFiServer server(80);

// Current time
unsigned long currentTime = millis();
// Previous time
unsigned long previousTime = 0;
// Define timeout time in milliseconds (example: 2000ms = 2s)
const long timeoutTime = 2000;

// Variable to store the HTTP request
String header;
PCF8574 pcf8574_1(0x22,4,5);


void setup() {

  Serial.begin(115200);

 
  for(int i=0;i<=7;i++)
  {
     pcf8574_1.pinMode(i, INPUT);
  }

    pcf8574_1.begin();

     
   while (!Serial);

  Serial.print("\nStarting WebServer on " + String(ARDUINO_BOARD));
  Serial.println(" with " + String(SHIELD_TYPE));
  Serial.println(WEBSERVER_WT32_ETH01_VERSION);

  // To be called before ETH.begin()
  WT32_ETH01_onEvent();
  ETH.begin(ETH_PHY_ADDR, ETH_PHY_POWER);
  server.begin();

}

void loop(){
  WiFiClient client = server.available();   // Listen for incoming clients

  if (client) {                             // If a new client connects,
    Serial.println("New Client.");          // print a message out in the serial port
    String currentLine = "";                // make a String to hold incoming data from the client
    currentTime = millis();
    previousTime = currentTime;
    while (client.connected() && currentTime - previousTime <= timeoutTime) { // loop while the client's connected
      currentTime = millis();         
      if (client.available()) {             // if there's bytes to read from the client,
        char c = client.read();             // read a byte, then
        Serial.write(c);                    // print it out the serial monitor
        header += c;
        if (c == '\n') {                    // if the byte is a newline character
          // if the current line is blank, you got two newline characters in a row.
          // that's the end of the client HTTP request, so send a response:
            if (currentLine.length() == 0) {
           client.print(
            "HTTP/1.1 200 OK\r\n"
            "Content-Type: text/html\r\n"
            "Connection: close\r\n"  // the connection will be closed after completion of the response
            "Refresh: 2\r\n"        // refresh the page automatically every 3 sec
            "\r\n");
            client.println("<!DOCTYPE html><html>");
            client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
            client.println("<link rel=\"icon\" href=\"data:,\">");
            // CSS to style the on/off buttons
            // Feel free to change the background-color and font-size attributes to fit your preferences
            client.println("<style>html { font-family: Helvetica; display: inline-block; border: 3px solid green;margin: 0px auto;text-align: center;font-size: 10px;}");
            client.println(".button { background-color: MediumSeaGreen; border-radius: 10px;color: white; padding: 10px 10px;");
            client.println("text-decoration: none; font-size: 20px; margin: 2px;text-align: center; cursor: pointer;}");

            client.println(".button1 { background-color: Tomato; border-radius: 10px;color: white; padding: 10px 10px;");
            client.println("text-decoration: none; font-size: 20px; margin: 2px;text-align: center; cursor: pointer;}");
            client.println(".button2 {background-color: Tomato;}</style></head>");
            client.println("<body><h1>KC868-A8S Web Server</h1>");
            if (pcf8574_1.digitalRead(0)==0) client.println("<a><button class=\"button1\">INPUT01</button></a>"); else client.println("<a><button class=\"button\">INPUT01</button></a>");
            if (pcf8574_1.digitalRead(1)==0) client.println("<a><button class=\"button1\">INPUT02</button></a>"); else client.println("<a><button class=\"button\">INPUT02</button></a>");                                 
            if (pcf8574_1.digitalRead(2)==0) client.println("<a><button class=\"button1\">INPUT03</button></a>"); else client.println("<a><button class=\"button\">INPUT03</button></a>");
            if (pcf8574_1.digitalRead(3)==0) client.println("<a><button class=\"button1\">INPUT04</button></a>"); else client.println("<a><button class=\"button\">INPUT04</button></a>");
            if (pcf8574_1.digitalRead(4)==0) client.println("<a><button class=\"button1\">INPUT05</button></a>"); else client.println("<a><button class=\"button\">INPUT05</button></a>");
            if (pcf8574_1.digitalRead(5)==0) client.println("<a><button class=\"button1\">INPUT06</button></a>"); else client.println("<a><button class=\"button\">INPUT06</button></a>");                                 
            if (pcf8574_1.digitalRead(6)==0) client.println("<a><button class=\"button1\">INPUT07</button></a>"); else client.println("<a><button class=\"button\">INPUT07</button></a>");
            if (pcf8574_1.digitalRead(7)==0) client.println("<a><button class=\"button1\">INPUT08</button></a>"); else client.println("<a><button class=\"button\">INPUT08</button></a>");
           
            client.println("</body></html>");
           
            // The HTTP response ends with another blank line
            client.println();
            break;
          } else { // if you got a newline, then clear currentLine
            currentLine = "";
          }
        } else if (c != '\r') {  // if you got anything else but a carriage return character,
          currentLine += c;      // add it to the end of the currentLine
        }
      }
    }
    // Clear the header variable
    header = "";
    // Close the connection
    client.stop();
    Serial.println("Client disconnected.");
    Serial.println("");
  }

}

Print this item

  [Arduino IDE demo source code for KC868-AI]--#07-AI_Digital input_Ethernet_Web_server
Posted by: KinCony Support - 09-08-2022, 02:15 AM - Forum: KC868-AI - Replies (4)

[Arduino IDE demo source code for KC868-AI]--#07-AI_Digital input_Ethernet_Web_server_code
Arduino source code and bin file 

.zip   KC868-AI_Web_Server-ETH.zip (Size: 470.08 KB / Downloads: 373)


PC and Phone webpage display
   



Code:
  /***********************************************************
* Create Your own WebServer for KC868-AI Smart Controller*
* https://www.kincony.com                                **
***********************************************************/

#include "PCF8574.h"
#define DEBUG_ETHERNET_WEBSERVER_PORT       Serial

// Debug Level from 0 to 4
#define _ETHERNET_WEBSERVER_LOGLEVEL_       3

#include <WebServer_WT32_ETH01.h>

WiFiServer server(80);

// Current time
unsigned long currentTime = millis();
// Previous time
unsigned long previousTime = 0;
// Define timeout time in milliseconds (example: 2000ms = 2s)
const long timeoutTime = 2000;

// Variable to store the HTTP request
String header;
// Set i2c address  
PCF8574 pcf8574_1(0x24,4,5);
PCF8574 pcf8574_2(0x25,4,5);
PCF8574 pcf8574_3(0x21,4,5);
PCF8574 pcf8574_4(0x22,4,5);
PCF8574 pcf8574_5(0x26,4,5);
PCF8574 pcf8574_6(0x23,4,5);


void setup() {

  Serial.begin(115200);

 
  for(int i=0;i<=7;i++)
  {
     pcf8574_1.pinMode(i, INPUT);
     pcf8574_2.pinMode(i, INPUT);
     pcf8574_3.pinMode(i, INPUT);
     pcf8574_4.pinMode(i, INPUT);
     pcf8574_5.pinMode(i, INPUT);
     pcf8574_6.pinMode(i, INPUT);
  }

    pcf8574_1.begin();
    pcf8574_2.begin();
    pcf8574_3.begin();
    pcf8574_4.begin();
    pcf8574_5.begin();
    pcf8574_6.begin();

     
   while (!Serial);

  Serial.print("\nStarting WebServer on " + String(ARDUINO_BOARD));
  Serial.println(" with " + String(SHIELD_TYPE));
  Serial.println(WEBSERVER_WT32_ETH01_VERSION);

  // To be called before ETH.begin()
  WT32_ETH01_onEvent();
  ETH.begin(ETH_PHY_ADDR, ETH_PHY_POWER);
  server.begin();

}

void loop(){
  WiFiClient client = server.available();   // Listen for incoming clients

  if (client) {                             // If a new client connects,
    Serial.println("New Client.");          // print a message out in the serial port
    String currentLine = "";                // make a String to hold incoming data from the client
    currentTime = millis();
    previousTime = currentTime;
    while (client.connected() && currentTime - previousTime <= timeoutTime) { // loop while the client's connected
      currentTime = millis();        
      if (client.available()) {             // if there's bytes to read from the client,
        char c = client.read();             // read a byte, then
        Serial.write(c);                    // print it out the serial monitor
        header += c;
        if (c == '\n') {                    // if the byte is a newline character
          // if the current line is blank, you got two newline characters in a row.
          // that's the end of the client HTTP request, so send a response:
            if (currentLine.length() == 0) {
             client.print(
            "HTTP/1.1 200 OK\r\n"
            "Content-Type: text/html\r\n"
            "Connection: close\r\n"  // the connection will be closed after completion of the response
            "Refresh: 2\r\n"        // refresh the page automatically every 2 sec
            "\r\n");
            client.println("<!DOCTYPE html><html>");
            client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
            client.println("<link rel=\"icon\" href=\"data:,\">");
            // CSS to style the on/off buttons
            // Feel free to change the background-color and font-size attributes to fit your preferences
            client.println("<style>html { font-family: Helvetica; display: inline-block; border: 3px solid green;margin: 0px auto;text-align: center;font-size: 10px;}");
            client.println(".button { background-color: MediumSeaGreen; border-radius: 10px;color: white; padding: 10px 10px;");
            client.println("text-decoration: none; font-size: 20px; margin: 2px;text-align: center; cursor: pointer;}");

            client.println(".button1 { background-color: Tomato; border-radius: 10px;color: white; padding: 10px 10px;");
            client.println("text-decoration: none; font-size: 20px; margin: 2px;text-align: center; cursor: pointer;}");
            client.println(".button2 {background-color: Tomato;}</style></head>");
            client.println("<body><h1>KC868-AI Web Server</h1>");
            if (pcf8574_1.digitalRead(0)==0) client.println("<a><button class=\"button1\">INPUT01</button></a>"); else client.println("<a><button class=\"button\">INPUT01</button></a>");
            if (pcf8574_1.digitalRead(1)==0) client.println("<a><button class=\"button1\">INPUT02</button></a>"); else client.println("<a><button class=\"button\">INPUT02</button></a>");                                
            if (pcf8574_1.digitalRead(2)==0) client.println("<a><button class=\"button1\">INPUT03</button></a>"); else client.println("<a><button class=\"button\">INPUT03</button></a>");
            if (pcf8574_1.digitalRead(3)==0) client.println("<a><button class=\"button1\">INPUT04</button></a>"); else client.println("<a><button class=\"button\">INPUT04</button></a>");
            if (pcf8574_1.digitalRead(4)==0) client.println("<a><button class=\"button1\">INPUT05</button></a>"); else client.println("<a><button class=\"button\">INPUT05</button></a>");
            if (pcf8574_1.digitalRead(5)==0) client.println("<a><button class=\"button1\">INPUT06</button></a>"); else client.println("<a><button class=\"button\">INPUT06</button></a>");                                
            if (pcf8574_1.digitalRead(6)==0) client.println("<a><button class=\"button1\">INPUT07</button></a>"); else client.println("<a><button class=\"button\">INPUT07</button></a>");
            if (pcf8574_1.digitalRead(7)==0) client.println("<a><button class=\"button1\">INPUT08</button></a>"); else client.println("<a><button class=\"button\">INPUT08</button></a>");

            if (pcf8574_2.digitalRead(0)==0) client.println("<a><button class=\"button1\">INPUT09</button></a>"); else client.println("<a><button class=\"button\">INPUT09</button></a>");
            if (pcf8574_2.digitalRead(1)==0) client.println("<a><button class=\"button1\">INPUT10</button></a>"); else client.println("<a><button class=\"button\">INPUT10</button></a>");                                
            if (pcf8574_2.digitalRead(2)==0) client.println("<a><button class=\"button1\">INPUT11</button></a>"); else client.println("<a><button class=\"button\">INPUT11</button></a>");
            if (pcf8574_2.digitalRead(3)==0) client.println("<a><button class=\"button1\">INPUT12</button></a>"); else client.println("<a><button class=\"button\">INPUT12</button></a>");
            if (pcf8574_2.digitalRead(4)==0) client.println("<a><button class=\"button1\">INPUT13</button></a>"); else client.println("<a><button class=\"button\">INPUT13</button></a>");
            if (pcf8574_2.digitalRead(5)==0) client.println("<a><button class=\"button1\">INPUT14</button></a>"); else client.println("<a><button class=\"button\">INPUT14</button></a>");                                
            if (pcf8574_2.digitalRead(6)==0) client.println("<a><button class=\"button1\">INPUT15</button></a>"); else client.println("<a><button class=\"button\">INPUT15</button></a>");
            if (pcf8574_2.digitalRead(7)==0) client.println("<a><button class=\"button1\">INPUT16</button></a>"); else client.println("<a><button class=\"button\">INPUT16</button></a>");


            if (pcf8574_3.digitalRead(0)==0) client.println("<a><button class=\"button1\">INPUT17</button></a>"); else client.println("<a><button class=\"button\">INPUT17</button></a>");
            if (pcf8574_3.digitalRead(1)==0) client.println("<a><button class=\"button1\">INPUT18</button></a>"); else client.println("<a><button class=\"button\">INPUT18</button></a>");                                
            if (pcf8574_3.digitalRead(2)==0) client.println("<a><button class=\"button1\">INPUT19</button></a>"); else client.println("<a><button class=\"button\">INPUT19</button></a>");
            if (pcf8574_3.digitalRead(3)==0) client.println("<a><button class=\"button1\">INPUT20</button></a>"); else client.println("<a><button class=\"button\">INPUT20</button></a>");
            if (pcf8574_3.digitalRead(4)==0) client.println("<a><button class=\"button1\">INPUT21</button></a>"); else client.println("<a><button class=\"button\">INPUT21</button></a>");
            if (pcf8574_3.digitalRead(5)==0) client.println("<a><button class=\"button1\">INPUT22</button></a>"); else client.println("<a><button class=\"button\">INPUT22</button></a>");                                
            if (pcf8574_3.digitalRead(6)==0) client.println("<a><button class=\"button1\">INPUT23</button></a>"); else client.println("<a><button class=\"button\">INPUT23</button></a>");
            if (pcf8574_3.digitalRead(7)==0) client.println("<a><button class=\"button1\">INPUT24</button></a>"); else client.println("<a><button class=\"button\">INPUT24</button></a>");

            if (pcf8574_4.digitalRead(0)==0) client.println("<a><button class=\"button1\">INPUT25</button></a>"); else client.println("<a><button class=\"button\">INPUT25</button></a>");
            if (pcf8574_4.digitalRead(1)==0) client.println("<a><button class=\"button1\">INPUT26</button></a>"); else client.println("<a><button class=\"button\">INPUT26</button></a>");                                
            if (pcf8574_4.digitalRead(2)==0) client.println("<a><button class=\"button1\">INPUT27</button></a>"); else client.println("<a><button class=\"button\">INPUT27</button></a>");
            if (pcf8574_4.digitalRead(3)==0) client.println("<a><button class=\"button1\">INPUT28</button></a>"); else client.println("<a><button class=\"button\">INPUT28</button></a>");
            if (pcf8574_4.digitalRead(4)==0) client.println("<a><button class=\"button1\">INPUT29</button></a>"); else client.println("<a><button class=\"button\">INPUT29</button></a>");
            if (pcf8574_4.digitalRead(5)==0) client.println("<a><button class=\"button1\">INPUT30</button></a>"); else client.println("<a><button class=\"button\">INPUT30</button></a>");                                
            if (pcf8574_4.digitalRead(6)==0) client.println("<a><button class=\"button1\">INPUT31</button></a>"); else client.println("<a><button class=\"button\">INPUT31</button></a>");
            if (pcf8574_4.digitalRead(7)==0) client.println("<a><button class=\"button1\">INPUT32</button></a>"); else client.println("<a><button class=\"button\">INPUT32</button></a>");

            if (pcf8574_5.digitalRead(0)==0) client.println("<a><button class=\"button1\">INPUT33</button></a>"); else client.println("<a><button class=\"button\">INPUT33</button></a>");
            if (pcf8574_5.digitalRead(1)==0) client.println("<a><button class=\"button1\">INPUT34</button></a>"); else client.println("<a><button class=\"button\">INPUT34</button></a>");                                
            if (pcf8574_5.digitalRead(2)==0) client.println("<a><button class=\"button1\">INPUT35</button></a>"); else client.println("<a><button class=\"button\">INPUT35</button></a>");
            if (pcf8574_5.digitalRead(3)==0) client.println("<a><button class=\"button1\">INPUT36</button></a>"); else client.println("<a><button class=\"button\">INPUT36</button></a>");
            if (pcf8574_5.digitalRead(4)==0) client.println("<a><button class=\"button1\">INPUT37</button></a>"); else client.println("<a><button class=\"button\">INPUT37</button></a>");
            if (pcf8574_5.digitalRead(5)==0) client.println("<a><button class=\"button1\">INPUT38</button></a>"); else client.println("<a><button class=\"button\">INPUT38</button></a>");                                
            if (pcf8574_5.digitalRead(6)==0) client.println("<a><button class=\"button1\">INPUT39</button></a>"); else client.println("<a><button class=\"button\">INPUT39</button></a>");
            if (pcf8574_5.digitalRead(7)==0) client.println("<a><button class=\"button1\">INPUT40</button></a>"); else client.println("<a><button class=\"button\">INPUT40</button></a>");

            if (pcf8574_6.digitalRead(0)==0) client.println("<a><button class=\"button1\">INPUT41</button></a>"); else client.println("<a><button class=\"button\">INPUT41</button></a>");
            if (pcf8574_6.digitalRead(1)==0) client.println("<a><button class=\"button1\">INPUT42</button></a>"); else client.println("<a><button class=\"button\">INPUT42</button></a>");                                
            if (pcf8574_6.digitalRead(2)==0) client.println("<a><button class=\"button1\">INPUT43</button></a>"); else client.println("<a><button class=\"button\">INPUT43</button></a>");
            if (pcf8574_6.digitalRead(3)==0) client.println("<a><button class=\"button1\">INPUT44</button></a>"); else client.println("<a><button class=\"button\">INPUT44</button></a>");
            if (pcf8574_6.digitalRead(4)==0) client.println("<a><button class=\"button1\">INPUT45</button></a>"); else client.println("<a><button class=\"button\">INPUT45</button></a>");
            if (pcf8574_6.digitalRead(5)==0) client.println("<a><button class=\"button1\">INPUT46</button></a>"); else client.println("<a><button class=\"button\">INPUT46</button></a>");                                
            if (pcf8574_6.digitalRead(6)==0) client.println("<a><button class=\"button1\">INPUT47</button></a>"); else client.println("<a><button class=\"button\">INPUT47</button></a>");
            if (pcf8574_6.digitalRead(7)==0) client.println("<a><button class=\"button1\">INPUT48</button></a>"); else client.println("<a><button class=\"button\">INPUT48</button></a>");
          
            client.println("</body></html>");
           
            // The HTTP response ends with another blank line
            client.println();
            break;
          } else { // if you got a newline, then clear currentLine
            currentLine = "";
          }
        } else if (c != '\r') {  // if you got anything else but a carriage return character,
          currentLine += c;      // add it to the end of the currentLine
        }
      }
    }
    // Clear the header variable
    header = "";
    // Close the connection
    client.stop();
    Serial.println("Client disconnected.");
    Serial.println("");
  }

}

Print this item

Lightbulb Fireplace stove combustion automation
Posted by: SvetZitrka - 09-06-2022, 10:40 AM - Forum: DIY Project - Replies (3)

Hi, I would like to equip my fireplace insert with an automation that will measure the temperature of the flue gas in the chimney and control the air supply damper based on that.


Hi, I would like to equip my fireplace insert with an automation that will measure the temperature of the flue gas in the chimney and control the air supply damper based on that.

Systems like this can make the whole burning process much more efficient, using up to 30% less wood. Which is great. Plus, they can be very user-friendly and alert the user to add wood to the fireplace.

All you have to do is measure the temperature with a ceramic sensor that can withstand high temperatures and a servo drive to control the air supply damper.

All the logic should be able to be set up through Home Assistant.

  • Which HW Kincony would handle this and how?
  • Can you give me any advice?

I believe that similar automation would save many users a lot of stress, especially now that winter is coming and there is an energy crisis.



Attached Files Thumbnail(s)
   
Print this item