BARKLY DOCS human-readable engineering reference
BARKLY LABS · AUTOMATED DOCUMENTATION

PlantWater

Human-centered plant care systems designed to help people understand, monitor, and care for plants through simple, adaptable, and understandable technology.

generation #1 40 python files 173 functions 40 classes 70 endpoints
01
BARKLY DOCS

Project

The smallest useful picture of what this project is.

PROJECT DOCUMENTATION

PlantWater

Human-centered plant care systems designed to help people understand, monitor, and care for plants through simple, adaptable, and understandable technology.

TYPE
API / Software / Systems
STATUS
Active
PYTHON FILES
40
GENERATION
#1
02
BARKLY DOCS

Principles

The rules and design principles the project is built around.

01
Human First
02
Understandable
03
Privacy Where Practical
04
Accessible
05
Experimental
06
Open and Extensible
03
BARKLY DOCS

Components

The major systems and pieces that make up the project.

01
Plant Monitoring
02
Watering Systems
03
Plant Data
04
API + Integrations
05
Automation
06
Tools + Systems
04
BARKLY DOCS

API Endpoints

Every discovered route is compact by default and expandable when you need its technical details.

0
src/routes/apikeys.py
3 endpoints
POST
/api/keys/create
create_key — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER create_key
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/apikeys.py:24
RETURNS Not documented
PARAMETERS
name
str
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.post('/api/keys/create', tags=['API Keys'])
GET
/api/keys
list_keys — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER list_keys
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/apikeys.py:43
RETURNS Not documented
PARAMETERS
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
ROUTE DECORATORS
router.get('/api/keys', tags=['API Keys'])
POST
/api/keys/{key_id}/revoke
revoke_key — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER revoke_key
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/apikeys.py:58
RETURNS Not documented
PARAMETERS
key_id
str
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
ROUTE DECORATORS
router.post('/api/keys/{key_id}/revoke', tags=['API Keys'])
src/routes/beds.py
30 endpoints
POST
/api/bed-data
receive_data — Accept and store sensor readings from ESP32 microcontroller.
WHAT IT DOES

Accept and store sensor readings from ESP32 microcontroller.

HANDLER receive_data
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:140
RETURNS Not documented
PARAMETERS
data
BedData
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.post('/api/bed-data', dependencies=[Depends(verify_api_key)], tags=['Beds'])
GET
/api/beds
get_beds — Retrieve the latest sensor reading for each plant bed.
WHAT IT DOES

Retrieve the latest sensor reading for each plant bed.

HANDLER get_beds
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:218
RETURNS Not documented
PARAMETERS
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/api/beds', tags=['Beds'])
GET
/api/beds/{bed_id}/history
history — Retrieve recent historical readings for a specific plant bed.
WHAT IT DOES

Retrieve recent historical readings for a specific plant bed.

HANDLER history
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:238
RETURNS Not documented
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/api/beds/{bed_id}/history', tags=['Beds'])
GET
/api/beds/{bed_id}/range
get_range — Retrieve sensor readings within a specific time range.
WHAT IT DOES

Retrieve sensor readings within a specific time range.

HANDLER get_range
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:260
RETURNS Not documented
PARAMETERS
bed_id
str
start
datetime
end
datetime
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/api/beds/{bed_id}/range', tags=['Beds'])
GET
/api/beds/{bed_id}/graph
graph_data — Retrieve sensor data formatted for frontend charting libraries.
WHAT IT DOES

Retrieve sensor data formatted for frontend charting libraries.

HANDLER graph_data
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:284
RETURNS Not documented
PARAMETERS
bed_id
str
limit
int
= 200
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/api/beds/{bed_id}/graph', tags=['Beds'])
GET
/api/beds/{bed_id}/stats
stats — Calculate aggregated statistics for a plant bed's moisture data.
WHAT IT DOES

Calculate aggregated statistics for a plant bed's moisture data.

HANDLER stats
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:304
RETURNS Not documented
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/api/beds/{bed_id}/stats', tags=['Beds'])
GET
/api/beds/latest
latest — Get latest reading for each active bed (online detection).
WHAT IT DOES

Get latest reading for each active bed (online detection).

HANDLER latest
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:323
RETURNS Not documented
PARAMETERS
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/api/beds/latest', tags=['Beds'])
GET
/api/beds/{bed_id}/full-graph
full_graph — Get detailed graph data including health and RSSI.
WHAT IT DOES

Get detailed graph data including health and RSSI.

HANDLER full_graph
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:365
RETURNS Not documented
PARAMETERS
bed_id
str
limit
int
= 200
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/api/beds/{bed_id}/full-graph', tags=['Irrigation'])
GET
/api/config/{bed_id}
get_config — Retrieve current configuration settings for a plant bed.
WHAT IT DOES

Retrieve current configuration settings for a plant bed.

HANDLER get_config
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:414
RETURNS Not documented
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/api/config/{bed_id}', tags=['System'])
POST
/api/config/{bed_id}
update_config — Update configuration settings for a plant bed.
WHAT IT DOES

Update configuration settings for a plant bed.

HANDLER update_config
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:434
RETURNS Not documented
PARAMETERS
bed_id
str
config
BedConfig
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.post('/api/config/{bed_id}', dependencies=[Depends(verify_api_key)], tags=['System'])
POST
/api/should-water
should_water — Intelligent watering decision engine.
WHAT IT DOES

Intelligent watering decision engine.

HANDLER should_water
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:455
RETURNS Not documented
PARAMETERS
bed_id
str
average_moisture
float
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.post('/api/should-water', dependencies=[Depends(verify_api_key)], tags=['Control'])
POST
/api/water
water_bed — Manually control valve irrigation.
WHAT IT DOES

Manually control valve irrigation.

HANDLER water_bed
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:504
RETURNS Not documented
PARAMETERS
bed_id
str
duration
int
= 3
ROUTE DECORATORS
router.post('/api/water', tags=['Irrigation'], dependencies=[Depends(verify_api_key)])
GET
/api/valve/{bed_id}
valve_status — Get current valve status.
WHAT IT DOES

Get current valve status.

HANDLER valve_status
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:513
RETURNS Not documented
PARAMETERS
bed_id
str
ROUTE DECORATORS
router.get('/api/valve/{bed_id}', tags=['Irrigation'])
POST
/api/beds/{bed_id}/mode
set_mode — Set bed operating mode.
WHAT IT DOES

Set bed operating mode.

HANDLER set_mode
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:529
RETURNS Not documented
PARAMETERS
bed_id
str
mode
str
ROUTE DECORATORS
router.post('/api/beds/{bed_id}/mode', tags=['Irrigation'], dependencies=[Depends(verify_api_key)])
GET
/api/beds/{bed_id}/mode
get_mode — Get bed operating mode.
WHAT IT DOES

Get bed operating mode.

HANDLER get_mode
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:538
RETURNS Not documented
PARAMETERS
bed_id
str
ROUTE DECORATORS
router.get('/api/beds/{bed_id}/mode', tags=['Irrigation'])
POST
/api/beds/{bed_id}/water-cycle
water_cycle — Track watering cycle for lifetime stats.
WHAT IT DOES

Track watering cycle for lifetime stats.

HANDLER water_cycle
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:551
RETURNS Not documented
PARAMETERS
bed_id
str
valve_state
str
ROUTE DECORATORS
router.post('/api/beds/{bed_id}/water-cycle', dependencies=[Depends(verify_api_key)], tags=['Irrigation'])
GET
/api/beds/{bed_id}/lifetime
lifetime_stats — Get lifetime watering statistics from database.
WHAT IT DOES

Get lifetime watering statistics from database.

HANDLER lifetime_stats
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:586
RETURNS Not documented
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/api/beds/{bed_id}/lifetime', tags=['Irrigation'])
POST
/api/beds/{bed_id}/meta
save_bed_meta — Save bed metadata (name, icon).
WHAT IT DOES

Save bed metadata (name, icon).

HANDLER save_bed_meta
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:631
RETURNS Not documented
PARAMETERS
bed_id
str
data
dict
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
ROUTE DECORATORS
router.post('/api/beds/{bed_id}/meta', tags=['System'])
GET
/api/beds/{bed_id}/meta
get_bed_meta — Get bed metadata.
WHAT IT DOES

Get bed metadata.

HANDLER get_bed_meta
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:665
RETURNS Not documented
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/api/beds/{bed_id}/meta', tags=['System'])
GET
/api/beds/meta
get_all_bed_meta — Get all bed metadata.
WHAT IT DOES

Get all bed metadata.

HANDLER get_all_bed_meta
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:686
RETURNS Not documented
PARAMETERS
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/api/beds/meta', tags=['System'])
GET
/api/beds/{bed_id}/health
get_bed_health — Get plant health status.
WHAT IT DOES

Get plant health status.

HANDLER get_bed_health
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:705
RETURNS Not documented
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/api/beds/{bed_id}/health', tags=['ML'])
GET
/api/beds/{bed_id}/risk
bed_risk_next_hour — Predict risk of drying in next hour.
WHAT IT DOES

Predict risk of drying in next hour.

HANDLER bed_risk_next_hour
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:739
RETURNS Not documented
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/api/beds/{bed_id}/risk', tags=['ML'])
GET
/health
health — Health check endpoint for monitoring.
WHAT IT DOES

Health check endpoint for monitoring.

HANDLER health
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:815
RETURNS Not documented
PARAMETERS
No parameters documented.
ROUTE DECORATORS
router.get('/health', tags=['System'])
DELETE
/api/cleanup
cleanup — Delete historical data older than 7 days.
WHAT IT DOES

Delete historical data older than 7 days.

HANDLER cleanup
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:821
RETURNS Not documented
PARAMETERS
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.delete('/api/cleanup', dependencies=[Depends(verify_api_key)], tags=['System'])
GET
/api/will-rain
weather_api — Check if rain is expected.
WHAT IT DOES

Check if rain is expected.

HANDLER weather_api
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:831
RETURNS Not documented
PARAMETERS
No parameters documented.
ROUTE DECORATORS
router.get('/api/will-rain', tags=['Weather'])
GET
/api/weather/current
weather_current — Get current weather.
WHAT IT DOES

Get current weather.

HANDLER weather_current
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:837
RETURNS Not documented
PARAMETERS
No parameters documented.
ROUTE DECORATORS
router.get('/api/weather/current', tags=['Weather'])
GET
/api/weather
weather_summary — Get cached weather summary.
WHAT IT DOES

Get cached weather summary.

HANDLER weather_summary
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:843
RETURNS Not documented
PARAMETERS
No parameters documented.
ROUTE DECORATORS
router.get('/api/weather', tags=['System'])
GET
/api/system/overview
system_overview — Get system status at a glance.
WHAT IT DOES

Get system status at a glance.

HANDLER system_overview
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:863
RETURNS Not documented
PARAMETERS
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/api/system/overview', tags=['System'])
POST
/api/node/heartbeat
node_heartbeat — Record node heartbeat and connectivity info.
WHAT IT DOES

Record node heartbeat and connectivity info.

HANDLER node_heartbeat
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:897
RETURNS Not documented
PARAMETERS
bed_id Query
str
= Query(...)
ip Query
str
= Query(None)
rssi Query
int
= Query(None)
ROUTE DECORATORS
router.post('/api/node/heartbeat', tags=['System'])
GET
/api/beds/{bed_id}/history
get_history — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER get_history
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/beds.py:912
RETURNS Not documented
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/api/beds/{bed_id}/history', tags=['Beds'])
src/routes/bot_bridge.py
2 endpoints
POST
/queue
add_message — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER add_message
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/bot_bridge.py:14
RETURNS Not documented
PARAMETERS
msg
Msg
ROUTE DECORATORS
router.post('/queue')
GET
/poll
get_messages — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER get_messages
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/bot_bridge.py:20
RETURNS Not documented
PARAMETERS
No parameters documented.
ROUTE DECORATORS
router.get('/poll')
src/routes/dis.py
8 endpoints
GET
/api/discord/connect
discord_connect — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER discord_connect
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/dis.py:33
RETURNS Not documented
PARAMETERS
No parameters documented.
ROUTE DECORATORS
router.get('/api/discord/connect', tags=['Discord'])
GET
/api/discord/callback
discord_callback — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER discord_callback
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/dis.py:50
RETURNS Not documented
PARAMETERS
request
Request
code
str
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
ROUTE DECORATORS
router.get('/api/discord/callback', tags=['Discord'])
GET
/api/discord/me
get_my_discord — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER get_my_discord
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/dis.py:133
RETURNS Not documented
PARAMETERS
user Depends
User
= Depends(get_current_user)
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/api/discord/me', tags=['Discord'])
DELETE
/api/discord/disconnect
disconnect_discord — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER disconnect_discord
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/dis.py:156
RETURNS Not documented
PARAMETERS
user Depends
User
= Depends(get_current_user)
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.delete('/api/discord/disconnect', tags=['Discord'])
POST
/api/discord/test
test_discord_dm — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER test_discord_dm
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/dis.py:213
RETURNS Not documented
PARAMETERS
payload
dict
user Depends
User
= Depends(get_current_user)
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.post('/api/discord/test', tags=['Discord'])
GET
/api/discord/users
get_discord_users — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER get_discord_users
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/dis.py:228
RETURNS Not documented
PARAMETERS
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/api/discord/users', tags=['Discord'])
POST
/api/user/link-discord
link_discord — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER link_discord
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/dis.py:240
RETURNS Not documented
PARAMETERS
user_id
int
discord_user_id
str
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.post('/api/user/link-discord')
DELETE
/api/discord/disconnect
disconnect_discord — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER disconnect_discord
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/dis.py:259
RETURNS Not documented
PARAMETERS
db Depends
Session
= Depends(get_db)
user Depends
= Depends(get_current_user)
ROUTE DECORATORS
router.delete('/api/discord/disconnect')
src/routes/firebase.py
3 endpoints
POST
/register-device
register_device_token — Registers Firebase device token (multi-device safe).
WHAT IT DOES

Registers Firebase device token (multi-device safe).

HANDLER register_device_token
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/firebase.py:28
RETURNS Not documented
PARAMETERS
data
DeviceTokenRegister
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
ROUTE DECORATORS
router.post('/register-device', tags=['firebase'])
POST
/firebase-token
save_firebase_token — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER save_firebase_token
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/firebase.py:75
RETURNS Not documented
PARAMETERS
data
dict
user Depends
User
= Depends(get_current_user)
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.post('/firebase-token')
DELETE
/firebase-token
disable_firebase — Removes a specific Firebase token for multi-device support. If no token specified in body, removes…
WHAT IT DOES

Removes a specific Firebase token for multi-device support. If no token specified in body, removes all tokens (backward compatibility).

HANDLER disable_firebase
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/firebase.py:133
RETURNS Not documented
PARAMETERS
data
DeviceTokenRemove
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
ROUTE DECORATORS
router.delete('/firebase-token')
src/routes/notfics.py
5 endpoints
POST
/test
test_notification — Send a test message to the currently authenticated user. Body: { "message": str }
WHAT IT DOES

Send a test message to the currently authenticated user. Body: { "message": str }

HANDLER test_notification
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/notfics.py:18
RETURNS Not documented
PARAMETERS
payload
dict
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
ROUTE DECORATORS
router.post('/test')
POST
/send/info
send_info — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER send_info
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/notfics.py:37
RETURNS Not documented
PARAMETERS
payload
dict
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
ROUTE DECORATORS
router.post('/send/info')
POST
/send/error
send_error — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER send_error
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/notfics.py:54
RETURNS Not documented
PARAMETERS
payload
dict
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
ROUTE DECORATORS
router.post('/send/error')
POST
/send/alert
send_alert — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER send_alert
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/notfics.py:71
RETURNS Not documented
PARAMETERS
payload
dict
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
ROUTE DECORATORS
router.post('/send/alert')
GET
/contact
get_contact — Debug endpoint to verify stored contact info for logged-in user.
WHAT IT DOES

