summaryrefslogtreecommitdiff
path: root/pio
diff options
context:
space:
mode:
authorEvgeny Zinoviev <me@ch1p.io>2023-09-27 00:54:57 +0300
committerEvgeny Zinoviev <me@ch1p.io>2023-09-27 00:54:57 +0300
commitd3a295872c49defb55fc8e4e43e55550991e0927 (patch)
treeb9dca15454f9027d5a9dad0d4443a20de04dbc5d /pio
parentb7cbc2571c1870b4582ead45277d0aa7f961bec8 (diff)
parentbdbb296697f55f4c3a07af43c9aaf7a9ea86f3d0 (diff)
Merge branch 'master' of ch1p.io:homekit
Diffstat (limited to 'pio')
-rw-r--r--pio/dumb_mqtt/src/main.cpp12
-rw-r--r--pio/relayctl/src/main.cpp35
-rw-r--r--pio/temphum/src/main.cpp42
-rw-r--r--pio/temphum_relayctl/src/main.cpp51
4 files changed, 140 insertions, 0 deletions
diff --git a/pio/dumb_mqtt/src/main.cpp b/pio/dumb_mqtt/src/main.cpp
new file mode 100644
index 0000000..eefc165
--- /dev/null
+++ b/pio/dumb_mqtt/src/main.cpp
@@ -0,0 +1,12 @@
+#include <Arduino.h>
+#include <homekit/main.h>
+
+using namespace homekit;
+
+void setup() {
+ main::setup();
+}
+
+void loop() {
+ main::loop(nullptr);
+}
diff --git a/pio/relayctl/src/main.cpp b/pio/relayctl/src/main.cpp
new file mode 100644
index 0000000..c399641
--- /dev/null
+++ b/pio/relayctl/src/main.cpp
@@ -0,0 +1,35 @@
+#include <Arduino.h>
+#include <Wire.h>
+#include <homekit/main.h>
+#include <homekit/mqtt/mqtt.h>
+#include <homekit/mqtt/module/relay.h>
+#include <homekit/relay.h>
+
+using namespace homekit;
+using main::LoopConfig;
+using mqtt::Mqtt;
+using mqtt::MqttRelayModule;
+
+MqttRelayModule* mqttRelayModule = nullptr;
+
+static void onMqttCreated(Mqtt& mqtt);
+
+LoopConfig loopConfig = {
+ .onMqttCreated = onMqttCreated
+};
+
+void setup() {
+ main::setup();
+ relay::init();
+}
+
+void loop() {
+ main::loop(&loopConfig);
+}
+
+static void onMqttCreated(Mqtt& mqtt) {
+ if (mqttRelayModule == nullptr) {
+ mqttRelayModule = new MqttRelayModule();
+ mqtt.addModule(mqttRelayModule);
+ }
+} \ No newline at end of file
diff --git a/pio/temphum/src/main.cpp b/pio/temphum/src/main.cpp
new file mode 100644
index 0000000..2df8638
--- /dev/null
+++ b/pio/temphum/src/main.cpp
@@ -0,0 +1,42 @@
+#include <Arduino.h>
+#include <Wire.h>
+#include <homekit/main.h>
+#include <homekit/mqtt/mqtt.h>
+#include <homekit/mqtt/module/temphum.h>
+#include <homekit/temphum.h>
+
+using namespace homekit;
+using main::LoopConfig;
+using mqtt::Mqtt;
+using mqtt::MqttTemphumModule;
+
+temphum::Sensor* sensor = nullptr;
+MqttTemphumModule* mqttTemphumModule = nullptr;
+
+static void onMqttCreated(Mqtt& mqtt);
+
+LoopConfig loopConfig = {
+ .onMqttCreated = onMqttCreated
+};
+
+void setup() {
+ main::setup();
+
+#if CONFIG_MODULE == HOMEKIT_SI7021
+ sensor = new temphum::Si7021();
+#elif CONFIG_MODULE == HOMEKIT_DHT12
+ sensor = new temphum::DHT12();
+#endif
+ sensor->setup();
+}
+
+void loop() {
+ main::loop(&loopConfig);
+}
+
+static void onMqttCreated(Mqtt& mqtt) {
+ if (mqttTemphumModule == nullptr) {
+ mqttTemphumModule = new MqttTemphumModule(sensor);
+ mqtt.addModule(mqttTemphumModule);
+ }
+} \ No newline at end of file
diff --git a/pio/temphum_relayctl/src/main.cpp b/pio/temphum_relayctl/src/main.cpp
new file mode 100644
index 0000000..7f0945e
--- /dev/null
+++ b/pio/temphum_relayctl/src/main.cpp
@@ -0,0 +1,51 @@
+#include <Arduino.h>
+#include <Wire.h>
+#include <homekit/main.h>
+#include <homekit/mqtt/mqtt.h>
+#include <homekit/mqtt/module/temphum.h>
+#include <homekit/mqtt/module/relay.h>
+#include <homekit/temphum.h>
+#include <homekit/relay.h>
+
+using namespace homekit;
+using main::LoopConfig;
+using mqtt::Mqtt;
+using mqtt::MqttTemphumModule;
+using mqtt::MqttRelayModule;
+
+temphum::Sensor* sensor = nullptr;
+MqttTemphumModule* mqttTemphumModule = nullptr;
+MqttRelayModule* mqttRelayModule = nullptr;
+
+static void onMqttCreated(Mqtt& mqtt);
+
+LoopConfig loopConfig = {
+ .onMqttCreated = onMqttCreated
+};
+
+void setup() {
+ main::setup();
+
+ relay::init();
+ relay::off();
+
+#if CONFIG_MODULE == HOMEKIT_SI7021
+ sensor = new temphum::Si7021();
+#elif CONFIG_MODULE == HOMEKIT_DHT12
+ sensor = new temphum::DHT12();
+#endif
+ sensor->setup();
+}
+
+void loop() {
+ main::loop(&loopConfig);
+}
+
+static void onMqttCreated(Mqtt& mqtt) {
+ if (mqttTemphumModule == nullptr) {
+ mqttTemphumModule = new MqttTemphumModule(sensor);
+ mqttRelayModule = new MqttRelayModule();
+ mqtt.addModule(mqttTemphumModule);
+ mqtt.addModule(mqttRelayModule);
+ }
+} \ No newline at end of file