Advice The Home Improvement/Automation Thread

I’m unable to do anything, you guys know that.

One evening, the exhaust fan in my bathroom suddenly ran slower, then POP, seized, and smelled like burnt motor. That had me vigilant for the night. Old mobile homes like this shitbox like to burn down from that stuff.

My fans aren’t easily located and replaced. There is no drop in replacement at HD. I managed to find replacement(s) online that looked like they’d practically be a direct swap, or I could swap the motor... then I found out I can’t even remove the existing junk. Physically, I can’t do it.

So I used Craigslist and found a handyman. I’d been eyeing the listings for awhile and had a few tagged to call. Lined up a time for a guy to swing by (a father and son outfit). The dad showed up. His English was lacking somewhat, but we understood each other enough. He said they could do it, I showed him the fan online, he said order them and when they arrive, call us.

Then he said “Can I pray for you? I feel as though Jesus sent me here and I’d like to if it’s okay with you.”

Hey, I’m open to anything. Have at it. And he did. I’ve got no issues with that. BUT...

Two hours later, a knock at the door. I see two twenty-somethings milling about. Grrr I can barely answer the door these days, so I open the door and sit down, speaking through the screen door. They said their older friend sent them over to pray with me and keep me company, or see if there’s anything they can do, like pray over me, and how their grandpa was sick too blah blah blah holy fuckin fuckity fuck me

My neighbor has had a workman reseting her windows she had installed last year (they leaked) and when I saw him today, I spoke to him through my window and after some jawing and him removing the old fan and looking, I’m hooked up with him to do it instead. But, he too wanted to pray for me and I let him. It’s kind of weird that all these handymen are coming here and praying on me.

TLDR
I’m hooked up with a good handyman to get my shitter fan fixed
At least they aren't preying on you!
 
  • Love
Reactions: Immigrant
Apparently it's now "code" to have the furnace set up on a concrete plinth that extends out 30 inches from the base instead of being installed on the garage floor.

Dunno how they expect people to use their garages with effectively 6 feet of it being hacked out for "safety".
 
  • Sad
Reactions: wetwillie
Apparently it's now "code" to have the furnace set up on a concrete plinth that extends out 30 inches from the base instead of being installed on the garage floor.

Dunno how they expect people to use their garages with effectively 6 feet of it being hacked out for "safety".
ugg, sounds pita. I can see it for directly under the unit, they should never sit directly on concrete, tend to be a rot point in some locales. I've seen a few that were left on the wooden shipper. Hope you can figure something out for that. How high a plinth?
 
ugg, sounds pita. I can see it for directly under the unit, they should never sit directly on concrete, tend to be a rot point in some locales. I've seen a few that were left on the wooden shipper. Hope you can figure something out for that. How high a plinth?
The inspector suggested a "curb" 30 inches away from the outline on the floor of the unit.

Seems like a big-ass tripping hazard to me.
 
  • Gravy
Reactions: wetwillie
We'll always have the AB in the GB for curb stomping, BH.


You know it!

beer bar GIF by applebee's
 
Yep. Use it for the vacuum, about to start using it for room tracking and for managing our pet door.
Cool cool. Ive got the mosquitto broker addon installed, the mqtt integration added (and auto configured), and one client pointed at the broker, but its not picking up any topics automatically. Gotta mess with it more, but i like the concept of mqtt as the "tcp/ip" stack of IOT. Point all the devices to it, whether theyre zigbee, zwave, wifi, whatever, have all their message converted to mqtt, and only talk that.

Abstraction layer style.
 
  • Gravy
  • Love
Reactions: Immigrant and fly
Cool cool. Ive got the mosquitto broker addon installed, the mqtt integration added (and auto configured), and one client pointed at the broker, but its not picking up any topics automatically. Gotta mess with it more, but i like the concept of mqtt as the "tcp/ip" stack of IOT. Point all the devices to it, whether theyre zigbee, zwave, wifi, whatever, have all their message converted to mqtt, and only talk that.

Abstraction layer style.
Yeah, while I understand what MQTT is, I've no real idea how it integrates into HA. I just type in what people tell me. :lol:
 
  • Gravy
  • Haha
Reactions: Jehannum and Domon
Cool cool. Ive got the mosquitto broker addon installed, the mqtt integration added (and auto configured), and one client pointed at the broker, but its not picking up any topics automatically. Gotta mess with it more, but i like the concept of mqtt as the "tcp/ip" stack of IOT. Point all the devices to it, whether theyre zigbee, zwave, wifi, whatever, have all their message converted to mqtt, and only talk that.

Abstraction layer style.
I've only been using the "status" side of it in OpenHAB, as that's where my room sensors shit out their occupancy, temp, and humidity data.

Eventually I'm going to use the "command" channels to send events to the duct baffles to redirect air as needed. First I need to design duct baffles though.
 

This is one of my next projects. I really only care for home/away status, but thought this might eventually be neat anyway. I'm hoping to be able to key into the BLE in our Fitbits.
 

