Well, I did a little experiment at about 10:00 AM, after I sent my earlier post.
I created two macros, "C4 On" for Dawn-to-Dusk (daytime), and "C4 Off" for Dusk-to-Dawn (nighttime).
Firing manually from within AHP ran the command in both cases (C16 on, pause 1 sec, C16 off).
Sending a "C4 On" from the command line (using ahcmd from the SDK) caused the "daytime" macro to fire, and run the commands. Sending the "C4 Off" caused the macro to fire (I saw it in the Activity Monitor), but the commands didn't run (this is a GOOD thing).
Next, I changed the time on the PC to 10:00 PM, and tried again.
Sure enough, the "daytime" macro fired, but didn't execute the commands. The "nighttime" one worked.
I guess they fixed the logic, so that using "dusk-to-dawn" in a condition loops past midnight, and works.
For some reason, your macro logic is working BACKWARD, with time-related conditions.
Are you leaving the CM15A connected to the PC, with the PC running (AHP can be closed, but the PC must be on) when you are testing?
Do you have timers on any modules?
If so, do they fire correctly?
As a test, can you set a timer for Dusk, to set a flag, and another timer for Dawn, to clear that flag (don't use flags 1, 15, or 16)? Do the flags get set correctly at the right times (you can check flag status by pressing "F3" in AHP).
If that works, try setting the flag status as the condition, and see if the macro works the way it is supposed to.
Not that this is a permanent fix, but it would be a valid test, at least.