Solidity variable values can only be set from the contract. So you will definitely need some sort of setter functionality for the variable to be set to different values.
Furthermore there is no functionality to "watch" a variable's value or something similar. You simply have to do the monitoring yourself. So when you implement functionality to set the ...
Note when applying this for structs, the pattern is to nest the structs in a similar way. So:
keccak256("Deposit(address,bytes32,uint256,(bytes32, bytes32))") is the signature of the event:
address indexed _from,
bytes32 indexed _id,