https://github.com/albinati/home-energy-manager
· scanned 2026-06-17 01:31 UTC (1 month, 2 weeks ago)
221 raw signals (0 security + 221 graph)
Last scanned 1 month, 2 weeks ago · v2 · last Δ -20.9 (diff) · 170 actionable findings from 1 signal source. 51 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 5045 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
_fake_sim_result |
software | healthy | tests/test_mcp_simulate_plan.py:21 |
test_simulate_plan_valid_overrides_returns_plan |
software | healthy | tests/test_mcp_simulate_plan.py:41 |
test_simulate_plan_rejects_unknown_override_key |
software | healthy | tests/test_mcp_simulate_plan.py:54 |
test_simulate_plan_no_overrides_still_works |
software | healthy | tests/test_mcp_simulate_plan.py:65 |
test_simulate_plan_does_not_call_record_call |
software | healthy | tests/test_mcp_simulate_plan.py:71 |
test_simulate_plan_restores_config_after_override |
software | healthy | tests/test_mcp_simulate_plan.py:82 |
test_simulate_plan_rejects_out_of_range_dhw_temp |
software | healthy | tests/test_mcp_simulate_plan.py:97 |
test_simulate_plan_rejects_non_numeric_dhw_temp |
software | healthy | tests/test_mcp_simulate_plan.py:107 |
test_simulate_plan_rejects_invalid_preset |
software | healthy | tests/test_mcp_simulate_plan.py:117 |
test_simulate_plan_reports_ignored_overrides |
software | healthy | tests/test_mcp_simulate_plan.py:129 |
test_simulate_plan_response_shape_matches_across_ok_and_err… |
software | healthy | tests/test_mcp_simulate_plan.py:144 |
test_simulate_plan_passes_allow_daikin_refresh_false |
software | healthy | tests/test_mcp_simulate_plan.py:156 |
test_init_db_creates_file |
software | healthy | tests/test_bulletproof_db.py:10 |
_prod_db_path |
software | healthy | tests/test_conftest_isolation.py:24 |
test_autouse_fixture_redirects_config_db_path_to_tmp |
software | healthy | tests/test_conftest_isolation.py:28 |
test_upsert_action_writes_to_tmp_not_prod |
software | healthy | tests/test_conftest_isolation.py:44 |
_slot_starts |
software | healthy | tests/test_weather_cop_preprocess.py:12 |
test_forecast_cop_lift_disabled_matches_legacy_subtract |
software | healthy | tests/test_weather_cop_preprocess.py:16 |
test_forecast_night_temp_bias_applied_to_night_slots_only |
software | healthy | tests/test_weather_cop_preprocess.py:36 |
test_forecast_night_temp_bias_disabled_when_zero |
software | healthy | tests/test_weather_cop_preprocess.py:75 |
test_forecast_cop_lift_reduces_cop_when_enabled |
software | healthy | tests/test_weather_cop_preprocess.py:100 |
_four_slot_plan_with_standard_gap |
software | healthy | tests/test_lp_dispatch_gap_bridge.py:10 |
test_lp_dispatch_slots_match_lp_plan_no_gap_bridge_promotion |
software | healthy | tests/test_lp_dispatch_gap_bridge.py:41 |
asyncSetUp |
software | healthy | tests/test_mcp_cockpit_parity.py:23 |
test_get_system_timezone_shape |
software | healthy | tests/test_mcp_cockpit_parity.py:28 |
test_get_cockpit_now_returns_shape |
software | healthy | tests/test_mcp_cockpit_parity.py:36 |
test_get_cockpit_at_rejects_bad_iso |
software | healthy | tests/test_mcp_cockpit_parity.py:45 |
test_get_cockpit_at_empty_history_returns_ok_with_nulls |
software | healthy | tests/test_mcp_cockpit_parity.py:51 |
test_get_optimization_inputs_shape |
software | healthy | tests/test_mcp_cockpit_parity.py:57 |
test_get_attribution_day_handles_missing_row |
software | healthy | tests/test_mcp_cockpit_parity.py:67 |
_seed_one_run |
software | healthy | tests/test_mcp_cockpit_parity.py:78 |
test_get_lp_solution_returns_slots_and_inputs |
software | healthy | tests/test_mcp_cockpit_parity.py:123 |
test_find_lp_run_for_time_picks_run |
software | healthy | tests/test_mcp_cockpit_parity.py:133 |
test_find_lp_run_for_time_none_before_first_run |
software | healthy | tests/test_mcp_cockpit_parity.py:144 |
test_get_meteo_forecast_history_roundtrip |
software | healthy | tests/test_mcp_cockpit_parity.py:156 |
test_get_config_audit_roundtrip |
software | healthy | tests/test_mcp_cockpit_parity.py:170 |
test_get_daikin_telemetry_history_returns_list |
software | healthy | tests/test_mcp_cockpit_parity.py:180 |
_quantize |
software | healthy | tests/test_lp_price_quantization.py:18 |
test_small_negative_does_not_collapse_to_zero |
software | healthy | tests/test_lp_price_quantization.py:27 |
test_small_positive_rounds_up_conservatively |
software | healthy | tests/test_lp_price_quantization.py:35 |
test_zero_stays_zero |
software | healthy | tests/test_lp_price_quantization.py:43 |
test_exact_grid_values_unchanged |
software | healthy | tests/test_lp_price_quantization.py:47 |
test_quantization_preserves_negative_signal_on_realistic_ag… |
software | healthy | tests/test_lp_price_quantization.py:55 |
test_lp_solve_uses_conservative_quantization |
software | healthy | tests/test_lp_price_quantization.py:70 |
test_percentile_helper_endpoints |
software | healthy | tests/test_lp_peak_export_rank_bonus.py:29 |
test_percentile_helper_handles_ties |
software | healthy | tests/test_lp_peak_export_rank_bonus.py:36 |
test_percentile_helper_empty_and_single |
software | healthy | tests/test_lp_peak_export_rank_bonus.py:42 |
test_percentile_helper_partial_ties |
software | healthy | tests/test_lp_peak_export_rank_bonus.py:47 |
test_rank_bonus_solves_cleanly_on_flat_day |
software | healthy | tests/test_lp_peak_export_rank_bonus.py:59 |
test_rank_bonus_objective_term_only_when_export_prices_prov… |
software | healthy | tests/test_lp_peak_export_rank_bonus.py:105 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
.env.example |
software | healthy | .env.example |
CLAUDE.md |
software | healthy | CLAUDE.md |
CONTRIBUTING.md |
software | healthy | CONTRIBUTING.md |
CHANGELOG.md |
software | healthy | CHANGELOG.md |
requirements.txt |
software | healthy | requirements.txt |
README.md |
software | healthy | README.md |
pyproject.toml |
software | healthy | pyproject.toml |
SECURITY.md |
software | healthy | SECURITY.md |
LICENSE |
software | healthy | LICENSE |
NOTICE |
software | healthy | NOTICE |
requirements-dev.txt |
software | healthy | requirements-dev.txt |
CODE_OF_CONDUCT.md |
software | healthy | CODE_OF_CONDUCT.md |
Dockerfile |
software | healthy | Dockerfile |
test_mcp_simulate_plan.py |
software | healthy | tests/test_mcp_simulate_plan.py |
test_bulletproof_db.py |
software | healthy | tests/test_bulletproof_db.py |
test_conftest_isolation.py |
software | healthy | tests/test_conftest_isolation.py |
test_weather_cop_preprocess.py |
software | healthy | tests/test_weather_cop_preprocess.py |
test_lp_dispatch_gap_bridge.py |
software | healthy | tests/test_lp_dispatch_gap_bridge.py |
test_mcp_cockpit_parity.py |
software | healthy | tests/test_mcp_cockpit_parity.py |
test_lp_price_quantization.py |
software | healthy | tests/test_lp_price_quantization.py |
test_lp_peak_export_rank_bonus.py |
software | healthy | tests/test_lp_peak_export_rank_bonus.py |
test_realistic_day_scenarios.py |
software | healthy | tests/test_realistic_day_scenarios.py |
test_daikin_lwt_prefilter.py |
software | healthy | tests/test_daikin_lwt_prefilter.py |
test_runtime_settings.py |
software | healthy | tests/test_runtime_settings.py |
test_today_factor_scope.py |
software | healthy | tests/test_today_factor_scope.py |
test_fox_upload_overlap_guard.py |
software | healthy | tests/test_fox_upload_overlap_guard.py |
test_lp_restore_window.py |
software | healthy | tests/test_lp_restore_window.py |
test_daikin_status_summary.py |
software | healthy | tests/test_daikin_status_summary.py |
test_replan_preserves_daikin_actions.py |
software | healthy | tests/test_replan_preserves_daikin_actions.py |
test_db_load_profile.py |
software | healthy | tests/test_db_load_profile.py |
test_lwt_preheat.py |
software | healthy | tests/test_lwt_preheat.py |
test_daikin_passive_mode.py |
software | healthy | tests/test_daikin_passive_mode.py |
test_brief_expanded.py |
software | healthy | tests/test_brief_expanded.py |
test_legionella_uplift.py |
software | healthy | tests/test_legionella_uplift.py |
test_scheduler_dst_boundary.py |
software | healthy | tests/test_scheduler_dst_boundary.py |
test_appliance_learned_kw.py |
software | healthy | tests/test_appliance_learned_kw.py |
conftest.py |
software | healthy | tests/conftest.py |
test_fox_scheduler_groups.py |
software | healthy | tests/test_fox_scheduler_groups.py |
test_action_log_duration.py |
software | healthy | tests/test_action_log_duration.py |
test_fox_inflight_preserve.py |
software | healthy | tests/test_fox_inflight_preserve.py |
test_lp_dhw_shower_schedule.py |
software | healthy | tests/test_lp_dhw_shower_schedule.py |
test_lp_drop_mode_mutex.py |
software | healthy | tests/test_lp_drop_mode_mutex.py |
test_foxess_scheduler_readback.py |
software | healthy | tests/test_foxess_scheduler_readback.py |
test_runner_comfort_morning.py |
software | healthy | tests/test_runner_comfort_morning.py |
test_pv_cloud_aware_calibration.py |
software | healthy | tests/test_pv_cloud_aware_calibration.py |
test_notifier_openclaw_hooks.py |
software | healthy | tests/test_notifier_openclaw_hooks.py |
test_heuristic_restore_window.py |
software | healthy | tests/test_heuristic_restore_window.py |
test_daikin_write_budget_guard.py |
software | healthy | tests/test_daikin_write_budget_guard.py |
test_notification_redesign.py |
software | healthy | tests/test_notification_redesign.py |
test_fox_groups_overflow.py |
software | healthy | tests/test_fox_groups_overflow.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
TestSimulatePlanTool |
software | healthy | tests/test_mcp_simulate_plan.py:40 |
_DBReady |
software | healthy | tests/test_mcp_cockpit_parity.py:22 |
TestCockpitParityTools |
software | healthy | tests/test_mcp_cockpit_parity.py:27 |
TestLpSnapshotTools |
software | healthy | tests/test_mcp_cockpit_parity.py:77 |
TestHistoryTools |
software | healthy | tests/test_mcp_cockpit_parity.py:155 |
_Recorder |
software | healthy | tests/test_daikin_lwt_prefilter.py:47 |
_ReadOnlyClient |
software | healthy | tests/test_daikin_lwt_prefilter.py:112 |
_Job |
software | healthy | tests/test_runtime_settings.py:171 |
_Sched |
software | healthy | tests/test_runtime_settings.py:174 |
_FrozenDatetime |
software | healthy | tests/test_scheduler_dst_boundary.py:90 |
Dummy |
software | healthy | tests/test_foxess_scheduler_readback.py:40 |
_CaptureClient |
software | healthy | tests/test_foxess_scheduler_readback.py:54 |
NoGet |
software | healthy | tests/test_foxess_scheduler_readback.py:114 |
FlakyGet |
software | healthy | tests/test_foxess_scheduler_readback.py:129 |
Dev |
software | healthy | tests/test_runner_comfort_morning.py:79 |
TestResolveRoute |
software | healthy | tests/test_notifier_openclaw_hooks.py:46 |
TestHooksDelivery |
software | healthy | tests/test_notifier_openclaw_hooks.py:145 |
ImmediateThread |
software | healthy | tests/test_notifier_openclaw_hooks.py:297 |
TestDispatchLogsToActionLog |
software | healthy | tests/test_notifier_openclaw_hooks.py:227 |
TestNotifyPlanProposed |
software | healthy | tests/test_notifier_openclaw_hooks.py:244 |
TestPushAlert |
software | healthy | tests/test_notifier_openclaw_hooks.py:285 |
TestMcpSetNotificationRoute |
software | healthy | tests/test_notifier_openclaw_hooks.py:327 |
TestTierCBackfillSkipZeroDays |
software | healthy | tests/test_notification_redesign.py:31 |
TestTierBLPFailureLog |
software | healthy | tests/test_notification_redesign.py:79 |
TestTierAMorningBrief |
software | healthy | tests/test_notification_redesign.py:129 |
TestTierANightBrief |
software | healthy | tests/test_notification_redesign.py:193 |
_FakeDevice |
software | healthy | tests/test_daikin_2hourly_consumption.py:30 |
TestMarkdownToHtml |
software | healthy | tests/test_telegram_transport.py:63 |
TestIsConfigured |
software | healthy | tests/test_telegram_transport.py:133 |
TestSendMessage |
software | healthy | tests/test_telegram_transport.py:156 |
TestDispatchPrefersTelegram |
software | healthy | tests/test_telegram_transport.py:281 |
ImmediateThread |
software | healthy | tests/test_telegram_transport.py:406 |
TestPushAlertTelegramRendering |
software | healthy | tests/test_telegram_transport.py:427 |
TestApplianceTelegramHeader |
software | healthy | tests/test_telegram_transport.py:494 |
TestNotifyPlanProposedTelegram |
software | healthy | tests/test_telegram_transport.py:625 |
_HTTP429 |
software | healthy | tests/test_foxess_429_retry.py:22 |
_Resp |
software | healthy | tests/test_foxess_429_retry.py:33 |
TestMCPBriefData |
software | healthy | tests/test_mcp_brief_data.py:24 |
_TwoPhaseSolver |
software | healthy | tests/test_lp_infeasible_appliance_retry.py:95 |
_Dev |
software | healthy | tests/test_state_machine_frost.py:73 |
_Client |
software | healthy | tests/test_state_machine_frost.py:76 |
_Resp |
software | healthy | tests/test_quartz_open_provider.py:21 |
TestMCPServerFoxTools |
software | healthy | tests/test_mcp_server.py:26 |
TestMCPServerDaikinTools |
software | healthy | tests/test_mcp_server.py:134 |
_FakeDate |
software | healthy | tests/test_tier_boundary_scheduler.py:82 |
_FakeDateTime |
software | healthy | tests/test_tier_boundary_scheduler.py:127 |
_FakeResp |
software | healthy | tests/test_foxess_write_gate.py:13 |
_FakeDevice |
software | healthy | tests/test_daikin_daily_consumption.py:18 |
_FakeDev |
software | healthy | tests/test_vacation_mode.py:315 |
_FakeFoxClient |
software | healthy | tests/test_fox_cache_readthrough.py:28 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
GET /health |
api | healthy | quartz/app.py |
POST /forecast/ |
api | healthy | quartz/app.py |
GET /api/v1/metrics |
api | healthy | src/api/main.py |
GET /api/v1/schedule |
api | healthy | src/api/main.py |
GET /api/v1/schedule/history |
api | healthy | src/api/main.py |
GET /api/v1/action-log |
api | healthy | src/api/main.py |
GET /api/v1/weather |
api | healthy | src/api/main.py |
GET /api/v1/health |
api | healthy | src/api/main.py |
GET /api/v1/whoami |
api | healthy | src/api/main.py |
GET /api/v1/system/timezone |
api | healthy | src/api/main.py |
GET /api/v1/cockpit/now |
api | healthy | src/api/main.py |
GET /api/v1/attribution/day |
api | healthy | src/api/main.py |
GET /api/v1/cockpit/at |
api | healthy | src/api/main.py |
GET /api/v1/recent-triggers |
api | healthy | src/api/main.py |
GET /api/v1/optimization/inputs |
api | healthy | src/api/main.py |
GET /api/v1/daikin/quota |
api | healthy | src/api/main.py |
GET /api/v1/foxess/quota |
api | healthy | src/api/main.py |
GET /api/v1/daikin/dhw-schedule |
api | healthy | src/api/main.py |
GET /api/v1/daikin/heating-plan |
api | healthy | src/api/main.py |
GET /api/v1/daikin/consumption |
api | healthy | src/api/main.py |
GET /api/v1/settings |
api | healthy | src/api/main.py |
GET /api/v1/settings/{key} |
api | healthy | src/api/main.py |
PUT /api/v1/settings/{key} |
api | healthy | src/api/main.py |
DELETE /api/v1/settings/{key} |
api | healthy | src/api/main.py |
GET /api/v1/daikin/status |
api | healthy | src/api/main.py |
POST /api/v1/daikin/power |
api | healthy | src/api/main.py |
POST /api/v1/daikin/temperature |
api | healthy | src/api/main.py |
POST /api/v1/daikin/lwt-offset |
api | healthy | src/api/main.py |
POST /api/v1/daikin/mode |
api | healthy | src/api/main.py |
POST /api/v1/daikin/tank-temperature |
api | healthy | src/api/main.py |
POST /api/v1/daikin/tank-power |
api | healthy | src/api/main.py |
GET /api/v1/foxess/status |
api | healthy | src/api/main.py |
POST /api/v1/foxess/mode |
api | healthy | src/api/main.py |
POST /api/v1/foxess/charge-period |
api | healthy | src/api/main.py |
POST /api/v1/confirm/{action_id} |
api | healthy | src/api/main.py |
GET /api/v1/pending/{action_id} |
api | healthy | src/api/main.py |
GET /api/v1/openclaw/capabilities |
api | healthy | src/api/main.py |
POST /api/v1/openclaw/execute |
api | healthy | src/api/main.py |
POST /api/v1/assistant/recommend |
api | healthy | src/api/main.py |
POST /api/v1/assistant/apply |
api | healthy | src/api/main.py |
GET /api/v1/energy/monthly |
api | healthy | src/api/main.py |
GET /api/v1/energy/lifetime |
api | healthy | src/api/main.py |
GET /api/v1/energy/period |
api | healthy | src/api/main.py |
GET /api/v1/energy/report |
api | healthy | src/api/main.py |
GET /api/v1/energy/today-cumulative |
api | healthy | src/api/main.py |
GET /api/v1/export/opportunity |
api | healthy | src/api/main.py |
GET /api/v1/energy/insights |
api | healthy | src/api/main.py |
GET /api/v1/scheduler/status |
api | healthy | src/api/main.py |
POST /api/v1/scheduler/pause |
api | healthy | src/api/main.py |
POST /api/v1/scheduler/resume |
api | healthy | src/api/main.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
api |
software | healthy | tests/api |
smartthings |
software | healthy | tests/smartthings |
analytics |
software | healthy | tests/analytics |
fixtures |
software | healthy | tests/fixtures |
scheduler |
software | healthy | tests/scheduler |
scripts |
software | healthy | scripts |
.github |
software | healthy | .github |
ISSUE_TEMPLATE |
software | healthy | .github/ISSUE_TEMPLATE |
workflows |
software | healthy | .github/workflows |
quartz |
software | healthy | quartz |
src |
software | healthy | src |
foxess |
software | healthy | src/foxess |
api |
software | healthy | src/api |
routers |
software | healthy | src/api/routers |
smartthings |
software | healthy | src/smartthings |
analytics |
software | healthy | src/analytics |
google_calendar |
software | healthy | src/google_calendar |
cli |
software | healthy | src/cli |
daikin |
software | healthy | src/daikin |
energy |
software | healthy | src/energy |
scheduler |
software | healthy | src/scheduler |
assistant |
software | healthy | src/assistant |
docs |
software | healthy | docs |
openclaw-skill |
software | healthy | docs/openclaw-skill |
DAIKIN |
software | healthy | docs/DAIKIN |
archive |
software | healthy | docs/archive |
FOXESS |
software | healthy | docs/FOXESS |
deploy |
software | healthy | deploy |
skills |
software | healthy | skills |
home-energy-manager |
software | healthy | skills/home-energy-manager |
ui |
software | healthy | ui |
src |
software | healthy | ui/src |
components |
software | healthy | ui/src/components |
insights |
software | healthy | ui/src/components/insights |
home |
software | healthy | ui/src/components/home |
settings |
software | healthy | ui/src/components/settings |
cockpit |
software | healthy | ui/src/components/cockpit |
shell |
software | healthy | ui/src/components/shell |
common |
software | healthy | ui/src/components/common |
lib |
software | healthy | ui/src/lib |
routes |
software | healthy | ui/src/routes |
styles |
software | healthy | ui/src/styles |
design |
software | healthy | ui/design |
| Label | Layer | Status | Path |
|---|---|---|---|
api_call_log |
data | healthy | src/api_quota.py |
agile_rates |
data | healthy | src/db.py |
action_schedule |
data | healthy | src/db.py |
execution_log |
data | healthy | src/db.py |
action_log |
data | healthy | src/db.py |
optimizer_log |
data | healthy | src/db.py |
daily_targets |
data | healthy | src/db.py |
fox_schedule_state |
data | healthy | src/db.py |
acknowledged_warnings |
data | healthy | src/db.py |
octopus_fetch_state |
data | healthy | src/db.py |
meteo_forecast |
data | healthy | src/db.py |
meteo_forecast_snapshot |
data | healthy | src/db.py |
meteo_forecast_value |
data | healthy | src/db.py |
meteo_forecast_latest_state |
data | healthy | src/db.py |
notification_routes |
data | healthy | src/db.py |
plan_consent |
data | healthy | src/db.py |
calendar_events |
data | healthy | src/db.py |
dispatch_decisions |
data | healthy | src/db.py |
scenario_solve_log |
data | healthy | src/db.py |
forecast_skill_log |
data | healthy | src/db.py |
daikin_lwt_kw_calibration |
data | healthy | src/db.py |
fox_energy_daily |
data | healthy | src/db.py |
octopus_daily_meter |
data | healthy | src/db.py |
daikin_consumption_daily |
data | healthy | src/db.py |
daikin_consumption_2hourly |
data | healthy | src/db.py |
fox_realtime_snapshot |
data | healthy | src/db.py |
daikin_telemetry |
data | healthy | src/db.py |
runtime_settings |
data | healthy | src/db.py |
lp_solution_snapshot |
data | healthy | src/db.py |
lp_inputs_snapshot |
data | healthy | src/db.py |
lp_failure_log |
data | healthy | src/db.py |
meteo_forecast_history |
data | healthy | src/db.py |
config_audit |
data | healthy | src/db.py |
agile_export_rates |
data | healthy | src/db.py |
pv_realtime_history |
data | healthy | src/db.py |
pv_calibration_hourly |
data | healthy | src/db.py |
pv_calibration_hourly_cloud |
data | healthy | src/db.py |
pv_calibration_3d |
data | healthy | src/db.py |
pv_recent_bias |
data | healthy | src/db.py |
presence_periods |
data | healthy | src/db.py |
appliances |
data | healthy | src/db.py |
appliance_jobs |
data | healthy | src/db.py |
pv_error_log |
data | healthy | src/db.py |
export_opportunity_log |
data | healthy | src/db.py |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::deploy/compose.daikin-auth.yaml |
security | healthy | deploy/compose.daikin-auth.yaml |
auth::src/smartthings/client.py |
security | healthy | src/smartthings/client.py |
auth::deploy/README.md |
security | healthy | deploy/README.md |
auth::scripts/simulate_lp.py |
security | healthy | scripts/simulate_lp.py |
auth::src/smartthings/__init__.py |
security | healthy | src/smartthings/__init__.py |
auth::CLAUDE.md |
security | healthy | CLAUDE.md |
auth::src/smartthings/service.py |
security | healthy | src/smartthings/service.py |
auth::src/api/middleware.py |
security | healthy | src/api/middleware.py |
auth::tests/api/test_appliances.py |
security | healthy | tests/api/test_appliances.py |
auth::.env.example |
security | healthy | .env.example |
auth::src/config.py |
security | healthy | src/config.py |
auth::src/google_calendar/auth.py |
security | healthy | src/google_calendar/auth.py |
auth::tests/smartthings/test_auth.py |
security | healthy | tests/smartthings/test_auth.py |
auth::deploy/compose.google-auth.yaml |
security | healthy | deploy/compose.google-auth.yaml |
auth::docs/DAIKIN/README.md |
security | healthy | docs/DAIKIN/README.md |
auth::src/google_calendar/__init__.py |
security | healthy | src/google_calendar/__init__.py |
auth::scripts/hardware_roundtrip_test.py |
security | healthy | scripts/hardware_roundtrip_test.py |
auth::deploy/compose.smartthings-auth.yaml |
security | healthy | deploy/compose.smartthings-auth.yaml |
auth::src/api/routers/appliances.py |
security | healthy | src/api/routers/appliances.py |
auth::src/weather.py |
security | healthy | src/weather.py |
auth::README.md |
security | healthy | README.md |
auth::src/daikin/auth.py |
security | healthy | src/daikin/auth.py |
auth::src/google_calendar/__main__.py |
security | healthy | src/google_calendar/__main__.py |
auth::src/mcp_server.py |
security | healthy | src/mcp_server.py |
auth::docs/DAIKIN/onecta-openapi.json |
security | healthy | docs/DAIKIN/onecta-openapi.json |
auth::tests/test_quartz_forecast.py |
security | healthy | tests/test_quartz_forecast.py |
auth::src/smartthings/auth.py |
security | healthy | src/smartthings/auth.py |
auth::src/smartthings/__main__.py |
security | healthy | src/smartthings/__main__.py |
| Label | Layer | Status | Path |
|---|---|---|---|
172.30.0.1 |
network | healthy | .env.example |
127.0.0.1 |
network | healthy | .env.example |
120.0.0.0 |
network | healthy | src/foxess/client.py |
172.28.1.21 |
network | healthy | src/cli/__main__.py |
192.168.0.1 |
network | healthy | docs/DAIKIN/onecta-openapi.json |
192.168.0.2 |
network | healthy | docs/DAIKIN/onecta-openapi.json |
192.168.0.3 |
network | healthy | docs/DAIKIN/onecta-openapi.json |
192.168.0.31 |
network | healthy | docs/DAIKIN/onecta-openapi.json |
10.32.4.10 |
network | healthy | docs/DAIKIN/onecta-openapi.json |
172.17.0.1 |
network | healthy | deploy/compose.yaml |
172.30.0.0 |
network | healthy | deploy/compose.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
claude-review |
cicd | healthy | .github/workflows/claude-code-review.yml |
build |
cicd | healthy | .github/workflows/docker-publish.yml |
pytest |
cicd | healthy | .github/workflows/tests.yml |
lint-imports |
cicd | healthy | .github/workflows/tests.yml |
smoke |
cicd | healthy | .github/workflows/quartz-publish.yml |
build-and-push |
cicd | healthy | .github/workflows/quartz-publish.yml |
claude |
cicd | healthy | .github/workflows/claude.yml |
typecheck |
cicd | healthy | .github/workflows/ui-publish.yml |
build-and-push |
cicd | healthy | .github/workflows/ui-publish.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8000 |
network | healthy | Dockerfile |
port:14 |
network | healthy | .github/ISSUE_TEMPLATE/bug_report.yml |
port:1001 |
network | healthy | quartz/Dockerfile |
port:8080 |
network | healthy | deploy/compose.smartthings-auth.yaml |
port:80 |
network | healthy | deploy/compose.yaml |
port:5173 |
network | healthy | ui/vite.config.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
image::quartz/Dockerfile |
hardware | healthy | quartz/Dockerfile |
image::ui/Dockerfile |
hardware | healthy | ui/Dockerfile |
hem |
hardware | healthy | deploy/compose.yaml |
hem-ui |
hardware | healthy | deploy/compose.yaml |
hem-quartz |
hardware | healthy | deploy/compose.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::claude-code-review |
cicd | healthy | .github/workflows/claude-code-review.yml |
gha::docker-publish |
cicd | healthy | .github/workflows/docker-publish.yml |
gha::tests |
cicd | healthy | .github/workflows/tests.yml |
gha::quartz-publish |
cicd | healthy | .github/workflows/quartz-publish.yml |
gha::claude |
cicd | healthy | .github/workflows/claude.yml |
gha::ui-publish |
cicd | healthy | .github/workflows/ui-publish.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
/ |
frontend | healthy | ui/src/app.tsx |
/insights |
frontend | healthy | ui/src/app.tsx |
/report |
frontend | healthy | ui/src/app.tsx |
/settings |
frontend | healthy | ui/src/app.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
Report |
frontend | healthy | ui/src/routes/report.tsx |
Landing |
frontend | healthy | ui/src/routes/landing.tsx |
Settings |
frontend | healthy | ui/src/routes/settings.tsx |
Insights |
frontend | healthy | ui/src/routes/insights.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
CLAUDE_CODE_OAUTH_TOKEN |
cicd | healthy | — |
IMAGE_NAME |
cicd | healthy | — |
REGISTRY |
cicd | healthy | — |
GITHUB_TOKEN |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | CLAUDE.md |
redis |
data | healthy | tests/test_cockpit_cache.py |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::hetzner |
hardware | healthy | CLAUDE.md |
vps::azure |
hardware | healthy | docs/DAIKIN/onecta-openapi.json |
| Label | Layer | Status | Path |
|---|---|---|---|
albinati__home-energy-manager |
software | healthy | /data/fable5_failed_archive/albinati__home-energy-manager |
| Label | Layer | Status | Path |
|---|---|---|---|
nginx |
network | healthy | CLAUDE.md |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | ui/src/components/home/WeatherWidget.tsx |
This page is publicly accessible at:
https://repobility.com/scan/ead312f9-163e-4376-bed5-ea3901607651/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/ead312f9-163e-4376-bed5-ea3901607651/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.