Debug endpoint to verify stored contact info for logged-in user.

HANDLER get_contact
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/notfics.py:88
RETURNS Not documented
PARAMETERS
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
ROUTE DECORATORS
router.get('/contact')
src/routes/pages.py
12 endpoints
GET
/
dashboard — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER dashboard
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/pages.py:210
RETURNS Not documented
PARAMETERS
request
Request
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
ROUTE DECORATORS
router.get('/', response_class=HTMLResponse, tags=['System'])
GET
/about
about_page — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER about_page
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/pages.py:427
RETURNS Not documented
PARAMETERS
No parameters documented.
ROUTE DECORATORS
router.get('/about', response_class=HTMLResponse, tags=['System'])
GET
/nodes
node_status_page — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER node_status_page
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/pages.py:531
RETURNS Not documented
PARAMETERS
user Depends
User
= Depends(get_current_user)
ROUTE DECORATORS
router.get('/nodes', response_class=HTMLResponse, tags=['System'])
GET
/bed/{bed_id}/analytics
bed_analytics_page — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER bed_analytics_page
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/pages.py:628
RETURNS Not documented
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/bed/{bed_id}/analytics', response_class=HTMLResponse, tags=['System'])router.get('/bed/{bed_id}/analytics', response_class=HTMLResponse, tags=['System'])
GET
/bed/{bed_id}/analytics
bed_analytics_page — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER bed_analytics_page
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/pages.py:628
RETURNS Not documented
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/bed/{bed_id}/analytics', response_class=HTMLResponse, tags=['System'])router.get('/bed/{bed_id}/analytics', response_class=HTMLResponse, tags=['System'])
GET
/device/{bed_id}
device_page — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER device_page
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/pages.py:931
RETURNS Not documented
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.get('/device/{bed_id}', response_class=HTMLResponse, tags=['System'])
GET
/register
register_page — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER register_page
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/pages.py:1196
RETURNS Not documented
PARAMETERS
No parameters documented.
ROUTE DECORATORS
router.get('/register', response_class=HTMLResponse)
GET
/login
login_page — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER login_page
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/pages.py:1247
RETURNS Not documented
PARAMETERS
No parameters documented.
ROUTE DECORATORS
router.get('/login', response_class=HTMLResponse)
GET
/setup-contact
setup_contact — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER setup_contact
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/pages.py:1302
RETURNS Not documented
PARAMETERS
No parameters documented.
ROUTE DECORATORS
router.get('/setup-contact', response_class=HTMLResponse)
GET
/notifications
notifications_page — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER notifications_page
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/pages.py:1431
RETURNS Not documented
PARAMETERS
request
Request
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
ROUTE DECORATORS
router.get('/notifications', response_class=HTMLResponse)
GET
/api-keys
api_keys_page — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER api_keys_page
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/pages.py:1823
RETURNS Not documented
PARAMETERS
request
Request
user Depends
User
= Depends(get_current_user)
ROUTE DECORATORS
router.get('/api-keys', response_class=HTMLResponse, tags=['System'])
GET
/app/docs
custom_docs — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER custom_docs
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/pages.py:1982
RETURNS Not documented
PARAMETERS
No parameters documented.
ROUTE DECORATORS
router.get('/app/docs', response_class=HTMLResponse, tags=['System'])
src/routes/users.py
7 endpoints
POST
/api/register
register — Register new user account.
WHAT IT DOES

Register new user account.

HANDLER register
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/users.py:24
RETURNS Not documented
PARAMETERS
data
RegisterRequest
response
Response
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.post('/api/register', tags=['Auth'])
POST
/api/login
login — Login with email and password.
WHAT IT DOES

Login with email and password.

HANDLER login
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/users.py:56
RETURNS Not documented
PARAMETERS
data
LoginRequest
response
Response
db Depends
Session
= Depends(get_db)
ROUTE DECORATORS
router.post('/api/login', tags=['Auth'])
GET
/logout
logout — Logout user by clearing cookies.
WHAT IT DOES

Logout user by clearing cookies.

HANDLER logout
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/users.py:78
RETURNS Not documented
PARAMETERS
No parameters documented.
ROUTE DECORATORS
router.get('/logout', tags=['Auth'])
POST
/api/user/contact
save_user_contact — Save user contact information for SMS alerts.
WHAT IT DOES

Save user contact information for SMS alerts.

HANDLER save_user_contact
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/users.py:93
RETURNS Not documented
PARAMETERS
data
ContactRequest
db Depends
Session
= Depends(get_db)
user Depends
= Depends(get_current_user)
ROUTE DECORATORS
router.post('/api/user/contact', tags=['SMS'])
GET
/api/carriers
get_carriers — Get available SMS carriers.
WHAT IT DOES

Get available SMS carriers.

HANDLER get_carriers
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/users.py:121
RETURNS Not documented
PARAMETERS
No parameters documented.
ROUTE DECORATORS
router.get('/api/carriers', tags=['SMS'])
GET
/api/user/notifications
get_notifications — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER get_notifications
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/users.py:151
RETURNS Not documented
PARAMETERS
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
ROUTE DECORATORS
router.get('/api/user/notifications')
POST
/api/user/notifications
update_notifications — No description documented yet.
WHAT IT DOES

No description documented yet.

HANDLER update_notifications
FRAMEWORK FastAPI / Starlette / compatible
SOURCE src/routes/users.py:183
RETURNS Not documented
PARAMETERS
payload
dict
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
ROUTE DECORATORS
router.post('/api/user/notifications')
05
BARKLY DOCS

Functions & Methods

Searchable, grouped symbols with details hidden until requested.

0
barkly_docs.py
50 symbols
esc
No description documented yet.
barkly_docs.py:229
WHAT IT DOES

No description documented yet.

SIGNATURE
esc(value: object) -> str
PARAMETERS
value
object
RETURNS str
SOURCE barkly_docs.py:229
compact_doc
No description documented yet.
barkly_docs.py:233
WHAT IT DOES

No description documented yet.

SIGNATURE
compact_doc(doc: str, limit: int = 180) -> str
PARAMETERS
doc
str
limit
int
= 180
RETURNS str
SOURCE barkly_docs.py:233
full_doc
No description documented yet.
barkly_docs.py:245
WHAT IT DOES

No description documented yet.

SIGNATURE
full_doc(doc: str) -> str
PARAMETERS
doc
str
RETURNS str
SOURCE barkly_docs.py:245
expression_text
No description documented yet.
barkly_docs.py:252
WHAT IT DOES

No description documented yet.

SIGNATURE
expression_text(node: Optional[ast.AST]) -> str
PARAMETERS
node
Optional[ast.AST]
RETURNS str
SOURCE barkly_docs.py:252
annotation_text
No description documented yet.
barkly_docs.py:262
WHAT IT DOES

No description documented yet.

SIGNATURE
annotation_text(node: Optional[ast.AST]) -> str
PARAMETERS
node
Optional[ast.AST]
RETURNS str
SOURCE barkly_docs.py:262
relative_file
No description documented yet.
barkly_docs.py:266
WHAT IT DOES

No description documented yet.

SIGNATURE
relative_file(path: Path, root: Path) -> str
PARAMETERS
path
Path
root
Path
RETURNS str
SOURCE barkly_docs.py:266
code_line
No description documented yet.
barkly_docs.py:273
WHAT IT DOES

No description documented yet.

SIGNATURE
code_line(file: str, line: int) -> str
PARAMETERS
file
str
line
int
RETURNS str
SOURCE barkly_docs.py:273
short_hash
No description documented yet.
barkly_docs.py:277
WHAT IT DOES

No description documented yet.

SIGNATURE
short_hash(value: str) -> str
PARAMETERS
value
str
RETURNS str
SOURCE barkly_docs.py:277
safe_call
No description documented yet.
barkly_docs.py:281
WHAT IT DOES

No description documented yet.

SIGNATURE
safe_call(command: list[str], cwd: Path) -> str
PARAMETERS
command
list[str]
cwd
Path
RETURNS str
SOURCE barkly_docs.py:281
git_branch
No description documented yet.
barkly_docs.py:300
WHAT IT DOES

No description documented yet.

SIGNATURE
git_branch(root: Path) -> str
PARAMETERS
root
Path
RETURNS str
SOURCE barkly_docs.py:300
git_commit
No description documented yet.
barkly_docs.py:307
WHAT IT DOES

No description documented yet.

SIGNATURE
git_commit(root: Path) -> str
PARAMETERS
root
Path
RETURNS str
SOURCE barkly_docs.py:307
git_log
No description documented yet.
barkly_docs.py:314
WHAT IT DOES

No description documented yet.

SIGNATURE
git_log(root: Path, limit: int = 8) -> list[str]
PARAMETERS
root
Path
limit
int
= 8
RETURNS list[str]
SOURCE barkly_docs.py:314
node_doc
No description documented yet.
barkly_docs.py:336
WHAT IT DOES

No description documented yet.

SIGNATURE
node_doc(node: ast.AST) -> str
PARAMETERS
node
ast.AST
RETURNS str
SOURCE barkly_docs.py:336
decorator_name
No description documented yet.
barkly_docs.py:340
WHAT IT DOES

No description documented yet.

SIGNATURE
decorator_name(node: ast.AST) -> str
PARAMETERS
node
ast.AST
RETURNS str
SOURCE barkly_docs.py:340
decorator_text
No description documented yet.
barkly_docs.py:354
WHAT IT DOES

No description documented yet.

SIGNATURE
decorator_text(node: ast.AST) -> str
PARAMETERS
node
ast.AST
RETURNS str
SOURCE barkly_docs.py:354
decorators_for
No description documented yet.
barkly_docs.py:358
WHAT IT DOES

No description documented yet.

SIGNATURE
decorators_for(node: ast.AST) -> list[str]
PARAMETERS
node
ast.AST
RETURNS list[str]
SOURCE barkly_docs.py:358
parameter_kind
No description documented yet.
barkly_docs.py:365
WHAT IT DOES

No description documented yet.

SIGNATURE
parameter_kind(name: str, default_node: Optional[ast.AST]) -> str
PARAMETERS
name
str
default_node
Optional[ast.AST]
RETURNS str
SOURCE barkly_docs.py:365
collect_parameters
No description documented yet.
barkly_docs.py:390
WHAT IT DOES

No description documented yet.

SIGNATURE
collect_parameters(node: ast.FunctionDef | ast.AsyncFunctionDef) -> list[Parameter]
PARAMETERS
node
ast.FunctionDef | ast.AsyncFunctionDef
RETURNS list[Parameter]
SOURCE barkly_docs.py:390
call_root_name
No description documented yet.
barkly_docs.py:458
WHAT IT DOES

No description documented yet.

SIGNATURE
call_root_name(node: ast.Call) -> str
PARAMETERS
node
ast.Call
RETURNS str
SOURCE barkly_docs.py:458
extract_string_argument
No description documented yet.
barkly_docs.py:468
WHAT IT DOES

No description documented yet.

SIGNATURE
extract_string_argument(call: ast.Call, index: int = 0) -> str
PARAMETERS
call
ast.Call
index
int
= 0
RETURNS str
SOURCE barkly_docs.py:468
extract_methods_keyword
No description documented yet.
barkly_docs.py:483
WHAT IT DOES

No description documented yet.

SIGNATURE
extract_methods_keyword(call: ast.Call) -> list[str]
PARAMETERS
call
ast.Call
RETURNS list[str]
SOURCE barkly_docs.py:483
endpoint_from_decorator
No description documented yet.
barkly_docs.py:502
WHAT IT DOES

No description documented yet.

SIGNATURE
endpoint_from_decorator(decorator: ast.AST, function: ast.FunctionDef | ast.AsyncFunctionDef, file: str) -> Optional[EndpointInfo]
PARAMETERS
decorator
ast.AST
function
ast.FunctionDef | ast.AsyncFunctionDef
file
str
RETURNS Optional[EndpointInfo]
SOURCE barkly_docs.py:502
scan_python
No description documented yet.
barkly_docs.py:763
WHAT IT DOES

No description documented yet.

SIGNATURE
scan_python(root: Path) -> PythonScanner
PARAMETERS
root
Path
RETURNS PythonScanner
SOURCE barkly_docs.py:763
symbol_key
No description documented yet.
barkly_docs.py:773
WHAT IT DOES

No description documented yet.

SIGNATURE
symbol_key(function: FunctionInfo) -> str
PARAMETERS
function
FunctionInfo
RETURNS str
SOURCE barkly_docs.py:773
class_key
No description documented yet.
barkly_docs.py:777
WHAT IT DOES

No description documented yet.

SIGNATURE
class_key(item: ClassInfo) -> str
PARAMETERS
item
ClassInfo
RETURNS str
SOURCE barkly_docs.py:777
endpoint_key
No description documented yet.
barkly_docs.py:781
WHAT IT DOES

No description documented yet.

SIGNATURE
endpoint_key(item: EndpointInfo) -> str
PARAMETERS
item
EndpointInfo
RETURNS str
SOURCE barkly_docs.py:781
function_fingerprint
No description documented yet.
barkly_docs.py:790
WHAT IT DOES

No description documented yet.

SIGNATURE
function_fingerprint(item: FunctionInfo) -> str
PARAMETERS
item
FunctionInfo
RETURNS str
SOURCE barkly_docs.py:790
class_fingerprint
No description documented yet.
barkly_docs.py:804
WHAT IT DOES

No description documented yet.

SIGNATURE
class_fingerprint(item: ClassInfo) -> str
PARAMETERS
item
ClassInfo
RETURNS str
SOURCE barkly_docs.py:804
endpoint_fingerprint
No description documented yet.
barkly_docs.py:821
WHAT IT DOES

No description documented yet.

SIGNATURE
endpoint_fingerprint(item: EndpointInfo) -> str
PARAMETERS
item
EndpointInfo
RETURNS str
SOURCE barkly_docs.py:821
load_state
No description documented yet.
barkly_docs.py:846
WHAT IT DOES

No description documented yet.

SIGNATURE
load_state(path: Path) -> dict
PARAMETERS
path
Path
RETURNS dict
SOURCE barkly_docs.py:846
apply_state
No description documented yet.
barkly_docs.py:872
WHAT IT DOES

No description documented yet.

SIGNATURE
apply_state(scanner: PythonScanner, previous: dict) -> dict
PARAMETERS
scanner
PythonScanner
previous
dict
RETURNS dict
SOURCE barkly_docs.py:872
load_project_config
No description documented yet.
barkly_docs.py:930
WHAT IT DOES

No description documented yet.

SIGNATURE
load_project_config(root: Path) -> dict
PARAMETERS
root
Path
RETURNS dict
SOURCE barkly_docs.py:930
init_project
No description documented yet.
barkly_docs.py:952
WHAT IT DOES

No description documented yet.

SIGNATURE
init_project(root: Path) -> None
PARAMETERS
root
Path
RETURNS None
SOURCE barkly_docs.py:952
badge
No description documented yet.
barkly_docs.py:974
WHAT IT DOES

No description documented yet.

SIGNATURE
badge(text: str, kind: str = '') -> str
PARAMETERS
text
str
kind
str
= ''
RETURNS str
SOURCE barkly_docs.py:974
status_badges
No description documented yet.
barkly_docs.py:988
WHAT IT DOES

No description documented yet.

SIGNATURE
status_badges(is_new: bool, is_changed: bool) -> str
PARAMETERS
is_new
bool
is_changed
bool
RETURNS str
SOURCE barkly_docs.py:988
parameter_summary
No description documented yet.
barkly_docs.py:1008
WHAT IT DOES

No description documented yet.

