{"id":26326,"date":"2025-12-01T09:53:29","date_gmt":"2025-12-01T08:53:29","guid":{"rendered":"https:\/\/fbt2.addictionlab.it\/modular-voice-alarm-systems-en54-new\/"},"modified":"2025-12-02T14:03:42","modified_gmt":"2025-12-02T13:03:42","slug":"modular-voice-alarm-systems-en54-new","status":"publish","type":"page","link":"https:\/\/www.fbt.it\/it\/modular-voice-alarm-systems-en54-new\/","title":{"rendered":"Modular Voice Alarm Systems &#8211; EN54 New"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-3a48296 stk-block-background\" data-block-id=\"3a48296\"><style>.stk-3a48296 {background-color:#1c1c1c !important;border-style:solid !important;border-color:#353535 !important;border-top-width:0px !important;border-right-width:0px !important;border-bottom-width:1px !important;border-left-width:0px !important;padding-top:50px !important;padding-right:20px !important;padding-bottom:50px !important;padding-left:20px !important;margin-top:0px !important;margin-right:0px !important;margin-bottom:0px !important;margin-left:0px !important;}.stk-3a48296:before{background-color:#1c1c1c !important;}<\/style><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-3a48296-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-a268c7a\" data-v=\"4\" data-block-id=\"a268c7a\"><style>.stk-a268c7a-container{max-width:1440px !important;min-width:auto !important;margin-right:auto !important;margin-left:0px !important;}<\/style><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-a268c7a-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-a268c7a-inner-blocks\">\n<div class=\"wp-block-stackable-heading alignfull stk-block-heading stk-block-heading--v2 stk-block stk-db18e76\" id=\"modular-voice-alarm-systems\" data-block-id=\"db18e76\"><style>.stk-db18e76 {margin-bottom:0px !important;}.stk-db18e76 .stk-block-heading__text{color:#ffffff !important;text-transform:uppercase !important;}<\/style><h2 class=\"stk-block-heading__text has-text-color\">MODULAR VOICE ALARM SYSTEMS<\/h2><\/div>\n\n\n\n<div class=\"wp-block-stackable-subtitle stk-block-subtitle stk-block stk-8c1009e\" data-block-id=\"8c1009e\"><style>.stk-8c1009e .stk-block-subtitle__text{font-size:30px !important;color:#a1a1a1 !important;line-height:30px !important;font-weight:300 !important;text-transform:uppercase !important;letter-spacing:2px !important;}@media screen and (max-width: 1023px){.stk-8c1009e .stk-block-subtitle__text{font-size:30px !important;}}<\/style><p class=\"stk-block-subtitle__text stk-subtitle has-text-color\">EN54<\/p><\/div>\n<\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div id=\"product-filters-block-block_10c6aa9a1b849808f01c8baedda8d06e\" class=\"product-grid-container hidden-filters\"\n     data-filter-groups='{&quot;pre-filter-0&quot;:{&quot;categories&quot;:[&quot;modular-voice-alarm-systems&quot;],&quot;visibility&quot;:&quot;hide&quot;}}'\n     data-hidden-groups='[&quot;pre-filter-0&quot;]'\n     data-initial-prefilters='[]'>\n\n    <div class=\"stk-row\">\n\n        <div class=\"filter-column\">\n\n            <div class=\"filter-column-label\">\n                <h3>Filter by<\/h3>\n            <\/div>\n\n            <div class=\"active-filters-bar\" style=\"display:none;\">\n                <span class=\"label\">Active filters:<\/span>\n                <div class=\"chips\"><\/div>\n                <a href=\"#\" class=\"clear-all\">Clear all<\/a>\n            <\/div>\n\n            <div class=\"product-filters-block\">\n                <div class=\"filters-wrapper\">\n                                    <\/div>\n            <\/div>\n\n            <button class=\"filter-close-button\">Close filters<\/button>\n\n        <\/div>\n\n        <div class=\"grid-column\">\n\n            \n            <div class=\"woocommerce-result-count products-header-block\">\n                <div class=\"products-grid-view-container\">\n                    <span class=\"label\" id=\"display-mode-label\">Modalit\u00e0 di visualizzazione<\/span> \n                    <div class=\"products-grid-view-switcher\" role=\"group\" aria-labelledby=\"display-mode-label\">\n                        <button type=\"button\" class=\"grid-view active\" data-view=\"grid\" aria-pressed=\"true\" aria-label=\"Grid view\">\n                            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 26 26\" aria-hidden=\"true\">\n                                <g><g>\n                                        <path d=\"M0,11h11V0H0v11ZM1,1h9v9H1V1Z\"\/>\n                                        <path d=\"M15,0v11h11V0h-11ZM25,10h-9V1h9v9Z\"\/>\n                                        <path d=\"M0,26h11v-11H0v11ZM1,16h9v9H1v-9Z\"\/>\n                                        <path d=\"M15,26h11v-11h-11v11ZM16,16h9v9h-9v-9Z\"\/>\n                                    <\/g><\/g>\n                            <\/svg>\n                        <\/button>\n                        <button type=\"button\" class=\"list-view\" data-view=\"list\" aria-pressed=\"false\" aria-label=\"List view\">\n                            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 26 26\" aria-hidden=\"true\">\n                                <g><g>\n                                        <path d=\"M0,11h11V0H0v11ZM1,1h9v9H1V1Z\"\/>\n                                        <rect x=\"15\" y=\"2\" width=\"11\" height=\"1\"\/>\n                                        <rect x=\"15\" y=\"5\" width=\"11\" height=\"1\"\/>\n                                        <rect x=\"15\" y=\"8\" width=\"6.05\" height=\"1\"\/>\n                                        <rect x=\"15\" y=\"17\" width=\"11\" height=\"1\"\/>\n                                        <rect x=\"15\" y=\"20\" width=\"11\" height=\"1\"\/>\n                                        <rect x=\"15\" y=\"23\" width=\"6.05\" height=\"1\"\/>\n                                        <path d=\"M0,26h11v-11H0v11ZM1,16h9v9H1v-9Z\"\/>\n                                    <\/g><\/g>\n                            <\/svg>\n                        <\/button>\n                    <\/div>\n                <\/div>\n                <div class=\"results-container\">\n                    <span class=\"label\">Risultati:<\/span>\n                    <p class=\"custom-filter-count\">541<\/p>\n                <\/div>\n            <\/div>\n\n            <div class=\"products-loader\">\n                <span class=\"loader-gif\"><\/span>\n            <\/div>\n\n            <div class=\"woocommerce-no-products-found\" style=\"display:none;\">\n                <span class=\"search-gif\"><\/span>\n                <h3>Nessun prodotto trovato.<\/h3>\n                <p>Rimuovi uno o pi\u00f9 filtri per ampliare la ricerca.<\/p>\n            <\/div>\n\n            <div class=\"woocommerce\">\n                <ul class=\"products card-view\"><\/ul>\n                <nav class=\"pagination\" aria-label=\"Product pagination\"><\/nav>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\n    (function($) {\n        'use strict';\n\n        \/\/ BLOCCA lo script products_header_block\n        window.usingCustomProductFilters = true;\n\n        $(document).ready(function() {\n\n            const $container = $('.product-grid-container');\n            const filterGroups = $container.data('filter-groups');\n            const hiddenGroups = $container.data('hidden-groups') || [];\n            const initialPrefilters = $container.data('initial-prefilters') || {}; \/\/ Pre-filtri da preservare sempre\n            let isLoading = false;\n\n            \/\/ --- LOGICA FILTRI MOBILE ---\n\n            \/\/ Apertura filtri\n            $('.filter-open-button').on('click', function() {\n                $container.addClass('filters-mobile-open');\n                \/\/ Impedisci lo scroll del body quando il pannello \u00e8 aperto\n                $('body').addClass('no-scroll');\n            });\n\n            \/\/ Chiusura filtri\n            $('.filter-close-button').on('click', function() {\n                $container.removeClass('filters-mobile-open');\n                $('body').removeClass('no-scroll');\n            });\n\n            \/\/ --- FINE LOGICA FILTRI MOBILE ---\n\n\n            \/\/ Toggle accordion\n            $('.filter-group-header').on('click', function() {\n                const $group = $(this).closest('.filter-group');\n                $group.toggleClass('collapsed');\n                const isCollapsed = $group.hasClass('collapsed');\n                const $btn = $(this).find('.filter-group-toggle');\n                const controlsId = $btn.attr('aria-controls');\n\n                $btn.attr('aria-expanded', String(!isCollapsed));\n\n                if (controlsId) {\n                  $('#' + controlsId).prop('hidden', isCollapsed);\n                }\n            });\n\n            \/\/ Cambio filtri\n            $('.filter-input').on('change', function() {\n                $(this).closest('.filter-option').toggleClass('is-active', this.checked);\n                loadProducts(1);\n            });\n\n            \/\/ Switch vista grid\/list\n            $(document).on('click keydown', '.products-grid-view-switcher .grid-view, .products-grid-view-switcher .list-view', function(e) {\n                const isClick = (e.type === 'click');\n                const isEnter = (e.type === 'keydown' && e.key === 'Enter');\n                const isSpace = (e.type === 'keydown' && (e.key === ' ' || e.key === 'Spacebar'));\n                const view = $(this).data('view');\n\n                if (!(isClick || isEnter || isSpace)) return;\n                if (isSpace) e.preventDefault();\n\n                $('.products-grid-view-switcher .grid-view, .products-grid-view-switcher .list-view').removeClass('active').attr('aria-pressed', 'false');\n                $(this).addClass('active').attr('aria-pressed', 'true');\n\n                if (view === 'grid') {\n                    $('ul.products').removeClass('list-view').addClass('card-view');\n                } else {\n                    $('ul.products').removeClass('card-view').addClass('list-view');\n                }\n\n                localStorage.setItem('products_view', view);\n            });\n\n            \/\/ Ripristina vista salvata\n            const savedView = localStorage.getItem('products_view');\n            if (savedView) {\n                if (savedView === 'grid') {\n                    $('ul.products').removeClass('list-view').addClass('card-view');\n                    $('.grid-view').addClass('active');\n                    $('.list-view').removeClass('active');\n                } else {\n                    $('ul.products').removeClass('card-view').addClass('list-view');\n                    $('.list-view').addClass('active');\n                    $('.grid-view').removeClass('active');\n                }\n            } else {\n                $('ul.products').addClass('card-view');\n                $('.grid-view').addClass('active');\n            }\n\n            \/\/ Clear all filters\n            $('.clear-all').on('click', function(e) {\n                e.preventDefault();\n                $('.filter-input').prop('checked', false);\n                $('.filter-option').removeClass('is-active');\n                loadProducts(1);\n            });\n\n            \/\/ Rimuovi singolo filtro cliccando sul chip\n            $(document).on('click', '.chip', function(e) {\n                e.preventDefault();\n                const groupId = $(this).data('group-id');\n                const catSlug = $(this).data('cat-slug');\n\n                $('.filter-input[data-group-id=\"' + groupId + '\"][value=\"' + catSlug + '\"]')\n                    .prop('checked', false)\n                    .closest('.filter-option')\n                    .removeClass('is-active');\n\n                loadProducts(1);\n            });\n\n            \/\/ Funzione principale AJAX\n            function loadProducts(page) {\n\n                if (isLoading) return;\n                isLoading = true;\n\n                \/\/ Raccogli filtri dai checkbox visibili\n                const filtersByGroup = {};\n\n                $('.filter-input:checked').each(function() {\n                    const groupId = $(this).data('group-id');\n\n                    if (!filtersByGroup[groupId]) {\n                        filtersByGroup[groupId] = [];\n                    }\n                    filtersByGroup[groupId].push($(this).val());\n                });\n\n                \/\/ Aggiungi pre-filtri\n                for (const [groupId, categories] of Object.entries(initialPrefilters)) {\n                    if (!filtersByGroup[groupId]) {\n                        filtersByGroup[groupId] = [];\n                    }\n                    categories.forEach(cat => {\n                        if (!filtersByGroup[groupId].includes(cat)) {\n                            filtersByGroup[groupId].push(cat);\n                        }\n                    });\n                }\n\n                \/\/ Aggiorna chips attivi\n                updateActiveFiltersChips(filtersByGroup);\n\n                \/\/ Mostra loader\n                $('.products-loader').show();\n                $('ul.products').addClass('loading').css('opacity', '0.5');\n\n                \/\/ AJAX request\n                $.ajax({\n                    url: 'https:\/\/www.fbt.it\/wp-admin\/admin-ajax.php',\n                    type: 'POST',\n                    data: {\n                        action: 'filter_products',\n                        filters: filtersByGroup,\n                        paged: page,\n                        all_groups: JSON.stringify(filterGroups)\n                    },\n                    success: function(response) {\n\n                        if (response.success) {\n\n                            $('ul.products').html(response.data.products_html);\n                            $('.custom-filter-count').text(response.data.total_products);\n                            updateCategoryCounts(response.data.category_counts);\n                            updatePagination(response.data.max_pages, response.data.current_page);\n\n                            if (response.data.total_products === 0) {\n                                $('.woocommerce-no-products-found').show();\n                                $('ul.products').hide();\n                            } else {\n                                $('.woocommerce-no-products-found').hide();\n                                $('ul.products').show();\n                            }\n\n                            updateURL(filtersByGroup, page);\n\n                        }\n\n                    },\n                    complete: function() {\n                        $('.products-loader').hide();\n                        $('ul.products').removeClass('loading').css('opacity', '1');\n                        isLoading = false;\n\n                        \/\/ \/\/ Chiudi filtri mobile dopo il ricaricamento in caso di schermate strette\n                        \/\/ if (window.innerWidth <= 768) { \/\/ $tablet breakpoint\n                        \/\/     $container.removeClass('filters-mobile-open');\n                        \/\/     $('body').removeClass('no-scroll');\n                        \/\/ }\n                    }\n                });\n            }\n\n            \/\/ Aggiorna chips filtri attivi\n            function updateActiveFiltersChips(filtersByGroup) {\n                const $chipsContainer = $('.active-filters-bar .chips');\n                $chipsContainer.empty();\n\n                let hasFilters = false;\n\n                for (const [groupId, categories] of Object.entries(filtersByGroup)) {\n\n                    \/\/ Salta i gruppi nascosti (pre-filtri)\n                    if (hiddenGroups.includes(groupId)) {\n                        continue;\n                    }\n\n                    categories.forEach(catSlug => {\n                        hasFilters = true;\n\n                        const $input = $('.filter-input[data-group-id=\"' + groupId + '\"][value=\"' + catSlug + '\"]');\n\n                        \/\/ Potrebbe non esistere se \u00e8 un pre-filtro, skippa\n                        if ($input.length === 0) return;\n\n                        const catName = $input.siblings('.filter-label').text().trim();\n                        const $group = $input.closest('.filter-group');\n                        const groupTitle = $group.find('.filter-group-title').text().trim();\n\n                        const $chip = $('<a>', {\n                            'href': '#',\n                            'class': 'chip',\n                            'data-group-id': groupId,\n                            'data-cat-slug': catSlug,\n                            'html': '<strong>' + groupTitle + ':<\/strong> ' + catName\n                        });\n\n                        $chipsContainer.append($chip);\n                    });\n                }\n\n                if (hasFilters) {\n                    $('.active-filters-bar').show();\n                } else {\n                    $('.active-filters-bar').hide();\n                }\n            }\n\n            \/\/ Aggiorna conteggi categorie\n            function updateCategoryCounts(counts) {\n                $('.filter-option').each(function() {\n                    const catSlug = $(this).data('cat-slug');\n                    const $count = $(this).find('.filter-count');\n                    const isChecked = $(this).find('.filter-input').is(':checked');\n\n                    if (counts[catSlug] !== undefined) {\n                        $count.text('(' + counts[catSlug] + ')');\n\n                        if (counts[catSlug] === 0 && !isChecked) {\n                            $(this).addClass('disabled');\n                            $(this).find('.filter-input').prop('disabled', true);\n                        } else {\n                            $(this).removeClass('disabled');\n                            $(this).find('.filter-input').prop('disabled', false);\n                        }\n                    }\n                });\n            }\n\n            \/\/ Aggiorna paginazione\n            function updatePagination(maxPages, currentPage) {\n                const $pagination = $('.pagination');\n                $pagination.empty();\n\n                \/\/ Se c'\u00e8 solo 1 pagina, nascondi la paginazione\n                if (maxPages <= 1) {\n                    $pagination.hide();\n                    return;\n                }\n\n                \/\/ Mostra la paginazione se ci sono pi\u00f9 pagine\n                $pagination.show();\n\n                \/\/ Genera HTML paginazione\n                let html = '<ul class=\"pages-list\" role=\"list\">';\n\n                \/\/ Pulsante Previous\n                if (currentPage > 1) {\n                    html +=\n                      '<li>' +\n                        '<button type=\"button\" class=\"prev page-numbers\" data-page=\"' + (currentPage - 1) + '\" aria-label=\"Previous page\">' +\n                          'Precedente' +\n                        '<\/button>' +\n                      '<\/li>';\n                }\n\n                \/\/ Logica per mostrare numeri pagina con \"...\"\n                const range = 2; \/\/ Mostra 2 pagine prima e dopo la corrente\n\n                for (let i = 1; i <= maxPages; i++) {\n                    \/\/ Mostra sempre prima e ultima pagina e nel range della corrente\n                    if (i === 1 || i === maxPages || (i >= currentPage - range && i <= currentPage + range)) {\n                        if (i === currentPage) {\n                            html +=\n                              '<li>' +\n                                '<span class=\"page-numbers number current\" aria-current=\"page\">' + i + '<\/span>' +\n                              '<\/li>';\n                        } else {\n                            html +=\n                              '<li>' +\n                                '<button type=\"button\" class=\"page-numbers number\" data-page=\"' + i + '\" aria-label=\"Go to page ' + i + '\">' +\n                                  i +\n                                '<\/button>' +\n                              '<\/li>';\n                        }\n                    } else if (i === currentPage - range - 1 || i === currentPage + range + 1) {\n                        \/\/ Mostra \"...\" solo una volta\n                        html += '<li><span class=\"page-numbers dots\" aria-hidden=\"true\">...<\/span><\/li>';\n                    }\n                }\n\n                \/\/ Pulsante Next\n                if (currentPage < maxPages) {\n                    html +=\n                      '<li>' +\n                        '<button type=\"button\" class=\"next page-numbers\" data-page=\"' + (currentPage + 1) + '\" aria-label=\"Next page\">' +\n                          'Prossimo' +\n                        '<\/button>' +\n                      '<\/li>';\n                }\n\n                html += '<\/ul>';\n\n                $pagination.html(html);\n            }\n\n            \/\/ Event handler per click sulla paginazione\n            $(document).on('click', '.pagination button.page-numbers', function(e) {\n                e.preventDefault();\n                const page = $(this).data('page');\n\n                if (page) {\n                    \/\/ Scroll to top della griglia\n                    $('html, body').animate({\n                        scrollTop: $('.products-header-block').offset().top - 100\n                    }, 500);\n\n                    loadProducts(page);\n                }\n            });\n\n            \/\/ Aggiorna URL con History API\n            function updateURL(filtersByGroup, page) {\n                const url = new URL(window.location);\n\n                \/\/ Rimuovi tutti i vecchi parametri product_cat_*\n                Array.from(url.searchParams.keys()).forEach(key => {\n                    if (key.startsWith('product_cat_')) {\n                        url.searchParams.delete(key);\n                    }\n                });\n                url.searchParams.delete('paged');\n\n                \/\/ Aggiungi solo i filtri attivi (inclusi pre-filtri)\n                for (const [groupId, values] of Object.entries(filtersByGroup)) {\n                    const paramName = 'product_cat_' + groupId;\n                    values.forEach(value => {\n                        url.searchParams.append(paramName + '[]', value);\n                    });\n                }\n\n                if (page > 1) {\n                    url.searchParams.set('paged', page);\n                }\n\n                history.pushState({}, '', url.toString());\n            }\n\n            \/\/ Carica prodotti al caricamento iniziale\n            loadProducts(1);\n\n        });\n\n    })(jQuery);\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>MODULAR VOICE ALARM SYSTEMS EN54<\/p>\n","protected":false},"author":2199,"featured_media":0,"parent":0,"menu_order":88,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_gspb_post_css":"","inline_featured_image":false,"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":"","_links_to":"","_links_to_target":""},"class_list":{"0":"post-26326","1":"page","2":"type-page","3":"status-publish","5":"entry"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Modular Voice Alarm Systems - EN54 New - FBT<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.fbt.it\/it\/modular-voice-alarm-systems-en54-new\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Modular Voice Alarm Systems - EN54 New - FBT\" \/>\n<meta property=\"og:description\" content=\"MODULAR VOICE ALARM SYSTEMS EN54\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fbt.it\/it\/modular-voice-alarm-systems-en54-new\/\" \/>\n<meta property=\"og:site_name\" content=\"FBT\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/fbtelettronica\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-02T13:03:42+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.fbt.it\\\/it\\\/modular-voice-alarm-systems-en54-new\\\/\",\"url\":\"https:\\\/\\\/www.fbt.it\\\/it\\\/modular-voice-alarm-systems-en54-new\\\/\",\"name\":\"Modular Voice Alarm Systems - EN54 New - FBT\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.fbt.it\\\/it\\\/#website\"},\"datePublished\":\"2025-12-01T08:53:29+00:00\",\"dateModified\":\"2025-12-02T13:03:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.fbt.it\\\/it\\\/modular-voice-alarm-systems-en54-new\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.fbt.it\\\/it\\\/modular-voice-alarm-systems-en54-new\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.fbt.it\\\/it\\\/modular-voice-alarm-systems-en54-new\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.fbt.it\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Modular Voice Alarm Systems &#8211; EN54 New\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.fbt.it\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/www.fbt.it\\\/it\\\/\",\"name\":\"FBT\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.fbt.it\\\/it\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.fbt.it\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.fbt.it\\\/it\\\/#organization\",\"name\":\"FBT\",\"url\":\"https:\\\/\\\/www.fbt.it\\\/it\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.fbt.it\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.fbt.it\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/thumbnail.png\",\"contentUrl\":\"https:\\\/\\\/www.fbt.it\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/thumbnail.png\",\"width\":216,\"height\":122,\"caption\":\"FBT\"},\"image\":{\"@id\":\"https:\\\/\\\/www.fbt.it\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/fbtelettronica\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCMXbrLQy7qECVUkjNLkxAaQ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Modular Voice Alarm Systems - EN54 New - FBT","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:\/\/www.fbt.it\/it\/modular-voice-alarm-systems-en54-new\/","og_locale":"it_IT","og_type":"article","og_title":"Modular Voice Alarm Systems - EN54 New - FBT","og_description":"MODULAR VOICE ALARM SYSTEMS EN54","og_url":"https:\/\/www.fbt.it\/it\/modular-voice-alarm-systems-en54-new\/","og_site_name":"FBT","article_publisher":"https:\/\/www.facebook.com\/fbtelettronica","article_modified_time":"2025-12-02T13:03:42+00:00","twitter_card":"summary_large_image","twitter_misc":{"Tempo di lettura stimato":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.fbt.it\/it\/modular-voice-alarm-systems-en54-new\/","url":"https:\/\/www.fbt.it\/it\/modular-voice-alarm-systems-en54-new\/","name":"Modular Voice Alarm Systems - EN54 New - FBT","isPartOf":{"@id":"https:\/\/www.fbt.it\/it\/#website"},"datePublished":"2025-12-01T08:53:29+00:00","dateModified":"2025-12-02T13:03:42+00:00","breadcrumb":{"@id":"https:\/\/www.fbt.it\/it\/modular-voice-alarm-systems-en54-new\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fbt.it\/it\/modular-voice-alarm-systems-en54-new\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.fbt.it\/it\/modular-voice-alarm-systems-en54-new\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fbt.it\/it\/"},{"@type":"ListItem","position":2,"name":"Modular Voice Alarm Systems &#8211; EN54 New"}]},{"@type":"WebSite","@id":"https:\/\/www.fbt.it\/it\/#website","url":"https:\/\/www.fbt.it\/it\/","name":"FBT","description":"","publisher":{"@id":"https:\/\/www.fbt.it\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.fbt.it\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/www.fbt.it\/it\/#organization","name":"FBT","url":"https:\/\/www.fbt.it\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.fbt.it\/it\/#\/schema\/logo\/image\/","url":"https:\/\/www.fbt.it\/wp-content\/uploads\/2024\/06\/thumbnail.png","contentUrl":"https:\/\/www.fbt.it\/wp-content\/uploads\/2024\/06\/thumbnail.png","width":216,"height":122,"caption":"FBT"},"image":{"@id":"https:\/\/www.fbt.it\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/fbtelettronica","https:\/\/www.youtube.com\/channel\/UCMXbrLQy7qECVUkjNLkxAaQ"]}]}},"_links":{"self":[{"href":"https:\/\/www.fbt.it\/it\/wp-json\/wp\/v2\/pages\/26326","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fbt.it\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.fbt.it\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.fbt.it\/it\/wp-json\/wp\/v2\/users\/2199"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fbt.it\/it\/wp-json\/wp\/v2\/comments?post=26326"}],"version-history":[{"count":3,"href":"https:\/\/www.fbt.it\/it\/wp-json\/wp\/v2\/pages\/26326\/revisions"}],"predecessor-version":[{"id":26347,"href":"https:\/\/www.fbt.it\/it\/wp-json\/wp\/v2\/pages\/26326\/revisions\/26347"}],"wp:attachment":[{"href":"https:\/\/www.fbt.it\/it\/wp-json\/wp\/v2\/media?parent=26326"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}