DrewT
Well-Known Member
Here's my initial thoughts. Understand my background is in operations development and performance testing so forgive me if anything sounds too critical .
- PG2, PP4: Is this specification purposely excluding wired communication between servers and modules? If so, consider creating a non-goals section and explicitly specifying.
- PG5, PP6: Are you planning to add versioning information to your firmware and schema? If not, how will you keep track of which firmware revisions work with active schema
- PG5, PP9: How are you planning to deal with data consistency during network outages or database upgrades? When can you expect the sensor data not be logged to the database?
- PG6, PP3: Does this mean each column of plants can only associate with one sensor? Does this design account for your garden if you chose to orient plots in circle or line (opposed to a grid)? How can you ensure correct association of sensor data in non-uniform plot layouts?
- PG7, PP1: Are you saying all sensor modules will have 16 ports? Are you limiting MCU selection to Atmel Megas?
- PG8, PP1: Module is redefined here after citing it in the terms section above. Unless a module can be more than one thing, should these sections be combined?
- PG8, PP2: Is a server a module then? The hardware is a single physical unit so I may be confused if I didn’t know this ahead of time.
- PG10, PP2: Is static IP assignment required? Perhaps state that explicitly if it’s the case.
- PG10, PP3: Is there no option to store module config locally? If a network connection to the DB fails how will the module behave?
- PG11, PP2: Are you restricting the web server to an ESP-01? This has 1K of SRAM and is the least capable 8266 package commonly available. Do you have a scalability story for DB growth?
- PG12, PP2 : I’m confused, is each ESP-01 hosting its own database? PG18 seems to confirm this. Are logins specific to each ESP or is auth happening at the DB as well?
- PG14, PP2 : Duplicate field name ‘dateAdded’
- PG18, PP4 : DB maintenance is performed by a remote process correct? If so, how do you plan to orchestrate deployment and versioning control? What happens when network failure occurs or the maintenance server is taken offline?
- PG20, PP1 : Will sensor readings be transmitted over the wire as whole numbers (sensorRawValue) and converted to other types (sensorCalcValue) on the web server?
- How do you configure modules to connect/report sensor data?
- What happens when a sensor module dies and you need to replace it with the same config?
- What happens when the server runs out of SRAM/Flash to store DB info?
- What is the maximum range you expect to have between modules and servers?
- What other dependencies are there in terms of power and connectivity for each component type?