{"id":25427,"date":"2026-03-17T17:10:45","date_gmt":"2026-03-17T21:10:45","guid":{"rendered":"https:\/\/smartd.tech\/?page_id=25427"},"modified":"2026-03-18T14:58:41","modified_gmt":"2026-03-18T18:58:41","slug":"link-finder","status":"publish","type":"page","link":"https:\/\/smartd.tech\/fr\/link-finder\/","title":{"rendered":"Link Finder"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"25427\" class=\"elementor elementor-25427\" data-elementor-post-type=\"page\">\n\t\t\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-3007dd4 e-flex e-con-boxed e-con e-parent\" data-id=\"3007dd4\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3b72018 elementor-widget elementor-widget-spacer\" data-id=\"3b72018\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8fe0e6d elementor-widget elementor-widget-heading\" data-id=\"8fe0e6d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">SMARTD LINK FINDER<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-de0c1ba elementor-widget elementor-widget-spacer\" data-id=\"de0c1ba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-09ab148 e-flex e-con-boxed e-con e-parent\" data-id=\"09ab148\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-346736f elementor-widget elementor-widget-html\" data-id=\"346736f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>SmartD Link Finder<\/title>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@400;500;600;700&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n  * { box-sizing: border-box; margin: 0; padding: 0; }\r\n  body { font-family: 'Montserrat', sans-serif; background: #fff; color: #000; padding: 2rem 1rem; }\r\n  #app { max-width: 860px; margin: 2rem auto 0; }\r\n  .subtitle { font-size: 15.6px; color: #000; margin-bottom: 1.5rem; font-weight: 400; line-height: 1.8; display: block; }\r\n  .input-row { display: flex; gap: 10px; margin-bottom: 1.25rem; }\r\n  textarea {\r\n    flex: 1; min-height: 54px; resize: none; padding: 12px 14px;\r\n    font-size: 16.8px; font-family: 'Montserrat', sans-serif;\r\n    border: 1.5px solid #ddd; border-radius: 6px;\r\n    background: #fff; color: #000; line-height: 1.5; transition: border-color 0.15s;\r\n  }\r\n  textarea:focus { outline: none; border-color: #3ab87a; }\r\n  textarea::placeholder { color: #bbb; }\r\n  #searchBtn {\r\n    align-self: flex-end; padding: 12px 24px; font-size: 15.6px; font-weight: 700;\r\n    border-radius: 6px; cursor: pointer; white-space: nowrap;\r\n    background: #3ab87a; color: #fff; border: none;\r\n    font-family: 'Montserrat', sans-serif; text-transform: uppercase;\r\n    letter-spacing: 0.04em; transition: background 0.15s;\r\n  }\r\n  #searchBtn:hover { background: #2ea068; }\r\n  #searchBtn:disabled { opacity: 0.4; cursor: not-allowed; }\r\n  .section-label {\r\n    font-size: 12px; font-weight: 700; color: #bbb;\r\n    text-transform: uppercase; letter-spacing: 0.1em;\r\n    margin-bottom: 8px; margin-top: 18px;\r\n  }\r\n  .chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 6px; }\r\n  .chip {\r\n    font-size: 14.4px; padding: 7px 16px; border-radius: 4px; cursor: pointer;\r\n    border: 1px solid #e0e0e0; background: #f8f8f8; color: #000;\r\n    font-family: 'Montserrat', sans-serif; transition: all 0.1s;\r\n  }\r\n  .chip:hover { border-color: #3ab87a; color: #2ea068; background: #f0faf5; }\r\n  .chips-last { margin-bottom: 2rem; }\r\n  #copyAllWrap { display: none; margin-bottom: 1rem; }\r\n  #copyAllBtn {\r\n    font-size: 14.4px; font-weight: 600; padding: 7px 16px;\r\n    border: 1.5px solid #3ab87a; border-radius: 5px; cursor: pointer;\r\n    background: transparent; color: #3ab87a;\r\n    font-family: 'Montserrat', sans-serif; text-transform: uppercase;\r\n    letter-spacing: 0.04em; transition: all 0.15s;\r\n  }\r\n  #copyAllBtn:hover { background: #3ab87a; color: #fff; }\r\n  #results { display: flex; flex-direction: column; gap: 0; }\r\n  .card { border-bottom: 1px solid #f0f0f0; padding: 1rem 0; }\r\n  .card:last-child { border-bottom: none; }\r\n  .card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 3px; }\r\n  .card-title { font-size: 18px; font-weight: 700; color: #000; line-height: 1.3; }\r\n  .badge {\r\n    font-size: 12px; padding: 2px 8px; border-radius: 3px;\r\n    white-space: nowrap; font-weight: 600; flex-shrink: 0;\r\n    text-transform: uppercase; letter-spacing: 0.04em;\r\n  }\r\n  .badge-web  { background: #e6f7ef; color: #1a7a4a; }\r\n  .badge-docs { background: #e8f0fe; color: #1a56a0; }\r\n  .card-url {\r\n    font-size: 14.4px; color: #3ab87a; font-family: 'Montserrat', sans-serif;\r\n    text-decoration: none; display: block; margin-bottom: 5px; font-weight: 500;\r\n  }\r\n  .card-url:hover { text-decoration: underline; }\r\n  .card-reason { font-size: 15.6px; color: #000; line-height: 1.55; }\r\n  .relevance-bar { margin-top: 8px; display: flex; align-items: center; gap: 8px; }\r\n  .bar-track { flex: 1; height: 2px; background: #f0f0f0; border-radius: 99px; }\r\n  .bar-fill  { height: 100%; border-radius: 99px; background: #3ab87a; }\r\n  .bar-label { font-size: 12px; color: #bbb; min-width: 28px; text-align: right; font-weight: 600; }\r\n  .status { font-size: 16.8px; color: #999; padding: 1rem 0; }\r\n  @media (max-width: 520px) {\r\n    .input-row { flex-direction: column; }\r\n    #searchBtn { width: 100%; }\r\n  }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<div id=\"app\">\r\n  <p class=\"subtitle\">\r\n    <span style=\"display:block;\">Searches all of smartd.tech, all application notes,<\/span>\r\n    <span style=\"display:block;\">and all user guide articles \u2014 updated daily.<\/span>\r\n  <\/p>\r\n\r\n  <div class=\"input-row\">\r\n    <textarea id=\"query\" placeholder=\"e.g. How does it handle long cable runs?\"><\/textarea>\r\n    <button id=\"searchBtn\" onclick=\"doSearch()\">Find pages<\/button>\r\n  <\/div>\r\n\r\n  <div class=\"section-label\">Sales questions<\/div>\r\n  <div class=\"chips\">\r\n    <span class=\"chip\" onclick=\"setQ('Do you still need a sine wave filter?')\">Sine wave filter<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('Is it IEEE-519 compliant?')\">IEEE-519<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('How does it handle long cable runs?')\">Long cable runs<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('Do you have municipal water references?')\">Municipal references<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('What happens to motor heat and bearing life?')\">Motor protection<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('How does it compare to ABB or Danfoss?')\">vs ABB \/ Danfoss<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('Can it retrofit an existing drive?')\">Retrofit<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('Do you have case studies?')\">Case studies<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('What are the energy savings?')\">Energy savings<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('How does SiC technology work?')\">SiC technology<\/span>\r\n  <\/div>\r\n\r\n  <div class=\"section-label\">Integration &amp; networking<\/div>\r\n  <div class=\"chips\">\r\n    <span class=\"chip\" onclick=\"setQ('How do I connect to BMS using BACnet?')\">BACnet \/ BMS<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('How do I control it with Modbus TCP?')\">Modbus TCP<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('How do I connect to EtherNet\/IP?')\">EtherNet\/IP<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('How does the embedded PID work for pumps?')\">PID control<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('Can I run multiple motors on one VFD?')\">Multi-motor<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('How does emergency fire mode work?')\">Fire mode<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('How do I control HVAC fan and damper?')\">HVAC damper<\/span>\r\n  <\/div>\r\n\r\n  <div class=\"section-label\">Installation &amp; commissioning<\/div>\r\n  <div class=\"chips chips-last\">\r\n    <span class=\"chip\" onclick=\"setQ('How do I mount and install the VFD?')\">Mounting<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('How do I wire the power cables and fuses?')\">Power wiring<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('How do I wire the analog input?')\">Analog input<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('How do I wire the digital inputs?')\">Digital inputs<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('How do I set up the HMI?')\">HMI setup<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('How do I configure motor parameters?')\">Motor parameters<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('What is alarm code 14?')\">Alarm codes<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('How do I troubleshoot the drive?')\">Troubleshooting<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('How do I update the drive firmware?')\">Firmware update<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('How do I reset to factory settings?')\">Factory reset<\/span>\r\n    <span class=\"chip\" onclick=\"setQ('Where can I find the product datasheet?')\">Datasheets<\/span>\r\n  <\/div>\r\n\r\n  <div id=\"copyAllWrap\">\r\n    <button id=\"copyAllBtn\" onclick=\"copyAll()\">Copy all results<\/button>\r\n  <\/div>\r\n  <div id=\"results\"><\/div>\r\n<\/div>\r\n\r\n<script>\r\nvar PROXY_URL = 'https:\/\/smartd.tech\/smartd-proxy.php';\r\nvar resultData = [];\r\n\r\nfunction setQ(q) {\r\n  document.getElementById('query').value = q;\r\n  document.getElementById('query').focus();\r\n}\r\n\r\nasync function doSearch() {\r\n  var q = document.getElementById('query').value.trim();\r\n  if (!q) return;\r\n  var btn = document.getElementById('searchBtn');\r\n  var out = document.getElementById('results');\r\n  btn.disabled = true;\r\n  btn.textContent = 'Searching...';\r\n  out.innerHTML = '<p class=\"status\">Finding the best pages...<\/p>';\r\n  document.getElementById('copyAllWrap').style.display = 'none';\r\n  resultData = [];\r\n\r\n  try {\r\n    var resp = await fetch(PROXY_URL, {\r\n      method: 'POST',\r\n      headers: { 'Content-Type': 'application\/json' },\r\n      body: JSON.stringify({\r\n        messages: [{ role: 'user', content: q }]\r\n      })\r\n    });\r\n\r\n    if (!resp.ok) {\r\n      var e = await resp.json().catch(function() { return {}; });\r\n      throw new Error(e.error && e.error.message ? e.error.message : 'Server error ' + resp.status);\r\n    }\r\n\r\n    var data = await resp.json();\r\n    var textBlock = data.content && data.content.find(function(b) { return b.type === 'text'; });\r\n    var raw = textBlock ? textBlock.text : '[]';\r\n    var clean = raw.replace(\/```json|```\/g, '').trim();\r\n\r\n    \/\/ Extract JSON array even if there's extra text around it\r\n    var match = clean.match(\/\\[[\\s\\S]*\\]\/);\r\n    if (!match) throw new Error('No results returned');\r\n    var items = JSON.parse(match[0]);\r\n\r\n    out.innerHTML = '';\r\n    resultData = [];\r\n\r\n    items.forEach(function(item) {\r\n      if (!item.url && item.index === undefined) return;\r\n\r\n      \/\/ The proxy returns full URLs directly now\r\n      var url    = item.url || '';\r\n      var reason = item.reason || '';\r\n      var pct    = Math.round((item.relevance || 0) * 100);\r\n      var source = item.source || (url.indexOf('clickhelp') !== -1 ? 'docs' : 'web');\r\n      var displayUrl = url.replace('https:\/\/', '').replace(\/#!.*\/, '...');\r\n      var title  = item.title || displayUrl;\r\n      var badgeClass = source === 'docs' ? 'badge-docs' : 'badge-web';\r\n      var badgeLabel = source === 'docs' ? 'Docs' : 'smartd.tech';\r\n\r\n      resultData.push({ title: title, url: url, displayUrl: displayUrl, reason: reason });\r\n\r\n      var card = document.createElement('div');\r\n      card.className = 'card';\r\n      card.innerHTML =\r\n        '<div class=\"card-top\">' +\r\n          '<span class=\"card-title\">' + title + '<\/span>' +\r\n          '<span class=\"badge ' + badgeClass + '\">' + badgeLabel + '<\/span>' +\r\n        '<\/div>' +\r\n        '<a class=\"card-url\" href=\"' + url + '\" target=\"_blank\" rel=\"noopener\">' + displayUrl + '<\/a>' +\r\n        '<p class=\"card-reason\">' + reason + '<\/p>' +\r\n        '<div class=\"relevance-bar\">' +\r\n          '<div class=\"bar-track\"><div class=\"bar-fill\" style=\"width:' + pct + '%\"><\/div><\/div>' +\r\n          '<span class=\"bar-label\">' + pct + '%<\/span>' +\r\n        '<\/div>';\r\n      out.appendChild(card);\r\n    });\r\n\r\n    if (resultData.length > 0) document.getElementById('copyAllWrap').style.display = 'block';\r\n\r\n  } catch(e) {\r\n    out.innerHTML = '<p class=\"status\" style=\"color:#c0392b;\">Error: ' + e.message + '<\/p>';\r\n  }\r\n\r\n  btn.disabled = false;\r\n  btn.textContent = 'Find pages';\r\n}\r\n\r\nfunction copyAll() {\r\n  var lines = resultData.map(function(r) {\r\n    return r.title + '\\n' + r.url + '\\n' + r.reason;\r\n  }).join('\\n\\n');\r\n  navigator.clipboard.writeText(lines).then(function() {\r\n    var b = document.getElementById('copyAllBtn');\r\n    b.textContent = 'Copied!';\r\n    setTimeout(function() { b.textContent = 'Copy all results'; }, 2000);\r\n  });\r\n}\r\n\r\ndocument.getElementById('query').addEventListener('keydown', function(e) {\r\n  if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); doSearch(); }\r\n});\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>SMARTD LINK FINDER SmartD Link Finder Searches all of smartd.tech, all application notes, and all user guide articles \u2014 updated daily. Find pages Sales questions Sine wave filter IEEE-519 Long cable runs Municipal references Motor protection vs ABB \/ Danfoss Retrofit Case studies Energy savings SiC technology Integration &amp; networking BACnet \/ BMS Modbus TCP [&hellip;]<\/p>\n","protected":false},"author":18,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-25427","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/smartd.tech\/fr\/wp-json\/wp\/v2\/pages\/25427","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/smartd.tech\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/smartd.tech\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/smartd.tech\/fr\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/smartd.tech\/fr\/wp-json\/wp\/v2\/comments?post=25427"}],"version-history":[{"count":0,"href":"https:\/\/smartd.tech\/fr\/wp-json\/wp\/v2\/pages\/25427\/revisions"}],"wp:attachment":[{"href":"https:\/\/smartd.tech\/fr\/wp-json\/wp\/v2\/media?parent=25427"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}