Skip to content

Commit

Permalink
Add sample sensor
Browse files Browse the repository at this point in the history
  • Loading branch information
netmindz committed Apr 23, 2024
1 parent 1ac0699 commit 6549f3e
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 11 deletions.
5 changes: 2 additions & 3 deletions platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,9 @@ lib_deps =
[STARMOD_USERMOD_HA]
build_flags =
-D STARMOD_USERMOD_HA
-D ARDUINOHA_DEBUG
lib_deps =
https://github.com/dawidchyrzynski/arduino-home-assistant.git#2.0.0
https://github.com/knolleary/pubsubclient.git#v2.8

https://github.com/dawidchyrzynski/arduino-home-assistant.git#2.1.0


[Speed_Flags]
Expand Down
37 changes: 29 additions & 8 deletions src/User/UserModHA.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,52 +17,73 @@ class UserModHA:public SysModule {

public:

UserModHA() :SysModule("Home Assistant support - template") {
UserModHA() :SysModule("Home Assistant support") {
isEnabled = false;
};

void setup() {
void setup() override {
SysModule::setup();

parentVar = ui->initUserMod(parentVar, name, 6300);

ui->initText(parentVar, "mqttAddr");
ui->initText(parentVar, "mqttUser");
ui->initText(parentVar, "mqttPass");
}


void connectedChanged() {
ppf("connectedChanged\n");
if (mdls->isConnected) {
// set device's details (optional)
device.setName(_INIT(TOSTRING(APP)));
device.setName(mdl->getValue("instance"));
device.setSoftwareVersion(_INIT(TOSTRING(VERSION)));
}
}

byte mac[] = {0xF1, 0x10, 0xFA, 0x6E, 0x38, 0x4A}; // TODO
byte mac[6];
WiFi.macAddress(mac);
device.setUniqueId(mac, sizeof(mac));

String mqttAddr = mdl->getValue("mqttAddr");
String mqttUser = mdl->getValue("mqttUser");
if(mqttUser == "null" || mqttUser == nullptr) mqttUser = "";
String mqttPass = mdl->getValue("mqttPass");
if(mqttPass == "null" || mqttPass == nullptr) mqttPass = "";

ppf("mqtt->begin(%s)\n", mqttAddr.c_str());
IPAddress ip;
if(ip.fromString(mqttAddr)) {
mqtt->begin(ip, "", "");
if(mqttUser == "") {
ppf("mqtt->begin('%s')\n", mqttAddr.c_str());
mqtt->begin(ip);
}
else {
ppf("WARNING - untested mqtt->begin('%s', '%s', pass)\n", mqttAddr.c_str(), mqttUser.c_str());
mqtt->begin(ip, mqttUser.c_str(), mqttPass.c_str());
}
started = true;
}
else {
ppf("Failed to parse %s to IP\n", mqttAddr.c_str());
}

}

void loop() {
void loop() override {
// SysModule::loop();
mqtt->loop();
}

void loop10s() override {
if(!started) return;
testSensor->setValue((uint32_t) (millis() / 1000));
}

private:
WiFiClient client;
HADevice device;
HAMqtt* mqtt = new HAMqtt(client, device);
HASensorNumber* testSensor = new HASensorNumber("uptime");
bool started = false;
};

extern UserModHA *hamod;

0 comments on commit 6549f3e

Please sign in to comment.