InnKeeper is a basic hotel/base room/door management system for use with the biometric locks in Gopher's Peripherals.
At its most basic level, it allows you to assign scanners to rooms. From there, you add guests to the rooms and they are automatically added to that room's scanners.
InnKeeper supports up to 999 rooms; with up to four scanners, five guests, and five messages/notes assigned to a room. Staff members are added via settings and are automatically added to all scanners in the system.
InnKeeper also features a simple guest search built-in: Find any guest, and their room number, quickly and easily.
Much like real business software, InnKeeper is slightly obtuse and poorly documented. But the support should be OK.
Screenshots
Typical Setup
(While this picture shows two biolocks per door, only one biolock is *required* per door. A single biolock can be used for entry and a pressure plate can be used for exit)
Main Screen .... Settings Screen
Search Screen .. Room Screen
Not all of InnKeeper's features are apparent or obvious at first. Some important things to know:
- Left click the big X at the top right of a screen to exit that screen
- Right click the big X at the top right of the main screen to password lock the program
- Left click the light gray room number field in any room screen to change the room number
- Left click the gray '#' to the right of the room # in any room screen to reorder your rooms
- Room # and room order are stored separately - room # does not affect room order and room order does not affect room #
- All 'paged' dialogues (room list, staff list, scanner list, search results) can be scrolled with the mouse wheel
- Pop-up dialogues with no input fields or buttons can be dismissed with a click of the mouse
- Click on the page number in the main screen to select a page to jump to (feature available when there is more than 1 page)
- The first time a room is added, it should have 1 or more scanners assigned to it before being marked 'Available'
- A reminder note is created in each new room's messages section to this effect
- InnKeeper does it's best to minimize the steps necessary to complete certain tasks...
- For example, setting a room to 'Available' will clear all guests and notes/messages automatically
- Setting a room to 'Unavailable' will clear all guests and prevent the addition of new guests, notes/messages will be preserved
- Adding a guest to an 'Available' room will automatically put that room into 'Reserved' status
- When a room is marked 'Occupied' the Check-IN time will be logged and displayed in the room property sheet automatically
- When a room is marked 'Checkout' the check-OUT time will be logged and displayed in the room property sheet automatically
- If a guest chooses to stay after already initiating checkout, simply place the room back in 'Occupied' status and the original Check-IN time will be preserved
- An occupied room may be marked for 'Service' - no changes will be made to the data
- New guests and staff need to be scanned in while the new guest/staff dialogue is open
- The guest count shows all guests in occupancy (reserved rooms are not included)
- Guests can be looked up by name with the search feature
- Searching for ? will show basic search help
- Searching for * will show all guests in occupancy and reservation status
- This means search results can total higher than occupancy count
- Searching for *o will show all guests in occupancy only
- Searching for *r will show all guests in reservation only
- Guests or staff members listed in red are in the InnKeeper database, but not programmed into the associated scanner(s)
- This is normal behavior for guests in Reserved rooms - guests aren't added to the scanners until the room is marked Occupied
- It is possible to remove all scanners from a room in any state ('Occupied', 'Service', etc.) - room state will not change
- This allows scanners to be reassigned as necessary without reseting all data
- Be careful when doing this, it is possible to leave an occupied room without any assigned scanners
- While the default number of users per scanner (for the physical biolock) is limited to 16 accounts per scanner this can be increased by editing the config for Gopher's Peripherals
- InnKeeper does NOT limit the number of staff that can be added - keep this in mind when adding staff members...
- any more than 11 staff and you won't be able to add the full 5 guests to a room's scanners unless the Gopher's Perihperals config file is edited to allow more accounts per scanner
- Upon startup InnKeeper looks for both its settings file and its room assignments file - if either is missing, Innkeeper preserves any data found and initiates first time setup
- InnKeeper LOCKS all scanners with the master scanner password to prevent unauthorized reprogramming
- If you wish to use the scanners elsewhere you'll need to unlock them in order to reprogram them
- This can be accomplished, on a per scanner basis or en masse, with BioPup
Limitations
- ComputerCraft network cables are limited to 256 segments per network (iirc) so this will limit the size and scope of larger builds - the 'repeat' program can be used to extend this limit by placing 'repeater' computers between segments as needed.
- InnKeeper is a single computer solution, so larger or busier locations may wish to manage their facility with multiple computers each running their own copy of InnKeeper and each managing a portion of the facility
- InnKeeper does not encrypt the passwords selected during setup - they are stored in plain text
- InnKeeper only supports a single state per room - for example, a room that is occupied can not also be reserved for the next guest simultaneously
- InnKeeper doesn't have a timed messaging system (so no automatic wake up calls, etc.)
- InnKeeper checks for missing and rogue scanners on startup, but does not do checks during operation
- Guests are assigned per room - there is no 'main' guest list and no direct way to move guests between rooms
- Rooms, however, may be renumbered and reordered, and scanners may be assigned/de-assigned as necessary
- All changes (additions/removals/etc) are made in 'real-time' - there is no save or undo
- The following are enforced limitations based on room status:
- A room marked 'Unavailable' will not allow guests to be added or removed
- A room marked 'Service' or will not allow guests to be added but will allow them to be removed
- A room marked 'Occupied', 'Reserved', 'Checkout', or 'Service' will not allow the daily rate to be changed
- Only a room marked 'Available' or 'Unavailable' may have its daily rate changed or be deleted
Download
Pastebin: Lj7Zw0nz
ComputerCraft: pastebin get Lj7Zw0nz startup
As always, my sincere gratitude and thanks to everyone who made this possible; especially Gopher and Lyqyd for both of their work on Gopher's Peripherals! Special thanks to theoriginalbit for his custom read function.
A note though, it looks like you've got a pair of biolocks for each door, one for entering and one for exiting. Any reason? Because normally, I'd just use a pressure plate to exit, since it's only people entering the room I'm concerned with securing.
A note though, it looks like you've got a pair of biolocks for each door, one for entering and one for exiting. Any reason? Because normally, I'd just use a pressure plate to exit, since it's only people entering the room I'm concerned with securing.
It's a fun mod to develop for and use - thanks for making such a cool mod for everyone!
Pressure plates are a better solution for exiting...good point. There should be nothing stopping someone from setting it up that way since the program allows for 1-4 biolocks per room and doesn't track door state (something I considered, but ultimately chose not to implement). I'll either change the screenshot or add something to the OP about pressure plates.
I have been looking for something like this CC program for a while as my Lua is not up to scratch to create something like this so a huge thanks for this! I just have a couple of questions about the program though:-
1. If I were to use this on a public server are there any specific mentions you would like?
2. is it possible to modify this for my specific environment?
1. You don't need to give me any mentions on the server if you use InnKeeper, but thank you for asking
2. That all depends on what you mean by 'modify'. Let me know what you need.
Unfortunately, no. ComputerCraft wireless modems don't provide a 'direct' means of remotely connecting to and wrapping peripherals. To do it wirelessly you'd need to have a computer with a wireless modem for each door which InnKeeper isn't designed for.
That's why I wrote InnKeeper I was on a server that had a hotel, but no way to manage the guests or doors. Please post some screenshots when you get it built, I'd love to see it!
BTW, quick suggestion:
Why not make a rednet section so instead of me having to build 3 block thick dividers to get the biolocks connected to downstairs, you connect one floor to a computer, designate it as floor x and then you just see 'floor 1 > biolock_0 biolock_1' etc..
And AFAIK the biolock for main floor doesn't open a door, unless I was using it wrong. It'd scan my print, but not open that door even when I was set as staff.
But even so, I'm still gonna be using it. My server's on a hiatus ATM but as soon as I have rebuilt the world (the old one was too cramped) I'll have my hotel ready.
That's an good idea, I like it. I don't think I can work it into InnKeeper, but I'll see if I'm able to do it. Either way I'll keep that in mind for a future project.
The 'main' biolock is not meant for doors, it is meant to be at the front desk so you can scan in new guests and staff - then InnKeeper programs all the other biolocks from that information. I recommend having the front desk biolock face toward the lobby/guest area so it's easy for guests to swipe the scanner when you're adding them to their room.
If you have any other questions or suggestions, please let me know
That's an good idea, I like it. I don't think I can work it into InnKeeper, but I'll see if I'm able to do it. Either way I'll keep that in mind for a future project.
The 'main' biolock is not meant for doors, it is meant to be at the front desk so you can scan in new guests and staff - then InnKeeper programs all the other biolocks from that information. I recommend having the front desk biolock face toward the lobby/guest area so it's easy for guests to swipe the scanner when you're adding them to their room.
If you have any other questions or suggestions, please let me know
Ah, OK. I have a fix - just make another 'room' and make it permanently occupied by a staff member, then all staff get auto-added anyway. Cost = 0
...
Ah, OK. I have a fix - just make another 'room' and make it permanently occupied by a staff member, then all staff get auto-added anyway. Cost = 0
I'm not sure what you mean by 'a fix'. Are you trying to get around using the front desk scanner? I'm not sure what you're trying to do.
I mean as in the guest scanner for a room is by the enterance and for the admin section where the computer itself is for reserving has a room assigned to it.
Sometimes my biolocks disappear sometimes and i can't figure out why.
Also i think this suggestion should make it into the next update
and could also we have some kind of thing that guest rooms have a WiRe interface for the lights in the room.
PokeAcer, on 26 June 2015 - 09:54 PM, said:
BTW, quick suggestion:
Why not make a rednet section so instead of me having to build 3 block thick dividers to get the biolocks connected to downstairs, you connect one floor to a computer, designate it as floor x and then you just see 'floor 1 > biolock_0 biolock_1' etc..
And AFAIK the biolock for main floor doesn't open a door, unless I was using it wrong. It'd scan my print, but not open that door even when I was set as staff.
But even so, I'm still gonna be using it. My server's on a hiatus ATM but as soon as I have rebuilt the world (the old one was too cramped) I'll have my hotel ready.