From 3df7b69c2c691d8166a7a26fb29bc4f1198f7fc0 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Thu, 6 Aug 2026 00:07:02 +0200 Subject: [PATCH] aqhome-cgi: handle int values as well --- .../modules/devices/mdevices_setdata.c | 27 +++++++++++++++++-- .../modules/devices/mdevices_value.c | 10 ++++++- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/apps/aqhome-cgi/modules/devices/mdevices_setdata.c b/apps/aqhome-cgi/modules/devices/mdevices_setdata.c index cac7dc4..6fc52f1 100644 --- a/apps/aqhome-cgi/modules/devices/mdevices_setdata.c +++ b/apps/aqhome-cgi/modules/devices/mdevices_setdata.c @@ -37,6 +37,7 @@ * ------------------------------------------------------------------------------------------------ */ +static void _setIntData(AQH_DATACLIENT *dc, const AQH_VALUE *value, const char *sValue); static void _setRgbwData(AQH_DATACLIENT *dc, const AQH_VALUE *value, const char *sValue); static void _setOnOffData(AQH_DATACLIENT *dc, const AQH_VALUE *value, const char *sValue); static void _setOnOffAutoData(AQH_DATACLIENT *dc, const AQH_VALUE *value, const char *sValue); @@ -76,8 +77,7 @@ void AQH_ModDevices_RunSetData(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION case AQH_ValueModality_RGBW: _setRgbwData(dc, value, sValue); break; case AQH_ValueModality_OnOff: _setOnOffData(dc, value, sValue); break; case AQH_ValueModality_OnOffAuto: _setOnOffAutoData(dc, value, sValue); break; - default: - break; + default: _setIntData(dc, value, sValue); break; } /* switch */ } /* if (sValueName) */ } @@ -105,6 +105,29 @@ void AQH_ModDevices_RunSetData(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION +void _setIntData(AQH_DATACLIENT *dc, const AQH_VALUE *value, const char *sValue) +{ + if (sValue) { + const char *sValueSystemName; + int intVal; + int rv; + + sValueSystemName=AQH_Value_GetNameForSystem(value); + if (1==sscanf(sValue, "%d", &intVal)) { + DBG_ERROR(NULL, "Send value [%d] to %s", intVal, sValueSystemName); + rv=AQH_DataClient_SetData(dc, value, (double) intVal); + if (rv<0) { + DBG_ERROR(NULL, "Error sending data: %d", rv); + } + } + else { + DBG_ERROR(NULL, "Not an integer value: [%s]", sValue); + } + } +} + + + void _setRgbwData(AQH_DATACLIENT *dc, const AQH_VALUE *value, const char *sValue) { if (sValue) { diff --git a/apps/aqhome-cgi/modules/devices/mdevices_value.c b/apps/aqhome-cgi/modules/devices/mdevices_value.c index fed098c..8896e04 100644 --- a/apps/aqhome-cgi/modules/devices/mdevices_value.c +++ b/apps/aqhome-cgi/modules/devices/mdevices_value.c @@ -44,6 +44,7 @@ static void _runValueWithArgs(AQCGI_MODULE *m, const char *sDeviceName, const char *sValueName, GWEN_BUFFER *dbuf); +static void _writeIntToForm(const char *sValueName, int v, GWEN_BUFFER *dbuf); static void _mkValueForm(AQH_DATACLIENT *dc, const char *sDeviceName, const AQH_VALUE *value, GWEN_BUFFER *dbuf); static void _writeRgbwToForm(const char *sValueName, uint32_t color, GWEN_BUFFER *dbuf); static void _writeOnOffToForm(const char *sValueName, int intVal, GWEN_BUFFER *dbuf); @@ -199,7 +200,7 @@ void _mkValueForm(AQH_DATACLIENT *dc, const char *sDeviceName, const AQH_VALUE * case AQH_ValueModality_RGBW: _writeRgbwToForm(sValueName, u.f, dbuf); break; case AQH_ValueModality_OnOff: _writeOnOffToForm(sValueName, intVal, dbuf); break; case AQH_ValueModality_OnOffAuto: _writeOnOffAutoToForm(sValueName, intVal, dbuf); break; - default: GBAA(dbuf, "%.2f", u.f); break; + default: _writeIntToForm(sValueName, intVal, dbuf); break; } /* switch */ GBAS(dbuf,""); @@ -208,6 +209,13 @@ void _mkValueForm(AQH_DATACLIENT *dc, const char *sDeviceName, const AQH_VALUE * +void _writeIntToForm(const char *sValueName, int v, GWEN_BUFFER *dbuf) +{ + GBAA(dbuf, "", sValueName, v); +} + + + void _writeRgbwToForm(const char *sValueName, uint32_t color, GWEN_BUFFER *dbuf) { #if 1