SIGNATURE
parameter_summary(params: list[Parameter]) -> str
PARAMETERS
params
list[Parameter]
RETURNS str
SOURCE barkly_docs.py:1008
parameter_details
No description documented yet.
barkly_docs.py:1021
WHAT IT DOES

No description documented yet.

SIGNATURE
parameter_details(params: list[Parameter]) -> str
PARAMETERS
params
list[Parameter]
RETURNS str
SOURCE barkly_docs.py:1021
function_row
No description documented yet.
barkly_docs.py:1081
WHAT IT DOES

No description documented yet.

SIGNATURE
function_row(item: FunctionInfo, show_class: bool = False) -> str
PARAMETERS
item
FunctionInfo
show_class
bool
= False
RETURNS str
SOURCE barkly_docs.py:1081
method_group
No description documented yet.
barkly_docs.py:1190
WHAT IT DOES

No description documented yet.

SIGNATURE
method_group(title: str, functions: list[FunctionInfo]) -> str
PARAMETERS
title
str
functions
list[FunctionInfo]
RETURNS str
SOURCE barkly_docs.py:1190
class_group
No description documented yet.
barkly_docs.py:1255
WHAT IT DOES

No description documented yet.

SIGNATURE
class_group(item: ClassInfo) -> str
PARAMETERS
item
ClassInfo
RETURNS str
SOURCE barkly_docs.py:1255
endpoint_row
No description documented yet.
barkly_docs.py:1343
WHAT IT DOES

No description documented yet.

SIGNATURE
endpoint_row(item: EndpointInfo) -> str
PARAMETERS
item
EndpointInfo
RETURNS str
SOURCE barkly_docs.py:1343
module_row
No description documented yet.
barkly_docs.py:1458
WHAT IT DOES

No description documented yet.

SIGNATURE
module_row(module: ModuleInfo) -> str
PARAMETERS
module
ModuleInfo
RETURNS str
SOURCE barkly_docs.py:1458
section
No description documented yet.
barkly_docs.py:1537
WHAT IT DOES

No description documented yet.

SIGNATURE
section(number: str, title: str, description: str, body: str) -> str
PARAMETERS
number
str
title
str
description
str
body
str
RETURNS str
SOURCE barkly_docs.py:1537
info_card
No description documented yet.
barkly_docs.py:1577
WHAT IT DOES

No description documented yet.

SIGNATURE
info_card(title: str, value: str, description: str = '') -> str
PARAMETERS
title
str
value
str
description
str
= ''
RETURNS str
SOURCE barkly_docs.py:1577
simple_card_grid
No description documented yet.
barkly_docs.py:1604
WHAT IT DOES

No description documented yet.

SIGNATURE
simple_card_grid(values: list[str]) -> str
PARAMETERS
values
list[str]
RETURNS str
SOURCE barkly_docs.py:1604
search_toolbar
No description documented yet.
barkly_docs.py:1621
WHAT IT DOES

No description documented yet.

SIGNATURE
search_toolbar(input_id: str, count_id: str, new_id: str, placeholder: str) -> str
PARAMETERS
input_id
str
count_id
str
new_id
str
placeholder
str
RETURNS str
SOURCE barkly_docs.py:1621
build_html
No description documented yet.
barkly_docs.py:1667
WHAT IT DOES

No description documented yet.

SIGNATURE
build_html(project: dict, scanner: PythonScanner, state: dict, root: Path) -> str
PARAMETERS
project
dict
scanner
PythonScanner
state
dict
root
Path
RETURNS str
SOURCE barkly_docs.py:1667
generate
No description documented yet.
barkly_docs.py:3402
WHAT IT DOES

No description documented yet.

SIGNATURE
generate(source: Path, output: Path, name: Optional[str] = None, project_type: Optional[str] = None, status: Optional[str] = None) -> None
PARAMETERS
source
Path
output
Path
name
Optional[str]
= None
project_type
Optional[str]
= None
status
Optional[str]
= None
RETURNS None
SOURCE barkly_docs.py:3402
build_parser
No description documented yet.
barkly_docs.py:3494
WHAT IT DOES

No description documented yet.

SIGNATURE
build_parser() -> argparse.ArgumentParser
PARAMETERS
No parameters documented.
RETURNS argparse.ArgumentParser
SOURCE barkly_docs.py:3494
main
No description documented yet.
barkly_docs.py:3558
WHAT IT DOES

No description documented yet.

SIGNATURE
main() -> None
PARAMETERS
No parameters documented.
RETURNS None
SOURCE barkly_docs.py:3558
bot/bot.py
9 symbols
api_get
No description documented yet.
bot/bot.py:41
WHAT IT DOES

No description documented yet.

SIGNATURE
api_get(path)
PARAMETERS
path
RETURNS Not documented
SOURCE bot/bot.py:41
api_post
No description documented yet.
bot/bot.py:49
WHAT IT DOES

No description documented yet.

SIGNATURE
api_post(path)
PARAMETERS
path
RETURNS Not documented
SOURCE bot/bot.py:49
get_beds
No description documented yet.
bot/bot.py:56
WHAT IT DOES

No description documented yet.

SIGNATURE
get_beds()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE bot/bot.py:56
get_history
No description documented yet.
bot/bot.py:60
WHAT IT DOES

No description documented yet.

SIGNATURE
get_history(bed_id)
PARAMETERS
bed_id
RETURNS Not documented
SOURCE bot/bot.py:60
safe_dm
No description documented yet.
bot/bot.py:70
WHAT IT DOES

No description documented yet.

SIGNATURE
safe_dm(user_id, msg)
PARAMETERS
user_id
msg
RETURNS Not documented
SOURCE bot/bot.py:70
poll_messages
No description documented yet.
bot/bot.py:81
WHAT IT DOES

No description documented yet.

SIGNATURE
poll_messages()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE bot/bot.py:81
signal_state
No description documented yet.
bot/bot.py:114
WHAT IT DOES

No description documented yet.

SIGNATURE
signal_state(rssi)
PARAMETERS
rssi
RETURNS Not documented
SOURCE bot/bot.py:114
monitor_system
No description documented yet.
bot/bot.py:124
WHAT IT DOES

No description documented yet.

SIGNATURE
monitor_system()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE bot/bot.py:124
DECORATORS
tasks.loop(seconds=30)
on_ready
No description documented yet.
bot/bot.py:155
WHAT IT DOES

No description documented yet.

SIGNATURE
on_ready()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE bot/bot.py:155
DECORATORS
bot.event
esp32-firmware/firmware/main.py
3 symbols
emergency_shutdown
No description documented yet.
esp32-firmware/firmware/main.py:114
WHAT IT DOES

No description documented yet.

SIGNATURE
emergency_shutdown()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE esp32-firmware/firmware/main.py:114
run_watering
No description documented yet.
esp32-firmware/firmware/main.py:133
WHAT IT DOES

No description documented yet.

SIGNATURE
run_watering(seconds)
PARAMETERS
seconds
RETURNS Not documented
SOURCE esp32-firmware/firmware/main.py:133
main
No description documented yet.
esp32-firmware/firmware/main.py:183
WHAT IT DOES

No description documented yet.

SIGNATURE
main()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE esp32-firmware/firmware/main.py:183
src/auth.py
5 symbols
decode_token
Decode JWT token safely
src/auth.py:27
WHAT IT DOES

Decode JWT token safely

SIGNATURE
decode_token(token: str)
PARAMETERS
token
str
RETURNS Not documented
SOURCE src/auth.py:27
get_current_user
Cookie-based authentication. Reads user_id from cookie and validates against DB.
src/auth.py:39
WHAT IT DOES

Cookie-based authentication. Reads user_id from cookie and validates against DB.

SIGNATURE
get_current_user(request: Request, db: Session = Depends(get_db))
PARAMETERS
request
Request
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/auth.py:39
generate_raw_key
No description documented yet.
src/auth.py:68
WHAT IT DOES

No description documented yet.

SIGNATURE
generate_raw_key()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/auth.py:68
hash_key
No description documented yet.
src/auth.py:72
WHAT IT DOES

No description documented yet.

SIGNATURE
hash_key(raw_key: str)
PARAMETERS
raw_key
str
RETURNS Not documented
SOURCE src/auth.py:72
verify_api_key
API key validation via SHA256 hash lookup
src/auth.py:76
WHAT IT DOES

API key validation via SHA256 hash lookup

SIGNATURE
verify_api_key(x_api_key: str = Header(None), db: Session = Depends(get_db))
PARAMETERS
x_api_key Header
str
= Header(None)
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/auth.py:76
src/db.py
3 symbols
get_db
Dependency function to provide database session to route handlers. Creates a new database session for each request, ensuring prop…
src/db.py:25
WHAT IT DOES

Dependency function to provide database session to route handlers. Creates a new database session for each request, ensuring proper resource management with automatic cleanup in a finally block. Yields: Session: SQLAlchemy session for database operations

SIGNATURE
get_db()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/db.py:25
weather_loop
Background thread that updates global weather every minute
src/db.py:78
WHAT IT DOES

Background thread that updates global weather every minute

SIGNATURE
weather_loop()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/db.py:78
start_weather_thread
Start the background weather update thread
src/db.py:93
WHAT IT DOES

Start the background weather update thread

SIGNATURE
start_weather_thread()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/db.py:93
src/deps.py
1 symbols
get_current_user
No description documented yet.
src/deps.py:6
WHAT IT DOES

No description documented yet.

SIGNATURE
get_current_user(request: Request, db: Session = Depends(get_db))
PARAMETERS
request
Request
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/deps.py:6
src/routes/apikeys.py
3 symbols
create_key
No description documented yet.
src/routes/apikeys.py:24
WHAT IT DOES

No description documented yet.

SIGNATURE
create_key(name: str, db: Session = Depends(get_db))
PARAMETERS
name
str
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/apikeys.py:24
DECORATORS
router.post('/api/keys/create', tags=['API Keys'])
list_keys
No description documented yet.
src/routes/apikeys.py:43
WHAT IT DOES

No description documented yet.

SIGNATURE
list_keys(db: Session = Depends(get_db), user: User = Depends(get_current_user))
PARAMETERS
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/apikeys.py:43
DECORATORS
router.get('/api/keys', tags=['API Keys'])
revoke_key
No description documented yet.
src/routes/apikeys.py:58
WHAT IT DOES

No description documented yet.

SIGNATURE
revoke_key(key_id: str, db: Session = Depends(get_db), user: User = Depends(get_current_user))
PARAMETERS
key_id
str
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/apikeys.py:58
DECORATORS
router.post('/api/keys/{key_id}/revoke', tags=['API Keys'])
src/routes/beds.py
34 symbols
is_rain_spike
Detect sudden spike in moisture (rain event)
src/routes/beds.py:33
WHAT IT DOES

Detect sudden spike in moisture (rain event)

SIGNATURE
is_rain_spike(bed_id, current, previous)
PARAMETERS
bed_id
current
previous
RETURNS Not documented
SOURCE src/routes/beds.py:33
calculate_health
Calculate plant health score from sensor data
src/routes/beds.py:40
WHAT IT DOES

Calculate plant health score from sensor data

SIGNATURE
calculate_health(moisture_values, rssi_values)
PARAMETERS
moisture_values
rssi_values
RETURNS Not documented
SOURCE src/routes/beds.py:40
current_weather
Fetch current weather from OpenWeather API
src/routes/beds.py:84
WHAT IT DOES

Fetch current weather from OpenWeather API

SIGNATURE
current_weather()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/routes/beds.py:84
get_weather
Get weather with caching
src/routes/beds.py:109
WHAT IT DOES

Get weather with caching

SIGNATURE
get_weather()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/routes/beds.py:109
receive_data
Accept and store sensor readings from ESP32 microcontroller.
src/routes/beds.py:140
WHAT IT DOES

Accept and store sensor readings from ESP32 microcontroller.

SIGNATURE
receive_data(data: BedData, db: Session = Depends(get_db))
PARAMETERS
data
BedData
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:140
DECORATORS
router.post('/api/bed-data', dependencies=[Depends(verify_api_key)], tags=['Beds'])
get_beds
Retrieve the latest sensor reading for each plant bed.
src/routes/beds.py:218
WHAT IT DOES

Retrieve the latest sensor reading for each plant bed.

SIGNATURE
get_beds(db: Session = Depends(get_db))
PARAMETERS
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:218
DECORATORS
router.get('/api/beds', tags=['Beds'])
history
Retrieve recent historical readings for a specific plant bed.
src/routes/beds.py:238
WHAT IT DOES

Retrieve recent historical readings for a specific plant bed.

SIGNATURE
history(bed_id: str, db: Session = Depends(get_db))
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:238
DECORATORS
router.get('/api/beds/{bed_id}/history', tags=['Beds'])
get_range
Retrieve sensor readings within a specific time range.
src/routes/beds.py:260
WHAT IT DOES

Retrieve sensor readings within a specific time range.

SIGNATURE
get_range(bed_id: str, start: datetime, end: datetime, db: Session = Depends(get_db))
PARAMETERS
bed_id
str
start
datetime
end
datetime
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:260
DECORATORS
router.get('/api/beds/{bed_id}/range', tags=['Beds'])
graph_data
Retrieve sensor data formatted for frontend charting libraries.
src/routes/beds.py:284
WHAT IT DOES

Retrieve sensor data formatted for frontend charting libraries.

SIGNATURE
graph_data(bed_id: str, limit: int = 200, db: Session = Depends(get_db))
PARAMETERS
bed_id
str
limit
int
= 200
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:284
DECORATORS
router.get('/api/beds/{bed_id}/graph', tags=['Beds'])
stats
Calculate aggregated statistics for a plant bed's moisture data.
src/routes/beds.py:304
WHAT IT DOES

Calculate aggregated statistics for a plant bed's moisture data.

SIGNATURE
stats(bed_id: str, db: Session = Depends(get_db))
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:304
DECORATORS
router.get('/api/beds/{bed_id}/stats', tags=['Beds'])
latest
Get latest reading for each active bed (online detection).
src/routes/beds.py:323
WHAT IT DOES

Get latest reading for each active bed (online detection).

SIGNATURE
latest(db: Session = Depends(get_db))
PARAMETERS
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:323
DECORATORS
router.get('/api/beds/latest', tags=['Beds'])
full_graph
Get detailed graph data including health and RSSI.
src/routes/beds.py:365
WHAT IT DOES

Get detailed graph data including health and RSSI.

SIGNATURE
full_graph(bed_id: str, limit: int = 200, db: Session = Depends(get_db))
PARAMETERS
bed_id
str
limit
int
= 200
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:365
DECORATORS
router.get('/api/beds/{bed_id}/full-graph', tags=['Irrigation'])
get_config
Retrieve current configuration settings for a plant bed.
src/routes/beds.py:414
WHAT IT DOES

Retrieve current configuration settings for a plant bed.

SIGNATURE
get_config(bed_id: str, db: Session = Depends(get_db))
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:414
DECORATORS
router.get('/api/config/{bed_id}', tags=['System'])
update_config
Update configuration settings for a plant bed.
src/routes/beds.py:434
WHAT IT DOES

Update configuration settings for a plant bed.

SIGNATURE
update_config(bed_id: str, config: BedConfig, db: Session = Depends(get_db))
PARAMETERS
bed_id
str
config
BedConfig
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:434
DECORATORS
router.post('/api/config/{bed_id}', dependencies=[Depends(verify_api_key)], tags=['System'])
should_water
Intelligent watering decision engine.
src/routes/beds.py:455
WHAT IT DOES

Intelligent watering decision engine.

SIGNATURE
should_water(bed_id: str, average_moisture: float, db: Session = Depends(get_db))
PARAMETERS
bed_id
str
average_moisture
float
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:455
DECORATORS
router.post('/api/should-water', dependencies=[Depends(verify_api_key)], tags=['Control'])
water_bed
Manually control valve irrigation.
src/routes/beds.py:504
WHAT IT DOES

