Need help with homie-code

Im trying to get this code from http://www.instructables.com/id/Intro-ESP8266-Garage-Door-Opener-With-TemperatureH/ to work with my ESP8266 D1-mini, but it keeps getting me the same error with the line bool openerHandler(HomieRange range, String value) { when i compile. All the necessary and up-to-date libraries has been installed but it keeps giving me errors.

The errors are:

src/main.cpp:24:20: error: 'HomieRange' was not declared in this scope
bool openerHandler(HomieRange range, String value) {
^

src/main.cpp:24:45: error: expected primary-expression before 'value'
bool openerHandler(HomieRange range, String value) {
^
src/main.cpp:24:50: error: expression list treated as compound expression in initializer [-fpermissive]
bool openerHandler(HomieRange range, String value) {
^
src/main.cpp:24:52: error: expected ',' or ';' before '{' token
bool openerHandler(HomieRange range, String value) {
^
*** [.pioenvs/d1_mini/src/main.o] Error 1
#include Homie.h
#include DHT.h
#define FW_NAME "garage-door"
#define FW_VERSION "1.0.1"
#define PIN_RELAY         D1
#define PIN_SENSOR        D5
#define OPENER_EVENT_MS   1000
#define DEBOUNCER_MS      250
#define DHT_PIN           D4
#define DHT_TYPE          DHT22
#define PUB_INTERVAL      60
DHT
dht(DHT_PIN, DHT_TYPE);

unsigned long lastTemperatureSent = 0;
unsigned long openerEvent = 0;
Bounce debouncer = Bounce();
int lastSensorValue = -1;
HomieNode openerNode("opener", "relay");
HomieNode doorNode("door", "sensor");
HomieNode temperatureNode("temperature", "temperature");
HomieNode humidityNode("humidity", "humidity");

bool openerHandler(HomieRange range, String value) {
if (value == "1" || value == "ON" || value == "true") {
    digitalWrite(PIN_RELAY, HIGH);
    openerEvent = millis();
  }
  return true;
}
void setupHandler() {
  pinMode(PIN_RELAY, OUTPUT);
  pinMode(PIN_SENSOR, INPUT_PULLUP);
  digitalWrite(PIN_RELAY, LOW);

  Homie.setNodeProperty(temperatureNode, "unit").setRetained(true).send("f");
  Homie.setNodeProperty(humidityNode, "unit").setRetained(true).send("%");
  dht.begin();
  debouncer.attach(PIN_SENSOR);
  debouncer.interval(DEBOUNCER_MS);
}
void loopHandler() {
  int sensorValue = debouncer.read();
  if (sensorValue != lastSensorValue) {
     Serial.print("Door is now: ");
     Serial.println(sensorValue ? "open" : "close");
     Homie.setNodeProperty(doorNode, "open").send(sensorValue ? "true" : "false");
     lastSensorValue = sensorValue;
  }
   if (millis() - lastTemperatureSent >= PUB_INTERVAL * 1000UL || lastTemperatureSent == 0) {
    float temp_c = dht.readTemperature();
    float humidity = dht.readHumidity();
    float temp_f = (temp_c* 9 +2)/5+32;

    Homie.setNodeProperty(temperatureNode, "degrees").send(String(temp_f));
    Homie.setNodeProperty(humidityNode, "relative").send(String(humidity));
    lastTemperatureSent = millis();
  }
}
void setup() {
  Serial.begin(115200);
  Serial.println();
  Serial.println();

  Homie_setFirmware(FW_NAME, FW_VERSION);
  openerNode.advertise("press").settable(openerHandler);
  doorNode.advertise("open");

  temperatureNode.advertise("unit");
  temperatureNode.advertise("degrees");

  Homie.setSetupFunction(setupHandler);
  Homie.setLoopFunction(loopHandler);

  Homie.setup();
}
void loop() {
  if (openerEvent && (millis() - openerEvent >= OPENER_EVENT_MS)) {
    digitalWrite(PIN_RELAY, LOW);
    openerEvent = 0;
  }
  Homie.loop();
  debouncer.update();
}

You might have more luck posting this to an ESP8266, homie, or Arduino specific forum. While this forum has a lot of ESP8266 users on it, it is primarily an openHAB focused forum.

Refreshing the post with the changes required for it to compile with Homie 3.0

#include <Homie.h>
#include <DHT.h>

#define FW_NAME "garage-door"
#define FW_VERSION "1.0.1"
#define PIN_RELAY         D1
#define PIN_SENSOR        D5
#define OPENER_EVENT_MS   1000
#define DEBOUNCER_MS      250
#define DHT_PIN           D4
#define DHT_TYPE          DHT22
#define PUB_INTERVAL      60
DHT dht(DHT_PIN, DHT_TYPE);
unsigned long lastTemperatureSent = 0;
unsigned long openerEvent = 0;
Bounce debouncer = Bounce();
int lastSensorValue = -1;
HomieNode openerNode("opener", "relay", "button");
HomieNode doorNode("door", "sensor", "reed");
HomieNode temperatureNode("temperature", "temperature", "temperature");
HomieNode humidityNode("humidity", "humidity", "humidity");
 bool openerHandler(HomieRange range, String value) {
  if (value == "1" || value == "ON" || value == "true") {
    digitalWrite(PIN_RELAY, HIGH);
    openerEvent = millis();
  }
  return true;
}
 void setupHandler() {
   pinMode(PIN_RELAY, OUTPUT);
   pinMode(PIN_SENSOR, INPUT_PULLUP);
   digitalWrite(PIN_RELAY, LOW);  
  
   temperatureNode.setProperty("unit").send("f");
   humidityNode.setProperty("unit").send("%");
   dht.begin();
   debouncer.attach(PIN_SENSOR);
   debouncer.interval(DEBOUNCER_MS);
}
 void loopHandler() {
  int sensorValue = debouncer.read();
   if (sensorValue != lastSensorValue) {
     Serial.print("Door is now: ");
     Serial.println(sensorValue ? "open" : "close");
     doorNode.setProperty("open").send(sensorValue ? "true" : "false");
     lastSensorValue = sensorValue;
  }
   if (millis() - lastTemperatureSent >= PUB_INTERVAL * 1000UL || lastTemperatureSent == 0) {
    float temp_c = dht.readTemperature();
    float humidity = dht.readHumidity();
    float temp_f = (temp_c* 9 +2)/5+32; 
    
    temperatureNode.setProperty("degrees").send(String(temp_f));
    humidityNode.setProperty("relative").send(String(humidity));
    lastTemperatureSent = millis();
  }
 
}
 void setup() {
  Serial.begin(115200);
  Serial.println();
  Serial.println();
  
  Homie_setFirmware(FW_NAME, FW_VERSION);
   openerNode.advertise("press").settable(openerHandler);
  doorNode.advertise("open");
 
  temperatureNode.advertise("unit");
  temperatureNode.advertise("degrees");
  
  Homie.setSetupFunction(setupHandler);
  Homie.setLoopFunction(loopHandler);
  
  Homie.setup();
}
 void loop() {
  if (openerEvent && (millis() - openerEvent >= OPENER_EVENT_MS)) {
    digitalWrite(PIN_RELAY, LOW);
    openerEvent = 0;
  }
   Homie.loop();
  debouncer.update();
}```