animation data for lamp object not showing up in UI

in this blend file is a light with some keyframed colours , it is a sun lamp but in the beginning it was a hemi lamp and I had not renamed it, sorry if it looks confusing

I am trying to change the colour of the light at certain frames, however there isnt an entry for it in the dope sheet, nor is there a channel for it in the graph editor F curves …
it is showing up as an action in the NLA editor, however if you search for the name of the action in the action editor, it will not show… also, the colour selector bar of the light lacks the green outline , or yellow when you are on a keyframe

inserting a new keyframe for the light colour will override the animation of the light and the light stops changing colour, and cause the single keyframe you added to show in the dope sheet and the F curve

if I press tab while the action is selected in the NLA editor to go into tweak mode, it turns green like it should, and green diamonds appear where the keyframes are, but they do not show up in the Action editor… However, if you change the frame on the timeline while the action is green, the colour selector bar will have the green/yellow outline, showing that it is indeed a keyframed value… but the outline disappears once you get out of tweak mode

Attachments

fcurvenotshowing.blend (1.82 MB)

The scene looks simple enough so probably best to rebuild it, I had a quick look and couldn’t understand it, anyway this might help if you want to keep the scene;

so the action shows up in
bpy.data.actions

I tried to force the action onto the second object by doing

import bpy
for actions in bpy.data.actions:
lostaction = actions
print (lostaction)

bpy.context.object.animation_data.action = lostaction

and the result was

<bpy_struct, Action(“Empty.005Action”)>
<bpy_struct, Action(“Hemi.002Action”)>
Error: Could not set action ‘Hemi.002Action’ onto ID ‘OBTerrain’, as it does not have suitably rooted paths for this purpose

so if you compare

bpy.data.actions[0].id_root
with
bpy.data.actions[1].id_root

you can see the difference in is object in the action that works and lamp in the action that doesn’t.

I have no idea if this is a good idea but if you type

py.data.actions[1].id_root=‘OBJECT’

into the console the action you want shows up in the action editor.

Good luck

edit you can also change that in the outliner, where it says “all scenes” change to “data block” and look for actions. It even says don’t change this unless you know what you are doing so be careful!!