Manually control valve irrigation.

SIGNATURE
water_bed(bed_id: str, duration: int = 3)
PARAMETERS
bed_id
str
duration
int
= 3
RETURNS Not documented
SOURCE src/routes/beds.py:504
DECORATORS
router.post('/api/water', tags=['Irrigation'], dependencies=[Depends(verify_api_key)])
valve_status
Get current valve status.
src/routes/beds.py:513
WHAT IT DOES

Get current valve status.

SIGNATURE
valve_status(bed_id: str)
PARAMETERS
bed_id
str
RETURNS Not documented
SOURCE src/routes/beds.py:513
DECORATORS
router.get('/api/valve/{bed_id}', tags=['Irrigation'])
set_mode
Set bed operating mode.
src/routes/beds.py:529
WHAT IT DOES

Set bed operating mode.

SIGNATURE
set_mode(bed_id: str, mode: str)
PARAMETERS
bed_id
str
mode
str
RETURNS Not documented
SOURCE src/routes/beds.py:529
DECORATORS
router.post('/api/beds/{bed_id}/mode', tags=['Irrigation'], dependencies=[Depends(verify_api_key)])
get_mode
Get bed operating mode.
src/routes/beds.py:538
WHAT IT DOES

Get bed operating mode.

SIGNATURE
get_mode(bed_id: str)
PARAMETERS
bed_id
str
RETURNS Not documented
SOURCE src/routes/beds.py:538
DECORATORS
router.get('/api/beds/{bed_id}/mode', tags=['Irrigation'])
water_cycle
Track watering cycle for lifetime stats.
src/routes/beds.py:551
WHAT IT DOES

Track watering cycle for lifetime stats.

SIGNATURE
water_cycle(bed_id: str, valve_state: str)
PARAMETERS
bed_id
str
valve_state
str
RETURNS Not documented
SOURCE src/routes/beds.py:551
DECORATORS
router.post('/api/beds/{bed_id}/water-cycle', dependencies=[Depends(verify_api_key)], tags=['Irrigation'])
lifetime_stats
Get lifetime watering statistics from database.
src/routes/beds.py:586
WHAT IT DOES

Get lifetime watering statistics from database.

SIGNATURE
lifetime_stats(bed_id: str, db: Session = Depends(get_db))
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:586
DECORATORS
router.get('/api/beds/{bed_id}/lifetime', tags=['Irrigation'])
save_bed_meta
Save bed metadata (name, icon).
src/routes/beds.py:631
WHAT IT DOES

Save bed metadata (name, icon).

SIGNATURE
save_bed_meta(bed_id: str, data: dict, db: Session = Depends(get_db), user: User = Depends(get_current_user))
PARAMETERS
bed_id
str
data
dict
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/beds.py:631
DECORATORS
router.post('/api/beds/{bed_id}/meta', tags=['System'])
get_bed_meta
Get bed metadata.
src/routes/beds.py:665
WHAT IT DOES

Get bed metadata.

SIGNATURE
get_bed_meta(bed_id: str, db: Session = Depends(get_db))
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:665
DECORATORS
router.get('/api/beds/{bed_id}/meta', tags=['System'])
get_all_bed_meta
Get all bed metadata.
src/routes/beds.py:686
WHAT IT DOES

Get all bed metadata.

SIGNATURE
get_all_bed_meta(db: Session = Depends(get_db))
PARAMETERS
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:686
DECORATORS
router.get('/api/beds/meta', tags=['System'])
get_bed_health
Get plant health status.
src/routes/beds.py:705
WHAT IT DOES

Get plant health status.

SIGNATURE
get_bed_health(bed_id: str, db: Session = Depends(get_db))
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:705
DECORATORS
router.get('/api/beds/{bed_id}/health', tags=['ML'])
bed_risk_next_hour
Predict risk of drying in next hour.
src/routes/beds.py:739
WHAT IT DOES

Predict risk of drying in next hour.

SIGNATURE
bed_risk_next_hour(bed_id: str, db: Session = Depends(get_db))
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:739
DECORATORS
router.get('/api/beds/{bed_id}/risk', tags=['ML'])
health
Health check endpoint for monitoring.
src/routes/beds.py:815
WHAT IT DOES

Health check endpoint for monitoring.

SIGNATURE
health()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/routes/beds.py:815
DECORATORS
router.get('/health', tags=['System'])
cleanup
Delete historical data older than 7 days.
src/routes/beds.py:821
WHAT IT DOES

Delete historical data older than 7 days.

SIGNATURE
cleanup(db: Session = Depends(get_db))
PARAMETERS
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:821
DECORATORS
router.delete('/api/cleanup', dependencies=[Depends(verify_api_key)], tags=['System'])
weather_api
Check if rain is expected.
src/routes/beds.py:831
WHAT IT DOES

Check if rain is expected.

SIGNATURE
weather_api()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/routes/beds.py:831
DECORATORS
router.get('/api/will-rain', tags=['Weather'])
weather_current
Get current weather.
src/routes/beds.py:837
WHAT IT DOES

Get current weather.

SIGNATURE
weather_current()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/routes/beds.py:837
DECORATORS
router.get('/api/weather/current', tags=['Weather'])
weather_summary
Get cached weather summary.
src/routes/beds.py:843
WHAT IT DOES

Get cached weather summary.

SIGNATURE
weather_summary()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/routes/beds.py:843
DECORATORS
router.get('/api/weather', tags=['System'])
system_overview
Get system status at a glance.
src/routes/beds.py:863
WHAT IT DOES

Get system status at a glance.

SIGNATURE
system_overview(db: Session = Depends(get_db))
PARAMETERS
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:863
DECORATORS
router.get('/api/system/overview', tags=['System'])
node_heartbeat
Record node heartbeat and connectivity info.
src/routes/beds.py:897
WHAT IT DOES

Record node heartbeat and connectivity info.

SIGNATURE
node_heartbeat(bed_id: str = Query(...), ip: str = Query(None), rssi: int = Query(None))
PARAMETERS
bed_id Query
str
= Query(...)
ip Query
str
= Query(None)
rssi Query
int
= Query(None)
RETURNS Not documented
SOURCE src/routes/beds.py:897
DECORATORS
router.post('/api/node/heartbeat', tags=['System'])
get_history
No description documented yet.
src/routes/beds.py:912
WHAT IT DOES

No description documented yet.

SIGNATURE
get_history(bed_id: str, db: Session = Depends(get_db))
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/beds.py:912
DECORATORS
router.get('/api/beds/{bed_id}/history', tags=['Beds'])
src/routes/bot_bridge.py
3 symbols
add_message
No description documented yet.
src/routes/bot_bridge.py:14
WHAT IT DOES

No description documented yet.

SIGNATURE
add_message(msg: Msg)
PARAMETERS
msg
Msg
RETURNS Not documented
SOURCE src/routes/bot_bridge.py:14
DECORATORS
router.post('/queue')
get_messages
No description documented yet.
src/routes/bot_bridge.py:20
WHAT IT DOES

No description documented yet.

SIGNATURE
get_messages()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/routes/bot_bridge.py:20
DECORATORS
router.get('/poll')
push_bot_message
payload: { "discord_user_id": "123", "message": "hello" }
src/routes/bot_bridge.py:27
WHAT IT DOES

payload: { "discord_user_id": "123", "message": "hello" }

SIGNATURE
push_bot_message(payload: dict)
PARAMETERS
payload
dict
RETURNS Not documented
SOURCE src/routes/bot_bridge.py:27
src/routes/dis.py
9 symbols
discord_connect
No description documented yet.
src/routes/dis.py:33
WHAT IT DOES

No description documented yet.

SIGNATURE
discord_connect()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/routes/dis.py:33
DECORATORS
router.get('/api/discord/connect', tags=['Discord'])
discord_callback
No description documented yet.
src/routes/dis.py:50
WHAT IT DOES

No description documented yet.

SIGNATURE
discord_callback(request: Request, code: str, db: Session = Depends(get_db), user: User = Depends(get_current_user))
PARAMETERS
request
Request
code
str
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/dis.py:50
DECORATORS
router.get('/api/discord/callback', tags=['Discord'])
get_my_discord
No description documented yet.
src/routes/dis.py:133
WHAT IT DOES

No description documented yet.

SIGNATURE
get_my_discord(user: User = Depends(get_current_user), db: Session = Depends(get_db))
PARAMETERS
user Depends
User
= Depends(get_current_user)
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/dis.py:133
DECORATORS
router.get('/api/discord/me', tags=['Discord'])
disconnect_discord
No description documented yet.
src/routes/dis.py:156
WHAT IT DOES

No description documented yet.

SIGNATURE
disconnect_discord(user: User = Depends(get_current_user), db: Session = Depends(get_db))
PARAMETERS
user Depends
User
= Depends(get_current_user)
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/dis.py:156
DECORATORS
router.delete('/api/discord/disconnect', tags=['Discord'])
send_discord_dm
No description documented yet.
src/routes/dis.py:175
WHAT IT DOES

No description documented yet.

SIGNATURE
send_discord_dm(discord_user_id: str, message: str) -> dict
PARAMETERS
discord_user_id
str
message
str
RETURNS dict
SOURCE src/routes/dis.py:175
test_discord_dm
No description documented yet.
src/routes/dis.py:213
WHAT IT DOES

No description documented yet.

SIGNATURE
test_discord_dm(payload: dict, user: User = Depends(get_current_user), db: Session = Depends(get_db))
PARAMETERS
payload
dict
user Depends
User
= Depends(get_current_user)
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/dis.py:213
DECORATORS
router.post('/api/discord/test', tags=['Discord'])
get_discord_users
No description documented yet.
src/routes/dis.py:228
WHAT IT DOES

No description documented yet.

SIGNATURE
get_discord_users(db: Session = Depends(get_db))
PARAMETERS
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/dis.py:228
DECORATORS
router.get('/api/discord/users', tags=['Discord'])
link_discord
No description documented yet.
src/routes/dis.py:240
WHAT IT DOES

No description documented yet.

SIGNATURE
link_discord(user_id: int, discord_user_id: str, db: Session = Depends(get_db))
PARAMETERS
user_id
int
discord_user_id
str
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/dis.py:240
DECORATORS
router.post('/api/user/link-discord')
disconnect_discord
No description documented yet.
src/routes/dis.py:259
WHAT IT DOES

No description documented yet.

SIGNATURE
disconnect_discord(db: Session = Depends(get_db), user = Depends(get_current_user))
PARAMETERS
db Depends
Session
= Depends(get_db)
user Depends
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/dis.py:259
DECORATORS
router.delete('/api/discord/disconnect')
src/routes/firebase.py
3 symbols
register_device_token
Registers Firebase device token (multi-device safe).
src/routes/firebase.py:28
WHAT IT DOES

Registers Firebase device token (multi-device safe).

SIGNATURE
register_device_token(data: DeviceTokenRegister, db: Session = Depends(get_db), user: User = Depends(get_current_user))
PARAMETERS
data
DeviceTokenRegister
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/firebase.py:28
DECORATORS
router.post('/register-device', tags=['firebase'])
save_firebase_token
No description documented yet.
src/routes/firebase.py:75
WHAT IT DOES

No description documented yet.

