diff --git a/avr/apps/ma_light/main.asm b/avr/apps/ma_light/main.asm
index fc1f67c..ac4c7fe 100644
--- a/avr/apps/ma_light/main.asm
+++ b/avr/apps/ma_light/main.asm
@@ -68,7 +68,7 @@ AppMotionLight_Every100ms:
AppMotionLight_Every100ms_ret:
ret
AppMotionLight_Every100ms_off:
- rjmp appMotionLightTurnOff ; (r16, r17, r18, r19, r20, r21, r23, r24, r25)
+ rjmp appMotionLightTurnOff ; (r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, X)
; @end
@@ -147,11 +147,13 @@ appMotionLightStartTimer:
; ---------------------------------------------------------------------------
; @routine appMotionLightTurnOn
;
-; @clobbers r18 (r16, r17, r19, r20, r21, r23, r24, r25)
+; @clobbers r18 (r16, r17, r19, r20, r21, r22, r23, r24, r25, X)
appMotionLightTurnOn:
ldi r18, 1
- rjmp SK6812_SetState ; (r16, r17, r18, r19, r20, r21, r23, r24, r25)
+ rcall SK6812_SetState ; (R16, R17, R18, R19, R20, R21, R23, R24, R25)
+ ldi r18, 1
+ rjmp appMotionLightReportState ; (R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, X)
; @end
@@ -159,11 +161,35 @@ appMotionLightTurnOn:
; ---------------------------------------------------------------------------
; @routine appMotionLightTurnOff
;
-; @clobbers r18 (r16, r17, r19, r20, r21, r23, r24, r25)
+; @clobbers r18 (r16, r17, r19, r20, r21, r22, r23, r24, r25, X)
appMotionLightTurnOff:
clr r18
- rjmp SK6812_SetState ; (r16, r17, r18, r19, r20, r21, r23, r24, r25)
+ rcall SK6812_SetState ; (R16, R17, R18, R19, R20, R21, R23, R24, R25)
+ clr r18
+ rjmp appMotionLightReportState ; (R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, X)
+; @end
+
+
+
+; ---------------------------------------------------------------------------
+; @routine appMotionLightReportState
+;
+; @param R18 state (0=off, 1=on)
+; @clobbers (R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, X)
+
+appMotionLightReportState:
+ ldi r17, VALUE_ID_MAL_STATE
+ clr r19
+ ldi r20, 1
+ clr r21
+ ldi r22, AQHOME_VALUETYPE_ONOFF
+ push yl
+ push yh
+ rcall Main_SendValueReport ; (R16, R17, R18, R19, R20, R21, R23, R24, R25, X)
+ pop yh
+ pop yl
+ ret
; @end
diff --git a/avr/apps/ma_light/recv.asm b/avr/apps/ma_light/recv.asm
index ddfedfb..f6f8dbc 100644
--- a/avr/apps/ma_light/recv.asm
+++ b/avr/apps/ma_light/recv.asm
@@ -64,8 +64,12 @@ AppMotionLight_OnPacketReceived_checkTimer:
lds r17, appMotionLightTimer+1
or r16, r17
brne AppMotionLight_OnPacketReceived_startTimer ; no, just restart timer (light already on)
- rcall appMotionLightTurnOn ; (r16, r17, r18, r19, r20, r21, r23, r24, r25)
-AppMotionLight_OnPacketReceived_startTimer:
+ push xl
+ push xh
+ rcall appMotionLightTurnOn ; (r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, X)
+ pop xh
+ pop xl
+AppMotionLight_OnPacketReceived_startTimer:
rcall appMotionLightStartTimer
AppMotionLight_OnPacketReceived_secRet:
sec
diff --git a/avr/devices/all/defs.asm b/avr/devices/all/defs.asm
index 29a58c4..41b7ac3 100644
--- a/avr/devices/all/defs.asm
+++ b/avr/devices/all/defs.asm
@@ -21,6 +21,7 @@
.equ AQHOME_VALUETYPE_TVOC = 8
.equ AQHOME_VALUETYPE_STATS = 9
.equ AQHOME_VALUETYPE_LIGHT = 10
+.equ AQHOME_VALUETYPE_ONOFF = 11
; Value Ids
diff --git a/avr/devices/n14/aqua_n14.xml b/avr/devices/n14/aqua_n14.xml
index fddc0cf..81abc7d 100644
--- a/avr/devices/n14/aqua_n14.xml
+++ b/avr/devices/n14/aqua_n14.xml
@@ -16,6 +16,7 @@
+
diff --git a/avr/devices/n14/main/main.asm b/avr/devices/n14/main/main.asm
index c27f091..fae03a2 100644
--- a/avr/devices/n14/main/main.asm
+++ b/avr/devices/n14/main/main.asm
@@ -76,6 +76,7 @@
;.equ VALUE_ID_REED1 = 0x04
;.equ VALUE_ID_REED2 = 0x05
.equ VALUE_ID_DS18B20_TEMP = 0x06
+.equ VALUE_ID_MAL_STATE = 0x07
;.equ VALUE_ID_REED_CONF = 0x81
.equ VALUE_ID_LED_STATE = 0x81
diff --git a/avr/devices/n25/aqua_n25.xml b/avr/devices/n25/aqua_n25.xml
index 552e4d1..144bf35 100644
--- a/avr/devices/n25/aqua_n25.xml
+++ b/avr/devices/n25/aqua_n25.xml
@@ -16,6 +16,7 @@
+
diff --git a/avr/devices/n25/main/main.asm b/avr/devices/n25/main/main.asm
index 23f0627..3735f1a 100644
--- a/avr/devices/n25/main/main.asm
+++ b/avr/devices/n25/main/main.asm
@@ -77,6 +77,8 @@
;.equ VALUE_ID_REED1 = 0x04
;.equ VALUE_ID_REED2 = 0x05
.equ VALUE_ID_DS18B20_TEMP = 0x06
+.equ VALUE_ID_MAL_STATE = 0x07
+
;.equ VALUE_ID_REED_CONF = 0x81
.equ VALUE_ID_LED_STATE = 0x81