Fujimod
Try your camera firmware in the browser and build Fujimod SD boot files.
Monitoring software as a service for backyard beekeepers
Translation pending
LifestyleGo · ShellGitHub @GratheonOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Weather forecasting microservice, used to enrich beehive context data
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Backend proxy service that makes request to third party weather service (open-meteo.com) and reports results in graphql format for frontend to consume.
Responsible for this view:
flowchart LR
web-app("<a href='https://github.com/Gratheon/web-app'>web-app</a>") --> graphql-router
graphql-router --"poll schema"--> graphql-schema-registry
graphql-router --> weather("<a href='https://github.com/Gratheon/weather'>weather</a>")
weather --"register schema"-->graphql-schema-registry
weather(lat: String!, lng: String!): JSONGet current weather forecast from Open-Meteo API.
weatherEstonia(lat: String!, lng: String!): JSONGet weather forecast specifically for Estonia from ilmateenistus.ee.
historicalWeather(lat: String!, lng: String!, startDate: String!, endDate: String!, stepHours: Int = 1): HistoricalWeatherDataGet historical weather data from Open-Meteo archive API.
stepHours can be used to downsample hourly data server-side (for example, stepHours: 3 returns every third hour) to reduce response size for long time ranges.
historicalWeatherCompact(lat: String!, lng: String!, startDate: String!, endDate: String!, stepHours: Int = 1): HistoricalWeatherCompactDataCompact variant of historical weather where each metric is returned as:
startTimestepHoursvalues: [Float]This avoids repeating time/value object keys for every point and is more efficient for large time ranges.
Example Query:
query {
historicalWeather(
lat: "59.43",
lng: "24.75",
startDate: "2024-01-01",
endDate: "2024-01-31"
) {
solarRadiation {
diffuse_radiation { time value }
direct_radiation { time value }
}
wind {
wind_speed_10m { time value }
wind_gusts_10m { time value }
}
cloudCover {
cloud_cover_low { time value }
cloud_cover_mid { time value }
cloud_cover_high { time value }
}
rain {
rain { time value }
}
pollen {
ragweed_pollen { time value }
alder_pollen { time value }
birch_pollen { time value }
grass_pollen { time value }
mugwort_pollen { time value }
olive_pollen { time value }
}
pollution {
pm2_5 { time value }
pm10 { time value }
}
}
}
just start
go test ./...
historicalWeather responses can be cached in Redis to speed up repeated insights/time-view graph loads (for example, 90-day history).
Environment variables:
REDIS_HOST (empty = cache disabled)REDIS_PORT (default: 6379)REDIS_PASSWORD (default: empty)REDIS_DB (default: 0)HISTORICAL_WEATHER_CACHE_TTL_SECONDS (default: 1800)This project is dual-licensed:
AGPL v3 - For open source use:
Commercial License - For enterprise customers who need:
If you'd like to contribute, please see our Contributing Guide and sign our Contributor License Agreement (CLA).