SIGNATURE
save_firebase_token(data: dict, user: User = Depends(get_current_user), db: Session = Depends(get_db))
PARAMETERS
data
dict
user Depends
User
= Depends(get_current_user)
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/firebase.py:75
DECORATORS
router.post('/firebase-token')
disable_firebase
Removes a specific Firebase token for multi-device support. If no token specified in body, removes all tokens (backward compatibi…
src/routes/firebase.py:133
WHAT IT DOES

Removes a specific Firebase token for multi-device support. If no token specified in body, removes all tokens (backward compatibility).

SIGNATURE
disable_firebase(data: DeviceTokenRemove, db: Session = Depends(get_db), user: User = Depends(get_current_user))
PARAMETERS
data
DeviceTokenRemove
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/firebase.py:133
DECORATORS
router.delete('/firebase-token')
src/routes/notfics.py
5 symbols
test_notification
Send a test message to the currently authenticated user. Body: { "message": str }
src/routes/notfics.py:18
WHAT IT DOES

Send a test message to the currently authenticated user. Body: { "message": str }

SIGNATURE
test_notification(payload: dict, db: Session = Depends(get_db), user: User = Depends(get_current_user))
PARAMETERS
payload
dict
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/notfics.py:18
DECORATORS
router.post('/test')
send_info
No description documented yet.
src/routes/notfics.py:37
WHAT IT DOES

No description documented yet.

SIGNATURE
send_info(payload: dict, db: Session = Depends(get_db), user: User = Depends(get_current_user))
PARAMETERS
payload
dict
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/notfics.py:37
DECORATORS
router.post('/send/info')
send_error
No description documented yet.
src/routes/notfics.py:54
WHAT IT DOES

No description documented yet.

SIGNATURE
send_error(payload: dict, db: Session = Depends(get_db), user: User = Depends(get_current_user))
PARAMETERS
payload
dict
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/notfics.py:54
DECORATORS
router.post('/send/error')
send_alert
No description documented yet.
src/routes/notfics.py:71
WHAT IT DOES

No description documented yet.

SIGNATURE
send_alert(payload: dict, db: Session = Depends(get_db), user: User = Depends(get_current_user))
PARAMETERS
payload
dict
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/notfics.py:71
DECORATORS
router.post('/send/alert')
get_contact
Debug endpoint to verify stored contact info for logged-in user.
src/routes/notfics.py:88
WHAT IT DOES

Debug endpoint to verify stored contact info for logged-in user.

SIGNATURE
get_contact(db: Session = Depends(get_db), user: User = Depends(get_current_user))
PARAMETERS
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/notfics.py:88
DECORATORS
router.get('/contact')
src/routes/pages.py
12 symbols
page
No description documented yet.
src/routes/pages.py:171
WHAT IT DOES

No description documented yet.

SIGNATURE
page(title: str, body: str)
PARAMETERS
title
str
body
str
RETURNS Not documented
SOURCE src/routes/pages.py:171
dashboard
No description documented yet.
src/routes/pages.py:210
WHAT IT DOES

No description documented yet.

SIGNATURE
dashboard(request: Request, db: Session = Depends(get_db), user: User = Depends(get_current_user))
PARAMETERS
request
Request
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/pages.py:210
DECORATORS
router.get('/', response_class=HTMLResponse, tags=['System'])
about_page
No description documented yet.
src/routes/pages.py:427
WHAT IT DOES

No description documented yet.

SIGNATURE
about_page()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/routes/pages.py:427
DECORATORS
router.get('/about', response_class=HTMLResponse, tags=['System'])
node_status_page
No description documented yet.
src/routes/pages.py:531
WHAT IT DOES

No description documented yet.

SIGNATURE
node_status_page(user: User = Depends(get_current_user))
PARAMETERS
user Depends
User
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/pages.py:531
DECORATORS
router.get('/nodes', response_class=HTMLResponse, tags=['System'])
bed_analytics_page
No description documented yet.
src/routes/pages.py:628
WHAT IT DOES

No description documented yet.

SIGNATURE
bed_analytics_page(bed_id: str, db: Session = Depends(get_db))
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/pages.py:628
DECORATORS
router.get('/bed/{bed_id}/analytics', response_class=HTMLResponse, tags=['System'])router.get('/bed/{bed_id}/analytics', response_class=HTMLResponse, tags=['System'])
device_page
No description documented yet.
src/routes/pages.py:931
WHAT IT DOES

No description documented yet.

SIGNATURE
device_page(bed_id: str, db: Session = Depends(get_db))
PARAMETERS
bed_id
str
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/pages.py:931
DECORATORS
router.get('/device/{bed_id}', response_class=HTMLResponse, tags=['System'])
register_page
No description documented yet.
src/routes/pages.py:1196
WHAT IT DOES

No description documented yet.

SIGNATURE
register_page()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/routes/pages.py:1196
DECORATORS
router.get('/register', response_class=HTMLResponse)
login_page
No description documented yet.
src/routes/pages.py:1247
WHAT IT DOES

No description documented yet.

SIGNATURE
login_page()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/routes/pages.py:1247
DECORATORS
router.get('/login', response_class=HTMLResponse)
setup_contact
No description documented yet.
src/routes/pages.py:1302
WHAT IT DOES

No description documented yet.

SIGNATURE
setup_contact()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/routes/pages.py:1302
DECORATORS
router.get('/setup-contact', response_class=HTMLResponse)
notifications_page
No description documented yet.
src/routes/pages.py:1431
WHAT IT DOES

No description documented yet.

SIGNATURE
notifications_page(request: Request, db: Session = Depends(get_db), user: User = Depends(get_current_user))
PARAMETERS
request
Request
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/pages.py:1431
DECORATORS
router.get('/notifications', response_class=HTMLResponse)
api_keys_page
No description documented yet.
src/routes/pages.py:1823
WHAT IT DOES

No description documented yet.

SIGNATURE
api_keys_page(request: Request, user: User = Depends(get_current_user))
PARAMETERS
request
Request
user Depends
User
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/pages.py:1823
DECORATORS
router.get('/api-keys', response_class=HTMLResponse, tags=['System'])
custom_docs
No description documented yet.
src/routes/pages.py:1982
WHAT IT DOES

No description documented yet.

SIGNATURE
custom_docs()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/routes/pages.py:1982
DECORATORS
router.get('/app/docs', response_class=HTMLResponse, tags=['System'])
src/routes/users.py
7 symbols
register
Register new user account.
src/routes/users.py:24
WHAT IT DOES

Register new user account.

SIGNATURE
register(data: RegisterRequest, response: Response, db: Session = Depends(get_db))
PARAMETERS
data
RegisterRequest
response
Response
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/users.py:24
DECORATORS
router.post('/api/register', tags=['Auth'])
login
Login with email and password.
src/routes/users.py:56
WHAT IT DOES

Login with email and password.

SIGNATURE
login(data: LoginRequest, response: Response, db: Session = Depends(get_db))
PARAMETERS
data
LoginRequest
response
Response
db Depends
Session
= Depends(get_db)
RETURNS Not documented
SOURCE src/routes/users.py:56
DECORATORS
router.post('/api/login', tags=['Auth'])
logout
Logout user by clearing cookies.
src/routes/users.py:78
WHAT IT DOES

Logout user by clearing cookies.

SIGNATURE
logout()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/routes/users.py:78
DECORATORS
router.get('/logout', tags=['Auth'])
save_user_contact
Save user contact information for SMS alerts.
src/routes/users.py:93
WHAT IT DOES

Save user contact information for SMS alerts.

SIGNATURE
save_user_contact(data: ContactRequest, db: Session = Depends(get_db), user = Depends(get_current_user))
PARAMETERS
data
ContactRequest
db Depends
Session
= Depends(get_db)
user Depends
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/users.py:93
DECORATORS
router.post('/api/user/contact', tags=['SMS'])
get_carriers
Get available SMS carriers.
src/routes/users.py:121
WHAT IT DOES

Get available SMS carriers.

SIGNATURE
get_carriers()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/routes/users.py:121
DECORATORS
router.get('/api/carriers', tags=['SMS'])
get_notifications
No description documented yet.
src/routes/users.py:151
WHAT IT DOES

No description documented yet.

SIGNATURE
get_notifications(db: Session = Depends(get_db), user: User = Depends(get_current_user))
PARAMETERS
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/users.py:151
DECORATORS
router.get('/api/user/notifications')
update_notifications
No description documented yet.
src/routes/users.py:183
WHAT IT DOES

No description documented yet.

SIGNATURE
update_notifications(payload: dict, db: Session = Depends(get_db), user: User = Depends(get_current_user))
PARAMETERS
payload
dict
db Depends
Session
= Depends(get_db)
user Depends
User
= Depends(get_current_user)
RETURNS Not documented
SOURCE src/routes/users.py:183
DECORATORS
router.post('/api/user/notifications')
src/services/notifications.py
7 symbols
_firebase_token
No description documented yet.
src/services/notifications.py:81
WHAT IT DOES

No description documented yet.

SIGNATURE
_firebase_token()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/services/notifications.py:81
send_email
No description documented yet.
src/services/notifications.py:97
WHAT IT DOES

No description documented yet.

SIGNATURE
send_email(to_email: str, message: str, n_type: str = 'alert') -> dict
PARAMETERS
to_email
str
message
str
n_type
str
= 'alert'
RETURNS dict
SOURCE src/services/notifications.py:97
queue_discord_message
No description documented yet.
src/services/notifications.py:133
WHAT IT DOES

No description documented yet.

SIGNATURE
queue_discord_message(discord_user_id: str, message: str) -> dict
PARAMETERS
discord_user_id
str
message
str
RETURNS dict
SOURCE src/services/notifications.py:133
send_firebase_push
No description documented yet.
src/services/notifications.py:160
WHAT IT DOES

No description documented yet.

SIGNATURE
send_firebase_push(token: str, title: str, body: str, data: dict = None) -> dict
PARAMETERS
token
str
title
str
body
str
data
dict
= None
RETURNS dict
SOURCE src/services/notifications.py:160
send_notification
No description documented yet.
src/services/notifications.py:273
WHAT IT DOES

No description documented yet.

SIGNATURE
send_notification(user_id: int, message: str, db, n_type: str = 'alert') -> dict
PARAMETERS
user_id
int
message
str
db
n_type
str
= 'alert'
RETURNS dict
SOURCE src/services/notifications.py:273
should_alert
No description documented yet.
src/services/notifications.py:378
WHAT IT DOES

No description documented yet.

SIGNATURE
should_alert(user_id: int, bed_id: str, alert_type: str, new_state: str) -> bool
PARAMETERS
user_id
int
bed_id
str
alert_type
str
new_state
str
RETURNS bool
SOURCE src/services/notifications.py:378
test_firebase
No description documented yet.
src/services/notifications.py:388
WHAT IT DOES

No description documented yet.

SIGNATURE
test_firebase(db)
PARAMETERS
db
RETURNS Not documented
SOURCE src/services/notifications.py:388
src/sim/bed-pid-contoller-sim.py
7 symbols
update_weather
No description documented yet.
src/sim/bed-pid-contoller-sim.py:69
WHAT IT DOES

No description documented yet.

SIGNATURE
update_weather()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/sim/bed-pid-contoller-sim.py:69
sensor
No description documented yet.
src/sim/bed-pid-contoller-sim.py:80
WHAT IT DOES

No description documented yet.

SIGNATURE
sensor(v)
PARAMETERS
v
RETURNS Not documented
SOURCE src/sim/bed-pid-contoller-sim.py:80
heartbeat
No description documented yet.
src/sim/bed-pid-contoller-sim.py:86
WHAT IT DOES

No description documented yet.

SIGNATURE
heartbeat()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/sim/bed-pid-contoller-sim.py:86
simulate
No description documented yet.
src/sim/bed-pid-contoller-sim.py:102
WHAT IT DOES

No description documented yet.

SIGNATURE
simulate()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/sim/bed-pid-contoller-sim.py:102
controller
No description documented yet.
src/sim/bed-pid-contoller-sim.py:159
WHAT IT DOES

No description documented yet.

SIGNATURE
controller(s)
PARAMETERS
s
RETURNS Not documented
SOURCE src/sim/bed-pid-contoller-sim.py:159
send
No description documented yet.
src/sim/bed-pid-contoller-sim.py:233
WHAT IT DOES

No description documented yet.

SIGNATURE
send(s)
PARAMETERS
s
RETURNS Not documented
SOURCE src/sim/bed-pid-contoller-sim.py:233
run
No description documented yet.
src/sim/bed-pid-contoller-sim.py:271
WHAT IT DOES

No description documented yet.

SIGNATURE
run()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/sim/bed-pid-contoller-sim.py:271
src/sim/full-system-simulator.py
7 symbols
heartbeat_loop
No description documented yet.
src/sim/full-system-simulator.py:79
WHAT IT DOES

No description documented yet.

SIGNATURE
heartbeat_loop()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/sim/full-system-simulator.py:79
update_weather
No description documented yet.
src/sim/full-system-simulator.py:96
WHAT IT DOES

No description documented yet.

SIGNATURE
update_weather()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/sim/full-system-simulator.py:96
simulate
No description documented yet.
src/sim/full-system-simulator.py:113
WHAT IT DOES

No description documented yet.

SIGNATURE
simulate(bed)
PARAMETERS
bed
RETURNS Not documented
SOURCE src/sim/full-system-simulator.py:113
compute_watering_time
No description documented yet.
src/sim/full-system-simulator.py:166
WHAT IT DOES

No description documented yet.

SIGNATURE
compute_watering_time(bed)
PARAMETERS
bed
RETURNS Not documented
SOURCE src/sim/full-system-simulator.py:166
apply_valve_control
No description documented yet.
src/sim/full-system-simulator.py:190
WHAT IT DOES

No description documented yet.

SIGNATURE
apply_valve_control(bed)
PARAMETERS
bed
RETURNS Not documented
SOURCE src/sim/full-system-simulator.py:190
send
No description documented yet.
src/sim/full-system-simulator.py:216
WHAT IT DOES

No description documented yet.

SIGNATURE
send(bed)
PARAMETERS
bed
RETURNS Not documented
SOURCE src/sim/full-system-simulator.py:216
run
No description documented yet.
src/sim/full-system-simulator.py:248
WHAT IT DOES

No description documented yet.

SIGNATURE
run()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/sim/full-system-simulator.py:248
src/sim/main.py
1 symbols
run
No description documented yet.
src/sim/main.py:16
WHAT IT DOES

No description documented yet.

SIGNATURE
run()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/sim/main.py:16
src/sim/network.py
2 symbols
send
No description documented yet.
src/sim/network.py:12
WHAT IT DOES

No description documented yet.

SIGNATURE
send(soil, plant, valve, weather)
PARAMETERS
soil
plant
valve
weather
RETURNS Not documented
SOURCE src/sim/network.py:12
heartbeat
No description documented yet.
src/sim/network.py:46
WHAT IT DOES

No description documented yet.

SIGNATURE
heartbeat()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/sim/network.py:46
src/sim/utils.py
1 symbols
log
No description documented yet.
src/sim/utils.py:13
WHAT IT DOES

No description documented yet.

SIGNATURE
log(msg)
PARAMETERS
msg
RETURNS Not documented
SOURCE src/sim/utils.py:13
src/watchdog.py
1 symbols
api_watchdog
No description documented yet.
src/watchdog.py:7
WHAT IT DOES

No description documented yet.

SIGNATURE
api_watchdog()
PARAMETERS
No parameters documented.
RETURNS Not documented
SOURCE src/watchdog.py:7
barkly_docs.py · FunctionInfo
2 symbols
qualified_name
No description documented yet.
barkly_docs.py:157
WHAT IT DOES

No description documented yet.

SIGNATURE
qualified_name(self) -> str
PARAMETERS
self
RETURNS str
SOURCE barkly_docs.py:157
DECORATORS
property
signature
No description documented yet.
barkly_docs.py:163
WHAT IT DOES

No description documented yet.

SIGNATURE
signature(self) -> str
PARAMETERS
self
RETURNS str
SOURCE barkly_docs.py:163
DECORATORS
property
barkly_docs.py · EndpointInfo
1 symbols
method_text
No description documented yet.
barkly_docs.py:213
WHAT IT DOES

No description documented yet.

SIGNATURE
method_text(self) -> str
PARAMETERS
self
RETURNS str
SOURCE barkly_docs.py:213
DECORATORS
property
barkly_docs.py · PythonScanner
7 symbols
__init__
No description documented yet.
barkly_docs.py:603
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, root: Path)
PARAMETERS
self
root
Path
RETURNS Not documented
SOURCE barkly_docs.py:603
scan
No description documented yet.
barkly_docs.py:611
WHAT IT DOES

No description documented yet.

SIGNATURE
scan(self) -> None
PARAMETERS
self
RETURNS None
SOURCE barkly_docs.py:611
scan_file
No description documented yet.
barkly_docs.py:618
WHAT IT DOES

No description documented yet.

SIGNATURE
scan_file(self, path: Path) -> None
PARAMETERS
self
path
Path
RETURNS None
SOURCE barkly_docs.py:618
function_node_for_class_method
No description documented yet.
barkly_docs.py:676
WHAT IT DOES

No description documented yet.

SIGNATURE
function_node_for_class_method(self, class_node: ast.ClassDef, method_name: str) -> Optional[ast.FunctionDef | ast.AsyncFunctionDef]
PARAMETERS
self
class_node
ast.ClassDef
method_name
str
RETURNS Optional[ast.FunctionDef | ast.AsyncFunctionDef]
SOURCE barkly_docs.py:676
make_function
No description documented yet.
barkly_docs.py:691
WHAT IT DOES

No description documented yet.

SIGNATURE
make_function(self, node: ast.FunctionDef | ast.AsyncFunctionDef, file: str, class_name: str = '') -> FunctionInfo
PARAMETERS
self
node
ast.FunctionDef | ast.AsyncFunctionDef
file
str
class_name
str
= ''
RETURNS FunctionInfo
SOURCE barkly_docs.py:691
make_class
No description documented yet.
barkly_docs.py:710
WHAT IT DOES

No description documented yet.

SIGNATURE
make_class(self, node: ast.ClassDef, file: str) -> ClassInfo
PARAMETERS
self
node
ast.ClassDef
file
str
RETURNS ClassInfo
SOURCE barkly_docs.py:710
find_endpoints
No description documented yet.
barkly_docs.py:740
WHAT IT DOES

No description documented yet.

SIGNATURE
find_endpoints(self, node: Optional[ast.FunctionDef | ast.AsyncFunctionDef], file: str) -> None
PARAMETERS
self
node
Optional[ast.FunctionDef | ast.AsyncFunctionDef]
file
str
RETURNS None
SOURCE barkly_docs.py:740
bot/bot.py · BedSelect
2 symbols
__init__
No description documented yet.
bot/bot.py:168
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, beds)
PARAMETERS
self
beds
RETURNS Not documented
SOURCE bot/bot.py:168
callback
No description documented yet.
bot/bot.py:179
WHAT IT DOES

No description documented yet.

SIGNATURE
callback(self, interaction: discord.Interaction)
PARAMETERS
self
interaction
discord.Interaction
RETURNS Not documented
SOURCE bot/bot.py:179
bot/bot.py · GardenDashboard
4 symbols
__init__
No description documented yet.
bot/bot.py:188
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, beds)
PARAMETERS
self
beds
RETURNS Not documented
SOURCE bot/bot.py:188
status
No description documented yet.
bot/bot.py:196
WHAT IT DOES

No description documented yet.

SIGNATURE
status(self, interaction: discord.Interaction, button: discord.ui.Button)
PARAMETERS
self
interaction
discord.Interaction
button
discord.ui.Button
RETURNS Not documented
SOURCE bot/bot.py:196
DECORATORS
discord.ui.button(label='📊 Status', style=discord.ButtonStyle.green)
water
No description documented yet.
bot/bot.py:215
WHAT IT DOES

No description documented yet.

SIGNATURE
water(self, interaction: discord.Interaction, button: discord.ui.Button)
PARAMETERS
self
interaction
discord.Interaction
button
discord.ui.Button
RETURNS Not documented
SOURCE bot/bot.py:215
DECORATORS
discord.ui.button(label='🚰 Water', style=discord.ButtonStyle.blurple)
history
No description documented yet.
bot/bot.py:231
WHAT IT DOES

No description documented yet.

