diff --git a/src/dev/device.cpp b/src/dev/device.cpp
index 395a6e43..cf7deb75 100644
--- a/src/dev/device.cpp
+++ b/src/dev/device.cpp
@@ -1,2 +1,16 @@
/* MIT License - Copyright (c) 2019-2021 Francis Van Roie
For full license information read the LICENSE file in the project folder */
+
+#include "device.h"
+
+namespace dev {
+
+const char* BaseDevice::get_model()
+{
+#ifdef HASP_MODEL
+ return HASP_MODEL;
+#else
+ return PIOENV;
+#endif
+}
+} // namespace dev
\ No newline at end of file
diff --git a/src/dev/device.h b/src/dev/device.h
index 68d1867a..2cca34c7 100644
--- a/src/dev/device.h
+++ b/src/dev/device.h
@@ -41,6 +41,7 @@ class BaseDevice {
{
return "";
}
+ const char* get_model();
virtual void init()
{}
diff --git a/src/dev/esp32/esp32.cpp b/src/dev/esp32/esp32.cpp
index 6cc4693a..66fe647f 100644
--- a/src/dev/esp32/esp32.cpp
+++ b/src/dev/esp32/esp32.cpp
@@ -37,14 +37,17 @@ const char* Esp32Device::get_hostname()
{
return _hostname.c_str();
}
+
void Esp32Device::set_hostname(const char* hostname)
{
_hostname = hostname;
}
+
const char* Esp32Device::get_core_version()
{
return esp_get_idf_version(); // == ESP.getSdkVersion();
}
+
const char* Esp32Device::get_chip_model()
{
esp_chip_info_t chip_info;
diff --git a/src/hasp/hasp_dispatch.cpp b/src/hasp/hasp_dispatch.cpp
index f26e7b72..2fdeaaf7 100644
--- a/src/hasp/hasp_dispatch.cpp
+++ b/src/hasp/hasp_dispatch.cpp
@@ -926,8 +926,10 @@ void dispatch_output_statusupdate(const char*, const char*)
haspGetVersion(buffer, sizeof(buffer));
dispatch_get_idle_state(hasp_sleep_state, topic);
- snprintf_P(data, sizeof(data), PSTR("{\"node\":\"%s\",\"idle\":\"%s\",\"version\":\"%s\",\"uptime\":%lu,"),
- haspDevice.get_hostname(), topic, buffer, long(millis() / 1000)); // \"status\":\"available\",
+ snprintf_P(data, sizeof(data),
+ PSTR("{\"node\":\"%s\",\"model\":\"%s\",\"idle\":\"%s\",\"version\":\"%s\",\"uptime\":%lu,"),
+ haspDevice.get_hostname(), haspDevice.get_model(), topic, buffer,
+ (unsigned long)(millis() / 1000)); // \"status\":\"available\",
#if HASP_USE_WIFI > 0 || HASP_USE_ETHERNET > 0
network_get_statusupdate(buffer, sizeof(buffer));
diff --git a/src/sys/svc/hasp_http.cpp b/src/sys/svc/hasp_http.cpp
index 7a74d919..cedad49f 100644
--- a/src/sys/svc/hasp_http.cpp
+++ b/src/sys/svc/hasp_http.cpp
@@ -528,6 +528,9 @@ void webHandleInfo()
httpMessage += haspDevice.get_hostname();
httpMessage += F("
");
+ httpMessage += F("HASP Model: ");
+ httpMessage += haspDevice.get_model();
+
/* HASP Stats */
httpMessage += F("HASP Version: ");
{
diff --git a/user_setups/darwin_sdl/darwin_sdl_64bits.ini b/user_setups/darwin_sdl/darwin_sdl_64bits.ini
index 65b99594..d26c7676 100644
--- a/user_setups/darwin_sdl/darwin_sdl_64bits.ini
+++ b/user_setups/darwin_sdl/darwin_sdl_64bits.ini
@@ -6,6 +6,8 @@ extra_scripts =
tools/linux_build_extra.py
build_flags =
${env.build_flags}
+ -D HASP_MODEL="MacOS X"
+
; ----- Monitor
-D TFT_WIDTH=240
-D TFT_HEIGHT=320
diff --git a/user_setups/esp32/arduitouch-esp32_ili9341.ini b/user_setups/esp32/arduitouch-esp32_ili9341.ini
index aa540645..f822bb65 100644
--- a/user_setups/esp32/arduitouch-esp32_ili9341.ini
+++ b/user_setups/esp32/arduitouch-esp32_ili9341.ini
@@ -12,6 +12,7 @@ board = esp32dev
build_flags =
${env.build_flags}
${esp32.build_flags}
+ -D HASP_MODEL="Arduitouch"
;region -- TFT_eSPI build options ------------------------
${lcd.lolin24}
diff --git a/user_setups/esp32/esp32-touchdown.ini b/user_setups/esp32/esp32-touchdown.ini
index 61ae1322..d8bb6c3c 100644
--- a/user_setups/esp32/esp32-touchdown.ini
+++ b/user_setups/esp32/esp32-touchdown.ini
@@ -12,6 +12,7 @@ build_flags =
${env.build_flags}
${esp32.build_flags}
${esp32.vspi} ; Use VSPI hardware SPI bus
+ -D HASP_MODEL="ESP32-Touchdown"
;region -- TFT_eSPI build options ------------------------
-D USER_SETUP_LOADED=1
diff --git a/user_setups/esp32/freetouchdeck.ini b/user_setups/esp32/freetouchdeck.ini
index 9bd6aebf..de662271 100644
--- a/user_setups/esp32/freetouchdeck.ini
+++ b/user_setups/esp32/freetouchdeck.ini
@@ -11,6 +11,7 @@ board = esp32dev
build_flags =
${env.build_flags}
${esp32.build_flags}
+ -D HASP_MODEL="FreeTouchDeck"
;region -- TFT_eSPI build options ------------------------
-D USER_SETUP_LOADED=1
diff --git a/user_setups/esp32/huzzah32-featherwing-24.ini b/user_setups/esp32/huzzah32-featherwing-24.ini
index 2c1d23fc..ed93df51 100644
--- a/user_setups/esp32/huzzah32-featherwing-24.ini
+++ b/user_setups/esp32/huzzah32-featherwing-24.ini
@@ -12,6 +12,8 @@ board = featheresp32
build_flags =
${env.build_flags}
${esp32.build_flags}
+ -D HASP_MODEL="Featherwing 2.4"
+
;region -- TFT_eSPI build options ------------------------
${lcd.featherwing-24}
-D TFT_MISO=19
diff --git a/user_setups/esp32/huzzah32-featherwing-35.ini b/user_setups/esp32/huzzah32-featherwing-35.ini
index 0555d4b4..1734b376 100644
--- a/user_setups/esp32/huzzah32-featherwing-35.ini
+++ b/user_setups/esp32/huzzah32-featherwing-35.ini
@@ -12,6 +12,8 @@ board = featheresp32
build_flags =
${env.build_flags}
${esp32.build_flags}
+ -D HASP_MODEL="Featherwing 3.5"
+
;region -- TFT_eSPI build options ------------------------
${lcd.featherwing-35}
-D TFT_MISO=19
diff --git a/user_setups/esp32/lanbon_l8.ini b/user_setups/esp32/lanbon_l8.ini
index 780fb0ab..0fad7ef0 100644
--- a/user_setups/esp32/lanbon_l8.ini
+++ b/user_setups/esp32/lanbon_l8.ini
@@ -17,6 +17,7 @@ build_flags =
${env.build_flags}
${esp32.build_flags}
${esp32.ps_ram}
+ -D HASP_MODEL="Lanbon L8"
;region -- TFT_eSPI build options ------------------------
${lcd.st7789v}
diff --git a/user_setups/esp32/m5stack_core2.ini b/user_setups/esp32/m5stack_core2.ini
index 7eaa0427..9ca1a8b4 100644
--- a/user_setups/esp32/m5stack_core2.ini
+++ b/user_setups/esp32/m5stack_core2.ini
@@ -17,6 +17,7 @@ build_flags =
${env.build_flags}
${esp32.build_flags}
${esp32.ps_ram}
+ -D HASP_MODEL="M5Stack core2"
;region -- TFT_eSPI build options ------------------------
${lcd.m5stack}
diff --git a/user_setups/esp32/ttgo-esp32-lilygo-pi.ini b/user_setups/esp32/ttgo-esp32-lilygo-pi.ini
index d6bffca3..13420a45 100644
--- a/user_setups/esp32/ttgo-esp32-lilygo-pi.ini
+++ b/user_setups/esp32/ttgo-esp32-lilygo-pi.ini
@@ -17,6 +17,7 @@ build_flags =
${env.build_flags}
${esp32.build_flags}
${esp32.ps_ram}
+ -D HASP_MODEL="TTGO Lilygo Pi"
;region -- TFT_eSPI build options ------------------------
-D ILI9481_DRIVER=1
diff --git a/user_setups/esp32/wt32-sc01.ini b/user_setups/esp32/wt32-sc01.ini
index 7b489c3f..6dfeb9db 100644
--- a/user_setups/esp32/wt32-sc01.ini
+++ b/user_setups/esp32/wt32-sc01.ini
@@ -13,6 +13,7 @@ build_flags =
${env.build_flags}
${esp32.build_flags}
${esp32.ps_ram}
+ -D HASP_MODEL="WT32-SC01"
;region -- TFT_eSPI build options ------------------------
${lcd.wt32-sc01}
diff --git a/user_setups/linux_sdl/linux_sdl_64bits.ini b/user_setups/linux_sdl/linux_sdl_64bits.ini
index 33fb9537..7750398d 100644
--- a/user_setups/linux_sdl/linux_sdl_64bits.ini
+++ b/user_setups/linux_sdl/linux_sdl_64bits.ini
@@ -5,6 +5,8 @@ extra_scripts =
tools/linux_build_extra.py
build_flags =
${env.build_flags}
+ -D HASP_MODEL="Posix Linux"
+
; ----- Monitor
-D TFT_WIDTH=240
-D TFT_HEIGHT=320
diff --git a/user_setups/win32/windows_sdl_64bits.ini b/user_setups/win32/windows_sdl_64bits.ini
index a679a63d..40de8761 100644
--- a/user_setups/win32/windows_sdl_64bits.ini
+++ b/user_setups/win32/windows_sdl_64bits.ini
@@ -5,6 +5,8 @@ extra_scripts =
tools/windows_build_extra.py
build_flags =
${env.build_flags}
+ -D HASP_MODEL="Windows"
+
; ----- Monitor
-D TFT_WIDTH=240
-D TFT_HEIGHT=320