Diy smart vent

How would I add z-wave or zig-bee to a Vent-Miser.
I have Iris door sensors for temp control.
So smartthings control the temperature in a room.

let’s say my Nest thermostat is set at 72 and master bedroom is 78 then cool down master bedroom and exp.

Possibly an xbee module or use st anything and a esp module on wifi.

Do I need a Arduino?
I’m new to it all.
How do I hook it all up and code it

I would not put the smarts at the vent. Put the as close as possible to the manifold, using dampers. Rig those up to arduino or whatever.

I’m trying to Zone a condo that I rent from my folks. They refuse to do anything in the way of fixing the heating there. I’m trying to do this on a poor man’s budget. Downstairs stays cold in summer time in the winter the upstairs stays blazingly hot. So I thought by zoning the system would fix it. That’s what I saw on This Old House. But don’t have the money to Shell out for smart vents.

I now have a osepp uno r3 plus. how would I use it in smartthings.

You can use use @ogiewon’s ST_Anything with a ESP8266 wemos or nodemcu and a relay that will control the Vent-Miser. Then you can use @eliotstocker’s Virtual Thermostat to control the thresholds and operate like a real thermostat. you will probably need a DHT-22 or DS18b20 read the room temperature. All of this is pretty plug and play could be had from Amazon for about $30ish from Amazon, or $15ish from Ebay if you willing to wait.

Vent-Miser tends to be expensive, If you can access the ducting, you may be able to put dampers in strategic places and move them with servos, I have done that works well. The brain part of it will still same as above

I going a direction
I would like to make 7 of them.
how do I install https://github.com/DanielOgorchock/ST_Anything/blob/master/README.md
WeMos D1 CH340 WiFi Arduino UNO R3 Development Board.
But i do not know the port number for the WeMos D1 Arduino and servo for Vent.
No way to get to the ductwork.
How I get the port number.

my code done not send commands to smartthings.

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <Servo.h>

#define WLAN_SSID       " "
#define WLAN_PASS       " "

MDNSResponder mdns;
ESP8266WebServer server(80);

Servo myservo;
int pos = 0;
int state = 0;
int prevstate = 0;
int dirc = 0;
int servoPin = 5; //CHANGE TO WHATEVER PIN YOUR USING

String webPage = "";

void setup(void) {
  webPage += "<h1>ESP8266 Web Server</h1><p>Blinds <a href=\"open\"><button>OPEN</button></a>&nbsp;<a href=\"close\"><button>CLOSE</button></a></p>";

  delay(1000);
  Serial.begin(115200);
  delay(500);
  Serial.println("Blind Startup Sequence");
  delay(500);
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(WLAN_SSID);
  WiFi.begin(WLAN_SSID, WLAN_PASS);
  // Set a static IP (optional)
  IPAddress ip(192, 168, 1, 170);
  IPAddress gateway(192, 168, 1, 1);
  IPAddress subnet(255, 255, 255, 0);
  WiFi.config(ip, gateway, subnet);
  // End of set a static IP (optional)
  delay(500);
  int i = 0;
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    ESP.wdtFeed();
    if (i > 40)                                        // Try 40 times to connect to Wifi
      Serial.print("Restarting Wifi"); ESP.reset();    // Reset Wifi stack if more than 40 trys
    i++;
    WiFi.begin(WLAN_SSID, WLAN_PASS);
    // Set a static IP retry (optional)
    IPAddress ip(192, 168, 1, 127);
    IPAddress gateway(192, 168, 1, 1);
    IPAddress subnet(255, 255, 255, 0);
    WiFi.config(ip, gateway, subnet);
    // End of set a static IP retry (optional)
  }

  Serial.println();
  Serial.println("WiFi connected");
  Serial.println("IP address: "); Serial.println(WiFi.localIP());

  if (mdns.begin("esp8266", WiFi.localIP())) {
    Serial.println("MDNS responder started");
  }

  server.on("/", []() {
    server.send(200, "text/html", webPage);
  });
  server.on("/open", []() {
    server.send(200, "text/html", webPage);
    Serial.println("HTTP OPEN COMMAND RECEIVED");
    dirc = 0;  // direction for servo to run
    state = 2; // sets current state
  });
  server.on("/close", []() {
    server.send(200, "text/html", webPage);
    Serial.println("HTTP CLOSE COMMAND RECEIVED");
    dirc = 180; // direction for servo to run
    state = 1;  // sets current state
  });
  server.begin();
  Serial.println("HTTP server started");
}

void servo_move() {
  Serial.println("State Change. Rotating Servo");
  if ( dirc == 180) {
    myservo.attach(servoPin);              // energize servo
    delay(50);
    for (pos = 0; pos <= 90; pos += 1) {   // goes from 0 degrees to 90 degrees in steps of 1 degree CHANGE 90 TO MATCH ANGLE OF TILT DESIRED
      myservo.write(pos);                  // tell servo to go to position in variable 'pos'
      delay(30);                           // waits 30ms between each degree to slow rotation speed
    }
    delay(50);
    myservo.detach();                      // movement finished so detach servo to conserve power
  }
  else if (dirc == 0) {
    myservo.attach(servoPin);              // energize servo
    delay(50);
    for (pos = 90; pos >= 0; pos -= 1) {   // goes from 90 degrees to 0 degrees in steps of 1 degree CHANGE 90 TO MIRROR ANGLE OF TILT DESIRED ABOVE
      myservo.write(pos);                  // tell servo to go to position in variable 'pos'
      delay(30);                           // waits 30ms between each degree to slow rotation speed
    }
    delay(50);
    myservo.detach();                      // movement finished so detach servo to conserve power
  }

  Serial.println("Returning to main loop");
  return;
}

void loop(void) {
  if (state != prevstate) {
    Serial.println("State change!");
    servo_move();
  }
  prevstate = state;
  server.handleClient();
}

13:12:20.898 -> 1384, room 16
13:12:20.899 -> tail 8
13:12:20.901 -> chksum ~ld
13:12:22.514 -> Blind Startup Sequence
13:12:23.015 ->
13:12:23.016 -> Connecting to bob5731
13:12:23.991 -> .
13:12:23.992 -> ets Jan 8 2013,rst cause:2, boot mode:(1,6)
13:12:23.993 ->
13:12:32.381 ->
13:12:32.382 -> ets Jan 8 2013,rst cause:4, boot mode:(1,6)
13:12:32.383 ->
13:12:32.385 -> wdt reset

How do I use L9110S and arduino in smartthings to control a Vent Miser?