# Hulp bij AJAX security koppelen aan Homey mbv Arduino Homeyduino

**URL:** <https://community.homey.app/t/hulp-bij-ajax-security-koppelen-aan-homey-mbv-arduino-homeyduino/79699>\
**Category:** Vragen & hulp\
**Created:** [April 25, 2023, 10:10am UTC](https://community.homey.app/t/hulp-bij-ajax-security-koppelen-aan-homey-mbv-arduino-homeyduino/79699 "2023-04-25T10:10:34Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mark\_Smeets](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/mark_smeets/32/47854_2.png) [@Mark\_Smeets](https://community.homey.app/u/Mark_Smeets)\
**Post date:** [April 25, 2023, 10:10am UTC](https://community.homey.app/t/hulp-bij-ajax-security-koppelen-aan-homey-mbv-arduino-homeyduino/79699/1 "2023-04-25T10:10:34Z")

</div>

Hoi goedemiddag,

Ik heb mijzelf in het diepen gegooid na het lezen van: [Bitbucket](https://bitbucket.org/iesus_sonesson/d1-ajax-mqtt/src/master/README.md)

Ik heb een AJAX alarmsysteem en ben net als vele andere al lange tijd aan het wachten tot er een mooie Homey integratie komt. Helaas is hiervoor nog geen plug and play integratie voor.

Nu kwam ik een manier tegen om Ajax te koppelen aan homey doormiddel van Arduino.  
Ik heb een D1 mini en de Ajax remote control met elkaar verbonden.

Arduino is voor mij compleet nieuw. Ik heb met wat Copy Past werk inmiddels het een en ander uitgevogeld. Helaas nog niet werkend. De Wemos D1 is gekoppeld aan het netwerk maar ik krijg het niet voor elkaar om deze nu te koppelen met de Homeyduino app in Homey.

Hopelijk willen jullie met mij meekijken en bijsturen waar nodig.  
Onderstaand de code die in de D1 staat  
Hiermee krijg ik de melding: Compilation error: redefinition of ‘void setup()’:

```auto
#include <ESP8266WiFi.h>
#include <PubSubClient.h>

#define PANIC 6
#define DISARM 7
#define ARM 1
#define NIGHT 2

WiFiClient espClient;
PubSubClient mqtt(espClient);
const char* ssid = "VERBORGEN";
const char* password = "VERBORGENi";
const char* host = "YOUR_MQTT_HOST";

void setup() {
  Serial.begin(115200);
  //built in led on because it looks good
  pinMode(LED_BUILTIN, OUTPUT);

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print('.');
    delay(500);
  }
  mqtt.setServer(host, 1883);
  mqtt.setCallback(callback);
}

void reconnect() {
  while (!mqtt.connected()) {
    Serial.print("Attempting MQTT connection...");
    String clientId = "ESP8266Client-";
    clientId += String(random(0xffff), HEX);
    if (mqtt.connect(clientId.c_str())) {
      mqtt.subscribe("ajax/alarm");
    } else {
      Serial.print("failed, rc=");
      Serial.print(mqtt.state());
      Serial.println(" try again in 5 seconds");
      delay(5000);
    }
  }
  Serial.println("MQTT Connected.");
}

void loop() {
  if (!mqtt.connected()) {
    reconnect();
  }
  mqtt.loop();
}

void callback(
  char* topic,
  byte* payload,
  unsigned int length
) {
  Serial.print("Message arrived [");
  Serial.print(topic);
  Serial.print("] ");
  String msg = "";
  for (int i = 0; i < length; i++) {
    Serial.print((char)payload[i]);
    msg = msg+(char)payload[i];
  }

  if (strcmp(topic, "ajax/alarm") == 0 && msg == "panic") {
    pressButton(PANIC);
  } else if (strcmp(topic, "ajax/alarm") == 0 && msg == "disarm") {
    pressButton(DISARM);
  } else if (strcmp(topic, "ajax/alarm") == 0 && msg == "arm") {
    pressButton(ARM);
  } else if (strcmp(topic, "ajax/alarm") == 0 && msg == "night") {
    pressButton(NIGHT);
  }
}

void pressButton(int buttonId) {
  pinMode(buttonId, OUTPUT);
  digitalWrite(buttonId, LOW);
  delay(300);
  pinMode(buttonId, INPUT);
  Serial.println("SENT SIGNAL");
}
#include <SPI.h>
#include <Ethernet2.h>
#include <EthernetUdp2.h>
#include <Homey.h>

byte mac[] = { 0x48, 0x6F, 0x6D, 0x65, 0x79, 0x00 };
const char* name = "example";

void setup() {
  Ethernet.begin(mac);
  Homey.begin(name);
}

void loop() {
  Homey.loop();
}

```

---

<div class="post-metadata">

**Author:** ![Peter\_Kawa](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/peter_kawa/32/173848_2.png) [@Peter\_Kawa](https://community.homey.app/u/Peter_Kawa)\
**Post date:** [April 25, 2023, 12:54pm UTC](https://community.homey.app/t/hulp-bij-ajax-security-koppelen-aan-homey-mbv-arduino-homeyduino/79699/2 "2023-04-25T12:54:03Z")

</div>

> [@Mark\_Smeets](#):
>
> Compilation error: redefinition of ‘void setup()’

Ik vermoed dat de error betekent dat je `void setup()` meer dan 1x hebt gebruikt:

> [@Mark\_Smeets](#):
>
> ```auto
> void setup() {
> Serial.begin(115200);
> //built in led on because it looks good
> pinMode(LED_BUILTIN, OUTPUT);
> 
> WiFi.begin(ssid, password);
> while (WiFi.status() != WL_CONNECTED) {
> Serial.print('.');
> delay(500);
> }
> mqtt.setServer(host, 1883);
> mqtt.setCallback(callback);
> }
> 
> ```

> [@Mark\_Smeets](#):
>
> ```auto
> void setup() {
> Ethernet.begin(mac);
> Homey.begin(name);
> }
> 
> ```

Misschien werkt dit:  
Verplaats de twee laatste entry’s onder de 1e `void setup()` vermelding:

```auto
void setup() {
  Serial.begin(115200);
  //built in led on because it looks good
  pinMode(LED_BUILTIN, OUTPUT);

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print('.');
    delay(500);
  }
  mqtt.setServer(host, 1883);
  mqtt.setCallback(callback);
  Ethernet.begin(mac);
  Homey.begin(name);
}

```

Maar de wifi entry zou onder `void wifi()` moeten staan,  
zie dit voorbeeld voor een temp.sensor:

```auto
/* 
  * Example project: 
  * NodeMCU board connected to a DHT11 temperature and humidity sensor 
  * 
  */ 
  
 #include <ESP8266WiFi.h> 
 #include <WiFiClient.h> 
 #include <Homey.h> 
 #include <SimpleDHT.h> 
  
 #define PIN_DHT D5 
  
 SimpleDHT11 dht11; 
  
 unsigned long previousMillis = 0; 
 const unsigned long interval = 10000; //Interval in milliseconds 
  
 void wifi() { 
   if (WiFi.status() != WL_CONNECTED) { 
     WiFi.begin("<SSID>", "<PASSWORD>"); 
     uint8_t timeout = 30; 
     while (WiFi.status() != WL_CONNECTED) { 
       delay(500); 
       Serial.print("."); 
       if (timeout<1) break; 
     } 
     if (WiFi.status() == WL_CONNECTED) { 
       //Print IP address 
       Serial.print("Connected to WiFi! ("); 
       Serial.print(WiFi.localIP()); 
       Serial.println(")"); 
     } 
   } 
 } 
  
 void setup() { 
   Serial.begin(115200); 
   Homey.begin("DHT11 sensor"); 
   Homey.setClass("sensor"); 
   Homey.addCapability("measure_humidity"); 
   Homey.addCapability("measure_temperature"); 
 } 
  
 void loop() { 
   wifi(); 
   Homey.loop(); 
   unsigned long currentMillis = millis(); 
   if(currentMillis - previousMillis > interval) { 
     previousMillis = currentMillis; 
     updateSensor(); 
   } 
 } 
  
 void updateSensor() { 
   byte temperature = 0; 
   byte humidity = 0; 
   int err = SimpleDHTErrSuccess; 
   if ((err = dht11.read(PIN_DHT, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) { 
     Serial.print("Read DHT11 failed, err="); Serial.println(err); 
     return; 
   } 
  
   Serial.print((int)temperature); Serial.print(" *C, "); 
   Serial.print((int)humidity); Serial.println(" H"); 
  
   Homey.setCapabilityValue("measure_temperature", (int) temperature); 
   Homey.setCapabilityValue("measure_humidity", (int) humidity); 
 }

```

[https://github.com/athombv/homey-arduino-library/blob/master/examples/Example%20projects/dht11/dht11-esp8266/dht11-esp8266.ino](https://github.com/athombv/homey-arduino-library/blob/master/examples/Example%20projects/dht11/dht11-esp8266/dht11-esp8266.ino)

.  
Dit zijn ook leuke apps:

 ![Screenshot_20230425-145159_Chrome](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/8/1/81fa22b8f48cdd727a172bfd8ffdc7021a0fe72f.jpeg)

---

<div class="post-metadata">

**Author:** ![Joost\_Else](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/joost_else/32/17360_2.png) [@Joost\_Else](https://community.homey.app/u/Joost_Else)\
**Post date:** [April 25, 2023, 7:17pm UTC](https://community.homey.app/t/hulp-bij-ajax-security-koppelen-aan-homey-mbv-arduino-homeyduino/79699/3 "2023-04-25T19:17:00Z")

</div>

Niet alleen een dubbele setup() functie, maar ook een dubbele loop(). Je hebt zo te zien gewoon 2 examples aan elkaar geknoopt (#include wordt meestal helemaal bovenin de module gedaan, ook als je de inhoud van de ingesloten files nog niet meteen nodig hebt).

---

<div class="post-metadata">

**Author:** ![Mark\_Smeets](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/mark_smeets/32/47854_2.png) [@Mark\_Smeets](https://community.homey.app/u/Mark_Smeets)\
**Post date:** [April 26, 2023, 12:53pm UTC](https://community.homey.app/t/hulp-bij-ajax-security-koppelen-aan-homey-mbv-arduino-homeyduino/79699/4 "2023-04-26T12:53:38Z")

</div>

Bedankt voor jullie meedenken @peter_kawa en @Joost_Else ! Dat wordt erg gewaardeerd.  
Ik heb jullie adviezen opgevolgd. Herlaas stuit ik op het volgende: Compilation error: statement cannot resolve address of overloaded function. Dit gaat om de regels  
Ethernet.begin; (84:F3:EB:17:D1:62);  
Homey.begin(Homey Pro van Mark);

Ik heb ook geprobeerd om het met de app ESPHome voor elkaar te krijgen. Ook hier loop ik tegen een foutmelding aan: connect ECONNREFUSED 192.168.68.83:6053  
Ik heb hier het Ip adres van de ESP8266 ingevoerd en het poort nummer wat hier standaard staat ingevuld.

Ik zou dit zo graag werkend willen krijgen. Hopelijk kunnen jullie mij helpen? Alvast bedankt!

```auto
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <SPI.h>
#include <Ethernet2.h>
#include <EthernetUdp2.h>
#include <Homey.h>

#define PANIC 6
#define DISARM 7
#define ARM 1
#define NIGHT 2 

WiFiClient espClient;
PubSubClient mqtt(espClient);
const char* ssid = " ~~~~ ***";
const char* password = "***";
const char* host = "YOUR_MQTT_HOST";

void setup() {
  Serial.begin(115200);
  //built in led on because it looks good
  pinMode(LED_BUILTIN, OUTPUT);

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print('.');
    delay(500);
  }
  mqtt.setServer(host, 1883);
  mqtt.setCallback(callback);
  Ethernet.begin; (84:F3:EB:17:D1:62);
  Homey.begin(Homey Pro van Mark);
}

void reconnect() {
  while (!mqtt.connected()) {
    Serial.print("Attempting MQTT connection...");
    String clientId = "ESP8266Client-";
    clientId += String(random(0xffff), HEX);
    if (mqtt.connect(clientId.c_str())) {
      mqtt.subscribe("ajax/alarm");
    } else {
      Serial.print("failed, rc=");
      Serial.print(mqtt.state());
      Serial.println(" try again in 5 seconds");
      delay(5000);
    }
  }
  Serial.println("MQTT Connected.");
}

void loop() {
  if (!mqtt.connected()) {
    reconnect();
  }
  mqtt.loop();
}

void callback(
  char* topic,
  byte* payload,
  unsigned int length
) {
  Serial.print("Message arrived [");
  Serial.print(topic);
  Serial.print("] ");
  String msg = "";
  for (int i = 0; i < length; i++) {
    Serial.print((char)payload[i]);
    msg = msg+(char)payload[i];
  }

  if (strcmp(topic, "ajax/alarm") == 0 && msg == "panic") {
    pressButton(PANIC);
  } else if (strcmp(topic, "ajax/alarm") == 0 && msg == "disarm") {
    pressButton(DISARM);
  } else if (strcmp(topic, "ajax/alarm") == 0 && msg == "arm") {
    pressButton(ARM);
  } else if (strcmp(topic, "ajax/alarm") == 0 && msg == "night") {
    pressButton(NIGHT);
  }
}

void pressButton(int buttonId) {
  pinMode(buttonId, OUTPUT);
  digitalWrite(buttonId, LOW);
  delay(300);
  pinMode(buttonId, INPUT);
  Serial.println("SENT SIGNAL");
}
byte mac[] = { 0x48, 0x6F, 0x6D, 0x65, 0x79, 0x00 };
const char* name = "example";

```

---

<div class="post-metadata">

**Author:** ![Peter\_Kawa](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/peter_kawa/32/173848_2.png) [@Peter\_Kawa](https://community.homey.app/u/Peter_Kawa)\
**Post date:** [April 26, 2023, 5:27pm UTC](https://community.homey.app/t/hulp-bij-ajax-security-koppelen-aan-homey-mbv-arduino-homeyduino/79699/5 "2023-04-26T17:27:44Z")

</div>

Graag gedaan.  
Heb je deze voorbeelden al gezien?

> **[homey-arduino-library/examples/Example projects at master ·...](https://github.com/athombv/homey-arduino-library/tree/master/examples/Example%20projects)**
>
> master/examples/Example%20projects

Heb zelf nog geen zin/tijd gehad om met Homey en ESP te spelen, ik heb ze aan HomeAssistant hangen, maar da’s weer met wat andere code 🙃

---

<div class="post-metadata">

**Author:** ![Mark\_Smeets](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/mark_smeets/32/47854_2.png) [@Mark\_Smeets](https://community.homey.app/u/Mark_Smeets)\
**Post date:** [April 27, 2023, 8:40am UTC](https://community.homey.app/t/hulp-bij-ajax-security-koppelen-aan-homey-mbv-arduino-homeyduino/79699/6 "2023-04-27T08:40:34Z")

</div>

Home assistant had ik ooit ook draaien maar dat liep door het ontbreken van kennis van programmering helaas zo nu en dan vast. Dus vandaar de vereenvoudiging met Homey.

Ik zag de voorbeelden van projecten. Ik doe blijkbaar iets verkeerd met het mac adres. In dit voorbeeld zie is: byte mac = { 0x58, 0x6F, 0x6D, 0x63, 0x29, 0x00 }; Ik heb hier een andere opbouw van het mac adres ingevoerd. (84:F3:EB:17:D1:62) Zou dit een probleem kunnen zijn?:

---

<div class="post-metadata">

**Author:** ![Peter\_Kawa](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/peter_kawa/32/173848_2.png) [@Peter\_Kawa](https://community.homey.app/u/Peter_Kawa)\
**Post date:** [April 27, 2023, 10:53am UTC](https://community.homey.app/t/hulp-bij-ajax-security-koppelen-aan-homey-mbv-arduino-homeyduino/79699/7 "2023-04-27T10:53:45Z")

</div>

My [duckduckgo.com](http://duckduckgo.com) brought me here 😉

 ![Screenshot from 2023-04-27 12-51-36](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/c/9/c95138dcf302c614174986c12a738d9860b27b67.png)

[https://forum.arduino.cc/t/how-to-locate-byte-mac-and-myip-from-unique-number-on-ethernet-sheild/223820/2](https://forum.arduino.cc/t/how-to-locate-byte-mac-and-myip-from-unique-number-on-ethernet-sheild/223820/2)
