makeict / electronic-door Goto Github PK
View Code? Open in Web Editor NEWmakeict-electronic-door
makeict-electronic-door
This would let the server know that a client has restarted and probably needs to be updated. Will reduce the need for frequent LCD updates when clients restart.
Add the ability to search for tags like "back-door" or "admin-closet" along with the ability to search for groups.
The location of information for the specific purpose of the MCP is a little weird. Every time I open the MCP, I wont be needing their groups, birthdate, join date, or change their password. I suggest a re-ordering of the information as follows:
Name [first][last]
Email
Status
KeyInfo
MORE INFO:
JoinDate
Birthday
Groups
Password
More Info is a click/select-open tab that doesn't show default on the page.
While synchronizing users from WildApricot, the system is very delayed in handling/responding to serial data.
Just some very little things that can be changed to save seconds every time the program is used:
User has to re-authenticate with Google every day, which makes automation impossible.
Um, I like the sounds, but could we have a button that mutes the sounds please?
If a plugin is disabled, it should not perform any operations.
Seeing serial data duplicated in the server logs. This shows up pretty frequently on packets both sent by the server and clients. In the following excerpt it looks like it is processing the first part of the packet twice and therefore failing the CRC check.
Jul 12 22:23:27 mcp node[13125]: Resending packet (1/5): fa0b00010102000a3bbcfb
Jul 12 22:23:27 mcp node[13125]: Writing packet : fa0b00010102000a3bbcfb
Jul 12 22:23:27 mcp node[13125]: RAW Serial : fa,b,0,1,1,2,0,a
Jul 12 22:23:27 mcp node[13125]: RAW Serial : fa,b,0,1,1,2,0,a
Jul 12 22:23:28 mcp node[13125]: RAW Serial : 0
Jul 12 22:23:28 mcp node[13125]: RAW Serial : 0
Jul 12 22:23:28 mcp node[13125]: RAW Serial : fa,b,1,0,aa,0,9d,fe
Jul 12 22:23:28 mcp node[13125]: RAW Serial : fa,b,1,0,aa,0,9d,fe
Jul 12 22:23:28 mcp node[13125]: RAW Serial : fe,fb
Jul 12 22:23:28 mcp node[13125]: Incoming packet: fa0b0100aa009dfefa0b0100aa009dfefefb
Jul 12 22:23:28 mcp node[13125]: =============================
Jul 12 22:23:28 mcp node[13125]: Bad CRC 40446 vs 40442
Jul 12 22:23:28 mcp node[13125]: =============================
Jul 12 22:23:28 mcp node[13125]: RAW Serial : fe,fb
If a user is added manually, the WildApricot sync process fails to update them
Group administrators should be able to add/remove people from the group that they administrate, but not manage clients, plugins, etc.
This will save admins from having to travel to a client to enroll a key.
Currently client has to be manually reset to change the address. This makes it impossible to change addresses remotely.
Accidentally deleted the client config for the front door, then the case fell open and hit the alarm button, arming the alarm. Couldn't disable it from the front because the client was unknown, so I tried the back, but the server wasn't responding. Loud noises happened, eventually restarted the server and got it disabled.
The protocol is kind of hacked together and could definitely use some more detail documentation and improvements to the implementation.
Some thoughts:
detect bus disconnects
send/receive timing
proper queueing
Can there be a log somewhere that only displays the log of keys that are given? This would be useful to assign application forms and making a 20 min task automatic. Thanks!
Both the key box on the selected member is not able to be tabbed to, as well as the plugins tab all together.
Hotkeys? I have ideas for hotkeys if its something that you guys are interested in doing. Just things to make it easier to get around the site.
Keys for each tab, and maybe even a key to default select the key of the selected person.
This doesn't happen when the tag is loaded (or reloaded) directly
Need to figure out the UI for this as well
Client/plugin actions should be executable using default parameter values from the UI, without having to expand the parameters to find the execute button.
Create a new field called storage
This would allow us to log who arms the alarm, and prevent accidental arming.
The location of information for the specific purpose of the MCP is a little weird. Every time I open the MCP, I wont be needing their groups, birthdate, join date, or change their password. I suggest a re-ordering of the information as follows:
Name [first][last]
Email
Status
KeyInfo
MORE INFO:
...JoinDate
...Birthday
...Groups
...Password
More Info is a click/select-open tab that doesn't show default on the page.
Currently logging is only separated by severity, but it would be very helpful to enable/disable logging by module.
The logging functions could also be improved.
When I give out a key, The key button, in which the key number is assigned, collapses when keys are assigned.
Currently, the only way to de-activate a key is to un-enroll it. Once un-enrolled, it has to be re-scanned to enroll it again. In the case of lost keys it would be nice to be able to temporarily de-activate the lost key, then re-activate it if found without requiring the key to be scanned again.
Implement hardware/software for battery backup.
Hardware: battery, charge circuitry, source switching
Software: reduce power usage when running on battery
Clients should ACK ping messages
When a client hasn't received a ping in a while, it should update it's LCD and LED displays with some identifiable message
The current behavior seems counter-intuitive to me. I think it makes more sense to open the user info, then send an e-mail from there if necessary. I usually just want to check the user's group and status if a key is getting rejected.
Users should be able to upload a MIDI file (somewhere) that can be converted, saved in the database, and used by the chimes to personally announce them when they enter with their key.
This would be useful for troubleshooting keys.
Unlocking a door with a key shows who's key opened the door. When unlocking via the web, it should indicate who the user was, but it does not currently.
The UI should confirm the action when a user wants to unenroll a member's key.
Allow mobile devices (Android, iOS, etc) equipped with NFC radios to unlock clients
When an escaped start flag is present in a packet, the server correctly identifies the packet, but then also tries to interpret the section starting at the escaped flag as a second packet.
This is unlikely to cause any real issues as the falsely identified packet should always be discarded, but it raises false flags in the logs.
Jul 14 13:08:19 mcp node[27179]: Writing packet : fa1400010102000afefa52fb
Jul 14 13:08:19 mcp node[27179]: RAW Serial : fa,14,0,1,1,2,0,a
Jul 14 13:08:19 mcp node[27179]: RAW Serial : fa,14,0,1,1,2,0,a
Jul 14 13:08:19 mcp node[27179]: RAW Serial : fe,fa,52,fb
Jul 14 13:08:19 mcp node[27179]: Incoming packet: fa1400010102000afefa52fb
Jul 14 13:08:19 mcp node[27179]: RAW Serial : fe,fa,52,fb
Jul 14 13:08:19 mcp node[27179]: Incoming packet: fa52fb
Jul 14 13:08:19 mcp node[27179]: =============================
Jul 14 13:08:19 mcp node[27179]: Bad CRC 65535 vs NaN
Jul 14 13:08:19 mcp node[27179]: =============================
Because the clients see all broadcast messages as having the same ID, they only process the first one and ignore all following messages.
We should either
IMO, broadcast messages should work sorta like UDP. Clients shouldn't acknowledge them, clients should process all broadcast messages (that are applicable), server should not attempt resends on broadcasts.
The terminal log on the bottom, Dom likes it to scroll, I don't, could we get a toggle for that, thanks.
Would be nice to now if/when the alarm is being armed.
On the login screen, the cursor should default to the email box.
Use esp8266 with AT firmware to add WiFi support to clients.
Create TCP server for wireless clients to connect to. The server should process communications to and from wireless clients in the same manner as clients on the RS485 bus.
Encryption is needed before adding wifi support. Data sent over RS485 should be encrypted as well. Needs support on both server and client.
Some people hate music.
The microcontroller on the clients reboot fairly regularly. Seems to be related to serial communication.
When the alarm is armed scanning a key doesn't seem to disarm it the first time. The pre-alarm starts playing and the key needs to be scanned again to disable it.
2016-August-18 11:46:28 message 01 Front door: door closed
2016-August-18 11:46:27 error Alarm Decoder: alarm-armed-away
2016-August-18 11:46:20 message 01 Front door: door opened
2016-August-18 11:46:19 unlock 01 Front door Paul Herrington 04fcc9daed4480
2016-August-18 11:46:19 message Alarm Decoder: Sending disarm
2016-August-18 11:33:15 message Super Serial connected!
2016-August-18 11:33:14 message Super Serial disconnected
2016-August-18 11:33:13 error Super serial watchdog activated
This will allow a fixed number of keys to work on a client even if server communication has failed
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.