I don’t think I properly understand you goal, but I’ll do my best to respond.
You mentioned that you would like to have a code you can enter that is set up to trigger night mode. However, there is no way to enter a code on the zipato - it only has “home” and “away” buttons.
It might be possible for you to consider certain RFID tags as “night mode” RFID tags, and to take special action based on that in a webcore piston. (I’m not very familiar with webcore, so someone else might jump in to provide an example).
The relevant code in the device handler is here: https://github.com/seanblanchfield/smartthings-zipato-rfid/blob/master/zwave-zipato-rfid.groovy#L469
Pressing “away” with a valid tag currently sends some events, like the “lastsetby” event containing the value of the username, and then it sets the “switch” to “on” (which most people react to by arming away mode in smart home monitor). You could add a special event that is only sent if one of your night-mode-only RFID tags is used. If you don’t want to modify the device handler, you could instead set up your webcore piston so that if “lastsetby” is sent from one of these special tags and the switch is currently “off”, then to trigger night mode. You would also need to trigger away mode from the piston if “lastsetby” corresponds to one of your other RFID tags.
I think the above could be made to work, but I imagine it would be a bit confusing to try to remember which RFID tag to use at night vs when you are leaving the house.