aqhome-cgi: handle int values as well

This commit is contained in:
Martin Preuss
2026-08-06 00:07:02 +02:00
parent e08054bbdf
commit 3df7b69c2c
2 changed files with 34 additions and 3 deletions

View File

@@ -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) {

View File

@@ -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,"<input type=\"submit\" name=\"action\" value=\"Send\"/>");
@@ -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, "<input type=\"number\" name=\"%s\" value=\"%d\"/>", sValueName, v);
}
void _writeRgbwToForm(const char *sValueName, uint32_t color, GWEN_BUFFER *dbuf)
{
#if 1