{
    "ready": true,
    "site": {
        "id": 0,
        "domain": "markus-haack.com",
        "display_name": "Hi, my name is Markus, I'm a home automation enthusiast and soft…",
        "primary_country_code": "",
        "category_name": "Personal"
    },
    "metrics": {
        "global_rank": 1998,
        "country_rank": 1025,
        "category_rank": 1,
        "daily_pageviews_per_visitor": 4.13,
        "daily_time_on_site_seconds": 343,
        "bounce_rate": 28.58,
        "search_visits_percent": 42.41,
        "total_sites_linking_in": 3,
        "monthly_unique_visitors": 322,
        "recorded_at": "2026-03-31 03:04:26"
    },
    "audit": {
        "score": 99
    },
    "traffic_sources": {
        "direct_percent": 27.02,
        "search_percent": 34.81,
        "social_percent": 11.51,
        "referral_percent": 12.24,
        "email_percent": 6.2,
        "paid_percent": 8.22
    },
    "seo_profile": {
        "backlinks_total": 3,
        "referring_domains": 3,
        "dofollow_backlinks_percent": 66.67,
        "organic_keywords": 95,
        "indexed_pages": 90,
        "page_speed_score": 100,
        "mobile_friendliness_score": 95,
        "authority_score": 48,
        "spam_risk_score": 15
    },
    "crawl_report": {
        "robots_status": 200,
        "sitemap_status": 200,
        "sitemap_total_urls": 90,
        "crawl_blocked": false,
        "crawl_blocked_by": "",
        "crawl_blocked_reason": "",
        "notes": [],
        "created_at": "2026-03-31 03:04:26"
    },
    "keywords": [
        {
            "keyword": "Hi, my name is Markus, I'm a home automation enthusiast and soft…",
            "position": 18,
            "search_engine": "Estimated",
            "checked_at": "2026-04-19 10:43:45",
            "is_estimated": true
        },
        {
            "keyword": "Hi, my name is Markus, I'm a home automation enthusiast and soft… personal",
            "position": 20,
            "search_engine": "Estimated",
            "checked_at": "2026-04-19 10:43:45",
            "is_estimated": true
        },
        {
            "keyword": "Hi, my name is Markus, I'm a home automation enthusiast and soft… reviews",
            "position": 22,
            "search_engine": "Estimated",
            "checked_at": "2026-04-19 10:43:45",
            "is_estimated": true
        },
        {
            "keyword": "name",
            "position": 24,
            "search_engine": "Estimated",
            "checked_at": "2026-04-19 10:43:45",
            "is_estimated": true
        },
        {
            "keyword": "markus",
            "position": 26,
            "search_engine": "Estimated",
            "checked_at": "2026-04-19 10:43:45",
            "is_estimated": true
        },
        {
            "keyword": "automation",
            "position": 28,
            "search_engine": "Estimated",
            "checked_at": "2026-04-19 10:43:45",
            "is_estimated": true
        },
        {
            "keyword": "enthusiast",
            "position": 30,
            "search_engine": "Estimated",
            "checked_at": "2026-04-19 10:43:45",
            "is_estimated": true
        },
        {
            "keyword": "and",
            "position": 32,
            "search_engine": "Estimated",
            "checked_at": "2026-04-19 10:43:45",
            "is_estimated": true
        }
    ],
    "rating": {
        "overall": 64,
        "label": "Healthy",
        "breakdown": [
            {
                "label": "Technical foundation",
                "score": 18,
                "max": 18
            },
            {
                "label": "Authority & trust",
                "score": 15,
                "max": 30
            },
            {
                "label": "Reach & market presence",
                "score": 5,
                "max": 18
            },
            {
                "label": "Search visibility",
                "score": 3,
                "max": 12
            },
            {
                "label": "Engagement & retention",
                "score": 9,
                "max": 10
            },
            {
                "label": "Channels & diversification",
                "score": 5,
                "max": 6
            },
            {
                "label": "Registry stability",
                "score": 4,
                "max": 6
            },
            {
                "label": "Quality system",
                "score": 100,
                "max": 100
            },
            {
                "label": "Reputation system",
                "score": 50,
                "max": 100
            },
            {
                "label": "Safety system",
                "score": 100,
                "max": 100
            },
            {
                "label": "Evidence confidence",
                "score": 100,
                "max": 100
            }
        ],
        "authority_score": 50,
        "quality_score": 100,
        "reputation_score": 50,
        "safety_score": 100,
        "confidence_score": 100,
        "fraud_score": 1,
        "authority_signals": {
            "backlinks": 3,
            "referring_domains": 3,
            "organic_keywords": 95,
            "indexed_pages": 90,
            "monthly_visitors": 322,
            "global_rank": 1998,
            "engagement_score": 82,
            "crawl_quality_score": 100,
            "brand_completeness_score": 82,
            "link_diversity_score": 94,
            "technical_reliability_score": 97,
            "whois_score": 63,
            "whois_age_years": 7.6,
            "whois_stability_score": 100,
            "spam_penalty": 0
        },
        "whois_signals": {
            "age_years": 7.6,
            "days_to_expiry": 148,
            "days_since_last_registry_update": 248,
            "stability_score": 100,
            "registrar_changes": 0,
            "ownership_changes": 0,
            "nameserver_changes": 0,
            "status_changes": 0,
            "history_entries": 1,
            "privacy_protected": false,
            "dnssec_enabled": false,
            "has_registrant_country": false,
            "registrant_country": "",
            "nameserver_count": 4,
            "status_count": 1
        }
    },
    "authority_score": 50,
    "trust_score": 80,
    "domain_tags": {
        "primary_tag": "T",
        "primary_tag_score": 86,
        "primary_candidate": "T",
        "primary_candidate_score": 86,
        "tag_codes": "T,Uncertain",
        "tags": [
            {
                "code": "T",
                "label": "Trusted",
                "tone": "good",
                "description": "Strong trust, stability, and low-risk signals were detected.",
                "reason": "Low spam indicators plus strong trust, quality, registry, and stability signals were detected.",
                "message": "The site shows a reasonably trustworthy and stable profile.",
                "priority": 86,
                "score": 86,
                "match_percent": 86,
                "threshold_band": "strong"
            },
            {
                "code": "Uncertain",
                "label": "Uncertain",
                "tone": "unknown",
                "description": "External checks stayed inconclusive, so the model avoided a harder verdict.",
                "reason": "External checks stayed inconclusive, so the system kept an uncertainty buffer.",
                "message": "The evidence is materially mixed or partially corroborated, so the model is avoiding a harder verdict.",
                "priority": 68,
                "score": 68,
                "match_percent": 68,
                "threshold_band": "strong"
            }
        ],
        "tag_breakdown": [
            {
                "code": "T",
                "label": "Trusted",
                "tone": "good",
                "description": "Strong trust, stability, and low-risk signals were detected.",
                "reason": "Low spam indicators plus strong trust, quality, registry, and stability signals were detected.",
                "message": "The site shows a reasonably trustworthy and stable profile.",
                "priority": 86,
                "score": 86,
                "match_percent": 86,
                "threshold_band": "strong"
            },
            {
                "code": "Uncertain",
                "label": "Uncertain",
                "tone": "unknown",
                "description": "External checks stayed inconclusive, so the model avoided a harder verdict.",
                "reason": "External checks stayed inconclusive, so the system kept an uncertainty buffer.",
                "message": "The evidence is materially mixed or partially corroborated, so the model is avoiding a harder verdict.",
                "priority": 68,
                "score": 68,
                "match_percent": 68,
                "threshold_band": "strong"
            },
            {
                "code": "Infra",
                "label": "Risky infrastructure",
                "tone": "caution",
                "description": "The hosting / registrar / nameserver neighbourhood looks unusually risky.",
                "reason": "The infrastructure neighbourhood looks riskier than normal.",
                "message": "Infrastructure risk does not currently stand out.",
                "priority": 6,
                "score": 6,
                "match_percent": 6,
                "threshold_band": "none"
            },
            {
                "code": "C",
                "label": "Caution",
                "tone": "caution",
                "description": "Signals are mixed or weak, so this domain should be treated carefully.",
                "reason": "Review carefully: mixed trust signals.",
                "message": "The current crawl does not show a meaningful caution match.",
                "priority": 0,
                "score": 0,
                "match_percent": 0,
                "threshold_band": "none"
            },
            {
                "code": "Crypto",
                "label": "Crypto drainer risk",
                "tone": "toxic",
                "description": "Wallet-connect or seed-phrase theft patterns were detected.",
                "reason": "Wallet-connect or seed-phrase theft patterns were detected.",
                "message": "No meaningful crypto-drainer signals were detected.",
                "priority": 0,
                "score": 0,
                "match_percent": 0,
                "threshold_band": "none"
            }
        ],
        "nsfw_score": 0,
        "trust_score": 81,
        "manual": {
            "has_changes": false,
            "verified_status": "",
            "tag_codes": "",
            "rating_delta": 0,
            "authority_delta": 0,
            "trust_delta": 0,
            "note": "",
            "adjusted_by": 0,
            "adjusted_at": "",
            "lock_scores": false,
            "lock_flags": false
        },
        "summary": "Trusted (86% match) because low spam indicators plus strong trust, quality, registry, and stability signals were detected.",
        "external_intel": {
            "domain": "markus-haack.com",
            "candidate_tag": "T",
            "checked_at": "2026-04-19T10:43:45+00:00",
            "status": "queued",
            "snapshot_version": 9,
            "summary": "External intelligence is now manual-only. Use Refresh data to trigger search and review intelligence gathering for this domain.",
            "search_intelligence": {
                "queries": [],
                "providers": [],
                "results_found": 0,
                "results": [],
                "source_mix": [],
                "entity_coverage_score": 0
            },
            "review_intelligence": {
                "documents_fetched": 0,
                "documents": [],
                "facts": [],
                "ignored_candidates": [],
                "source_diversity": 0,
                "elapsed_ms": 0,
                "candidates_considered": 0,
                "fetch_success_rate": 0,
                "avg_source_trust": 0,
                "avg_entity_score": 0
            },
            "evidence": {
                "scores": [],
                "counts": [],
                "tag_support": [],
                "top_supporting_facts": [],
                "top_positive_facts": []
            },
            "quality": {
                "source_diversity_score": 0,
                "entity_coverage_score": 0,
                "freshness_score": 0,
                "confidence": 0,
                "documents_fetched": 0,
                "fact_count": 0,
                "avg_source_trust": 0,
                "avg_entity_score": 0,
                "fetch_success_rate": 0,
                "exact_match_score": 0,
                "query_coverage_score": 0
            },
            "decision": {
                "state": "insufficient",
                "uncertainty": true,
                "candidate_support": 0,
                "candidate_contradiction": 0,
                "supports": [],
                "evidence_quality": "low",
                "state_label": "Inconclusive",
                "state_reason": "Search and review intelligence has not produced enough qualified evidence yet to harden the verdict."
            },
            "signals": {
                "scores": [],
                "counts": [],
                "candidate_support": 0,
                "candidate_contradiction": 0,
                "highlights": []
            },
            "citations": [],
            "urlscan": [],
            "provider_enrichment": {
                "providers": [],
                "facts": [],
                "citations": [],
                "highlights": [],
                "quality": {
                    "provider_diversity_score": 0,
                    "provider_confidence_score": 0,
                    "provider_fact_count": 0
                }
            },
            "eligibility": [],
            "cooldown": [],
            "debug": []
        },
        "external_decision": {
            "state": "insufficient",
            "uncertainty": true,
            "candidate_support": 0,
            "candidate_contradiction": 0,
            "supports": [],
            "evidence_quality": "low",
            "state_label": "Inconclusive",
            "state_reason": "Search and review intelligence has not produced enough qualified evidence yet to harden the verdict."
        },
        "signal_scores": [
            {
                "label": "Strongest tag heuristic",
                "value": "T · 86%",
                "tone": "good",
                "detail": "The highest raw tag match from the heuristic engine before visibility thresholds and manual overrides."
            },
            {
                "label": "Trust score",
                "value": "81/100",
                "tone": "good",
                "detail": "Confidence derived from authority, crawl quality, stability, and risk signals."
            },
            {
                "label": "Authority score",
                "value": "50/100",
                "tone": "caution",
                "detail": "A higher authority score usually means broader reputation and backlink confidence."
            },
            {
                "label": "Spam risk",
                "value": "0/100",
                "tone": "good",
                "detail": "Lower is better. This blends spam indicators with false-positive protections for legitimate sites."
            },
            {
                "label": "Quality score",
                "value": "100/100",
                "tone": "good",
                "detail": "Based on crawl quality, content completeness, and technical evidence."
            },
            {
                "label": "Safety score",
                "value": "100/100",
                "tone": "good",
                "detail": "Higher is safer. Direct fraud signals can heavily cap this even when SEO signals look strong."
            },
            {
                "label": "Fraud score",
                "value": "1/100",
                "tone": "good",
                "detail": "Lower is better. This reflects phishing, drainer, fake-support, fake-shop, and malware signals."
            },
            {
                "label": "Infrastructure risk",
                "value": "6/100",
                "tone": "good",
                "detail": "Lower is better. This reflects the IP, registrar, and nameserver neighbourhood seen by the crawler."
            },
            {
                "label": "Evidence confidence",
                "value": "100/100",
                "tone": "good",
                "detail": "Higher means the crawler had enough pages and registry evidence to make a stronger call."
            },
            {
                "label": "External evidence",
                "value": "Low",
                "tone": "unknown",
                "detail": "Quality of the structured search and review evidence cluster."
            },
            {
                "label": "External decision",
                "value": "Inconclusive",
                "tone": "unknown",
                "detail": "How third-party evidence compares with the current candidate tag."
            },
            {
                "label": "NSFW score",
                "value": "0/100",
                "tone": "good",
                "detail": "Context-aware adult-content detection with medical / educational false-positive reduction."
            },
            {
                "label": "Registry stability",
                "value": "100/100",
                "tone": "good",
                "detail": "Based on age, expiry runway, and the amount of ownership / registrar churn."
            }
        ],
        "signal_sections": [
            {
                "title": "Registry & ownership",
                "items": [
                    {
                        "label": "Domain age",
                        "value": "7.6 years",
                        "tone": "good",
                        "detail": "Older domains generally carry more historical trust than very new ones."
                    },
                    {
                        "label": "Stability score",
                        "value": "100/100",
                        "tone": "good",
                        "detail": "Penalised by registrar, ownership, and nameserver churn."
                    },
                    {
                        "label": "Days to expiry",
                        "value": "148",
                        "tone": "good",
                        "detail": "Very short renewal windows can be a weak trust signal."
                    },
                    {
                        "label": "Registrar / ownership changes",
                        "value": "0 / 0",
                        "tone": "good",
                        "detail": "Frequent ownership churn can weaken trust."
                    },
                    {
                        "label": "Nameserver changes",
                        "value": "0",
                        "tone": "good",
                        "detail": "Repeated infrastructure changes can indicate instability."
                    },
                    {
                        "label": "DNSSEC / privacy",
                        "value": "DNSSEC off · privacy off",
                        "tone": "caution",
                        "detail": "DNSSEC strengthens DNS trust; privacy is neutral on its own."
                    }
                ]
            },
            {
                "title": "Reputation & search evidence",
                "items": [
                    {
                        "label": "Backlinks",
                        "value": "3",
                        "tone": "unknown",
                        "detail": "Broader backlink evidence usually improves confidence."
                    },
                    {
                        "label": "Referring domains",
                        "value": "3",
                        "tone": "unknown",
                        "detail": "Unique linking domains are more useful than raw link volume."
                    },
                    {
                        "label": "Organic keywords",
                        "value": "95",
                        "tone": "caution",
                        "detail": "Search footprint helps distinguish real sites from thin shells."
                    },
                    {
                        "label": "Indexed pages",
                        "value": "90",
                        "tone": "caution",
                        "detail": "Larger index coverage usually means more evidence to classify from."
                    },
                    {
                        "label": "Brand strength",
                        "value": "82/100",
                        "tone": "good",
                        "detail": "Stronger brand signals reduce false positives for legitimate sites."
                    },
                    {
                        "label": "Risk label",
                        "value": "GOOD",
                        "tone": "unknown",
                        "detail": "This is the raw crawl / heuristic risk label feeding the tag model."
                    }
                ]
            },
            {
                "title": "Crawl, content & technicals",
                "items": [
                    {
                        "label": "HTTP status",
                        "value": "200",
                        "tone": "good",
                        "detail": "Healthy responses make classification more reliable."
                    },
                    {
                        "label": "HTTPS / speed",
                        "value": "HTTPS OK · 212 ms",
                        "tone": "good",
                        "detail": "Slow or broken technical signals weaken confidence."
                    },
                    {
                        "label": "Content words",
                        "value": "433",
                        "tone": "caution",
                        "detail": "Thin pages are harder to trust and easier to manipulate."
                    },
                    {
                        "label": "Schema / structure",
                        "value": "1 schema · meta · H1",
                        "tone": "caution",
                        "detail": "Structured markup and basic on-page hygiene improve quality confidence."
                    },
                    {
                        "label": "Links on page",
                        "value": "18 internal · 7 external",
                        "tone": "good",
                        "detail": "Link patterns help detect thin directories and promo pages."
                    },
                    {
                        "label": "Page speed / mobile",
                        "value": "100/100 · 95/100",
                        "tone": "good",
                        "detail": "Better technical quality generally reduces low-effort site patterns."
                    },
                    {
                        "label": "Crawl access",
                        "value": "Open",
                        "tone": "good",
                        "detail": "The crawler reached the site without an anti-bot challenge."
                    }
                ]
            },
            {
                "title": "External evidence & explainability",
                "items": [
                    {
                        "label": "Decision state",
                        "value": "Inconclusive",
                        "tone": "unknown",
                        "detail": "Search and review intelligence has not produced enough qualified evidence yet to harden the verdict."
                    },
                    {
                        "label": "Evidence quality",
                        "value": "Low",
                        "tone": "unknown",
                        "detail": "Blends source trust, domain matching, evidence diversity, and freshness."
                    },
                    {
                        "label": "Support vs contradiction",
                        "value": "0 / 0",
                        "tone": "unknown",
                        "detail": "Compares how much structured external evidence supports the candidate tag against evidence that contradicts it."
                    },
                    {
                        "label": "Qualified risk sources",
                        "value": "No",
                        "tone": "good",
                        "detail": "Risk tags only promote from external evidence when source diversity or source trust thresholds are met."
                    },
                    {
                        "label": "Uncertainty buffer",
                        "value": "Active",
                        "tone": "caution",
                        "detail": "Prevents thin or mixed external evidence from forcing a stronger tag than the evidence can justify."
                    }
                ]
            }
        ],
        "positives": [
            "Established domain age: 7.6 years.",
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness."
        ],
        "risks": [
            "External evidence was mixed or sparse, so the tag model keeps an uncertainty buffer instead of overcommitting."
        ]
    },
    "traffic_confidence": 79,
    "whois": {
        "current": {
            "id": 16278,
            "domain": "markus-haack.com",
            "source_type": "rdap",
            "rdap_url": "https://rdap.verisign.com/com/v1/domain/MARKUS-HAACK.COM",
            "registrar_name": "Name.com, Inc.",
            "registrar_handle": "625",
            "registrant_name": "",
            "registrant_org": "",
            "registrant_country": "",
            "registrant_email": "",
            "abuse_email": "abuse@name.com",
            "created_date": "2018-09-14 13:22:13",
            "updated_date": "2025-08-13 15:58:19",
            "expires_date": "2026-09-14 13:22:13",
            "nameservers_json": "[\"dns1.p07.nsone.net\",\"dns2.p07.nsone.net\",\"dns3.p07.nsone.net\",\"dns4.p07.nsone.net\"]",
            "status_json": "[\"client transfer prohibited\"]",
            "dnssec": "unsigned",
            "privacy_protected": 0,
            "content_hash": "71dc163d8904c2e6bb439bda1da9adc18b5a949876a6427368db1c8c3ac23e63",
            "history_count": 1,
            "last_checked_at": "2026-03-17 07:34:50",
            "last_changed_at": "2026-03-17 07:34:50",
            "created_at": "2026-03-17 07:34:50",
            "updated_at": "2026-03-17 07:34:50"
        },
        "history": [
            {
                "id": 16590,
                "domain": "markus-haack.com",
                "source_type": "rdap",
                "registrar_name": "Name.com, Inc.",
                "registrar_handle": "625",
                "registrant_name": "",
                "registrant_org": "",
                "registrant_country": "",
                "registrant_email": "",
                "abuse_email": "abuse@name.com",
                "created_date": "2018-09-14 13:22:13",
                "updated_date": "2025-08-13 15:58:19",
                "expires_date": "2026-09-14 13:22:13",
                "nameservers_json": "[\"dns1.p07.nsone.net\",\"dns2.p07.nsone.net\",\"dns3.p07.nsone.net\",\"dns4.p07.nsone.net\"]",
                "status_json": "[\"client transfer prohibited\"]",
                "dnssec": "unsigned",
                "privacy_protected": 0,
                "content_hash": "71dc163d8904c2e6bb439bda1da9adc18b5a949876a6427368db1c8c3ac23e63",
                "checked_at": "2026-03-17 07:34:50",
                "change_summary": "Initial WHOIS snapshot captured.",
                "created_at": "2026-03-17 07:34:50"
            }
        ],
        "signals": {
            "age_years": 7.6,
            "days_to_expiry": 148,
            "days_since_last_registry_update": 248,
            "stability_score": 100,
            "registrar_changes": 0,
            "ownership_changes": 0,
            "nameserver_changes": 0,
            "status_changes": 0,
            "history_entries": 1,
            "privacy_protected": false,
            "dnssec_enabled": false,
            "has_registrant_country": false,
            "registrant_country": "",
            "nameserver_count": 4,
            "status_count": 1
        }
    },
    "discovered_domain": {
        "id": 80465,
        "domain": "markus-haack.com",
        "first_seen_at": "2026-03-15 20:24:34",
        "last_crawled_at": "2026-03-31 03:04:26",
        "last_title": "Hi, my name is Markus, I'm a home automation enthusiast and software developer.",
        "last_http_status": 200,
        "discovered_from_domain": "personalsit.es",
        "depth": 0,
        "backlinks_count": 3,
        "rating_cache": 52,
        "spam_score": 24,
        "risk_label": "good",
        "category_name": "Personal",
        "primary_country_code": "",
        "internal_links_count": 18,
        "external_links_count": 7,
        "social_profiles_count": 4,
        "content_word_count": 433,
        "title_quality_score": 67,
        "has_meta_description": 1,
        "has_h1": 1,
        "language_code": "en",
        "response_time_ms": 212,
        "robots_status": 200,
        "sitemap_status": 200,
        "sitemap_total_urls": 90,
        "quality_score": 100,
        "site_name": "Markus Haack // Software Engineer",
        "canonical_domain": "",
        "favicon_present": 1,
        "schema_org_count": 1,
        "noindex_detected": 0,
        "feed_links_count": 1,
        "https_working": 1,
        "estimated_authority_score": 40,
        "trust_score": 95,
        "nsfw_score": 0,
        "overall_rank_estimate": 1382947,
        "primary_tag": "T",
        "tag_codes": "T",
        "manual_verified_status": "",
        "manual_tag_codes": "",
        "manual_rating_delta": 0,
        "manual_authority_delta": 0,
        "manual_trust_delta": 0,
        "manual_note": null,
        "manual_adjusted_by": null,
        "manual_adjusted_at": null,
        "manual_lock_scores": 0,
        "manual_lock_flags": 0,
        "crawl_blocked": 0,
        "crawl_blocked_by": "",
        "crawl_blocked_reason": null,
        "safety_score": 100,
        "fraud_score": 1,
        "legitimacy_score": 65,
        "infrastructure_risk_score": 6,
        "score_confidence": 100,
        "tag_confidence": 72,
        "category_confidence": 51,
        "deep_crawl_pages": 50,
        "resolved_ip": "35.157.26.135",
        "category_candidates_json": "[{\"category\":\"Personal\",\"score\":44},{\"category\":\"Business\",\"score\":22},{\"category\":\"News & Media\",\"score\":17},{\"category\":\"Technology\",\"score\":17}]",
        "page_signals_json": "[{\"path\":\"/about\",\"status\":200,\"title\":\"Markus Haack: Technology, Smart Home Automation, and Personal Blog\",\"word_count\":455,\"summary_text\":\"Markus Haack: Technology, Smart Home Automation, and Personal Blog Markus Haack: Technology, Smart Home Automation, and Personal BlogSkip to main content ProjectsWorkAboutAbout MarkusHi, I’m Markus Haack and this site is my virtual online home, my little corner of the internet.Thanks for stopping by#About me: I’m a Senior Technical Lead at Adobe working on AEM Content &amp; Commerce. Our team builds and maintains e-commerce integration for Adobe Experience Manager. If you are interested to find out more, see my work section. You can view my LinkedIn profile for all the gory details.Home in the world#Together with my wonderful wife, our daughter, and our 2 cats I live in the beautiful city of Leipzig, Germany.If time allows I play with Nintendo consoles, old and new ones. I’m interested in various electronic topics, Arduino micro controllers &amp; IOT stuf\",\"classification_terms\":[\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/about/\",\"status\":200,\"title\":\"Markus Haack: Technology, Smart Home Automation, and Personal Blog\",\"word_count\":455,\"summary_text\":\"Markus Haack: Technology, Smart Home Automation, and Personal Blog Markus Haack: Technology, Smart Home Automation, and Personal BlogSkip to main content ProjectsWorkAboutAbout MarkusHi, I’m Markus Haack and this site is my virtual online home, my little corner of the internet.Thanks for stopping by#About me: I’m a Senior Technical Lead at Adobe working on AEM Content &amp; Commerce. Our team builds and maintains e-commerce integration for Adobe Experience Manager. If you are interested to find out more, see my work section. You can view my LinkedIn profile for all the gory details.Home in the world#Together with my wonderful wife, our daughter, and our 2 cats I live in the beautiful city of Leipzig, Germany.If time allows I play with Nintendo consoles, old and new ones. I’m interested in various electronic topics, Arduino micro controllers &amp; IOT stuf\",\"classification_terms\":[\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/tags/home-automation/\",\"status\":200,\"title\":\"Posts tagged with home-automation\",\"word_count\":868,\"summary_text\":\"Posts tagged with home-automation Posts tagged with home-automationSkip to main content ProjectsWorkAboutPosts tagged with home-automationMay 4, 2025 · 11 min read 1640 viewsMake Your Reolink Camera Speak with Home Assistant TTS &amp; AIUse Home Assistant to turn camera motion into AI-powered spoken descriptions. Snapshot, analyze with AI, and push to your speaker with text-to-speech. Your smart home can now tell you what's happening outside!April 22, 2025 · 9 min read 18570 viewsWeather Cards in Home Assistant: My Top PicksThis Home Assistant guide compares popular weather cards including the built-in Weather Forecast Card and community alternatives like Clock Weather Card, Platinum Weather Card, and Simple Weather Card. The author provides setup instructions and recommendations for choosing between minimalist or feature-\",\"classification_terms\":[\"tags/home-automation\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/our-2025-solar-power-performance/\",\"status\":200,\"title\":\"Our 2025 Home Solar Performance: 5 Years of Real Data\",\"word_count\":1279,\"summary_text\":\"Our 2025 Home Solar Performance: 5 Years of Real Data Our 2025 Home Solar Performance: 5 Years of Real Data{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/our-2025-solar-power-performance/\\\",\\\"headline\\\":\\\"Our 2025 Home Solar Performance: 5 Years of Real Data\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Four-2025-solar-power-performance%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2026-03-07T00:00:00Z\\\",\\\"description\\\":\\\"Five years of home solar in southern Germany. Our 2025 PV system produced 8,624 kWh, covered 54% of our consumption, and saved us over €2,000. Here&#39;s the full picture.\\\",\\\"keywords\\\":\\\"posts,solar,electricity,photovoltaic\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https://markus-haack.com/about/\\\"}}Skip to main content ProjectsWorkAboutOur 2025 H\",\"classification_terms\":[\"our-2025-solar-power-performance\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":1},{\"path\":\"/pirsch-analytics/\",\"status\":200,\"title\":\"Migrating from Plausible to Pirsch Analytics using Netlify Edge Functions\",\"word_count\":1816,\"summary_text\":\"Migrating from Plausible to Pirsch Analytics using Netlify Edge Functions Migrating from Plausible to Pirsch Analytics using Netlify Edge Functions{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/pirsch-analytics/\\\",\\\"headline\\\":\\\"Migrating from Plausible to Pirsch Analytics using Netlify Edge Functions\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fpirsch-analytics%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2025-12-20T00:00:00Z\\\",\\\"description\\\":\\\"Learn how to set up a first-party analytics proxy for Pirsch.io using Netlify Edge Functions. Includes a full code example.\\\",\\\"keywords\\\":\\\"posts,development,website\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https://markus-haack.com/about/\\\"}}Skip to main content ProjectsWorkAboutMigrating from Plausible to Pirsch Analytics using Netlify Ed\",\"classification_terms\":[\"pirsch-analytics\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":1},{\"path\":\"/jama-villa-2025/\",\"status\":200,\"title\":\"My Home Assistant Setup 2025: Reolink, EVCC, and New Dashboards\",\"word_count\":1239,\"summary_text\":\"My Home Assistant Setup 2025: Reolink, EVCC, and New Dashboards My Home Assistant Setup 2025: Reolink, EVCC, and New Dashboards{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/jama-villa-2025/\\\",\\\"headline\\\":\\\"My Home Assistant Setup 2025: Reolink, EVCC, and New Dashboards\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fjama-villa-2025%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2025-11-19T00:00:00Z\\\",\\\"description\\\":\\\"Another year, another update. See how our Home Assistant powered smart home has evolved in 2025 with new automation insights, new camera system, and energy management tools.\\\",\\\"keywords\\\":\\\"posts,home-assistant,smarthome\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https://markus-haack.com/about/\\\"}}Skip to main content ProjectsWorkAboutMy Home Assistant Setup 2025\",\"classification_terms\":[\"jama-villa-2025\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":1},{\"path\":\"/popular/all/\",\"status\":200,\"title\":\"The most popular projects & articles of markus-haack.com\",\"word_count\":2501,\"summary_text\":\"The most popular projects & articles of markus-haack.com The most popular projects &amp; articles of markus-haack.comSkip to main content ProjectsWorkAboutAll-time FavoritesThe most beloved articles since we started. Want to see what's hot this year? Check out the 12-month popular posts. Or read the latest posts.March 14, 2022 · 9 min read 39794 viewsArlo Cameras in Home AssistantHome Assistant &amp; Arlo cameras go together very well. I'm using them since our entire setup got migrated from OpenHab to Home Assistant and I'm happy with the integration.April 2, 2022 · 9 min read 32976 viewsWater tank monitoring with ESPHomeWatering our lawn and plants around the house wasn't one of my favourite things to do. This had to be done better - fully automatically and without intervention.July 17, 2023 · 7 min read 30080 viewsHome Assistant backup to Syno\",\"classification_terms\":[\"popular/all\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/arlo-cameras-in-home-assistant/\",\"status\":200,\"title\":\"Arlo Cameras in Home Assistant\",\"word_count\":1700,\"summary_text\":\"Arlo Cameras in Home Assistant Arlo Cameras in Home Assistant{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/arlo-cameras-in-home-assistant/\\\",\\\"headline\\\":\\\"Arlo Cameras in Home Assistant\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Farlo-cameras-in-home-assistant%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2022-03-14T00:00:00Z\\\",\\\"description\\\":\\\"Home Assistant &amp; Arlo cameras go together very well. I&#39;m using them since our entire setup got migrated from OpenHab to Home Assistant and I&#39;m happy with the integration.\\\",\\\"keywords\\\":\\\"posts,home-assistant,home-automation,camera,smarthome\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https://markus-haack.com/about/\\\"}}Skip to main content ProjectsWorkAboutArlo Cameras in Home AssistantAr\",\"classification_terms\":[\"arlo-cameras-in-home-assistant\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":2,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":1},{\"path\":\"/watertank-esphome/\",\"status\":200,\"title\":\"Water tank monitoring with ESPHome\",\"word_count\":1675,\"summary_text\":\"Water tank monitoring with ESPHome Water tank monitoring with ESPHome{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/watertank-esphome/\\\",\\\"headline\\\":\\\"Water tank monitoring with ESPHome\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fwatertank-esphome%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2022-04-02T00:00:00Z\\\",\\\"description\\\":\\\"Watering our lawn and plants around the house wasn&#39;t one of my favourite things to do. This had to be done better - fully automatically and without intervention.\\\",\\\"keywords\\\":\\\"posts,esphome,home-automation,watering,garden,smarthome\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https://markus-haack.com/about/\\\"}}Skip to main content ProjectsWorkAboutWater tank monitoring with ESPHomeWater tank monitoring with ESPH\",\"classification_terms\":[\"watertank-esphome\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":6,\"depth\":1},{\"path\":\"/home-assistant-backup-to-synology-nas/\",\"status\":200,\"title\":\"Home Assistant backup to Synology NAS\",\"word_count\":1389,\"summary_text\":\"Home Assistant backup to Synology NAS Home Assistant backup to Synology NAS{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/home-assistant-backup-to-synology-nas/\\\",\\\"headline\\\":\\\"Home Assistant backup to Synology NAS\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fhome-assistant-backup-to-synology-nas%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2023-07-17T00:00:00Z\\\",\\\"description\\\":\\\"Regularly backing up your Home Assistant configuration is critical to protecting your smart home deployment. This article explains how to back up your Home Assistant to a NAS.\\\",\\\"keywords\\\":\\\"posts,home-assistant,home-automation,backup\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https://markus-haack.com/about/\\\"}}Skip to main content ProjectsWorkAboutHome Assistant backup\",\"classification_terms\":[\"home-assistant-backup-to-synology-nas\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":9,\"depth\":1},{\"path\":\"/ultrasonic-distance-sensors-esphome/\",\"status\":200,\"title\":\"HC-SR04 & JSN-SR04T ultrasonic distance sensors in ESPHome\",\"word_count\":1632,\"summary_text\":\"HC-SR04 & JSN-SR04T ultrasonic distance sensors in ESPHome HC-SR04 &amp; JSN-SR04T ultrasonic distance sensors in ESPHome{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/ultrasonic-distance-sensors-esphome/\\\",\\\"headline\\\":\\\"HC-SR04 &amp; JSN-SR04T ultrasonic distance sensors in ESPHome\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fultrasonic-distance-sensors-esphome%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2023-03-04T00:00:00Z\\\",\\\"description\\\":\\\"I received many questions about using an ultrasonic distance sensor with ESPHome for their water tank project, leading them to create a short guide.\\\",\\\"keywords\\\":\\\"posts,esphome,arduino\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https://markus-haack.com/about/\\\"}}Skip to main content ProjectsWorkAboutHC-SR04 &amp; JSN-SR04T\",\"classification_terms\":[\"ultrasonic-distance-sensors-esphome\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":10,\"depth\":1},{\"path\":\"/our-own-electricity-3/\",\"status\":200,\"title\":\"Going Green: SolarEdge & Home Assistant\",\"word_count\":1490,\"summary_text\":\"Going Green: SolarEdge & Home Assistant Going Green: SolarEdge &amp; Home Assistant{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/our-own-electricity-3/\\\",\\\"headline\\\":\\\"Going Green: SolarEdge &amp; Home Assistant\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Four-own-electricity-3%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2023-03-18T00:00:00Z\\\",\\\"description\\\":\\\"The third part of my Our Own Electricity series describes how I integrated our photovoltaic system into Home Assistant.\\\",\\\"keywords\\\":\\\"posts,solar,photovoltaic,electricity,home-assistant,smarthome\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https://markus-haack.com/about/\\\"}}Skip to main content ProjectsWorkAboutGoing Green: SolarEdge &amp; Home AssistantGoing Green: SolarEdge &amp; Home As\",\"classification_terms\":[\"our-own-electricity-3\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":1},{\"path\":\"/work/\",\"status\":200,\"title\":\"Projects & topics I worked on in my professional life.\",\"word_count\":669,\"summary_text\":\"Projects & topics I worked on in my professional life. Projects &amp; topics I worked on in my professional life.Skip to main content ProjectsWorkAboutWork projectsSome of my professional projects, talks and publications. Also see the archive with all of my posts.March 16, 2026 · 4 min read &lt; 100 viewsDA MCP: Giving AI Assistants Direct Access to Document AuthoringI built a remote MCP server that connects AI assistants like Claude directly to Adobe's Document Authoring platform. Here's what it does, how it works, and how to get started.November 11, 2025 · 1 min read &lt; 100 viewsDA Meets Universal Editor: Transforming Edge Delivery WorkflowsLearn how AuthorBus and Universal Editor are transforming Adobe Edge Delivery Services authoring with flexible workflows for modern content creation.November 2, 2024 · 2 min read &lt; 100 viewsImplement\",\"classification_terms\":[\"work\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/da-mcp/\",\"status\":200,\"title\":\"DA MCP: Giving AI Assistants Direct Access to Document Authoring\",\"word_count\":672,\"summary_text\":\"DA MCP: Giving AI Assistants Direct Access to Document Authoring DA MCP: Giving AI Assistants Direct Access to Document Authoring{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/da-mcp/\\\",\\\"headline\\\":\\\"DA MCP: Giving AI Assistants Direct Access to Document Authoring\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fda-mcp%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2026-03-16T00:00:00Z\\\",\\\"description\\\":\\\"I built a remote MCP server that connects AI assistants like Claude directly to Adobe&#39;s Document Authoring platform. Here&#39;s what it does, how it works, and how to get started.\\\",\\\"keywords\\\":\\\"posts,adobe,aem,ai\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https://markus-haack.com/about/\\\"}}Skip to main content ProjectsWorkAboutDA MCP: Giving AI Assistants Direct Access to\",\"classification_terms\":[\"da-mcp\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":1},{\"path\":\"/adaptto-2025-da-ue/\",\"status\":200,\"title\":\"DA Meets Universal Editor: Transforming Edge Delivery Workflows\",\"word_count\":211,\"summary_text\":\"DA Meets Universal Editor: Transforming Edge Delivery Workflows DA Meets Universal Editor: Transforming Edge Delivery Workflows{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/adaptto-2025-da-ue/\\\",\\\"headline\\\":\\\"DA Meets Universal Editor: Transforming Edge Delivery Workflows\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fadaptto-2025-da-ue%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2025-11-11T00:00:00Z\\\",\\\"description\\\":\\\"Learn how AuthorBus and Universal Editor are transforming Adobe Edge Delivery Services authoring with flexible workflows for modern content creation.\\\",\\\"keywords\\\":\\\"posts,adobe,aem,conference\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https://markus-haack.com/about/\\\"}}Skip to main content ProjectsWorkAboutDA Meets Universal Editor: Transforming Edge Deliv\",\"classification_terms\":[\"adaptto-2025-da-ue\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":1},{\"path\":\"/implement-large-scale-projects-on-aem-edge-delivery-services/\",\"status\":200,\"title\":\"Implement large-scale projects on AEM Edge Delivery Services\",\"word_count\":413,\"summary_text\":\"Implement large-scale projects on AEM Edge Delivery Services Implement large-scale projects on AEM Edge Delivery Services{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/implement-large-scale-projects-on-aem-edge-delivery-services/\\\",\\\"headline\\\":\\\"Implement large-scale projects on AEM Edge Delivery Services\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fimplement-large-scale-projects-on-aem-edge-delivery-services%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2024-11-02T00:00:00Z\\\",\\\"description\\\":\\\"Discover how AEM Edge Delivery Services has evolved beyond basic websites to power complex, multilingual enterprise projects. Learn the strategic approaches and real-world insights from this adaptTo() conference presentation on scaling global AEM implementations.\\\",\\\"keywords\\\":\\\"posts,adobe,aem\",\"classification_terms\":[\"implement-large-scale-projects-on-aem-edge-delivery-services\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":1},{\"path\":\"/impressum/\",\"status\":200,\"title\":\"Impressum\",\"word_count\":243,\"summary_text\":\"Impressum ImpressumSkip to main content ProjectsWorkAboutImpressumAngaben gemäß § 5 TMG#Markus HaackImmischweg 304279 LeipzigKontaktmöglichkeiten#E-Mail-Adresse: info@markus-haack.deTelefon: auf AnfrageVerantwortlich für den Inhalt nach § 18 Abs. 2 MStV#Inhaltlich verantwortlich: Markus HaackHaftungs- und Urheberrechtshinweise#Haftungsausschluss#Die Inhalte dieses Onlineangebotes wurden sorgfältig und nach unserem aktuellen Kenntnisstand erstellt, dienen jedoch nur der Information und entfalten keine rechtlich bindende Wirkung, sofern es sich nicht um gesetzlich verpflichtende Informationen (z.B. das Impressum, die Datenschutzerklärung, AGB oder verpflichtende Belehrungen von Verbrauchern) handelt. Wir behalten uns vor, die Inhalte vollständig oder teilweise zu ändern oder zu löschen, soweit vertrag\",\"classification_terms\":[\"impressum\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/datenschutz/\",\"status\":200,\"title\":\"Datenschutzerklärung\",\"word_count\":1291,\"summary_text\":\"Datenschutzerklärung DatenschutzerklärungSkip to main content ProjectsWorkAboutDatenschutzerklärungPersonenbezogene Daten (nachfolgend zumeist nur „Daten“ genannt) werden von uns nur im Rahmen der Erforderlichkeit sowie zum Zwecke der Bereitstellung eines funktionsfähigen und nutzerfreundlichen Internetauftritts, inklusive seiner Inhalte und der dort angebotenen Leistungen, verarbeitet.Gemäß Art. 4 Ziffer 1. der Verordnung (EU) 2016/679, also der Datenschutz-Grundverordnung (nachfolgend nur „DSGVO“ genannt), gilt als „Verarbeitung“ jeder mit oder ohne Hilfe automatisierter Verfahren ausgeführter Vorgang oder jede solche Vorgangsreihe im Zusammenhang mit personenbezogenen Daten, wie das Erheben, das Erfassen, die Organisation, das Ordnen, die Speicherung, die Anpassung oder Veränderung, das Auslesen, das Abfrag\",\"classification_terms\":[\"datenschutz\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/projects/\",\"status\":200,\"title\":\"My recent projects\",\"word_count\":1941,\"summary_text\":\"My recent projects My recent projectsSkip to main content ProjectsWorkAboutMy recent projectsProjects I worked on recently - check them out. Also see the archive with all of my posts.March 7, 2026 · 7 min read &lt; 100 viewsOur 2025 Home Solar Performance: 5 Years of Real DataFive years of home solar in southern Germany. Our 2025 PV system produced 8,624 kWh, covered 54% of our consumption, and saved us over €2,000. Here's the full picture.December 20, 2025 · 9 min read &lt; 100 viewsMigrating from Plausible to Pirsch Analytics using Netlify Edge FunctionsLearn how to set up a first-party analytics proxy for Pirsch.io using Netlify Edge Functions. Includes a full code example.November 19, 2025 · 7 min read 446 viewsMy Home Assistant Setup 2025: Reolink, EVCC, and New DashboardsAnother year, another update. S\",\"classification_terms\":[\"projects\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/home-assistant/\",\"status\":200,\"title\":\"Home Assistant - The big move\",\"word_count\":1244,\"summary_text\":\"Home Assistant - The big move Home Assistant - The big move{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/home-assistant/\\\",\\\"headline\\\":\\\"Home Assistant - The big move\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fhome-assistant%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2019-05-21T00:00:00Z\\\",\\\"description\\\":\\\"This project is about the change I did from OpenHab to Home Assistant for our smart home automation system. Ok maybe the headline sounds a bit too sensational but change our entire home automation setup from one system we used for 2+ years now to a completely new one requires quite some heavy lifting.\\\",\\\"keywords\\\":\\\"posts,home-automation,home-assistant\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https://markus-haack.com/about/\\\"}}S\",\"classification_terms\":[\"home-assistant\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":2},{\"path\":\"/build-your-first-website-with-edge-delivery-and-document-based-authoring/\",\"status\":200,\"title\":\"Build your first website with AEM Edge Delivery Services\",\"word_count\":235,\"summary_text\":\"Build your first website with AEM Edge Delivery Services Build your first website with AEM Edge Delivery Services{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/build-your-first-website-with-edge-delivery-and-document-based-authoring/\\\",\\\"headline\\\":\\\"Build your first website with Edge Delivery and document based authoring\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fbuild-your-first-website-with-edge-delivery-and-document-based-authoring%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2023-11-14T00:00:00Z\\\",\\\"description\\\":\\\"For zero to go-live of your first website in 30 min. Is that possible? In this developer step-by-step walkthrough I show you how to build and launch your first size using Adobe’s new Edge Delivery Service.\\\",\\\"keywords\\\":\\\"posts,adobe,aem,conference\\\",\\\"author\\\":{\\\"@t\",\"classification_terms\":[\"build-your-first-website-with-edge-delivery-and-document-based-authoring\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":2},{\"path\":\"/aem-document-based-authoring/\",\"status\":200,\"title\":\"Build a good editor experience for AEM Edge Delivery\",\"word_count\":309,\"summary_text\":\"Build a good editor experience for AEM Edge Delivery Build a good editor experience for AEM Edge Delivery{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/aem-document-based-authoring/\\\",\\\"headline\\\":\\\"New Talk: Developing a good editor experience with Microsoft 365/Google Workspace\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Faem-document-based-authoring%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2023-06-08T00:00:00Z\\\",\\\"description\\\":\\\"Learn how to create intuitive content structures that empower authors in AEM Edge Delivery projects using familiar tools like Microsoft 365 and Google Workspace. Discover best practices and avoid common pitfalls when implementing document-based authoring workflows.\\\",\\\"keywords\\\":\\\"posts,adobe,aem,development,conference\\\",\\\"author\\\":{\\\"@type\\\":\\\"Perso\",\"classification_terms\":[\"aem-document-based-authoring\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":2},{\"path\":\"/building-experiences-with-aem-and-magento/\",\"status\":200,\"title\":\"Building Experiences - AEM & Magento Commerce Integration\",\"word_count\":246,\"summary_text\":\"Building Experiences - AEM & Magento Commerce Integration Building Experiences - AEM &amp; Magento Commerce Integration{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/building-experiences-with-aem-and-magento/\\\",\\\"headline\\\":\\\"Building Experiences - AEM &amp; Magento Commerce Integration\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fbuilding-experiences-with-aem-and-magento%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2020-07-31T00:00:00Z\\\",\\\"description\\\":\\\"On July 28th I was a guest on Mark Szulc&#39;s Building Experiences using Adobe Experience Cloud show. We discussed how Adobe Experience Manager works together with Magento, using the latest release of the Commerce Integration Framework.\\\",\\\"keywords\\\":\\\"posts,adobe,aem,commerce,cif\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\",\"classification_terms\":[\"building-experiences-with-aem-and-magento\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":2},{\"path\":\"/making-your-reolink-camera-talk/\",\"status\":200,\"title\":\"Make Your Reolink Camera Speak with Home Assistant TTS & AI\",\"word_count\":2051,\"summary_text\":\"Make Your Reolink Camera Speak with Home Assistant TTS & AI Make Your Reolink Camera Speak with Home Assistant TTS &amp; AI{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/making-your-reolink-camera-talk/\\\",\\\"headline\\\":\\\"Make Your Reolink Camera Speak with Home Assistant TTS &amp; AI\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fmaking-your-reolink-camera-talk%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2025-05-04T00:00:00Z\\\",\\\"description\\\":\\\"Use Home Assistant to turn camera motion into AI-powered spoken descriptions. Snapshot, analyze with AI, and push to your speaker with text-to-speech. Your smart home can now tell you what&#39;s happening outside!\\\",\\\"keywords\\\":\\\"posts,home-assistant,home-automation,camera,ai\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https://mark\",\"classification_terms\":[\"making-your-reolink-camera-talk\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":2},{\"path\":\"/weather-cards-in-home-assistant-my-top-picks/\",\"status\":200,\"title\":\"Weather Cards in Home Assistant: My Top Picks\",\"word_count\":1810,\"summary_text\":\"Weather Cards in Home Assistant: My Top Picks Weather Cards in Home Assistant: My Top Picks{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/weather-cards-in-home-assistant-my-top-picks/\\\",\\\"headline\\\":\\\"Weather Cards in Home Assistant: My Top Picks\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fweather-cards-in-home-assistant-my-top-picks%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2025-04-22T00:00:00Z\\\",\\\"description\\\":\\\"This Home Assistant guide compares popular weather cards including the built-in Weather Forecast Card and community alternatives like Clock Weather Card, Platinum Weather Card, and Simple Weather Card. The author provides setup instructions and recommendations for choosing between minimalist or feature-rich weather displays for your dashboard.\\\",\\\"keywor\",\"classification_terms\":[\"weather-cards-in-home-assistant-my-top-picks\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":2},{\"path\":\"/home-assistant-backup-2025/\",\"status\":200,\"title\":\"Home Assistant Backup in 2025\",\"word_count\":1478,\"summary_text\":\"Home Assistant Backup in 2025 Home Assistant Backup in 2025{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/home-assistant-backup-2025/\\\",\\\"headline\\\":\\\"Home Assistant Backup in 2025\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fhome-assistant-backup-2025%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2025-02-23T00:00:00Z\\\",\\\"description\\\":\\\"Home Assistant&#39;s 2025 backup system introduces native cloud storage, flexible encryption, and automated scheduling following the 3-2-1 backup rule. The article covers setting up automatic backups to Synology NAS, Google Drive, OneDrive, and Home Assistant Cloud with configuration steps and recovery best practices.\\\",\\\"keywords\\\":\\\"posts,home-assistant,home-automation,backup\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Ha\",\"classification_terms\":[\"home-assistant-backup-2025\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":2},{\"path\":\"/automate-reolink-camera-notifications/\",\"status\":200,\"title\":\"Automate Reolink camera notifications with Home Assistant\",\"word_count\":1120,\"summary_text\":\"Automate Reolink camera notifications with Home Assistant Automate Reolink camera notifications with Home Assistant{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/automate-reolink-camera-notifications/\\\",\\\"headline\\\":\\\"Automate Reolink camera notifications with Home Assistant\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fautomate-reolink-camera-notifications%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2024-09-19T00:00:00Z\\\",\\\"description\\\":\\\"Automate Reolink camera notifications with Home Assistant to overcome app limitations such as geo-fencing and scheduling. Create custom notifications based on location, time or other conditions by configuring simple YAML scripts, increasing the flexibility and intelligence of your home security system.\\\",\\\"keywords\\\":\\\"posts,camera,home-assistant\",\"classification_terms\":[\"automate-reolink-camera-notifications\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":2},{\"path\":\"/reolink-cameras-in-home-assistant/\",\"status\":200,\"title\":\"How to Integrate Reolink Cameras into Home Assistant\",\"word_count\":1574,\"summary_text\":\"How to Integrate Reolink Cameras into Home Assistant How to Integrate Reolink Cameras into Home Assistant{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/reolink-cameras-in-home-assistant/\\\",\\\"headline\\\":\\\"How to Integrate Reolink Cameras into Home Assistant\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Freolink-cameras-in-home-assistant%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2024-09-13T00:00:00Z\\\",\\\"description\\\":\\\"In this post, I will walk through the process of integrating Reolink Network Cameras into Home Assistant. With this integration, you can stream live footage, set up motion detection automations, and even record clips based on events.\\\",\\\"keywords\\\":\\\"posts,camera,home-assistant,home-automation\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https://marku\",\"classification_terms\":[\"reolink-cameras-in-home-assistant\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":2},{\"path\":\"/zigbee-temperature-sensors/\",\"status\":200,\"title\":\"ZigBee Temperature and Humidity Sensors: A Comparison\",\"word_count\":1362,\"summary_text\":\"ZigBee Temperature and Humidity Sensors: A Comparison ZigBee Temperature and Humidity Sensors: A Comparison{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/zigbee-temperature-sensors/\\\",\\\"headline\\\":\\\"ZigBee Temperature and Humidity Sensors: A Comparison\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fzigbee-temperature-sensors%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2024-08-28T00:00:00Z\\\",\\\"description\\\":\\\"Smart homes increasingly use temperature and humidity sensors for automation, and I&#39;ve installed over 10 throughout my house, including the garden, attic, fridge, and pool. ZigBee sensors are ideal for this due to their low power consumption and reliable communication, allowing them to operate on batteries for months or even years.\\\",\\\"keywords\\\":\\\"posts,home-assistant,ho\",\"classification_terms\":[\"zigbee-temperature-sensors\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":2},{\"path\":\"/jama-villa-2024/\",\"status\":200,\"title\":\"Home Assistant 2024\",\"word_count\":1488,\"summary_text\":\"Home Assistant 2024 Home Assistant 2024{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/jama-villa-2024/\\\",\\\"headline\\\":\\\"Home Assistant 2024\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fjama-villa-2024%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2024-01-24T00:00:00Z\\\",\\\"description\\\":\\\"Since sharing our initial insights into the Home Assistant setup at my first post about our Home Assistant setup, a lot has transformed. It&#39;s time for an update. This article will walk you through the changes, replacements of devices and integrations, additions of new elements, and the tried-and-true components that have proven to be reliable.\\\",\\\"keywords\\\":\\\"posts,home-automation,home-assistant\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https:\",\"classification_terms\":[\"jama-villa-2024\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":2},{\"path\":\"/green-grass-with-home-assistant/\",\"status\":200,\"title\":\"Green grass with Home Assistant\",\"word_count\":1455,\"summary_text\":\"Green grass with Home Assistant Green grass with Home Assistant{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/green-grass-with-home-assistant/\\\",\\\"headline\\\":\\\"Green grass with Home Assistant\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fgreen-grass-with-home-assistant%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2022-06-01T00:00:00Z\\\",\\\"description\\\":\\\"Automate your lawn sprinklers for effortless, intelligent watering using Home Assistant. This guide details how to connect your system to create smart schedules based on weather and soil conditions. Get a healthier, greener lawn while optimizing water usage.\\\",\\\"keywords\\\":\\\"posts,esphome,home-automation,home-assistant,garden,watering,plants,smarthome\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"\",\"classification_terms\":[\"green-grass-with-home-assistant\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":2},{\"path\":\"/mini-plant-watering/\",\"status\":200,\"title\":\"Mini plant watering project\",\"word_count\":880,\"summary_text\":\"Mini plant watering project Mini plant watering project{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/mini-plant-watering/\\\",\\\"headline\\\":\\\"Mini plant watering project\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fmini-plant-watering%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2021-08-17T00:00:00Z\\\",\\\"description\\\":\\\"I would like to show you my new 30 min, no coding holiday plant watering project.\\\",\\\"keywords\\\":\\\"posts,home-automation,home-assistant,plants,watering\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https://markus-haack.com/about/\\\"}}Skip to main content ProjectsWorkAboutMini plant watering projectMini plant watering projectMarkus HaackAugust 17, 2021 · 5 min read · 561 viewshome-automation home-assistant plants wateringI would li\",\"classification_terms\":[\"mini-plant-watering\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":5,\"depth\":2},{\"path\":\"/you-have-got-mail/\",\"status\":200,\"title\":\"Home Assistant: You have got mail\",\"word_count\":883,\"summary_text\":\"Home Assistant: You have got mail Home Assistant: You have got mail{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/you-have-got-mail/\\\",\\\"headline\\\":\\\"Home Assistant: You have got mail\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fyou-have-got-mail%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2020-09-05T00:00:00Z\\\",\\\"description\\\":\\\"Today I want to share a little holiday project I am building this week: a mailbox sensor to make a dumb mailbox smart and notify us when we get new mail. I&#39;m talking about real physical mail - letters, postcards, newspapers, etc. that get dropped into our mailbox.\\\",\\\"keywords\\\":\\\"posts,home-automation,home-assistant,zigbee,mailbox,smarthome\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https://markus-haack.com/about\",\"classification_terms\":[\"you-have-got-mail\",\"about\",\"news\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":2},{\"path\":\"/jama-villa/\",\"status\":200,\"title\":\"Our home sweet smart home\",\"word_count\":634,\"summary_text\":\"Our home sweet smart home Our home sweet smart home{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/jama-villa/\\\",\\\"headline\\\":\\\"Our home sweet smart home\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fjama-villa%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2020-01-14T00:00:00Z\\\",\\\"description\\\":\\\"Our Home Assistant setup is pretty simple - everything currently runs on a single board computer - smooth and stable for over 12 months. This is our setup.\\\",\\\"keywords\\\":\\\"posts,home-automation,home-assistant\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https://markus-haack.com/about/\\\"}}Skip to main content ProjectsWorkAboutOur home sweet smart homeOur home sweet smart homeMarkus HaackJanuary 14, 2020 · 3 min read · 1029 viewshome-automation home-a\",\"classification_terms\":[\"jama-villa\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":2},{\"path\":\"/home-assistant-display/\",\"status\":200,\"title\":\"Home Assistant - Homematic HM-Dis-EP-WM55 e-paper display\",\"word_count\":721,\"summary_text\":\"Home Assistant - Homematic HM-Dis-EP-WM55 e-paper display Home Assistant - Homematic HM-Dis-EP-WM55 e-paper display{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"@id\\\":\\\"https://markus-haack.com/home-assistant-display/\\\",\\\"headline\\\":\\\"Home Assistant - Homematic HM-Dis-EP-WM55 e-paper display\\\",\\\"image\\\":\\\"https://v1.screenshot.11ty.dev/https%3A%2F%2Fmarkus-haack.com%2Fopengraph%2Fhome-assistant-display%2F/opengraph/_z1774745546/\\\",\\\"datePublished\\\":\\\"2019-07-08T00:00:00Z\\\",\\\"description\\\":\\\"My second Home Assistant project is about the integration of the Homematic HM-Dis-EP-WM55 e-paper display in my HA setup. I am sharing some reusable scripts for this or similar devices.\\\",\\\"keywords\\\":\\\"posts,home-automation,home-assistant\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Markus Haack\\\", \\\"url\\\":\\\"https://markus-haack.com/about/\\\"}}Skip to main content ProjectsWorkAboutHome Ass\",\"classification_terms\":[\"home-assistant-display\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":2},{\"path\":\"/tags/adobe/\",\"status\":200,\"title\":\"Posts tagged with adobe\",\"word_count\":649,\"summary_text\":\"Posts tagged with adobe Posts tagged with adobeSkip to main content ProjectsWorkAboutPosts tagged with adobeMarch 16, 2026 · 4 min read &lt; 100 viewsDA MCP: Giving AI Assistants Direct Access to Document AuthoringI built a remote MCP server that connects AI assistants like Claude directly to Adobe's Document Authoring platform. Here's what it does, how it works, and how to get started.November 11, 2025 · 1 min read &lt; 100 viewsDA Meets Universal Editor: Transforming Edge Delivery WorkflowsLearn how AuthorBus and Universal Editor are transforming Adobe Edge Delivery Services authoring with flexible workflows for modern content creation.November 2, 2024 · 2 min read &lt; 100 viewsImplement large-scale projects on AEM Edge Delivery ServicesDiscover how AEM Edge Delivery Services has evolved beyond basic websites\",\"classification_terms\":[\"tags/adobe\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/tags/aem/\",\"status\":200,\"title\":\"Posts tagged with aem\",\"word_count\":649,\"summary_text\":\"Posts tagged with aem Posts tagged with aemSkip to main content ProjectsWorkAboutPosts tagged with aemMarch 16, 2026 · 4 min read &lt; 100 viewsDA MCP: Giving AI Assistants Direct Access to Document AuthoringI built a remote MCP server that connects AI assistants like Claude directly to Adobe's Document Authoring platform. Here's what it does, how it works, and how to get started.November 11, 2025 · 1 min read &lt; 100 viewsDA Meets Universal Editor: Transforming Edge Delivery WorkflowsLearn how AuthorBus and Universal Editor are transforming Adobe Edge Delivery Services authoring with flexible workflows for modern content creation.November 2, 2024 · 2 min read &lt; 100 viewsImplement large-scale projects on AEM Edge Delivery ServicesDiscover how AEM Edge Delivery Services has evolved beyond basic websites to p\",\"classification_terms\":[\"tags/aem\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/tags/ai/\",\"status\":200,\"title\":\"Posts tagged with ai\",\"word_count\":227,\"summary_text\":\"Posts tagged with ai Posts tagged with aiSkip to main content ProjectsWorkAboutPosts tagged with aiMarch 16, 2026 · 4 min read &lt; 100 viewsDA MCP: Giving AI Assistants Direct Access to Document AuthoringI built a remote MCP server that connects AI assistants like Claude directly to Adobe's Document Authoring platform. Here's what it does, how it works, and how to get started.July 4, 2025 · 11 min read 273 viewsSmart EV Charging: Automatic Home Charger Control with AI License Plate RecognitionLearn how to automate secure access to your EV charger using Home Assistant! This tutorial shows you how to automatically unlock and authorize charging only when your specific car is detected. Ditch the RFID cards and ensure only authorized vehicles can charge effortlessly.May 4, 2025 · 11 min read 1640 viewsMake Your Re\",\"classification_terms\":[\"tags/ai\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/tags/app-builder/\",\"status\":200,\"title\":\"Posts tagged with app-builder\",\"word_count\":131,\"summary_text\":\"Posts tagged with app-builder Posts tagged with app-builderSkip to main content ProjectsWorkAboutPosts tagged with app-builderDecember 7, 2022 · 1 min read 253 viewsNew Talk: How to Build Content and Commerce Experiences Using App Builder and API MeshWatch how Adobe's App Builder and API Mesh can transform headless commerce development by seamlessly blending content management with e-commerce functionality. Discover the end-to-end process of building modern storefronts that combine AEM content with Commerce data in this recorded presentation.All Tags...adobe aem ai app-builder arduino backup camera cif commerce conference development dinosaurs electricity eleventy esphome ev-charging garden graphql halloween home-assistant home-automation mailbox photovoltaic plants smarthome solar watering website wemos zigbee Link to\",\"classification_terms\":[\"tags/app-builder\",\"about\",\"api\",\"store\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/tags/arduino/\",\"status\":200,\"title\":\"Posts tagged with arduino\",\"word_count\":406,\"summary_text\":\"Posts tagged with arduino Posts tagged with arduinoSkip to main content ProjectsWorkAboutPosts tagged with arduinoApril 15, 2023 · 5 min read 5098 viewsBuilding a Mario Bros. ClockI recently found a DIY project that makes a custom LED Mario Bros. clock that is very cool. Since I'm huge fan of Super Mario I absolutely had to rebuild it.March 4, 2023 · 9 min read 27697 viewsHC-SR04 &amp; JSN-SR04T ultrasonic distance sensors in ESPHomeI received many questions about using an ultrasonic distance sensor with ESPHome for their water tank project, leading them to create a short guide.September 26, 2022 · 5 min read 22145 viewsThe world of Wemos D1 Mini BoardsSome readers recently asked me about the Wemos D1 mini usage in my projects, the pinout sheet and names and ho to use it with ESPHome.December 13, 2020 · 6 min read\",\"classification_terms\":[\"tags/arduino\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/tags/backup/\",\"status\":200,\"title\":\"Posts tagged with backup\",\"word_count\":164,\"summary_text\":\"Posts tagged with backup Posts tagged with backupSkip to main content ProjectsWorkAboutPosts tagged with backupFebruary 23, 2025 · 8 min read 3171 viewsHome Assistant Backup in 2025Home Assistant's 2025 backup system introduces native cloud storage, flexible encryption, and automated scheduling following the 3-2-1 backup rule. The article covers setting up automatic backups to Synology NAS, Google Drive, OneDrive, and Home Assistant Cloud with configuration steps and recovery best practices.July 17, 2023 · 7 min read 30080 viewsHome Assistant backup to Synology NASRegularly backing up your Home Assistant configuration is critical to protecting your smart home deployment. This article explains how to back up your Home Assistant to a NAS.All Tags...adobe aem ai app-builder arduino backup camera cif commerce conferen\",\"classification_terms\":[\"tags/backup\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/tags/camera/\",\"status\":200,\"title\":\"Posts tagged with camera\",\"word_count\":325,\"summary_text\":\"Posts tagged with camera Posts tagged with cameraSkip to main content ProjectsWorkAboutPosts tagged with cameraJuly 4, 2025 · 11 min read 273 viewsSmart EV Charging: Automatic Home Charger Control with AI License Plate RecognitionLearn how to automate secure access to your EV charger using Home Assistant! This tutorial shows you how to automatically unlock and authorize charging only when your specific car is detected. Ditch the RFID cards and ensure only authorized vehicles can charge effortlessly.May 4, 2025 · 11 min read 1640 viewsMake Your Reolink Camera Speak with Home Assistant TTS &amp; AIUse Home Assistant to turn camera motion into AI-powered spoken descriptions. Snapshot, analyze with AI, and push to your speaker with text-to-speech. Your smart home can now tell you what's happening outside!September 19,\",\"classification_terms\":[\"tags/camera\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/tags/cif/\",\"status\":200,\"title\":\"Posts tagged with cif\",\"word_count\":276,\"summary_text\":\"Posts tagged with cif Posts tagged with cifSkip to main content ProjectsWorkAboutPosts tagged with cifDecember 11, 2021 · 2 min read &lt; 100 viewsCIF on Adobe Tech BlogAn intro and summary about some professional writing I did in the last few weeks and months for the Adobe Tech Blog.October 18, 2021 · 1 min read &lt; 100 viewsNew Talk: Extend AEM Content &amp; CommerceLearn how to seamlessly integrate custom eCommerce solutions with Adobe Experience Manager using the Commerce Integration Framework and App Builder. This Adobe Developers Live talk reveals practical extensibility patterns and GraphQL integration techniques for building powerful commerce experiences.March 4, 2021 · 1 min read &lt; 100 viewsContent and Commerce with Adobe Experience Manager as a Cloud ServiceI held a session on “Content and Commerc\",\"classification_terms\":[\"tags/cif\",\"about\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/tags/commerce/\",\"status\":200,\"title\":\"Posts tagged with commerce\",\"word_count\":377,\"summary_text\":\"Posts tagged with commerce Posts tagged with commerceSkip to main content ProjectsWorkAboutPosts tagged with commerceDecember 7, 2022 · 1 min read 253 viewsNew Talk: How to Build Content and Commerce Experiences Using App Builder and API MeshWatch how Adobe's App Builder and API Mesh can transform headless commerce development by seamlessly blending content management with e-commerce functionality. Discover the end-to-end process of building modern storefronts that combine AEM content with Commerce data in this recorded presentation.December 11, 2021 · 2 min read &lt; 100 viewsCIF on Adobe Tech BlogAn intro and summary about some professional writing I did in the last few weeks and months for the Adobe Tech Blog.October 18, 2021 · 1 min read &lt; 100 viewsNew Talk: Extend AEM Content &amp; CommerceLearn how to seaml\",\"classification_terms\":[\"tags/commerce\",\"about\",\"api\",\"blog\",\"store\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/tags/conference/\",\"status\":200,\"title\":\"Posts tagged with conference\",\"word_count\":359,\"summary_text\":\"Posts tagged with conference Posts tagged with conferenceSkip to main content ProjectsWorkAboutPosts tagged with conferenceNovember 11, 2025 · 1 min read &lt; 100 viewsDA Meets Universal Editor: Transforming Edge Delivery WorkflowsLearn how AuthorBus and Universal Editor are transforming Adobe Edge Delivery Services authoring with flexible workflows for modern content creation.November 14, 2023 · 1 min read 114 viewsBuild your first website with Edge Delivery and document based authoringFor zero to go-live of your first website in 30 min. Is that possible? In this developer step-by-step walkthrough I show you how to build and launch your first size using Adobe’s new Edge Delivery Service.October 5, 2023 · 1 min read &lt; 100 viewsAdaptTo 2023: Unveiling the Future of Adobe AEM SitesThe future of AEM Sites at AdaptTo 2\",\"classification_terms\":[\"tags/conference\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"markus-haack.org\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/tags/development/\",\"status\":200,\"title\":\"Posts tagged with development\",\"word_count\":590,\"summary_text\":\"Posts tagged with development Posts tagged with developmentSkip to main content P",
        "score_reasons_json": "[\"Category confidence was reduced, so the classifier fell back to the broader parent category.\"]",
        "route_domain": "markus-haack.com",
        "display_domain": "markus-haack.com"
    },
    "explainability": {
        "summary": "markus-haack.com currently scores 64/100. Technical and crawl-quality evidence are doing most of the lifting for the score. Evidence confidence is strong enough for a relatively stable read. This is an estimated profile rather than a manually tracked one. Crawler access looks clean.",
        "badges": [
            {
                "label": "Profile",
                "value": "Estimated profile",
                "tone": "unknown",
                "detail": null
            },
            {
                "label": "Evidence confidence",
                "value": "High confidence",
                "tone": "good",
                "detail": "100/100"
            },
            {
                "label": "Traffic confidence",
                "value": "Solid confidence",
                "tone": "good",
                "detail": "79/100"
            },
            {
                "label": "Crawler access",
                "value": "Clean visibility",
                "tone": "good",
                "detail": null
            }
        ],
        "weighted_contributions": [
            {
                "label": "Quality system",
                "points": "+34.0",
                "tone": "good",
                "detail": "Technical quality, crawl depth, page structure, and implementation hygiene. Current subsystem score: 100/100."
            },
            {
                "label": "Reputation system",
                "points": "+17.0",
                "tone": "caution",
                "detail": "Authority, search visibility, reach, engagement, and registry stability. Current subsystem score: 50/100."
            },
            {
                "label": "Safety system",
                "points": "+32.0",
                "tone": "good",
                "detail": "Fraud, spam, and trust signals from infrastructure, crawl, and registry evidence. Current subsystem score: 100/100."
            },
            {
                "label": "Risk clamp",
                "points": "-19.0",
                "tone": "risk",
                "detail": "Safety thresholds capped the final score until the risk profile improves."
            }
        ],
        "evidence_cards": [
            {
                "label": "Authority and trust",
                "value": "50/100 · trust 80/100",
                "tone": "caution",
                "detail": "322 monthly visitors, 95 organic keywords, brand completeness 82/100, engagement 82/100."
            },
            {
                "label": "Backlink and search evidence",
                "value": "3 referring domains",
                "tone": "good",
                "detail": "3 backlinks across 3 referring domains. Diversity 94/100; spam penalty 0."
            },
            {
                "label": "Registry and domain stability",
                "value": "7.6 years old",
                "tone": "good",
                "detail": "Stability 100/100 · age 7.6 years · registrar Name.com, Inc. · expires in 148 days."
            },
            {
                "label": "Safety and fraud posture",
                "value": "Safety 100/100 · fraud 1/100",
                "tone": "good",
                "detail": "Primary tag T · safety 100/100 · fraud 1/100."
            }
        ],
        "positives": [
            "Established domain age: 7.6 years.",
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness.",
            "Registry history looks stable, which supports legitimacy and trust.",
            "The domain has been registered for years, which usually improves trust confidence.",
            "HTTPS is working, so the site clears a basic transport-security check."
        ],
        "risks": [
            "External evidence was mixed or sparse, so the tag model keeps an uncertainty buffer instead of overcommitting."
        ],
        "freshness": [
            {
                "label": "Crawl evidence",
                "value": "2026-03-31 03:04:26",
                "tone": "risk",
                "detail": "Crawl and page content sample. Age: 19d ago."
            },
            {
                "label": "WHOIS snapshot",
                "value": "2026-03-17 07:34:50",
                "tone": "risk",
                "detail": "Registry profile and stability signals. Age: 1mo ago."
            },
            {
                "label": "Keyword view",
                "value": "2026-04-19 10:43:45",
                "tone": "good",
                "detail": "Estimated visibility until tracked keyword snapshots exist. Age: 0s ago."
            },
            {
                "label": "Rank history",
                "value": "2026-04-19 10:43:45",
                "tone": "good",
                "detail": "Estimated trend derived from current profile and crawl signals. Age: 0s ago."
            },
            {
                "label": "Audience geography",
                "value": "Not captured yet",
                "tone": "unknown",
                "detail": "Audience mix is estimated from available signals rather than first-party audience logs."
            }
        ],
        "section_notes": {
            "audience": "Audience geography is estimated from category, country, traffic mix, and brand signals until first-party audience data is collected.",
            "keywords": "Top keywords are estimated from crawl language, brand, category, and visibility signals until tracked keyword snapshots are stored.",
            "history": "Rank history is estimated from the current profile because no stored history exists for this domain yet."
        },
        "base_weighted_score": 83,
        "fraud_clamp_penalty": 19,
        "final_score": 64
    },
    "insight_snapshot": {
        "version": 1,
        "generated_at": "2026-04-19T10:43:45+00:00",
        "domain": "markus-haack.com",
        "display_name": "Hi, my name is Markus, I'm a home automation enthusiast and soft…",
        "is_tracked": false,
        "is_estimated": true,
        "overall_score": 64,
        "authority_score": 50,
        "trust_score": 80,
        "safety_score": 100,
        "fraud_score": 1,
        "confidence_score": 100,
        "traffic_confidence": 79,
        "last_crawled_at": "2026-03-31 03:04:26",
        "crawl_blocked": false,
        "summary": "markus-haack.com currently scores 64/100. Technical and crawl-quality evidence are doing most of the lifting for the score. Evidence confidence is strong enough for a relatively stable read. This is an estimated profile rather than a manually tracked one. Crawler access looks clean.",
        "badges": [
            {
                "label": "Profile",
                "value": "Estimated profile",
                "tone": "unknown",
                "detail": null
            },
            {
                "label": "Evidence confidence",
                "value": "High confidence",
                "tone": "good",
                "detail": "100/100"
            },
            {
                "label": "Traffic confidence",
                "value": "Solid confidence",
                "tone": "good",
                "detail": "79/100"
            },
            {
                "label": "Crawler access",
                "value": "Clean visibility",
                "tone": "good",
                "detail": null
            }
        ],
        "top_positive_signals": [
            "Established domain age: 7.6 years.",
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness.",
            "Registry history looks stable, which supports legitimacy and trust.",
            "The domain has been registered for years, which usually improves trust confidence."
        ],
        "top_risk_signals": [
            "External evidence was mixed or sparse, so the tag model keeps an uncertainty buffer instead of overcommitting."
        ],
        "freshness": [
            {
                "label": "Crawl evidence",
                "value": "2026-03-31 03:04:26",
                "tone": "risk",
                "detail": "Crawl and page content sample. Age: 19d ago."
            },
            {
                "label": "WHOIS snapshot",
                "value": "2026-03-17 07:34:50",
                "tone": "risk",
                "detail": "Registry profile and stability signals. Age: 1mo ago."
            },
            {
                "label": "Keyword view",
                "value": "2026-04-19 10:43:45",
                "tone": "good",
                "detail": "Estimated visibility until tracked keyword snapshots exist. Age: 0s ago."
            },
            {
                "label": "Rank history",
                "value": "2026-04-19 10:43:45",
                "tone": "good",
                "detail": "Estimated trend derived from current profile and crawl signals. Age: 0s ago."
            },
            {
                "label": "Audience geography",
                "value": "Not captured yet",
                "tone": "unknown",
                "detail": "Audience mix is estimated from available signals rather than first-party audience logs."
            }
        ],
        "top_tags": [
            {
                "code": "T",
                "label": "Trusted",
                "tone": "good"
            },
            {
                "code": "Uncertain",
                "label": "Uncertain",
                "tone": "unknown"
            }
        ]
    },
    "is_tracked": false,
    "is_estimated": true,
    "live_state": {
        "status": "processing",
        "status_label": "Cache build running",
        "message": "The refreshed page cache is still being built for this domain.",
        "updated_at": "2026-04-19T15:16:17+00:00"
    },
    "refresh_state": {
        "canRequest": false,
        "queued": true,
        "processing": true,
        "stageKey": "cache-queued",
        "stageLabel": "Cache build running",
        "cooldownUntil": null,
        "message": "The refreshed page cache is still being built for this domain.",
        "action": "/domain/markus-haack.com/refresh",
        "isGuestCooldown": false,
        "cooldownSeconds": 0
    },
    "urlscan_report": {
        "domain": "markus-haack.com",
        "status": "idle",
        "submitted_at": null,
        "completed_at": null,
        "last_checked_at": null,
        "last_error": "",
        "submitted_url": "https://markus-haack.com/",
        "uuid": "",
        "result_url": "",
        "api_result_url": "",
        "visibility": "public",
        "summary": "No urlscan.io report has been requested for this domain yet.",
        "report": [],
        "report_summary": [],
        "is_fresh": false,
        "can_retry": true,
        "poll_after_seconds": 20
    }
}