This is one of my next projects. I really only care for home/away status, but thought this might eventually be neat anyway. I'm hoping to be able to key into the BLE in our Fitbits.

I already did that one, but with DHT and 501 sensors:

Code:
// Required libraries (sketch -> include library -> manage libraries)
// - PubSubClient by Nick ‘O Leary
// - DHT sensor library by Adafruit

#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <DHT.h>

#define wifi_ssid "FistingForJesus"
#define wifi_password "NewWifiWhoDis"

#define mqtt_server "192.168.0.2"
#define client_name "masterBedroom"
#define humidity_topic "humidity"
#define ctemperature_topic "c_temperature"
#define ftemperature_topic "f_temperature"
#define motion_topic "motion"

#define DHTTYPE DHT11
#define DHTPIN  14
#define MPIN 13

WiFiClient espClient;
PubSubClient client(espClient);
DHT dht(DHTPIN, DHTTYPE, 11); // 11 works fine for ESP8266

void setup() {
  Serial.begin(115200);
  dht.begin();
  setup_wifi();
  client.setServer(mqtt_server, 1883);
}

void setup_wifi() {
  delay(10);
  // We start by connecting to a WiFi network
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(wifi_ssid);

  WiFi.begin(wifi_ssid, wifi_password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

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

void reconnect() {
  // Loop until we're reconnected
  while (!client.connected()) {
    Serial.print("Attempting MQTT reconnection...");
    // Attempt to connect
    // If you do not want to use a username and password, change next line to
    // if (client.connect("ESP8266Client")) {
    //if (client.connect("ESP8266Client", mqtt_user, mqtt_password)) {
    if (client.connect(client_name)) {
      Serial.println("connected");
      if (client.connected())
        Serial.println("connected");
      delay(5000);
    } else {
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds");
      // Wait 5 seconds before retrying
      delay(5000);
    }
  }
}

bool checkBound(float newValue, float prevValue, float maxDiff) {
  return !isnan(newValue) &&
         (newValue < prevValue - maxDiff || newValue > prevValue + maxDiff);
}

long lastMsg = 0;
long ft = 0;
float temp = 0.0;
float hum = 0.0;
float diff = 0.5;
long state = LOW;

void loop() {
  char tName[40];
  if (!client.connected()) {
    Serial.println("client not connected");
    reconnect();
  }
  client.loop();

  long now = millis();
  if (now - lastMsg > 2000) {
    lastMsg = now;

    Serial.println("getting new reading");
    float newTemp = dht.readTemperature();
    float newHum = dht.readHumidity();
    long newState = digitalRead(MPIN);

    if (checkBound(newTemp, temp, diff)) {
      temp = newTemp;
      Serial.print("New temperature: ");
      Serial.print(String(temp).c_str());
      Serial.print("C, ");
      Serial.print(String(dht.convertCtoF(temp)).c_str());
      Serial.println("F");
      sprintf(tName, "%s/%s", client_name, ctemperature_topic);
      client.publish(tName, String(temp).c_str(), true);
      sprintf(tName, "%s/%s", client_name, ftemperature_topic);
      client.publish(tName, String(dht.convertCtoF(temp)).c_str(), true);
    }

    if (checkBound(newHum, hum, diff)) {
      hum = newHum;
      Serial.print("New humidity: ");
      Serial.println(String(hum).c_str());
      sprintf(tName, "%s/%s", client_name, humidity_topic);      
      client.publish(tName, String(hum).c_str(), true);
    }
    if (newState != state || ft == 0) {
      if (ft == 0)
        ft = 1;
      state = newState;
      Serial.print("Motion: ");
      if (state == LOW) {
        Serial.println("Not detected");
        sprintf(tName, "%s/%s", client_name, motion_topic);
        client.publish(tName, "FALSE");
      } else {
        Serial.println("Detected");
        sprintf(tName, "%s/%s", client_name, motion_topic);
        client.publish(tName, "TRUE");
      }
    }
  }
}
 
  • Love
Reactions: fly
Im pushing all the attributes of my Eufy cameras to mqtt so that i can build off them, push data into graphana or influxdb.

I got them to do fuckin' face recognition on the cats! Theyre two black cats, but the AI in the eufy cam can tell them apart most the time. So i have a log of the cats location and the last room they were seen in :lol:
 
  • Gravy
Reactions: Hoff Kinkmeister
Im pushing all the attributes of my Eufy cameras to mqtt so that i can build off them, push data into graphana or influxdb.

I got them to do fuckin' face recognition on the cats! Theyre two black cats, but the AI in the eufy cam can tell them apart most the time. So i have a log of the cats location and the last room they were seen in :lol:
Holy shit. There's face detection shit you can add to HA. I've been meaning to do that with my Wyze RTSP cams.
 
Holy shit. There's face detection shit you can add to HA. I've been meaning to do that with my Wyze RTSP cams.
yeah, blueiris or shinobi or whatever based. Then you apply the ML stuff on top of it. Ive gotta do that at some point too, but id like to get a tensor edge compute stick, as apparently that makes it super fast with no cpu load.