{"id":10827,"date":"2026-08-21T11:34:21","date_gmt":"2026-08-21T09:34:21","guid":{"rendered":"https:\/\/monitorering.ki.dk\/?page_id=10827"},"modified":"2026-08-21T11:34:21","modified_gmt":"2026-08-21T09:34:21","slug":"construction-environmental-monitoring","status":"publish","type":"page","link":"https:\/\/monitorering.ki.dk\/en\/construction-environmental-monitoring\/","title":{"rendered":"Construction Environmental Monitoring"},"content":{"rendered":"<style> @import url('https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@500;700;800&display=swap'); .snm{--ink:#1c2430;--muted:#586473;--brand:#1BAAEC;--line:#e6ebf2;--shadow:0 16px 40px rgba(20,40,70,.10); width:100vw;margin-left:calc(50% - 50vw); position:relative;background:#eef3f8;} .snm::before{content:\"\";position:fixed;inset:0;z-index:0;pointer-events:none; background:url('https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2024\/01\/BG-gradient-4-way-split-v5-scaled.jpg') center bottom\/cover;transform:scaleY(-1);} .snm>section{position:relative;z-index:1;} .snm *{box-sizing:border-box;} .snm p:empty{display:none !important;} .snm img{max-width:100%;} .snm-wrap{max-width:1120px;margin:0 auto;padding:0 24px;} .snm h1,.snm h2{font-family:'Montserrat',sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.02em;color:var(--ink);line-height:1.18;margin:0;} .snm-hl{font-weight:800;} .snm-section{padding:58px 0;} .snm-last{padding-top:67px;padding-bottom:125px;} .snm-section>.snm-wrap>h2{font-size:clamp(24px,3vw,34px);text-align:center;margin:0 0 14px;} \/* Extra breathing room around a section heading: 132px of visible air above, 82px below (double the defaults, measured from live pixels rather than the box model). The declared margin-bottom is the full 82px; where a laptop follows, its PNG carries transparent padding above the lid, and that differs per frame (194px vs 452px on an 8334px-wide source). --snm-lap-pad carries it as a % of frame width, so pulling that back keeps the VISIBLE gap identical whichever frame the screenshot picked. *\/ .snm-section--airy>.snm-wrap>h2{margin-top:66px;margin-bottom:82px;} .snm-section--airy .snm-lapfig .snm-laptop{margin-top:calc(-1 * var(--snm-lap-pad,2.33%));} .snm-sub{color:var(--muted);font-size:18px;text-align:center;max-width:68ch;margin:0 auto 44px;} .snm-partners{color:var(--muted);font-size:15.5px;text-align:center;max-width:70ch;margin:-24px auto 0;line-height:1.9;} .snm-after{font-size:16.5px;margin:40px auto 0;max-width:74ch;} .snm-ic{width:30px;height:30px;fill:var(--brand);display:block;margin-bottom:16px;} \/* Full-viewport photo hero; the copy sits on a frosted card so it reads over any part of the shot. The hero fills the screen BELOW everything above it (WP admin bar + utility bar + masthead). --snm-hero-top is measured at runtime by the script at the end of this page and written onto .snm; CSS cannot read another element's height on its own. The fallback below is a curve fitted to the Pro masthead (122\/126\/135\/140\/144\/149\/157px at 900\/1024\/1280\/1440\/1536\/1680\/1920, and 104px at 390) so the hero is still right with JS disabled. Re-check with measure_header.js. *\/ .snm{--snm-hero-top:calc(91px + 3.43vw);} .snm-hero{position:relative;min-height:calc(100vh - var(--snm-hero-top));display:flex;align-items:center;justify-content:center; padding:clamp(16px,3vh,70px) 0;text-align:center;background-position:center;background-size:cover;background-repeat:no-repeat;} \/* The copy sits directly on the photo, so the scrim does the legibility work. It is weighted to the left, where the text is, and fades out to the right so the dam wall stays visible. *\/ \/* scrim strength is per page: a calm photo needs less, a busy one more. Stops set via --snm-scrim-N on the section so a page can darken its own left edge without new CSS. *\/ .snm-hero::after{content:\"\";position:absolute;inset:0;pointer-events:none; background:linear-gradient(100deg, rgba(6,18,32,var(--snm-scrim-1,.80)) 0%, rgba(6,18,32,var(--snm-scrim-2,.62)) 38%, rgba(6,18,32,var(--snm-scrim-3,.30)) 68%, rgba(6,18,32,var(--snm-scrim-4,.12)) 100%);} .snm-hero>.snm-wrap{position:relative;z-index:1;width:100%;} \/* copy left, CTA right; both scale with viewport HEIGHT as well as width so the hero still fits above the fold on a short laptop screen (1280x800, 1440x900) *\/ .snm-hero-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.8fr); gap:clamp(28px,4vw,64px);align-items:center;text-align:left;} .snm-hero-copy .snm-logo{display:block;height:clamp(44px,7vh,86px);width:auto;margin:0 0 clamp(18px,3vh,34px);} .snm-hero-copy .snm-eyebrow{margin:0 0 clamp(10px,1.6vh,16px);} \/* no hero photograph: sit on the page gradient with dark text instead of white-on-image *\/ .snm-hero--flat::after{display:none;} .snm-hero--flat .snm-hero-copy h1{color:var(--ink);text-shadow:none;} .snm-hero--flat .snm-hero-copy .snm-lead{color:#3a4654;text-shadow:none;} .snm-hero-copy h1{color:#fff;max-width:18ch;margin:0 0 clamp(12px,2.1vh,22px); font-size:clamp(30px,min(4.6vw,5.4vh),52px);text-shadow:0 2px 20px rgba(0,0,0,.38);} .snm-hero-copy .snm-lead{color:rgba(255,255,255,.93);max-width:58ch;margin:0; font-size:clamp(16px,min(1.9vw,2.3vh),20px);text-shadow:0 1px 14px rgba(0,0,0,.42);} .snm-hero-actions{display:flex;flex-direction:column;align-items:stretch;gap:clamp(12px,1.8vh,18px);} .snm-btn-lg{padding:clamp(16px,2.5vh,24px) clamp(24px,2vw,34px);font-size:clamp(17px,1.25vw,21px); border-radius:6px;justify-content:center;box-shadow:0 6px 22px rgba(0,0,0,.32);} .snm-btn-lg .snm-btn-ic{width:21px;height:21px;} .snm-logo{display:block;height:clamp(42px,6.4vh,74px);width:auto;margin:0 auto clamp(14px,2.3vh,26px);} .snm-eyebrow{font-family:'Montserrat',sans-serif;text-transform:uppercase;letter-spacing:.16em;font-size:13px;font-weight:700;color:var(--brand);margin:0 0 16px;} .snm-hero h1{font-size:clamp(28px,4.4vw,46px);max-width:22ch;margin:0 auto 20px;} .snm-lead{font-size:clamp(17px,2vw,20px);max-width:62ch;margin:0 auto 30px;color:#3a4654;} .snm-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;} .snm-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 30px;border-radius:4px;font-weight:400;font-size:17px;color:#fff;text-decoration:none; box-shadow:0 3px 11px rgba(0,0,0,.25);transition:filter .15s ease;} .snm-btn:hover{filter:brightness(1.1);color:#fff;} .snm-btn-ic{width:18px;height:18px;fill:currentColor;flex:none;} .snm-btn-primary{background:linear-gradient(109deg,#6CD897 0%,#56B4B1 100%);} .snm-btn-secondary{background:linear-gradient(130deg,#1BAAEC 0%,#406CBA 100%);} .snm-laptop{position:relative;max-width:860px;margin:30px auto 0;filter:drop-shadow(0 26px 34px rgba(20,40,70,.22));} .snm-lap-end{margin-bottom:-34px;} .snm-laptop .frame{position:relative;z-index:2;width:100%;display:block;} \/* contain, never cover: a screenshot that does not match the 1.9864 aperture is shown WHOLE with a little dark screen either side, rather than being silently cropped. These are pictures of the product \u2014 the frame must never alter what the platform looks like. Capture at 1.9864:1 (e.g. 1920x966) and the fill disappears. *\/ .snm-laptop .screen{position:absolute;z-index:1;object-fit:contain;object-position:center;background:#0b1622;} .snm-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:24px;} .snm-cards--2{grid-template-columns:repeat(2,1fr);} .snm-card{background:#fff;border-radius:16px;padding:32px;box-shadow:var(--shadow);} .snm-card h3{font-family:'Montserrat',sans-serif;font-weight:700;font-size:18px;margin:0 0 10px;color:var(--ink);} .snm-card p{margin:0;color:var(--muted);} \/* margins doubled from the measured 44px above \/ 58px below. The 58px below came from the section's own padding-bottom, so the extra 58px is added as a margin on the card to reach 116. *\/ .snm-quote{background:#fff;border-radius:20px;max-width:700px;margin:88px auto 58px;padding:50px;box-shadow:var(--shadow);text-align:center;} .snm-quote .snm-qmark{display:block;width:auto;height:100px;margin:0 auto 26px;} \/* the Pro theme puts a rule above and below every blockquote \u2014 reset it inside the card *\/ .snm-quote blockquote{margin:0;padding:0;border:0;background:none;font-size:19px;line-height:1.55;color:#3a4654;quotes:none;} .snm-quote blockquote::before,.snm-quote blockquote::after{content:none;display:none;} .snm-quote .snm-who{margin:26px 0 0;font-size:15px;color:var(--muted);line-height:1.6;} .snm-quote .snm-who b{display:block;color:var(--ink);} \/* a section that breaks out of the gradient onto a full-bleed white band *\/ .snm-section--white{background:#fff;} .snm-section--white .snm-fig{padding:0;box-shadow:none;} \/* a wide illustration gets the full wrap plus a little more, and its own art scales to it *\/ .snm-fig--wide{max-width:none;} .snm-fig--wide svg,.snm-fig--wide img{width:100%;height:auto;display:block;} \/* text + illustration side by side; the heading lives in the text column, so it is left-aligned *\/ .snm-two{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;} .snm-two h2{text-align:left;margin:0 0 20px;font-size:clamp(23px,2.8vw,32px);} .snm-two p{color:var(--muted);font-size:17px;line-height:1.65;margin:0 0 18px;} .snm-two .snm-cap{font-size:15px;color:#6b7887;margin:0;} .snm-two img{display:block;width:100%;height:auto;border-radius:12px;} \/* UI screenshots are unreadable at thumbnail width \u2014 two per row, and an odd last one spans the full width rather than sitting alone in a half-width cell *\/ \/* laptop slideshow. All screens stack in the same aperture and cross-fade; the caption below is swapped by the script. min-height on the caption stops the controls jumping when a caption wraps to a different number of lines. *\/ .snm-slider{max-width:900px;margin:0 auto;} \/* 100px of VISIBLE air above the lid; the frame's own transparent padding is taken off the declared margin so the eye sees 100, not 100 plus the padding. *\/ .snm-slider .snm-laptop{margin:calc(100px - var(--snm-lap-pad,2.33%)) auto 0;} .snm-slider .snm-laptop .screen{opacity:0;transition:opacity .45s ease;} .snm-slider .snm-laptop .screen.is-on{opacity:1;} .snm-slide-cap{margin:-6px auto 0;color:var(--muted);font-size:15.5px;line-height:1.6;text-align:center; max-width:70ch;min-height:3.2em;} .snm-slider-ctl{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:4px;} \/* wpautop paragraph-wraps inline children (buttons, links) inside our flex rows, and the injected paragraph then becomes the flex item instead of the control, offsetting it by its own margin. display:contents makes those paragraphs generate no box, so the real controls stay the items. NOTE: never write a literal paragraph tag in these comments \u2014 wpautop parses it as real markup and splits the stylesheet in half. *\/ .snm-slider-ctl>p,.snm-dots>p,.snm-cta>p,.snm-hero-actions>p{display:contents;} .snm-nav{width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#fff;color:var(--brand); box-shadow:0 6px 18px rgba(20,40,70,.14);cursor:pointer;display:inline-flex;align-items:center;justify-content:center; transition:filter .15s ease,transform .15s ease;} .snm-nav:hover{filter:brightness(.97);transform:scale(1.06);} .snm-nav .snm-ic{width:15px;height:15px;margin:0;fill:currentColor;} .snm-dots{display:flex;align-items:center;gap:11px;} .snm-dot{width:11px;height:11px;padding:0;border:0;border-radius:50%;background:rgba(20,40,70,.20); cursor:pointer;transition:background .2s ease,transform .2s ease;} .snm-dot:hover{background:rgba(20,40,70,.38);} .snm-dot.is-on{background:var(--brand);transform:scale(1.15);} \/* laptop + caption. The frame PNG carries ~34px of transparent padding under the base, so the caption's top margin is pulled back to leave a visually even gap rather than a numeric one. *\/ .snm-lapfig{margin:0;} .snm-lapfig .snm-laptop{margin-top:0;} .snm-lapfig figcaption{margin:-6px auto 0;color:var(--muted);font-size:15px;line-height:1.6;text-align:center;max-width:80ch;} \/* A white card that carries its own heading and intro alongside the figure, for when the copy explains the graphic and the two should read as one block. The figure inside drops its own card styling so there is only one panel, not a card within a card. *\/ \/* top padding is the base + 25px, kept as a calc so it stays +25 at every viewport width *\/ .snm-panel{background:#fff;border-radius:20px;box-shadow:var(--shadow); padding:calc(clamp(28px,4vw,50px) + 25px) clamp(28px,4vw,50px) clamp(28px,4vw,50px);} .snm-panel>h2{font-family:'Montserrat',sans-serif;font-size:clamp(24px,3vw,34px);text-align:center;margin:0 0 16px;} .snm-panel .snm-sub{margin-bottom:40px;} .snm-panel .snm-fig{background:none;border-radius:0;padding:0;box-shadow:none;} .snm-fig{background:#fff;border-radius:20px;margin:0;padding:30px;box-shadow:var(--shadow);} .snm-fig img{display:block;width:100%;height:auto;border-radius:10px;} .snm-fig svg{display:block;width:100%;height:auto;} .snm-fig figcaption{margin-top:22px;color:var(--muted);font-size:15px;line-height:1.6;text-align:center;max-width:80ch;margin-left:auto;margin-right:auto;} .snm-split{display:grid;grid-template-columns:1.05fr 1fr;gap:50px;align-items:center;margin-bottom:-15px;} .snm-split .snm-laptop{margin:0;max-width:none;} .snm-split h2{text-align:left;margin:0 0 20px;font-size:clamp(23px,2.8vw,32px);} .snm-list{list-style:none;padding:0;margin:0;} .snm-list li{position:relative;padding:11px 0 11px 34px;color:#3a4654;font-size:17px;} .snm-list li+li{border-top:1px solid rgba(20,40,70,.08);} .snm-list li::before{content:\"\";position:absolute;left:0;top:14px;width:20px;height:20px;border-radius:50%;background:#1aa971; -webkit-mask:url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'\/><\/svg>\") center\/13px no-repeat; mask:url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'\/><\/svg>\") center\/13px no-repeat;} .snm-faq-section>.snm-wrap>h2{margin-bottom:50px;} .snm-faq{max-width:840px;margin:0 auto;} .snm-faq details{background:#fff;border-radius:12px;padding:2px 24px;margin-bottom:14px;box-shadow:0 6px 18px rgba(20,40,70,.06);} .snm-faq details:last-child{margin-bottom:0;} .snm-faq summary{cursor:pointer;font-weight:600;font-size:17px;padding:18px 0;list-style:none;color:var(--ink);font-family:'Open Sans',sans-serif;} .snm-faq summary::-webkit-details-marker{display:none;} .snm-faq summary::after{content:\"+\";float:right;color:var(--brand);font-size:24px;line-height:1;font-weight:400;} .snm-faq details[open] summary::after{content:\"\\2013\";} .snm-faq details p{margin:0 0 20px;color:var(--muted);} .snm-final{background:#fff;border-radius:20px;max-width:920px;margin:0 auto;text-align:center;padding:56px 30px;box-shadow:var(--shadow);} .snm-final h2{font-size:clamp(23px,3vw,32px);margin:0 0 14px;} .snm-final .snm-laptop{margin:0 auto 36px;max-width:600px;filter:drop-shadow(0 20px 30px rgba(20,40,70,.18));} .snm-final p{color:var(--muted);font-size:18px;max-width:56ch;margin:0 auto 28px;} .snm-disc{max-width:920px;margin:0 auto;padding:22px 26px;border-radius:12px;background:rgba(255,255,255,.66); color:var(--muted);font-size:14.5px;line-height:1.6;text-align:center;} .snm-disc b{color:var(--ink);} @media(max-width:820px){.snm-split{grid-template-columns:1fr;gap:28px;}.snm-split h2{text-align:center;}.snm-section{padding:54px 0;} .snm-fig{padding:20px;}.snm-quote{padding:34px 26px;}.snm-cards--2{grid-template-columns:1fr;} .snm-two{grid-template-columns:1fr;gap:30px;}.snm-two h2{text-align:center;} .snm-shots{grid-template-columns:1fr;} .snm-hero{padding:44px 0;} .snm-hero-grid{grid-template-columns:1fr;gap:30px;} .snm-hero-copy h1{max-width:none;}.snm-hero-actions{align-items:stretch;}} <\/style>\n<div class=\"snm\" data-demo=\"https:\/\/senmos.dk\/demo?oid=4b5bbc8a-bdbf-4870-9c78-c6a555bdb1ec&#038;pid=5a8b741e-7bb7-454e-8374-b9a4f8f44dce&#038;returnUrl=%2Ftool%3Fdaid%3D4396e869-17fc-443e-a990-5f3d0686c05a\"> <!-- the photo is decorative: the card carries the message, so no role=\"img\" here (it would hide the headline and buttons from assistive tech) --> <\/p>\n<section class=\"snm-hero\" style=\"background-image:url('https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-construction-hero.jpg');--snm-scrim-1:.90;--snm-scrim-2:.76;--snm-scrim-3:.44;--snm-scrim-4:.20;\">\n<div class=\"snm-wrap\">\n<div class=\"snm-hero-grid\">\n<div class=\"snm-hero-copy\"> <img decoding=\"async\" class=\"snm-logo\" src=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-logo-white.svg\" alt=\"Senmos\" \/> <\/p>\n<p class=\"snm-eyebrow\">Construction environmental monitoring<\/p>\n<h1>Keep the neighbours &mdash; and the regulator &mdash; on your side<\/h1>\n<p class=\"snm-lead\">Roadworks and building sites shake, dust and roar. Regulations set hard limits on vibration, dust and noise, precisely so nearby homes don&#8217;t crack and people aren&#8217;t harmed. Senmos watches all three live, across every neighbouring property, and raises the alarm the instant a limit is approached.<\/p>\n<\/p><\/div>\n<div class=\"snm-hero-actions\"> <a class=\"snm-btn snm-btn-primary snm-btn-lg\" href=\"https:\/\/senmos.dk\/demo?oid=4b5bbc8a-bdbf-4870-9c78-c6a555bdb1ec&#038;pid=5a8b741e-7bb7-454e-8374-b9a4f8f44dce&#038;returnUrl=%2Ftool%3Fdaid%3D4396e869-17fc-443e-a990-5f3d0686c05a\" target=\"_blank\" rel=\"noopener\"><svg class=\"snm-btn-ic\" viewBox=\"0 0 512 512\" aria-hidden=\"true\"><path d=\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"\/><\/svg>Explore a Senmos demo<\/a> <a class=\"snm-btn snm-btn-secondary snm-btn-lg\" href=\"https:\/\/monitorering.ki.dk\/en\/demonstration\/\"><svg class=\"snm-btn-ic\" viewBox=\"0 0 448 512\" aria-hidden=\"true\"><path d=\"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z\"\/><\/svg>Book a walkthrough<\/a> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/section>\n<section class=\"snm-section snm-section--airy\">\n<div class=\"snm-wrap\">\n<h2>One rulebook, <span class=\"snm-hl\">three limits<\/span><\/h2>\n<figure class=\"snm-lapfig\">\n<div class=\"snm-laptop \" style=\"--snm-lap-pad:2.3278%\"><img decoding=\"async\" class=\"screen\" style=\"left:14.027%;top:10.074%;width:71.766%;height:69.731%\" src=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-construction-heritage-map.png\" alt=\"A monitored heritage building on a 3D map of central Copenhagen in Senmos, with displacement, inclinometer and temperature sensor types listed\" loading=\"lazy\" \/><img decoding=\"async\" class=\"frame\" src=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-laptop-199.png\" alt=\"\" aria-hidden=\"true\" \/><\/div><figcaption>The monitored building on a 3D map of central Copenhagen.<\/figcaption><\/figure>\n<p class=\"snm-sub\" style=\"margin-top:44px\">Compliance and protecting your neighbours are the <b>same job<\/b>. The thresholds in the regulations exist to stop nearby buildings cracking and to spare residents from harmful dust and noise &mdash; so staying under them keeps you legal <b>and<\/b> keeps the people next door safe. Senmos turns that one rulebook into live, per-property limits with automatic alarms.<\/p>\n<div class=\"snm-quote\"> <img decoding=\"async\" class=\"snm-qmark\" src=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2024\/01\/message-quote-solid-dark-blue.png\" alt=\"\" aria-hidden=\"true\" \/> <\/p>\n<blockquote><p>&ldquo;We are personally using this platform and it&#8217;s impressive what it can do, hopefully much more to come.&rdquo;<\/p><\/blockquote>\n<p class=\"snm-who\"><b>Matt Sutton<\/b>Infrastructure Inspections Manager, Stroma Built Environment<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<\/section>\n<section class=\"snm-section snm-section--white\">\n<div class=\"snm-wrap\">\n<h2>How a construction zone is <span class=\"snm-hl\">instrumented<\/span><\/h2>\n<p class=\"snm-sub\">Picture an active construction zone with the <b>5&ndash;10 nearby properties<\/b> around it. Every property carries the same monitoring point &mdash; <b>vibration, dust and noise together<\/b> &mdash; so you watch all three sensor types at once. Impact falls off with distance from the works, so the closest, most vulnerable buildings get the tightest limits.<\/p>\n<figure class=\"snm-fig snm-fig--wide\"><svg viewBox=\"0 0 880 380\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" font-family=\"'Open Sans',sans-serif\"> <defs> <radialGradient id=\"impact\" cx=\"50%\" cy=\"50%\" r=\"50%\"> <stop offset=\"0%\" stop-color=\"#eaf2f9\"\/> <stop offset=\"55%\" stop-color=\"#f4f8fc\"\/> <stop offset=\"100%\" stop-color=\"#ffffff\"\/> <\/radialGradient> <g id=\"prop\"> <polygon points=\"-6,16 20,-4 46,16\" fill=\"#1c2430\"\/> <rect x=\"-1\" y=\"14\" width=\"42\" height=\"28\" rx=\"2\" fill=\"#f6f9fc\" stroke=\"#1c2430\" stroke-width=\"1.5\"\/> <rect x=\"14\" y=\"28\" width=\"12\" height=\"14\" fill=\"#9fb6cc\"\/> <g transform=\"translate(20,54)\"><circle cx=\"-13\" r=\"5.5\" fill=\"#C0392B\"\/><circle cx=\"0\" r=\"5.5\" fill=\"#1BAAEC\"\/><circle cx=\"13\" r=\"5.5\" fill=\"#1aa971\"\/><\/g> <\/g> <\/defs> <rect width=\"880\" height=\"380\" fill=\"#ffffff\"\/> <!-- impact gradient + distance rings centred on the construction zone --> <circle cx=\"300\" cy=\"190\" r=\"300\" fill=\"url(#impact)\"\/> <g fill=\"none\" stroke=\"#cfe0ee\" stroke-dasharray=\"4 4\" opacity=\".7\"> <circle cx=\"300\" cy=\"190\" r=\"120\"\/><circle cx=\"300\" cy=\"190\" r=\"200\"\/><circle cx=\"300\" cy=\"190\" r=\"280\"\/> <\/g> <!-- the road --> <path d=\"M0,210 C160,180 320,180 470,205 C620,230 760,230 880,205\" fill=\"none\" stroke=\"#c3ced9\" stroke-width=\"30\"\/> <path d=\"M0,210 C160,180 320,180 470,205 C620,230 760,230 880,205\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-dasharray=\"14 12\"\/> <!-- construction zone (label only) --> <rect x=\"200\" y=\"156\" width=\"200\" height=\"74\" rx=\"8\" fill=\"#EAF6FD\" stroke=\"#1BAAEC\" stroke-width=\"2\" opacity=\".95\"\/> <text x=\"300\" y=\"199\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"700\" fill=\"#2C6FA8\">CONSTRUCTION ZONE<\/text> <!-- monitored properties - every house carries all three sensor types --> <use href=\"#prop\" x=\"250\" y=\"46\"\/> <use href=\"#prop\" x=\"140\" y=\"232\"\/> <use href=\"#prop\" x=\"372\" y=\"238\"\/> <use href=\"#prop\" x=\"470\" y=\"72\"\/> <use href=\"#prop\" x=\"602\" y=\"140\"\/> <g transform=\"translate(712,250)\"> <polygon points=\"-6,16 20,-4 46,16\" fill=\"#1c2430\"\/> <rect x=\"-1\" y=\"14\" width=\"42\" height=\"28\" rx=\"2\" fill=\"#f6f9fc\" stroke=\"#1c2430\" stroke-width=\"1.5\"\/> <rect x=\"14\" y=\"28\" width=\"12\" height=\"14\" fill=\"#9fb6cc\"\/> <\/g> <use href=\"#prop\" x=\"548\" y=\"288\"\/> <text x=\"270\" y=\"126\" text-anchor=\"middle\" font-size=\"10\" fill=\"#C0392B\" font-weight=\"700\">closest \u00b7 highest impact<\/text> <text x=\"732\" y=\"332\" text-anchor=\"middle\" font-size=\"10\" fill=\"#586473\">furthest \u00b7 lower impact<\/text> <!-- legend --> <g transform=\"translate(642,24)\" font-size=\"11\"> <rect x=\"-14\" y=\"-18\" width=\"244\" height=\"104\" rx=\"8\" fill=\"#fff\" stroke=\"#e6ebf2\"\/> <text x=\"-2\" y=\"0\" font-weight=\"700\" fill=\"#1b2733\">Every property measures all three:<\/text> <circle cx=\"4\" cy=\"22\" r=\"6\" fill=\"#C0392B\"\/><text x=\"18\" y=\"26\" fill=\"#586473\">Vibration &#8211; PPV (mm\/s)<\/text> <circle cx=\"4\" cy=\"46\" r=\"6\" fill=\"#1BAAEC\"\/><text x=\"18\" y=\"50\" fill=\"#586473\">Dust &#8211; PM10 \/ PM2.5<\/text> <circle cx=\"4\" cy=\"70\" r=\"6\" fill=\"#1aa971\"\/><text x=\"18\" y=\"74\" fill=\"#586473\">Noise &#8211; dB(A)<\/text> <\/g> <text x=\"300\" y=\"362\" text-anchor=\"middle\" font-size=\"11\" fill=\"#8a7a5c\">faint rings = falling impact with distance from the works<\/text> <\/svg><figcaption>Figure &mdash; A plan view of the works: the construction zone on the road and the nearby properties around it, <b>each carrying the same vibration + dust + noise monitoring point<\/b>. Closer buildings get the tightest limits.<\/figcaption><\/figure>\n<\/p><\/div>\n<\/section>\n<section class=\"snm-section snm-section--airy\">\n<div class=\"snm-wrap\">\n<h2>Sensor-to-screen, <span class=\"snm-hl\">live at every property<\/span><\/h2>\n<div class=\"snm-cards snm-cards--2\">\n<div class=\"snm-card\"><svg class=\"snm-ic\" viewBox=\"0 0 576 512\" aria-hidden=\"true\"><!--! Font Awesome Pro 6.2.1 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d=\"M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V183.4c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z\"\/><\/svg><\/p>\n<h3>Triaxial vibration sensors (PPV)<\/h3>\n<p>Measure peak particle velocity in mm\/s on or beside each building &mdash; the number that tells you whether the structure is at risk.<\/p>\n<\/div>\n<div class=\"snm-card\"><svg class=\"snm-ic\" viewBox=\"0 0 576 512\" aria-hidden=\"true\"><!--! Font Awesome Free 6.7.2 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d=\"M269.5 69.9c11.1-7.9 25.9-7.9 37 0C329 85.4 356.5 96 384 96c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 149.7 417 160 384 160c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4C42.8 92.6 61 83.5 75.3 71.6c11.1-9.5 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 85.2 165.1 96 192 96c27.5 0 55-10.6 77.5-26.1zm37 288C329 373.4 356.5 384 384 384c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 437.7 417 448 384 448c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 373.2 165.1 384 192 384c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0zm0-144C329 229.4 356.5 240 384 240c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 293.7 417 304 384 304c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.5 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 229.2 165.1 240 192 240c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"\/><\/svg><\/p>\n<h3>Dust \/ particulate sensors (PM10 \/ PM2.5)<\/h3>\n<p>Track airborne dust concentration in real time, so air-quality limits are met and complaints can be answered with data.<\/p>\n<\/div>\n<div class=\"snm-card\"><svg class=\"snm-ic\" viewBox=\"0 0 512 512\" aria-hidden=\"true\"><!--! Font Awesome Pro 6.2.1 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d=\"M512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32zM96 288c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32zm352-32c0-17.7-14.3-32-32-32s-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32z\"\/><\/svg><\/p>\n<h3>Sound-level meters (dB(A))<\/h3>\n<p>Continuously log noise at the property line against the permitted day\/evening\/night limits.<\/p>\n<\/div>\n<div class=\"snm-card\"><svg class=\"snm-ic\" viewBox=\"0 0 448 512\" aria-hidden=\"true\"><!--! Font Awesome Pro 6.2.1 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d=\"M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416H416c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z\"\/><\/svg><\/p>\n<h3>Per-property thresholds + automated alarms<\/h3>\n<p>Each property gets its own limits based on distance and building type, streaming live into Senmos &mdash; an alert fires the moment a limit is approached.<\/p>\n<\/div>\n<\/div><\/div>\n<\/section>\n<section class=\"snm-section\">\n<div class=\"snm-wrap\">\n<div class=\"snm-panel\">\n<h2>Why <span class=\"snm-hl\">each one matters<\/span><\/h2>\n<p class=\"snm-sub\">Three simple stories, one platform. Each measurement protects something specific &mdash; and each one trips an alarm in Senmos the moment it crosses the limit.<\/p>\n<figure class=\"snm-fig\"><svg viewBox=\"0 0 880 470\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" font-family=\"'Open Sans',sans-serif\"> <defs> <g id=\"bell\"> <path d=\"M0,-12 C8,-12 11,-6 11,2 L13,8 L-13,8 L-11,2 C-11,-6 -8,-12 0,-12 Z\" fill=\"#C0392B\"\/> <circle cx=\"0\" cy=\"-13\" r=\"2.5\" fill=\"#C0392B\"\/> <path d=\"M-4,8 a4,4 0 0 0 8,0\" fill=\"#C0392B\"\/> <\/g> <pattern id=\"bricks\" patternUnits=\"userSpaceOnUse\" width=\"48\" height=\"24\"> <rect width=\"48\" height=\"24\" fill=\"#dba978\"\/> <g stroke=\"#b9824d\" stroke-width=\"1.5\"> <line x1=\"0\" y1=\"0\" x2=\"48\" y2=\"0\"\/><line x1=\"0\" y1=\"12\" x2=\"48\" y2=\"12\"\/> <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"12\"\/><line x1=\"24\" y1=\"0\" x2=\"24\" y2=\"12\"\/><line x1=\"48\" y1=\"0\" x2=\"48\" y2=\"12\"\/> <line x1=\"12\" y1=\"12\" x2=\"12\" y2=\"24\"\/><line x1=\"36\" y1=\"12\" x2=\"36\" y2=\"24\"\/> <\/g> <\/pattern> <\/defs> <rect width=\"880\" height=\"470\" fill=\"#ffffff\"\/> <!-- ===== SCENE 1 - VIBRATION \u2192 CRACK BETWEEN BRICKS ===== --> <g transform=\"translate(20,20)\"> <rect width=\"266\" height=\"300\" rx=\"12\" fill=\"#fff\" stroke=\"#e6ebf2\"\/> <text x=\"133\" y=\"28\" text-anchor=\"middle\" font-size=\"14\" font-weight=\"700\" fill=\"#C0392B\">VIBRATION<\/text> <text x=\"133\" y=\"46\" text-anchor=\"middle\" font-size=\"11.5\" fill=\"#586473\">cracks open between the bricks<\/text> <rect x=\"16\" y=\"236\" width=\"234\" height=\"10\" fill=\"#e6dccb\"\/> <rect x=\"60\" y=\"68\" width=\"158\" height=\"8\" fill=\"#9a8a6c\"\/> <rect x=\"64\" y=\"76\" width=\"150\" height=\"160\" fill=\"url(#bricks)\" stroke=\"#b9824d\" stroke-width=\"2\"\/> <polyline points=\"140,76 130,100 146,124 132,150 148,176 136,206 142,236\" fill=\"none\" stroke=\"#C0392B\" stroke-width=\"3.2\"\/> <g fill=\"none\" stroke=\"#C0392B\" stroke-width=\"2\" opacity=\".75\"> <path d=\"M44,232 q-14,-16 0,-32\"\/><path d=\"M32,236 q-20,-22 0,-44\"\/><path d=\"M20,240 q-26,-28 0,-56\"\/> <\/g> <text x=\"18\" y=\"214\" font-size=\"9\" fill=\"#2C6FA8\">ground-borne<\/text> <text x=\"18\" y=\"225\" font-size=\"9\" fill=\"#2C6FA8\">vibration<\/text> <rect x=\"182\" y=\"92\" width=\"28\" height=\"16\" rx=\"3\" fill=\"#1c2430\"\/> <text x=\"196\" y=\"104\" text-anchor=\"middle\" font-size=\"8.5\" fill=\"#fff\" font-weight=\"700\">PPV<\/text> <g transform=\"translate(104,272)\"><use href=\"#bell\"\/><text x=\"22\" y=\"4\" font-size=\"11\" fill=\"#C0392B\" font-weight=\"700\">limit exceeded<\/text><\/g> <\/g> <!-- ===== SCENE 2 - DUST \u2192 AIR QUALITY ===== --> <g transform=\"translate(307,20)\"> <rect width=\"266\" height=\"300\" rx=\"12\" fill=\"#fff\" stroke=\"#e6ebf2\"\/> <text x=\"133\" y=\"28\" text-anchor=\"middle\" font-size=\"14\" font-weight=\"700\" fill=\"#1BAAEC\">DUST<\/text> <text x=\"133\" y=\"46\" text-anchor=\"middle\" font-size=\"11.5\" fill=\"#586473\">fills the air &#8211; air quality &amp; health<\/text> <rect x=\"16\" y=\"236\" width=\"234\" height=\"10\" fill=\"#e6dccb\"\/> <path d=\"M30,236 q26,-42 64,0 z\" fill=\"#cdb98e\" stroke=\"#b9a47e\"\/> <g fill=\"#e7cfa0\" opacity=\".55\"> <ellipse cx=\"78\" cy=\"172\" rx=\"42\" ry=\"27\"\/><ellipse cx=\"122\" cy=\"140\" rx=\"48\" ry=\"31\"\/><ellipse cx=\"162\" cy=\"116\" rx=\"40\" ry=\"26\"\/> <\/g> <g fill=\"#d9b87a\" opacity=\".5\"> <ellipse cx=\"112\" cy=\"150\" rx=\"30\" ry=\"18\"\/><ellipse cx=\"152\" cy=\"124\" rx=\"26\" ry=\"16\"\/> <\/g> <g transform=\"translate(198,150)\"> <rect x=\"0\" y=\"0\" width=\"46\" height=\"58\" rx=\"6\" fill=\"#fff\" stroke=\"#1BAAEC\" stroke-width=\"2\"\/> <rect x=\"8\" y=\"10\" width=\"30\" height=\"6\" rx=\"3\" fill=\"#1BAAEC\"\/> <rect x=\"8\" y=\"22\" width=\"30\" height=\"6\" rx=\"3\" fill=\"#9ED8F5\"\/> <text x=\"23\" y=\"48\" text-anchor=\"middle\" font-size=\"9\" fill=\"#2C6FA8\" font-weight=\"700\">PM10<\/text> <line x1=\"-16\" y1=\"20\" x2=\"-2\" y2=\"20\" stroke=\"#c79a4e\" stroke-width=\"2\"\/> <polygon points=\"-2,16 6,20 -2,24\" fill=\"#c79a4e\"\/> <\/g> <g transform=\"translate(104,272)\"><use href=\"#bell\"\/><text x=\"22\" y=\"4\" font-size=\"11\" fill=\"#C0392B\" font-weight=\"700\">limit exceeded<\/text><\/g> <\/g> <!-- ===== SCENE 3 - NOISE \u2192 HEAVY EQUIPMENT ===== --> <g transform=\"translate(594,20)\"> <rect width=\"266\" height=\"300\" rx=\"12\" fill=\"#fff\" stroke=\"#e6ebf2\"\/> <text x=\"133\" y=\"28\" text-anchor=\"middle\" font-size=\"14\" font-weight=\"700\" fill=\"#1aa971\">NOISE<\/text> <text x=\"133\" y=\"46\" text-anchor=\"middle\" font-size=\"11.5\" fill=\"#586473\">from heavy equipment on site<\/text> <rect x=\"16\" y=\"236\" width=\"234\" height=\"10\" fill=\"#e6dccb\"\/> <g transform=\"translate(34,148)\"> <rect x=\"0\" y=\"74\" width=\"96\" height=\"20\" rx=\"10\" fill=\"#444c54\"\/> <g fill=\"#2f363c\"><circle cx=\"16\" cy=\"84\" r=\"6\"\/><circle cx=\"48\" cy=\"84\" r=\"6\"\/><circle cx=\"80\" cy=\"84\" r=\"6\"\/><\/g> <rect x=\"16\" y=\"44\" width=\"64\" height=\"32\" rx=\"4\" fill=\"#e0a020\" stroke=\"#9a6f10\"\/> <rect x=\"20\" y=\"22\" width=\"34\" height=\"26\" rx=\"3\" fill=\"#e0a020\" stroke=\"#9a6f10\"\/> <rect x=\"26\" y=\"28\" width=\"22\" height=\"14\" fill=\"#cfe2f0\"\/> <line x1=\"70\" y1=\"50\" x2=\"104\" y2=\"20\" stroke=\"#9a6f10\" stroke-width=\"8\" stroke-linecap=\"round\"\/> <line x1=\"104\" y1=\"20\" x2=\"126\" y2=\"54\" stroke=\"#9a6f10\" stroke-width=\"7\" stroke-linecap=\"round\"\/> <path d=\"M120,52 q12,8 4,22 l-18,-7 z\" fill=\"#e0a020\" stroke=\"#9a6f10\"\/> <\/g> <g fill=\"none\" stroke=\"#1aa971\" stroke-width=\"2.2\" opacity=\".8\"> <path d=\"M178,150 q18,-22 0,-52\"\/><path d=\"M194,156 q26,-30 0,-72\"\/> <\/g> <g transform=\"translate(228,150)\"> <circle cx=\"0\" cy=\"0\" r=\"16\" fill=\"#f0d9c0\" stroke=\"#1c2430\" stroke-width=\"2\"\/> <ellipse cx=\"-16\" cy=\"2\" rx=\"6\" ry=\"9\" fill=\"#f0d9c0\" stroke=\"#1c2430\" stroke-width=\"2\"\/> <ellipse cx=\"16\" cy=\"2\" rx=\"6\" ry=\"9\" fill=\"#f0d9c0\" stroke=\"#1c2430\" stroke-width=\"2\"\/> <path d=\"M-7,-3 q3,-3 6,0\" fill=\"none\" stroke=\"#1c2430\" stroke-width=\"1.8\"\/> <path d=\"M1,-3 q3,-3 6,0\" fill=\"none\" stroke=\"#1c2430\" stroke-width=\"1.8\"\/> <path d=\"M-6,9 q6,5 12,0\" fill=\"none\" stroke=\"#1c2430\" stroke-width=\"1.8\"\/> <\/g> <g transform=\"translate(104,272)\"><use href=\"#bell\"\/><text x=\"22\" y=\"4\" font-size=\"11\" fill=\"#C0392B\" font-weight=\"700\">limit exceeded<\/text><\/g> <\/g> <!-- ===== bottom strip: live level vs limit (taller; trace crosses the limit at the dot) ===== --> <g transform=\"translate(20,338)\"> <rect width=\"840\" height=\"116\" rx=\"10\" fill=\"#f6f9fc\" stroke=\"#e6ebf2\"\/> <text x=\"16\" y=\"24\" font-size=\"12\" font-weight=\"700\" fill=\"#1b2733\">Live level vs limit &#8211; same logic for all three<\/text> <line x1=\"120\" y1=\"100\" x2=\"800\" y2=\"100\" stroke=\"#c3ced9\" stroke-dasharray=\"5 4\"\/> <text x=\"104\" y=\"104\" font-size=\"10\" fill=\"#c3ced9\">0<\/text> <line x1=\"120\" y1=\"44\" x2=\"800\" y2=\"44\" stroke=\"#C0392B\" stroke-width=\"1.5\" stroke-dasharray=\"6 4\"\/> <text x=\"806\" y=\"48\" font-size=\"10.5\" fill=\"#C0392B\" font-weight=\"700\">limit<\/text> <polyline points=\"120,96 190,92 260,87 330,80 400,72 470,62 540,52 590,44 640,34 700,26 770,20 800,18\" fill=\"none\" stroke=\"#1aa971\" stroke-width=\"2.6\"\/> <circle cx=\"590\" cy=\"44\" r=\"6\" fill=\"#C0392B\" stroke=\"#fff\" stroke-width=\"1.5\"\/> <g transform=\"translate(606,30)\"><use href=\"#bell\"\/><text x=\"20\" y=\"4\" font-size=\"10.5\" fill=\"#C0392B\" font-weight=\"700\">alarm<\/text><\/g> <text x=\"120\" y=\"112\" font-size=\"10.5\" fill=\"#586473\">the live trace climbs; the moment it crosses the red limit, Senmos fires the alarm and logs it<\/text> <\/g> <\/svg><figcaption>Figure &mdash; Three things to watch, one safety logic. Vibration shakes the ground and opens cracks between the bricks of nearby walls; dust drifts off the works and fills the air; heavy equipment fills the area with noise. Each is measured at the property and, the moment it crosses its limit, Senmos raises the alarm &mdash; exactly where the live trace meets the line.<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<\/section>\n<section class=\"snm-section\" id=\"demo\">\n<div class=\"snm-wrap\">\n<h2>What this looks like in <span class=\"snm-hl\">Senmos<\/span><\/h2>\n<p class=\"snm-sub\">The dedicated environmental demo &mdash; vibration, dust and noise across a street of properties &mdash; is being built. The views here come from live Senmos demo projects, and the platform behaviour is the same. In Senmos you can:<\/p>\n<div class=\"snm-cards snm-cards--2\">\n<div class=\"snm-card\"><svg class=\"snm-ic\" viewBox=\"0 0 384 512\" aria-hidden=\"true\"><!--! Font Awesome Free 6.7.2 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d=\"M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"\/><\/svg><\/p>\n<h3>See every monitored property<\/h3>\n<p>The street map with all 5&ndash;10 properties pinned, each showing its current vibration \/ dust \/ noise status.<\/p>\n<\/div>\n<div class=\"snm-card\"><svg class=\"snm-ic\" viewBox=\"0 0 512 512\" aria-hidden=\"true\"><!--! Font Awesome Pro 6.2.1 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d=\"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"\/><\/svg><\/p>\n<h3>Track vibration against its limit<\/h3>\n<p>Open one property&#8217;s PPV history and see exactly how close it has come to cracking risk.<\/p>\n<\/div>\n<div class=\"snm-card\"><svg class=\"snm-ic\" viewBox=\"0 0 512 512\" aria-hidden=\"true\"><!--! Font Awesome Free 6.7.2 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d=\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64l0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"\/><\/svg><\/p>\n<h3>Follow dust &amp; noise trends<\/h3>\n<p>Particulate and dB(A) trends over the day, against the permitted limits.<\/p>\n<\/div>\n<div class=\"snm-card\"><svg class=\"snm-ic\" viewBox=\"0 0 512 512\" aria-hidden=\"true\"><!--! Font Awesome Free 6.7.2 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d=\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"\/><\/svg><\/p>\n<h3>Review the alarm log<\/h3>\n<p>Every threshold breach, when it happened and at which property &mdash; your audit trail for the regulator.<\/p>\n<\/div>\n<\/div>\n<div class=\"snm-slider\" data-interval=\"5500\">\n<div class=\"snm-laptop\" style=\"--snm-lap-pad:2.3278%\"><img decoding=\"async\" class=\"screen is-on\" style=\"left:14.027%;top:10.074%;width:71.766%;height:69.731%\" src=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-railway-map-overview.png\" alt=\"The Hammersholt track on a 3D map in Senmos, with north and south rail live value boxes showing displacement and temperature per node\" data-cap=\"Every monitored location on one map, with live status per point\" loading=\"lazy\" \/><img decoding=\"async\" class=\"screen\" style=\"left:14.027%;top:10.074%;width:71.766%;height:69.731%\" src=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-construction-heritage-crack.png\" alt=\"Crack meter width plotted against ambient temperature over 30 days for two cracks on a heritage building in Senmos\" data-cap=\"Full history per location &mdash; see how close a reading came to its limit\" loading=\"lazy\" \/><img decoding=\"async\" class=\"screen\" style=\"left:14.027%;top:10.074%;width:71.766%;height:69.731%\" src=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-dam-level_pore.webp\" alt=\"Line plots in Senmos showing reservoir level against three pore pressure channels over 30 days, above a seismic acceleration plot with event spikes\" data-cap=\"Trends and events together, against the thresholds that matter\" loading=\"lazy\" \/><img decoding=\"async\" class=\"frame\" src=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-laptop-199.png\" alt=\"\" aria-hidden=\"true\" \/><\/div>\n<p class=\"snm-slide-cap\" role=\"status\" aria-live=\"polite\">Every monitored location on one map, with live status per point<\/p>\n<div class=\"snm-slider-ctl\"> <button type=\"button\" class=\"snm-nav\" data-dir=\"-1\" aria-label=\"Previous screenshot\"><svg class=\"snm-ic\" viewBox=\"0 0 320 512\" aria-hidden=\"true\"><!--! Font Awesome Free 6.7.2 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d=\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"\/><\/svg><\/button> <\/p>\n<div class=\"snm-dots\"><button type=\"button\" class=\"snm-dot is-on\" aria-label=\"Show screenshot 1 of 3\"><\/button><button type=\"button\" class=\"snm-dot\" aria-label=\"Show screenshot 2 of 3\"><\/button><button type=\"button\" class=\"snm-dot\" aria-label=\"Show screenshot 3 of 3\"><\/button><\/div>\n<p> <button type=\"button\" class=\"snm-nav\" data-dir=\"1\" aria-label=\"Next screenshot\"><svg class=\"snm-ic\" viewBox=\"0 0 320 512\" aria-hidden=\"true\"><!--! Font Awesome Free 6.7.2 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d=\"M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"\/><\/svg><\/button> <\/div>\n<\/p><\/div>\n<div class=\"snm-cta\" style=\"margin-top:44px\"> <a class=\"snm-btn snm-btn-primary\" href=\"https:\/\/senmos.dk\/demo?oid=4b5bbc8a-bdbf-4870-9c78-c6a555bdb1ec&#038;pid=5a8b741e-7bb7-454e-8374-b9a4f8f44dce&#038;returnUrl=%2Ftool%3Fdaid%3D4396e869-17fc-443e-a990-5f3d0686c05a\" target=\"_blank\" rel=\"noopener\"><svg class=\"snm-btn-ic\" viewBox=\"0 0 512 512\" aria-hidden=\"true\"><path d=\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"\/><\/svg>Explore a Senmos demo project<\/a> <a class=\"snm-btn snm-btn-secondary\" href=\"https:\/\/monitorering.ki.dk\/en\/cost-calculator\/\"><svg class=\"snm-btn-ic\" viewBox=\"0 0 384 512\" aria-hidden=\"true\"><path d=\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm32 160a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM96 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM64 416c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32zM192 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm64-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 448a32 32 0 1 1 0-64 32 32 0 1 1 0 64z\"\/><\/svg>Calculate your price<\/a> <\/div>\n<\/p><\/div>\n<\/section>\n<section class=\"snm-section snm-last\">\n<div class=\"snm-wrap\">\n<div class=\"snm-disc\"><b>Demonstration data.<\/b> The views on this page come from live Senmos demo projects, and the demo button opens one of them. All demo data is <b>simulated<\/b> to illustrate the platform; it is not live monitoring of an operational construction site.<\/div>\n<\/p><\/div>\n<\/section><\/div>\n<div class=\"snm-fit\" style=\"display:none\"><script> (function(){var d=document,s=d.querySelector('.snm'),h=d.querySelector('.snm-hero'); if(!s||!h){return;} var set=function(){var t=h.getBoundingClientRect().top+(window.pageYOffset||d.documentElement.scrollTop||0); s.style.setProperty('--snm-hero-top',Math.max(0,Math.round(t))+'px');}; set(); window.addEventListener('resize',set); window.addEventListener('load',set); if(d.fonts){if(d.fonts.ready){if(d.fonts.ready.then){d.fonts.ready.then(set);}}}})(); (function(){var s=document.querySelector('.snm');if(!s){return;} var url=s.getAttribute('data-demo');if(!url){return;} var plain='https:\/\/senmos.dk\/demo'; var retarget=function(){var links=document.querySelectorAll('a[href]'); for(var i=0;i<links.length;i++){var a=links[i];var h=a.getAttribute('href')||''; if(h.charAt(h.length-1)==='\/'){h=h.substring(0,h.length-1);} if(h===plain){a.setAttribute('href',url);a.setAttribute('target','_blank');a.setAttribute('rel','noopener');}}}; retarget(); document.addEventListener('DOMContentLoaded',retarget); window.addEventListener('load',retarget);})(); (function(){var each=function(l,f){Array.prototype.forEach.call(l,f);}; each(document.querySelectorAll('.snm-slider'),function(s){ var shots=s.querySelectorAll('.snm-laptop .screen'),dots=s.querySelectorAll('.snm-dot'), cap=s.querySelector('.snm-slide-cap'),n=shots.length; if(n<2){return;} var i=0,timer=null,iv=parseInt(s.getAttribute('data-interval'),10)||5500,reduce=false; if(window.matchMedia){reduce=window.matchMedia('(prefers-reduced-motion: reduce)').matches;} var show=function(k){i=(k%n+n)%n; for(var j=0;j<n;j++){shots[j].classList.toggle('is-on',j===i); if(dots[j]){dots[j].classList.toggle('is-on',j===i);dots[j].setAttribute('aria-current',j===i?'true':'false');}} if(cap){cap.innerHTML=shots[i].getAttribute('data-cap')||'';}}; var paused=false; var stop=function(){if(timer){clearInterval(timer);timer=null;}}; var play=function(){stop();if(reduce){return;}if(paused){return;} timer=setInterval(function(){show(i+1);},iv);}; var hold=function(){paused=true;stop();}; var release=function(){paused=false;play();}; each(s.querySelectorAll('.snm-nav'),function(b){b.addEventListener('click',function(){ show(i+(parseInt(b.getAttribute('data-dir'),10)||1));play();});}); each(dots,function(b,k){b.addEventListener('click',function(){show(k);play();});}); s.addEventListener('mouseenter',hold);s.addEventListener('mouseleave',release); s.addEventListener('focusin',hold);s.addEventListener('focusout',release); show(0);play();});})(); <\/script><\/div>\n<p> <script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"SoftwareApplication\", \"name\": \"Senmos\", \"applicationCategory\": \"BusinessApplication\", \"operatingSystem\": \"Web browser\", \"description\": \"Live vibration, dust and noise monitoring at every neighbouring property, with per-property limits and alarms the moment a threshold is approached.\", \"url\": \"https:\/\/monitorering.ki.dk\/en\/construction-environmental-monitoring\/\", \"offers\": {\"@type\": \"Offer\", \"price\": \"29\", \"priceCurrency\": \"EUR\", \"description\": \"Plans from EUR 29\/month with no binding period.\"}}<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Construction environmental monitoring Keep the neighbours &mdash; and the regulator &mdash; on your side Roadworks and building sites shake, dust and roar. Regulations set hard limits on vibration, dust and noise, precisely so nearby homes &#8230; <\/p>\n<div><a href=\"https:\/\/monitorering.ki.dk\/en\/construction-environmental-monitoring\/\" class=\"more-link\">Read More<\/a><\/div>\n","protected":false},"author":9,"featured_media":10835,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-blank-4.php","meta":{"_yoast_wpseo_focuskw":"construction environmental monitoring","_yoast_wpseo_title":"Construction Environmental Monitoring | Senmos","_yoast_wpseo_metadesc":"Live vibration, dust and noise monitoring at every neighbouring property, with per-property limits and alarms the moment a threshold is approached.","rs_blank_template":"","rs_page_bg_color":"","slide_template_v7":"","_monsterinsights_skip_tracking":false,"footnotes":""},"class_list":["post-10827","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Construction Environmental Monitoring | Senmos<\/title>\n<meta name=\"description\" content=\"Live vibration, dust and noise monitoring at every neighbouring property, with per-property limits and alarms the moment a threshold is approached.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/monitorering.ki.dk\/en\/construction-environmental-monitoring\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Construction Environmental Monitoring | Senmos\" \/>\n<meta property=\"og:description\" content=\"Live vibration, dust and noise monitoring at every neighbouring property, with per-property limits and alarms the moment a threshold is approached.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/monitorering.ki.dk\/en\/construction-environmental-monitoring\/\" \/>\n<meta property=\"og:site_name\" content=\"KI Monitoring\" \/>\n<meta property=\"og:image\" content=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-construction-heritage-map-1024x515.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"515\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/construction-environmental-monitoring\\\/\",\"url\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/construction-environmental-monitoring\\\/\",\"name\":\"Construction Environmental Monitoring | Senmos\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/construction-environmental-monitoring\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/construction-environmental-monitoring\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/monitorering.ki.dk\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/senmos-construction-heritage-map.png\",\"datePublished\":\"2026-08-21T09:34:21+00:00\",\"description\":\"Live vibration, dust and noise monitoring at every neighbouring property, with per-property limits and alarms the moment a threshold is approached.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/construction-environmental-monitoring\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/construction-environmental-monitoring\\\/#primaryimage\",\"url\":\"https:\\\/\\\/monitorering.ki.dk\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/senmos-construction-heritage-map.png\",\"contentUrl\":\"https:\\\/\\\/monitorering.ki.dk\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/senmos-construction-heritage-map.png\",\"width\":1920,\"height\":966,\"caption\":\"A monitored heritage building on a 3D map of central Copenhagen in Senmos, with displacement, inclinometer and temperature sensor types listed\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/\",\"name\":\"KI Monitorering\",\"description\":\"Geotechnical and structural monitoring in the cloud\",\"publisher\":{\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/#organization\",\"name\":\"KI R\u00e5dgivende Ingeni\u00f8rer\",\"url\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/monitorering.ki.dk\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Logo-2020_Black.png\",\"contentUrl\":\"https:\\\/\\\/monitorering.ki.dk\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Logo-2020_Black.png\",\"width\":1068,\"height\":826,\"caption\":\"KI R\u00e5dgivende Ingeni\u00f8rer\"},\"image\":{\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/company\\\/5059650\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Construction Environmental Monitoring | Senmos","description":"Live vibration, dust and noise monitoring at every neighbouring property, with per-property limits and alarms the moment a threshold is approached.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/monitorering.ki.dk\/en\/construction-environmental-monitoring\/","og_locale":"en_US","og_type":"article","og_title":"Construction Environmental Monitoring | Senmos","og_description":"Live vibration, dust and noise monitoring at every neighbouring property, with per-property limits and alarms the moment a threshold is approached.","og_url":"https:\/\/monitorering.ki.dk\/en\/construction-environmental-monitoring\/","og_site_name":"KI Monitoring","og_image":[{"width":1024,"height":515,"url":"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-construction-heritage-map-1024x515.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/monitorering.ki.dk\/en\/construction-environmental-monitoring\/","url":"https:\/\/monitorering.ki.dk\/en\/construction-environmental-monitoring\/","name":"Construction Environmental Monitoring | Senmos","isPartOf":{"@id":"https:\/\/monitorering.ki.dk\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/monitorering.ki.dk\/en\/construction-environmental-monitoring\/#primaryimage"},"image":{"@id":"https:\/\/monitorering.ki.dk\/en\/construction-environmental-monitoring\/#primaryimage"},"thumbnailUrl":"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-construction-heritage-map.png","datePublished":"2026-08-21T09:34:21+00:00","description":"Live vibration, dust and noise monitoring at every neighbouring property, with per-property limits and alarms the moment a threshold is approached.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/monitorering.ki.dk\/en\/construction-environmental-monitoring\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/monitorering.ki.dk\/en\/construction-environmental-monitoring\/#primaryimage","url":"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-construction-heritage-map.png","contentUrl":"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-construction-heritage-map.png","width":1920,"height":966,"caption":"A monitored heritage building on a 3D map of central Copenhagen in Senmos, with displacement, inclinometer and temperature sensor types listed"},{"@type":"WebSite","@id":"https:\/\/monitorering.ki.dk\/en\/#website","url":"https:\/\/monitorering.ki.dk\/en\/","name":"KI Monitorering","description":"Geotechnical and structural monitoring in the cloud","publisher":{"@id":"https:\/\/monitorering.ki.dk\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/monitorering.ki.dk\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/monitorering.ki.dk\/en\/#organization","name":"KI R\u00e5dgivende Ingeni\u00f8rer","url":"https:\/\/monitorering.ki.dk\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/monitorering.ki.dk\/en\/#\/schema\/logo\/image\/","url":"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2020\/06\/Logo-2020_Black.png","contentUrl":"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2020\/06\/Logo-2020_Black.png","width":1068,"height":826,"caption":"KI R\u00e5dgivende Ingeni\u00f8rer"},"image":{"@id":"https:\/\/monitorering.ki.dk\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/5059650\/"]}]}},"_links":{"self":[{"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/pages\/10827","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/comments?post=10827"}],"version-history":[{"count":8,"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/pages\/10827\/revisions"}],"predecessor-version":[{"id":10840,"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/pages\/10827\/revisions\/10840"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/media\/10835"}],"wp:attachment":[{"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/media?parent=10827"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}