SIGNATURE
history(self, interaction: discord.Interaction, button: discord.ui.Button)
PARAMETERS
self
interaction
discord.Interaction
button
discord.ui.Button
RETURNS Not documented
SOURCE bot/bot.py:231
DECORATORS
discord.ui.button(label='📈 History', style=discord.ButtonStyle.gray)
esp32-firmware/firmware/garden_api.py · GardenAPI
10 symbols
__init__
No description documented yet.
esp32-firmware/firmware/garden_api.py:9
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, server_url, api_key, bed_id, firmware = '1.0.0')
PARAMETERS
self
server_url
api_key
bed_id
firmware
= '1.0.0'
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:9
_headers
No description documented yet.
esp32-firmware/firmware/garden_api.py:26
WHAT IT DOES

No description documented yet.

SIGNATURE
_headers(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:26
send_sensor_data
Send soil sensor readings to /api/bed-data
esp32-firmware/firmware/garden_api.py:35
WHAT IT DOES

Send soil sensor readings to /api/bed-data

SIGNATURE
send_sensor_data(self, average, sensors, rssi, valve_state = 'OFF')
PARAMETERS
self
average
sensors
rssi
valve_state
= 'OFF'
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:35
should_water
Ask server if watering is needed
esp32-firmware/firmware/garden_api.py:102
WHAT IT DOES

Ask server if watering is needed

SIGNATURE
should_water(self, moisture)
PARAMETERS
self
moisture
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:102
heartbeat
Tell server the ESP32 is alive
esp32-firmware/firmware/garden_api.py:158
WHAT IT DOES

Tell server the ESP32 is alive

SIGNATURE
heartbeat(self, ip = None, rssi = None)
PARAMETERS
self
ip
= None
rssi
= None
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:158
get_config
Download bed settings
esp32-firmware/firmware/garden_api.py:226
WHAT IT DOES

Download bed settings

SIGNATURE
get_config(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:226
get_ip
Get ESP32 local IP address
esp32-firmware/firmware/garden_api.py:269
WHAT IT DOES

Get ESP32 local IP address

SIGNATURE
get_ip(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:269
get_rssi
Get WiFi signal strength
esp32-firmware/firmware/garden_api.py:299
WHAT IT DOES

Get WiFi signal strength

SIGNATURE
get_rssi(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:299
send_heartbeat
Automatic heartbeat using ESP32 network info
esp32-firmware/firmware/garden_api.py:331
WHAT IT DOES

Automatic heartbeat using ESP32 network info

SIGNATURE
send_heartbeat(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:331
timestamp
ESP32 timestamp placeholder. Later replace with NTP time.
esp32-firmware/firmware/garden_api.py:353
WHAT IT DOES

ESP32 timestamp placeholder. Later replace with NTP time.

SIGNATURE
timestamp(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:353
esp32-firmware/firmware/logger.py · Logger
8 symbols
__init__
No description documented yet.
esp32-firmware/firmware/logger.py:8
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, filename = 'garden.log', max_lines = 500)
PARAMETERS
self
filename
= 'garden.log'
max_lines
= 500
RETURNS Not documented
SOURCE esp32-firmware/firmware/logger.py:8
_timestamp
No description documented yet.
esp32-firmware/firmware/logger.py:19
WHAT IT DOES

No description documented yet.

SIGNATURE
_timestamp(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/logger.py:19
_write
No description documented yet.
esp32-firmware/firmware/logger.py:37
WHAT IT DOES

No description documented yet.

SIGNATURE
_write(self, level, message)
PARAMETERS
self
level
message
RETURNS Not documented
SOURCE esp32-firmware/firmware/logger.py:37
_trim
Keep log size under control
esp32-firmware/firmware/logger.py:88
WHAT IT DOES

Keep log size under control

SIGNATURE
_trim(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/logger.py:88
info
No description documented yet.
esp32-firmware/firmware/logger.py:130
WHAT IT DOES

No description documented yet.

SIGNATURE
info(self, message)
PARAMETERS
self
message
RETURNS Not documented
SOURCE esp32-firmware/firmware/logger.py:130
warning
No description documented yet.
esp32-firmware/firmware/logger.py:144
WHAT IT DOES

No description documented yet.

SIGNATURE
warning(self, message)
PARAMETERS
self
message
RETURNS Not documented
SOURCE esp32-firmware/firmware/logger.py:144
error
No description documented yet.
esp32-firmware/firmware/logger.py:158
WHAT IT DOES

No description documented yet.

SIGNATURE
error(self, message)
PARAMETERS
self
message
RETURNS Not documented
SOURCE esp32-firmware/firmware/logger.py:158
clear
No description documented yet.
esp32-firmware/firmware/logger.py:172
WHAT IT DOES

No description documented yet.

SIGNATURE
clear(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/logger.py:172
esp32-firmware/firmware/pid.py · PIDController
2 symbols
__init__
No description documented yet.
esp32-firmware/firmware/pid.py:3
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, kp, ki, kd, target, integral_limit = 800, deadzone = 25)
PARAMETERS
self
kp
ki
kd
target
integral_limit
= 800
deadzone
= 25
RETURNS Not documented
SOURCE esp32-firmware/firmware/pid.py:3
compute
No description documented yet.
esp32-firmware/firmware/pid.py:27
WHAT IT DOES

No description documented yet.

SIGNATURE
compute(self, current)
PARAMETERS
self
current
RETURNS Not documented
SOURCE esp32-firmware/firmware/pid.py:27
esp32-firmware/firmware/soil_sensor.py · SoilSensor
6 symbols
__init__
No description documented yet.
esp32-firmware/firmware/soil_sensor.py:9
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, pin, dry_value = 3000, wet_value = 1200, samples = 10)
PARAMETERS
self
pin
dry_value
= 3000
wet_value
= 1200
samples
= 10
RETURNS Not documented
SOURCE esp32-firmware/firmware/soil_sensor.py:9
read_raw
Read raw ADC value ESP32: 0 - 4095
esp32-firmware/firmware/soil_sensor.py:42
WHAT IT DOES

Read raw ADC value ESP32: 0 - 4095

SIGNATURE
read_raw(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/soil_sensor.py:42
read_percent
Convert ADC reading into soil moisture % 0% = dry 100% = wet
esp32-firmware/firmware/soil_sensor.py:72
WHAT IT DOES

Convert ADC reading into soil moisture % 0% = dry 100% = wet

SIGNATURE
read_percent(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/soil_sensor.py:72
is_dry
Returns True if soil is dry
esp32-firmware/firmware/soil_sensor.py:132
WHAT IT DOES

Returns True if soil is dry

SIGNATURE
is_dry(self, threshold = 30)
PARAMETERS
self
threshold
= 30
RETURNS Not documented
SOURCE esp32-firmware/firmware/soil_sensor.py:132
calibrate
Change calibration values Example: dry = sensor in dry soil wet = sensor in wet soil
esp32-firmware/firmware/soil_sensor.py:153
WHAT IT DOES

Change calibration values Example: dry = sensor in dry soil wet = sensor in wet soil

SIGNATURE
calibrate(self, dry, wet)
PARAMETERS
self
dry
wet
RETURNS Not documented
SOURCE esp32-firmware/firmware/soil_sensor.py:153
get_status
Return full sensor data
esp32-firmware/firmware/soil_sensor.py:179
WHAT IT DOES

Return full sensor data

SIGNATURE
get_status(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/soil_sensor.py:179
esp32-firmware/firmware/valve.py · ValveController
6 symbols
__init__
No description documented yet.
esp32-firmware/firmware/valve.py:8
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, pin, active_high = True)
PARAMETERS
self
pin
active_high
= True
RETURNS Not documented
SOURCE esp32-firmware/firmware/valve.py:8
on
Turn valve ON
esp32-firmware/firmware/valve.py:32
WHAT IT DOES

Turn valve ON

SIGNATURE
on(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/valve.py:32
off
Turn valve OFF
esp32-firmware/firmware/valve.py:51
WHAT IT DOES

Turn valve OFF

SIGNATURE
off(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/valve.py:51
toggle
Flip valve state
esp32-firmware/firmware/valve.py:71
WHAT IT DOES

Flip valve state

SIGNATURE
toggle(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/valve.py:71
is_on
No description documented yet.
esp32-firmware/firmware/valve.py:89
WHAT IT DOES

No description documented yet.

SIGNATURE
is_on(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/valve.py:89
water_for
Run irrigation for a set time
esp32-firmware/firmware/valve.py:97
WHAT IT DOES

Run irrigation for a set time

SIGNATURE
water_for(self, seconds)
PARAMETERS
self
seconds
RETURNS Not documented
SOURCE esp32-firmware/firmware/valve.py:97
esp32-firmware/firmware/wifi_manager.py · WiFiManager
8 symbols
__init__
No description documented yet.
esp32-firmware/firmware/wifi_manager.py:8
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, ssid, password)
PARAMETERS
self
ssid
password
RETURNS Not documented
SOURCE esp32-firmware/firmware/wifi_manager.py:8
connect
Connect ESP32 to WiFi
esp32-firmware/firmware/wifi_manager.py:23
WHAT IT DOES

Connect ESP32 to WiFi

SIGNATURE
connect(self, timeout = 30)
PARAMETERS
self
timeout
= 30
RETURNS Not documented
SOURCE esp32-firmware/firmware/wifi_manager.py:23
disconnect
Disconnect WiFi
esp32-firmware/firmware/wifi_manager.py:101
WHAT IT DOES

Disconnect WiFi

SIGNATURE
disconnect(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/wifi_manager.py:101
connected
Check WiFi status
esp32-firmware/firmware/wifi_manager.py:113
WHAT IT DOES

Check WiFi status

SIGNATURE
connected(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/wifi_manager.py:113
reconnect
Restore connection
esp32-firmware/firmware/wifi_manager.py:125
WHAT IT DOES

Restore connection

SIGNATURE
reconnect(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/wifi_manager.py:125
ip
Get ESP32 IP
esp32-firmware/firmware/wifi_manager.py:146
WHAT IT DOES

Get ESP32 IP

SIGNATURE
ip(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/wifi_manager.py:146
rssi
Get signal strength
esp32-firmware/firmware/wifi_manager.py:163
WHAT IT DOES

Get signal strength

SIGNATURE
rssi(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/wifi_manager.py:163
info
Return WiFi information
esp32-firmware/firmware/wifi_manager.py:182
WHAT IT DOES

Return WiFi information

SIGNATURE
info(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/wifi_manager.py:182
src/sim/events.py · Events
6 symbols
__init__
No description documented yet.
src/sim/events.py:7
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/events.py:7
trigger
No description documented yet.
src/sim/events.py:33
WHAT IT DOES

No description documented yet.

SIGNATURE
trigger(self, soil, plant, valve)
PARAMETERS
self
soil
plant
valve
RETURNS Not documented
SOURCE src/sim/events.py:33
apply_noise
No description documented yet.
src/sim/events.py:118
WHAT IT DOES

No description documented yet.

SIGNATURE
apply_noise(self, soil)
PARAMETERS
self
soil
RETURNS Not documented
SOURCE src/sim/events.py:118
set_event_rate
No description documented yet.
src/sim/events.py:189
WHAT IT DOES

No description documented yet.

SIGNATURE
set_event_rate(self, rate)
PARAMETERS
self
rate
RETURNS Not documented
SOURCE src/sim/events.py:189
set_event_scale
No description documented yet.
src/sim/events.py:192
WHAT IT DOES

No description documented yet.

SIGNATURE
set_event_scale(self, scale)
PARAMETERS
self
scale
RETURNS Not documented
SOURCE src/sim/events.py:192
test_event
No description documented yet.
src/sim/events.py:195
WHAT IT DOES

No description documented yet.

SIGNATURE
test_event(self, name)
PARAMETERS
self
name
RETURNS Not documented
SOURCE src/sim/events.py:195
src/sim/plant.py · Plant
2 symbols
__init__
No description documented yet.
src/sim/plant.py:5
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/plant.py:5
update
No description documented yet.
src/sim/plant.py:9
WHAT IT DOES

No description documented yet.

SIGNATURE
update(self, soil)
PARAMETERS
self
soil
RETURNS Not documented
SOURCE src/sim/plant.py:9
src/sim/soil.py · Soil
6 symbols
__init__
No description documented yet.
src/sim/soil.py:8
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/soil.py:8
evaporate
No description documented yet.
src/sim/soil.py:19
WHAT IT DOES

No description documented yet.

SIGNATURE
evaporate(self, weather)
PARAMETERS
self
weather
RETURNS Not documented
SOURCE src/sim/soil.py:19
flow
No description documented yet.
src/sim/soil.py:28
WHAT IT DOES

No description documented yet.

SIGNATURE
flow(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/soil.py:28
equilibrium
No description documented yet.
src/sim/soil.py:37
WHAT IT DOES

No description documented yet.

SIGNATURE
equilibrium(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/soil.py:37
clamp
No description documented yet.
src/sim/soil.py:49
WHAT IT DOES

No description documented yet.

SIGNATURE
clamp(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/soil.py:49
avg
No description documented yet.
src/sim/soil.py:54
WHAT IT DOES

No description documented yet.

SIGNATURE
avg(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/soil.py:54
src/sim/valve.py · Valve
2 symbols
__init__
No description documented yet.
src/sim/valve.py:2
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/valve.py:2
update
No description documented yet.
src/sim/valve.py:7
WHAT IT DOES

No description documented yet.

SIGNATURE
update(self, soil)
PARAMETERS
self
soil
RETURNS Not documented
SOURCE src/sim/valve.py:7
src/sim/weather.py · Weather
2 symbols
__init__
No description documented yet.
src/sim/weather.py:10
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/weather.py:10
update
No description documented yet.
src/sim/weather.py:15
WHAT IT DOES

No description documented yet.

SIGNATURE
update(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/weather.py:15
06
BARKLY DOCS

Classes

Classes stay collapsed so large projects remain readable.

0
Parameter
No description documented yet.
0 methods
barkly_docs.py:135
No description documented yet.
No methods discovered.
FunctionInfo
No description documented yet.
2 methods
barkly_docs.py:143
No description documented yet.
qualified_name
No description documented yet.
barkly_docs.py:157
WHAT IT DOES

No description documented yet.

SIGNATURE
qualified_name(self) -> str
PARAMETERS
self
RETURNS str
SOURCE barkly_docs.py:157
DECORATORS
property
signature
No description documented yet.
barkly_docs.py:163
WHAT IT DOES

No description documented yet.

SIGNATURE
signature(self) -> str
PARAMETERS
self
RETURNS str
SOURCE barkly_docs.py:163
DECORATORS
property
ClassInfo
No description documented yet.
0 methods
barkly_docs.py:186
No description documented yet.
No methods discovered.
EndpointInfo
No description documented yet.
1 methods
barkly_docs.py:198
No description documented yet.
method_text
No description documented yet.
barkly_docs.py:213
WHAT IT DOES

No description documented yet.

SIGNATURE
method_text(self) -> str
PARAMETERS
self
RETURNS str
SOURCE barkly_docs.py:213
DECORATORS
property
ModuleInfo
No description documented yet.
0 methods
barkly_docs.py:218
No description documented yet.
No methods discovered.
PythonScanner
No description documented yet.
7 methods
barkly_docs.py:602
No description documented yet.
__init__
No description documented yet.
barkly_docs.py:603
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, root: Path)
PARAMETERS
self
root
Path
RETURNS Not documented
SOURCE barkly_docs.py:603
scan
No description documented yet.
barkly_docs.py:611
WHAT IT DOES

No description documented yet.

SIGNATURE
scan(self) -> None
PARAMETERS
self
RETURNS None
SOURCE barkly_docs.py:611
scan_file
No description documented yet.
barkly_docs.py:618
WHAT IT DOES

No description documented yet.

SIGNATURE
scan_file(self, path: Path) -> None
PARAMETERS
self
path
Path
RETURNS None
SOURCE barkly_docs.py:618
function_node_for_class_method
No description documented yet.
barkly_docs.py:676
WHAT IT DOES

No description documented yet.

SIGNATURE
function_node_for_class_method(self, class_node: ast.ClassDef, method_name: str) -> Optional[ast.FunctionDef | ast.AsyncFunctionDef]
PARAMETERS
self
class_node
ast.ClassDef
method_name
str
RETURNS Optional[ast.FunctionDef | ast.AsyncFunctionDef]
SOURCE barkly_docs.py:676
make_function
No description documented yet.
barkly_docs.py:691
WHAT IT DOES

No description documented yet.

SIGNATURE
make_function(self, node: ast.FunctionDef | ast.AsyncFunctionDef, file: str, class_name: str = '') -> FunctionInfo
PARAMETERS
self
node
ast.FunctionDef | ast.AsyncFunctionDef
file
str
class_name
str
= ''
RETURNS FunctionInfo
SOURCE barkly_docs.py:691
make_class
No description documented yet.
barkly_docs.py:710
WHAT IT DOES

No description documented yet.

SIGNATURE
make_class(self, node: ast.ClassDef, file: str) -> ClassInfo
PARAMETERS
self
node
ast.ClassDef
file
str
RETURNS ClassInfo
SOURCE barkly_docs.py:710
find_endpoints
No description documented yet.
barkly_docs.py:740
WHAT IT DOES

No description documented yet.

SIGNATURE
find_endpoints(self, node: Optional[ast.FunctionDef | ast.AsyncFunctionDef], file: str) -> None
PARAMETERS
self
node
Optional[ast.FunctionDef | ast.AsyncFunctionDef]
file
str
RETURNS None
SOURCE barkly_docs.py:740
BedSelect
No description documented yet.
2 methods
bot/bot.py:167
No description documented yet.
__init__
No description documented yet.
bot/bot.py:168
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, beds)
PARAMETERS
self
beds
RETURNS Not documented
SOURCE bot/bot.py:168
callback
No description documented yet.
bot/bot.py:179
WHAT IT DOES

No description documented yet.

SIGNATURE
callback(self, interaction: discord.Interaction)
PARAMETERS
self
interaction
discord.Interaction
RETURNS Not documented
SOURCE bot/bot.py:179
GardenDashboard
No description documented yet.
4 methods
bot/bot.py:187
No description documented yet.
__init__
No description documented yet.
bot/bot.py:188
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, beds)
PARAMETERS
self
beds
RETURNS Not documented
SOURCE bot/bot.py:188
status
No description documented yet.
bot/bot.py:196
WHAT IT DOES

No description documented yet.

SIGNATURE
status(self, interaction: discord.Interaction, button: discord.ui.Button)
PARAMETERS
self
interaction
discord.Interaction
button
discord.ui.Button
RETURNS Not documented
SOURCE bot/bot.py:196
DECORATORS
discord.ui.button(label='📊 Status', style=discord.ButtonStyle.green)
water
No description documented yet.
bot/bot.py:215
WHAT IT DOES

No description documented yet.

SIGNATURE
water(self, interaction: discord.Interaction, button: discord.ui.Button)
PARAMETERS
self
interaction
discord.Interaction
button
discord.ui.Button
RETURNS Not documented
SOURCE bot/bot.py:215
DECORATORS
discord.ui.button(label='🚰 Water', style=discord.ButtonStyle.blurple)
history
No description documented yet.
bot/bot.py:231
WHAT IT DOES

No description documented yet.

SIGNATURE
history(self, interaction: discord.Interaction, button: discord.ui.Button)
PARAMETERS
self
interaction
discord.Interaction
button
discord.ui.Button
RETURNS Not documented
SOURCE bot/bot.py:231
DECORATORS
discord.ui.button(label='📈 History', style=discord.ButtonStyle.gray)
GardenAPI
No description documented yet.
10 methods
esp32-firmware/firmware/garden_api.py:7
No description documented yet.
__init__
No description documented yet.
esp32-firmware/firmware/garden_api.py:9
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, server_url, api_key, bed_id, firmware = '1.0.0')
PARAMETERS
self
server_url
api_key
bed_id
firmware
= '1.0.0'
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:9
_headers
No description documented yet.
esp32-firmware/firmware/garden_api.py:26
WHAT IT DOES

No description documented yet.

SIGNATURE
_headers(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:26
send_sensor_data
Send soil sensor readings to /api/bed-data
esp32-firmware/firmware/garden_api.py:35
WHAT IT DOES

Send soil sensor readings to /api/bed-data

SIGNATURE
send_sensor_data(self, average, sensors, rssi, valve_state = 'OFF')
PARAMETERS
self
average
sensors
rssi
valve_state
= 'OFF'
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:35
should_water
Ask server if watering is needed
esp32-firmware/firmware/garden_api.py:102
WHAT IT DOES

Ask server if watering is needed

SIGNATURE
should_water(self, moisture)
PARAMETERS
self
moisture
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:102
heartbeat
Tell server the ESP32 is alive
esp32-firmware/firmware/garden_api.py:158
WHAT IT DOES

Tell server the ESP32 is alive

SIGNATURE
heartbeat(self, ip = None, rssi = None)
PARAMETERS
self
ip
= None
rssi
= None
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:158
get_config
Download bed settings
esp32-firmware/firmware/garden_api.py:226
WHAT IT DOES

Download bed settings

SIGNATURE
get_config(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:226
get_ip
Get ESP32 local IP address
esp32-firmware/firmware/garden_api.py:269
WHAT IT DOES

Get ESP32 local IP address

SIGNATURE
get_ip(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:269
get_rssi
Get WiFi signal strength
esp32-firmware/firmware/garden_api.py:299
WHAT IT DOES

Get WiFi signal strength

SIGNATURE
get_rssi(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:299
send_heartbeat
Automatic heartbeat using ESP32 network info
esp32-firmware/firmware/garden_api.py:331
WHAT IT DOES

Automatic heartbeat using ESP32 network info

SIGNATURE
send_heartbeat(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:331
timestamp
ESP32 timestamp placeholder. Later replace with NTP time.
esp32-firmware/firmware/garden_api.py:353
WHAT IT DOES

ESP32 timestamp placeholder. Later replace with NTP time.

SIGNATURE
timestamp(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/garden_api.py:353
Logger
No description documented yet.
8 methods
esp32-firmware/firmware/logger.py:5
No description documented yet.
__init__
No description documented yet.
esp32-firmware/firmware/logger.py:8
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, filename = 'garden.log', max_lines = 500)
PARAMETERS
self
filename
= 'garden.log'
max_lines
= 500
RETURNS Not documented
SOURCE esp32-firmware/firmware/logger.py:8
_timestamp
No description documented yet.
esp32-firmware/firmware/logger.py:19
WHAT IT DOES

No description documented yet.

SIGNATURE
_timestamp(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/logger.py:19
_write
No description documented yet.
esp32-firmware/firmware/logger.py:37
WHAT IT DOES

No description documented yet.

SIGNATURE
_write(self, level, message)
PARAMETERS
self
level
message
RETURNS Not documented
SOURCE esp32-firmware/firmware/logger.py:37
_trim
Keep log size under control
esp32-firmware/firmware/logger.py:88
WHAT IT DOES

Keep log size under control

SIGNATURE
_trim(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/logger.py:88
info
No description documented yet.
esp32-firmware/firmware/logger.py:130
WHAT IT DOES

No description documented yet.

SIGNATURE
info(self, message)
PARAMETERS
self
message
RETURNS Not documented
SOURCE esp32-firmware/firmware/logger.py:130
warning
No description documented yet.
esp32-firmware/firmware/logger.py:144
WHAT IT DOES

No description documented yet.

SIGNATURE
warning(self, message)
PARAMETERS
self
message
RETURNS Not documented
SOURCE esp32-firmware/firmware/logger.py:144
error
No description documented yet.
esp32-firmware/firmware/logger.py:158
WHAT IT DOES

No description documented yet.

SIGNATURE
error(self, message)
PARAMETERS
self
message
RETURNS Not documented
SOURCE esp32-firmware/firmware/logger.py:158
clear
No description documented yet.
esp32-firmware/firmware/logger.py:172
WHAT IT DOES

No description documented yet.

SIGNATURE
clear(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/logger.py:172
PIDController
No description documented yet.
2 methods
esp32-firmware/firmware/pid.py:1
No description documented yet.
__init__
No description documented yet.
esp32-firmware/firmware/pid.py:3
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, kp, ki, kd, target, integral_limit = 800, deadzone = 25)
PARAMETERS
self
kp
ki
kd
target
integral_limit
= 800
deadzone
= 25
RETURNS Not documented
SOURCE esp32-firmware/firmware/pid.py:3
compute
No description documented yet.
esp32-firmware/firmware/pid.py:27
WHAT IT DOES

No description documented yet.

SIGNATURE
compute(self, current)
PARAMETERS
self
current
RETURNS Not documented
SOURCE esp32-firmware/firmware/pid.py:27
SoilSensor
No description documented yet.
6 methods
esp32-firmware/firmware/soil_sensor.py:6
No description documented yet.
__init__
No description documented yet.
esp32-firmware/firmware/soil_sensor.py:9
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, pin, dry_value = 3000, wet_value = 1200, samples = 10)
PARAMETERS
self
pin
dry_value
= 3000
wet_value
= 1200
samples
= 10
RETURNS Not documented
SOURCE esp32-firmware/firmware/soil_sensor.py:9
read_raw
Read raw ADC value ESP32: 0 - 4095
esp32-firmware/firmware/soil_sensor.py:42
WHAT IT DOES

Read raw ADC value ESP32: 0 - 4095

SIGNATURE
read_raw(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/soil_sensor.py:42
read_percent
Convert ADC reading into soil moisture % 0% = dry 100% = wet
esp32-firmware/firmware/soil_sensor.py:72
WHAT IT DOES

Convert ADC reading into soil moisture % 0% = dry 100% = wet

SIGNATURE
read_percent(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/soil_sensor.py:72
is_dry
Returns True if soil is dry
esp32-firmware/firmware/soil_sensor.py:132
WHAT IT DOES

Returns True if soil is dry

SIGNATURE
is_dry(self, threshold = 30)
PARAMETERS
self
threshold
= 30
RETURNS Not documented
SOURCE esp32-firmware/firmware/soil_sensor.py:132
calibrate
Change calibration values Example: dry = sensor in dry soil wet = sensor in wet soil
esp32-firmware/firmware/soil_sensor.py:153
WHAT IT DOES

Change calibration values Example: dry = sensor in dry soil wet = sensor in wet soil

SIGNATURE
calibrate(self, dry, wet)
PARAMETERS
self
dry
wet
RETURNS Not documented
SOURCE esp32-firmware/firmware/soil_sensor.py:153
get_status
Return full sensor data
esp32-firmware/firmware/soil_sensor.py:179
WHAT IT DOES

Return full sensor data

SIGNATURE
get_status(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/soil_sensor.py:179
ValveController
No description documented yet.
6 methods
esp32-firmware/firmware/valve.py:5
No description documented yet.
__init__
No description documented yet.
esp32-firmware/firmware/valve.py:8
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, pin, active_high = True)
PARAMETERS
self
pin
active_high
= True
RETURNS Not documented
SOURCE esp32-firmware/firmware/valve.py:8
on
Turn valve ON
esp32-firmware/firmware/valve.py:32
WHAT IT DOES

Turn valve ON

SIGNATURE
on(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/valve.py:32
off
Turn valve OFF
esp32-firmware/firmware/valve.py:51
WHAT IT DOES

Turn valve OFF

SIGNATURE
off(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/valve.py:51
toggle
Flip valve state
esp32-firmware/firmware/valve.py:71
WHAT IT DOES

Flip valve state

SIGNATURE
toggle(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/valve.py:71
is_on
No description documented yet.
esp32-firmware/firmware/valve.py:89
WHAT IT DOES

No description documented yet.

SIGNATURE
is_on(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/valve.py:89
water_for
Run irrigation for a set time
esp32-firmware/firmware/valve.py:97
WHAT IT DOES

Run irrigation for a set time

SIGNATURE
water_for(self, seconds)
PARAMETERS
self
seconds
RETURNS Not documented
SOURCE esp32-firmware/firmware/valve.py:97
WiFiManager
No description documented yet.
8 methods
esp32-firmware/firmware/wifi_manager.py:5
No description documented yet.
__init__
No description documented yet.
esp32-firmware/firmware/wifi_manager.py:8
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self, ssid, password)
PARAMETERS
self
ssid
password
RETURNS Not documented
SOURCE esp32-firmware/firmware/wifi_manager.py:8
connect
Connect ESP32 to WiFi
esp32-firmware/firmware/wifi_manager.py:23
WHAT IT DOES

Connect ESP32 to WiFi

SIGNATURE
connect(self, timeout = 30)
PARAMETERS
self
timeout
= 30
RETURNS Not documented
SOURCE esp32-firmware/firmware/wifi_manager.py:23
disconnect
Disconnect WiFi
esp32-firmware/firmware/wifi_manager.py:101
WHAT IT DOES

Disconnect WiFi

SIGNATURE
disconnect(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/wifi_manager.py:101
connected
Check WiFi status
esp32-firmware/firmware/wifi_manager.py:113
WHAT IT DOES

Check WiFi status

SIGNATURE
connected(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/wifi_manager.py:113
reconnect
Restore connection
esp32-firmware/firmware/wifi_manager.py:125
WHAT IT DOES

Restore connection

SIGNATURE
reconnect(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/wifi_manager.py:125
ip
Get ESP32 IP
esp32-firmware/firmware/wifi_manager.py:146
WHAT IT DOES

Get ESP32 IP

SIGNATURE
ip(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/wifi_manager.py:146
rssi
Get signal strength
esp32-firmware/firmware/wifi_manager.py:163
WHAT IT DOES

Get signal strength

SIGNATURE
rssi(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/wifi_manager.py:163
info
Return WiFi information
esp32-firmware/firmware/wifi_manager.py:182
WHAT IT DOES

Return WiFi information

SIGNATURE
info(self)
PARAMETERS
self
RETURNS Not documented
SOURCE esp32-firmware/firmware/wifi_manager.py:182
Carrier
No description documented yet.
0 methods
src/carriers.py:4
No description documented yet.
No methods discovered.
BedMetaDB
Stores metadata for plant beds (name, icon) for display purposes
0 methods
src/models.py:16
Stores metadata for plant beds (name, icon) for display purposes
No methods discovered.
BedReading
ORM model for storing plant bed sensor readings. Represents a single snapshot of sensor data from a plant bed, includin…
0 methods
src/models.py:31
ORM model for storing plant bed sensor readings. Represents a single snapshot of sensor data from a plant bed, including moisture levels, valve state, and signal strength.
No methods discovered.
BedConfigDB
ORM model for storing plant bed configuration settings. Manages configurable parameters for the automated irrigation sy…
0 methods
src/models.py:54
ORM model for storing plant bed configuration settings. Manages configurable parameters for the automated irrigation system, such as moisture thresholds and valve timing settings.
No methods discovered.
User
User account model for authentication
0 methods
src/models.py:75
User account model for authentication
No methods discovered.
UserContact
User contact info for SMS/notification delivery
0 methods
src/models.py:90
User contact info for SMS/notification delivery
No methods discovered.
DiscordAccount
No description documented yet.
0 methods
src/models.py:107
No description documented yet.
No methods discovered.
APIKey
No description documented yet.
0 methods
src/models.py:126
No description documented yet.
No methods discovered.
Msg
No description documented yet.
0 methods
src/routes/bot_bridge.py:7
No description documented yet.
No methods discovered.
BedData
Schema for incoming sensor readings from ESP32
0 methods
src/schemas.py:15
Schema for incoming sensor readings from ESP32
No methods discovered.
BedConfig
Schema for updating plant bed configuration settings
0 methods
src/schemas.py:26
Schema for updating plant bed configuration settings
No methods discovered.
RegisterRequest
Registration request payload
0 methods
src/schemas.py:37
Registration request payload
No methods discovered.
LoginRequest
Login request payload
0 methods
src/schemas.py:43
Login request payload
No methods discovered.
ContactRequest
User contact information for SMS alerts
0 methods
src/schemas.py:52
User contact information for SMS alerts
No methods discovered.
Heartbeat
Node heartbeat ping
0 methods
src/schemas.py:61
Node heartbeat ping
No methods discovered.
AlertRequest
No description documented yet.
0 methods
src/schemas.py:66
No description documented yet.
No methods discovered.
ContactUpdate
No description documented yet.
0 methods
src/schemas.py:70
No description documented yet.
No methods discovered.
DeviceTokenRegister
No description documented yet.
0 methods
src/schemas.py:75
No description documented yet.
No methods discovered.
DeviceTokenRemove
Schema for removing a Firebase device token
0 methods
src/schemas.py:79
Schema for removing a Firebase device token
No methods discovered.
EventLevel
No description documented yet.
0 methods
src/services/notifications.py:60
No description documented yet.
No methods discovered.
GardenEvent
No description documented yet.
0 methods
src/services/notifications.py:67
No description documented yet.
No methods discovered.
Events
No description documented yet.
6 methods
src/sim/events.py:6
No description documented yet.
__init__
No description documented yet.
src/sim/events.py:7
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/events.py:7
trigger
No description documented yet.
src/sim/events.py:33
WHAT IT DOES

No description documented yet.

SIGNATURE
trigger(self, soil, plant, valve)
PARAMETERS
self
soil
plant
valve
RETURNS Not documented
SOURCE src/sim/events.py:33
apply_noise
No description documented yet.
src/sim/events.py:118
WHAT IT DOES

No description documented yet.

SIGNATURE
apply_noise(self, soil)
PARAMETERS
self
soil
RETURNS Not documented
SOURCE src/sim/events.py:118
set_event_rate
No description documented yet.
src/sim/events.py:189
WHAT IT DOES

No description documented yet.

SIGNATURE
set_event_rate(self, rate)
PARAMETERS
self
rate
RETURNS Not documented
SOURCE src/sim/events.py:189
set_event_scale
No description documented yet.
src/sim/events.py:192
WHAT IT DOES

No description documented yet.

SIGNATURE
set_event_scale(self, scale)
PARAMETERS
self
scale
RETURNS Not documented
SOURCE src/sim/events.py:192
test_event
No description documented yet.
src/sim/events.py:195
WHAT IT DOES

No description documented yet.

SIGNATURE
test_event(self, name)
PARAMETERS
self
name
RETURNS Not documented
SOURCE src/sim/events.py:195
Plant
No description documented yet.
2 methods
src/sim/plant.py:4
No description documented yet.
__init__
No description documented yet.
src/sim/plant.py:5
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/plant.py:5
update
No description documented yet.
src/sim/plant.py:9
WHAT IT DOES

No description documented yet.

SIGNATURE
update(self, soil)
PARAMETERS
self
soil
RETURNS Not documented
SOURCE src/sim/plant.py:9
Soil
No description documented yet.
6 methods
src/sim/soil.py:7
No description documented yet.
__init__
No description documented yet.
src/sim/soil.py:8
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/soil.py:8
evaporate
No description documented yet.
src/sim/soil.py:19
WHAT IT DOES

No description documented yet.

SIGNATURE
evaporate(self, weather)
PARAMETERS
self
weather
RETURNS Not documented
SOURCE src/sim/soil.py:19
flow
No description documented yet.
src/sim/soil.py:28
WHAT IT DOES

No description documented yet.

SIGNATURE
flow(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/soil.py:28
equilibrium
No description documented yet.
src/sim/soil.py:37
WHAT IT DOES

No description documented yet.

SIGNATURE
equilibrium(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/soil.py:37
clamp
No description documented yet.
src/sim/soil.py:49
WHAT IT DOES

No description documented yet.

SIGNATURE
clamp(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/soil.py:49
avg
No description documented yet.
src/sim/soil.py:54
WHAT IT DOES

No description documented yet.

SIGNATURE
avg(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/soil.py:54
Valve
No description documented yet.
2 methods
src/sim/valve.py:1
No description documented yet.
__init__
No description documented yet.
src/sim/valve.py:2
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/valve.py:2
update
No description documented yet.
src/sim/valve.py:7
WHAT IT DOES

No description documented yet.

SIGNATURE
update(self, soil)
PARAMETERS
self
soil
RETURNS Not documented
SOURCE src/sim/valve.py:7
Weather
No description documented yet.
2 methods
src/sim/weather.py:9
No description documented yet.
__init__
No description documented yet.
src/sim/weather.py:10
WHAT IT DOES

No description documented yet.

SIGNATURE
__init__(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/weather.py:10
update
No description documented yet.
src/sim/weather.py:15
WHAT IT DOES

No description documented yet.

SIGNATURE
update(self)
PARAMETERS
self
RETURNS Not documented
SOURCE src/sim/weather.py:15
07
BARKLY DOCS

Modules

A lightweight map of source files and their discovered contents.

barkly_docs.py
66 symbols
10 imports
FUNCTIONS 50
CLASSES 6
IMPORTS 10
IMPORTS
__future__argparseasthashlibhtmljsonsubprocessdataclassespathlibtyping
bot/bot.py
17 symbols
10 imports
FUNCTIONS 9
CLASSES 2
IMPORTS 10
IMPORTS
asyncioasynciodiscorddiscord.extrequestsosdatetimeiomatplotlib.pyplotdotenv
esp32-firmware/firmware/config.py
0 symbols
0 imports
FUNCTIONS 0
CLASSES 0
IMPORTS 0
esp32-firmware/firmware/garden_api.py
11 symbols
4 imports
FUNCTIONS 0
CLASSES 1
IMPORTS 4
IMPORTS
urequestsjsontimenetwork
esp32-firmware/firmware/logger.py
9 symbols
2 imports
FUNCTIONS 0
CLASSES 1
IMPORTS 2
IMPORTS
timeos
esp32-firmware/firmware/main.py
3 symbols
7 imports
FUNCTIONS 3
CLASSES 0
IMPORTS 7
IMPORTS
timemachinepidsoil_sensorvalvewifi_managergarden_api
esp32-firmware/firmware/pid.py
3 symbols
0 imports
FUNCTIONS 0
CLASSES 1
IMPORTS 0
esp32-firmware/firmware/soil_sensor.py
7 symbols
2 imports
FUNCTIONS 0
CLASSES 1
IMPORTS 2
IMPORTS
machinetime
esp32-firmware/firmware/valve.py
7 symbols
2 imports
FUNCTIONS 0
CLASSES 1
IMPORTS 2
IMPORTS
machinetime
esp32-firmware/firmware/wifi_manager.py
9 symbols
2 imports
FUNCTIONS 0
CLASSES 1
IMPORTS 2
IMPORTS
networktime
src/auth.py
5 symbols
7 imports
FUNCTIONS 5
CLASSES 0
IMPORTS 7
IMPORTS
hashlibsecretsjwtfastapisqlalchemy.ormdbmodels
src/carriers.py
1 symbols
1 imports
FUNCTIONS 0
CLASSES 1
IMPORTS 1
IMPORTS
enum
src/db.py
3 symbols
7 imports
FUNCTIONS 3
CLASSES 0
IMPORTS 7
IMPORTS
threadingtimedatetimetypingcollectionssqlalchemysqlalchemy.orm
src/deps.py
1 symbols
4 imports
FUNCTIONS 1
CLASSES 0
IMPORTS 4
IMPORTS
fastapisqlalchemy.ormdbmodels
src/main.py
0 symbols
12 imports
FUNCTIONS 0
CLASSES 0
IMPORTS 12
IMPORTS
fastapifastapi.staticfilesdbmodelsroutes.bedsroutes.usersroutes.pagesroutes.notficsroutes.disroutes.apikeysroutes.bot_bridgeroutes.firebase
src/models.py
7 symbols
4 imports
FUNCTIONS 0
CLASSES 7
IMPORTS 4
IMPORTS
datetimeuuidsqlalchemydb
src/routes/__init__.py
0 symbols
0 imports
FUNCTIONS 0
CLASSES 0
IMPORTS 0
src/routes/apikeys.py
3 symbols
13 imports
FUNCTIONS 3
CLASSES 0
IMPORTS 13
IMPORTS
datetimetimerequestsfastapisqlalchemy.ormauthdbdbmodelsauthschemasdepsservices.notifications
src/routes/beds.py
34 symbols
11 imports
FUNCTIONS 34
CLASSES 0
IMPORTS 11
IMPORTS
datetimetimerequestsfastapisqlalchemy.ormauthdbmodelsschemasdepsservices.notifications
src/routes/bot_bridge.py
4 symbols
2 imports
FUNCTIONS 3
CLASSES 1
IMPORTS 2
IMPORTS
fastapipydantic
src/routes/dis.py
9 symbols
10 imports
FUNCTIONS 9
CLASSES 0
IMPORTS 10
IMPORTS
osdotenvrequestsurllib.parsefastapifastapi.responsessqlalchemy.ormdbmodelsauth
src/routes/firebase.py
3 symbols
10 imports
FUNCTIONS 3
CLASSES 0
IMPORTS 10
IMPORTS
fastapifastapi.responsessqlalchemy.ormsqlalchemysqlalchemy.orm.attributesdbmodelsschemasauthservices.notifications
src/routes/notfics.py
5 symbols
8 imports
FUNCTIONS 5
CLASSES 0
IMPORTS 8
IMPORTS
fastapifastapi.responsessqlalchemy.ormdbmodelsschemasauthservices.notifications
src/routes/pages.py
12 symbols
16 imports
FUNCTIONS 12
CLASSES 0
IMPORTS 16
IMPORTS
fastapifastapi.responsessqlalchemy.ormdbmodelsauthfastapi.responsesfastapifastapi.responsesfastapi.responsessqlalchemy.ormfastapifastapi.responsesfastapi.responsesfastapi.responsesfastapi.responses
src/routes/users.py
7 symbols
8 imports
FUNCTIONS 7
CLASSES 0
IMPORTS 8
IMPORTS
fastapifastapi.responsessqlalchemy.ormdbmodelsschemasauthservices.notifications
src/schemas.py
10 symbols
3 imports
FUNCTIONS 0
CLASSES 10
IMPORTS 3
IMPORTS
typingpydanticcarriers
src/services/__init__.py
0 symbols
0 imports
FUNCTIONS 0
CLASSES 0
IMPORTS 0
src/services/notifications.py
9 symbols
15 imports
FUNCTIONS 7
CLASSES 2
IMPORTS 15
IMPORTS
smtplibloggingosrequestsjsonemail.mime.textdatetimeenumdataclassestypingdotenvmodelsgoogle.auth.transport.requestsgoogle.oauth2.service_accountos
src/sim/bed-pid-contoller-sim.py
7 symbols
7 imports
FUNCTIONS 7
CLASSES 0
IMPORTS 7
IMPORTS
requestsrandomtimethreadingdatetimeosdotenv
src/sim/config.py
0 symbols
2 imports
FUNCTIONS 0
CLASSES 0
IMPORTS 2
IMPORTS
osdotenv
src/sim/events.py
7 symbols
3 imports
FUNCTIONS 0
CLASSES 1
IMPORTS 3
IMPORTS
randomconfigutils
src/sim/full-system-simulator.py
7 symbols
7 imports
FUNCTIONS 7
CLASSES 0
IMPORTS 7
IMPORTS
requestsrandomtimeosthreadingdatetimedotenv
src/sim/main.py
1 symbols
10 imports
FUNCTIONS 1
CLASSES 0
IMPORTS 10
IMPORTS
asynciotimethreadingweathersoilvalveplanteventsnetworkconfig
src/sim/network.py
2 symbols
6 imports
FUNCTIONS 2
CLASSES 0
IMPORTS 6
IMPORTS
requestsrandomtimedatetimeconfigutils
src/sim/plant.py
3 symbols
0 imports
FUNCTIONS 0
CLASSES 1
IMPORTS 0
src/sim/soil.py
7 symbols
1 imports
FUNCTIONS 0
CLASSES 1
IMPORTS 1
IMPORTS
email.mime
src/sim/utils.py
1 symbols
3 imports
FUNCTIONS 1
CLASSES 0
IMPORTS 3
IMPORTS
datetimeosconfig
src/sim/valve.py
3 symbols
0 imports
FUNCTIONS 0
CLASSES 1
IMPORTS 0
src/sim/weather.py
3 symbols
3 imports
FUNCTIONS 0
CLASSES 1
IMPORTS 3
IMPORTS
requestsrandomconfig
src/watchdog.py
1 symbols
4 imports
FUNCTIONS 1
CLASSES 0
IMPORTS 4
IMPORTS
threadingtimerequestsfastapi
08
BARKLY DOCS

Imports

Dependencies discovered from Python import statements.

DISCOVERED 70
SOURCE FILES 40
__future__argparseastasyncioauthcarrierscollectionsconfigdataclassesdatetimedbdepsdiscorddiscord.extdotenvemail.mimeemail.mime.textenumeventsfastapifastapi.responsesfastapi.staticfilesgarden_apigoogle.auth.transport.requestsgoogle.oauth2.service_accounthashlibhtmliojsonjwtloggingmachinematplotlib.pyplotmodelsnetworkospathlibpidplantpydanticrandomrequestsroutes.apikeysroutes.bedsroutes.bot_bridgeroutes.disroutes.firebaseroutes.notficsroutes.pagesroutes.usersschemassecretsservices.notificationssmtplibsoilsoil_sensorsqlalchemysqlalchemy.ormsqlalchemy.orm.attributessubprocessthreadingtimetypingurequestsurllib.parseutilsuuidvalveweatherwifi_manager
09
BARKLY DOCS

Lifecycle

The development path used by the project.

01
Idea
02
Research
03
Experiment
04
Prototype
05
Community Testing
06
Engineering
07
Productization
08
Release
09
Feedback
10
Continued Development
10
BARKLY DOCS

Git

Repository state and recent development history.

BRANCH
main
COMMIT
c490158
NEW FUNCTIONS
0
CHANGED FUNCTIONS
0
NEW CLASSES
0
CHANGED CLASSES
0
NEW ENDPOINTS
0
CHANGED ENDPOINTS
0
RECENT COMMITS
c490158|2026-09-27|working on getitng barkly dos implentnetd
8d05e09|2026-07-29|updated pythonfile for the hearbeat
a129c6b|2026-07-29|converted it to micropython
4c7d3e3|2026-07-29|working on esp32 code
f76f569|2026-07-29|added wifi sutff
e8de656|2026-05-23|setting up basic esp32frimware
c6d557d|2026-05-23|working on hardware code
259c379|2026-05-23|working on hardware code
11
BARKLY DOCS

Changelog

What BARKLY DOCS noticed changed between documentation generations.

DOCUMENTATION RUN
#1
Persistent documentation snapshot.
NEW FUNCTIONS
0
Detected since the previous documentation run.
CHANGED FUNCTIONS
0
Signatures, decorators, or documentation changed.
NEW CLASSES
0
Detected since the previous documentation run.
NEW ENDPOINTS
0
Detected since the previous documentation run.
How change detection works

BARKLY DOCS stores a small local snapshot of discovered symbols and compares the next scan against it. The scanner uses static Python AST analysis and never imports or executes the project.

On the first generation, the existing project becomes the baseline. Later generations can identify newly discovered and changed functions, methods, classes, and API endpoints.