{"id":9,"date":"2026-09-03T01:47:27","date_gmt":"2026-09-02T22:17:27","guid":{"rendered":"https:\/\/www.robitcoiot.ir\/?page_id=9"},"modified":"2026-09-05T03:59:59","modified_gmt":"2026-09-05T00:29:59","slug":"%d8%ae%d8%a7%d9%86%d9%87","status":"publish","type":"page","link":"https:\/\/www.robitcoiot.ir\/","title":{"rendered":"\u062e\u0627\u0646\u0647"},"content":{"rendered":"    <style>\n        .lona-main-wrap {\n            position: fixed;\n            bottom: 20px;\n            right: 20px;\n            z-index: 999999;\n            direction: rtl;\n            font-family: Tahoma, Arial, sans-serif;\n        }\n        .lona-btn {\n            background: #007bff;\n            color: #fff;\n            border: none;\n            border-radius: 50px;\n            padding: 14px 24px;\n            font-size: 16px;\n            cursor: pointer;\n            box-shadow: 0 5px 25px rgba(0,123,255,0.4);\n            display: flex;\n            align-items: center;\n            gap: 12px;\n            transition: 0.3s;\n        }\n        .lona-btn:hover { transform: scale(1.05); }\n        .lona-btn .icon { font-size: 28px; }\n        .lona-btn .title { font-weight: bold; }\n        .lona-btn .sub { font-size: 11px; opacity: 0.8; display: block; }\n        .lona-main-wrap .lona-box {\n            display: none;\n            position: fixed;\n            bottom: 90px;\n            right: 20px;\n            width: 380px;\n            height: 520px;\n            background: #fff;\n            border-radius: 20px;\n            box-shadow: 0 20px 60px rgba(0,0,0,0.3);\n            overflow: hidden;\n            flex-direction: column;\n        }\n        .lona-main-wrap .lona-box .header {\n            background: #007bff;\n            color: #fff;\n            padding: 15px 20px;\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            font-weight: bold;\n            font-size: 16px;\n        }\n        .lona-main-wrap .lona-box .header .close {\n            background: none;\n            border: none;\n            color: #fff;\n            font-size: 24px;\n            cursor: pointer;\n        }\n        .lona-main-wrap .lona-box .msgs {\n            flex: 1;\n            padding: 15px;\n            overflow-y: auto;\n            background: #f8f9fa;\n            display: flex;\n            flex-direction: column;\n            gap: 8px;\n        }\n        .lona-main-wrap .lona-box .msgs .msg {\n            padding: 10px 15px;\n            border-radius: 15px;\n            max-width: 85%;\n            font-size: 13px;\n            line-height: 1.8;\n            word-wrap: break-word;\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n            gap: 10px;\n        }\n        .lona-main-wrap .lona-box .msgs .msg.user {\n            background: #007bff;\n            color: #fff;\n            align-self: flex-end;\n            border-radius: 15px 15px 0 15px;\n        }\n        .lona-main-wrap .lona-box .msgs .msg.bot {\n            background: #fff;\n            color: #333;\n            align-self: flex-start;\n            border-radius: 15px 15px 15px 0;\n            box-shadow: 0 2px 5px rgba(0,0,0,0.05);\n        }\n        .lona-main-wrap .lona-box .input-area {\n            padding: 12px 15px;\n            border-top: 1px solid #eee;\n            display: flex;\n            gap: 10px;\n            background: #fff;\n        }\n        .lona-main-wrap .lona-box .input-area input {\n            flex: 1;\n            padding: 10px 15px;\n            border: 2px solid #eee;\n            border-radius: 25px;\n            outline: none;\n            font-size: 13px;\n            font-family: Tahoma, Arial, sans-serif;\n        }\n        .lona-main-wrap .lona-box .input-area input:focus { border-color: #007bff; }\n        .lona-main-wrap .lona-box .input-area button {\n            background: #007bff;\n            color: #fff;\n            border: none;\n            width: 44px;\n            height: 44px;\n            border-radius: 50%;\n            cursor: pointer;\n            font-size: 18px;\n        }\n        .lona-main-wrap .lona-box .input-area button:disabled { opacity: 0.5; }\n        .lona-main-wrap .lona-box .input-area button.mic-btn {\n            background: #28a745;\n            font-size: 18px;\n        }\n        .lona-main-wrap .lona-box .input-area button.mic-btn.recording {\n            background: #dc3545;\n            animation: pulse 1s infinite;\n        }\n        @keyframes pulse {\n            0% { box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.7); }\n            70% { box-shadow: 0 0 0 10px rgba(220, 53, 69, 0); }\n            100% { box-shadow: 0 0 0 0 rgba(220, 53, 69, 0); }\n        }\n        @media (max-width: 480px) {\n            .lona-main-wrap .lona-box {\n                width: calc(100vw - 20px) !important;\n                height: 80vh !important;\n                right: 10px !important;\n                bottom: 80px !important;\n            }\n        }\n    <\/style>\n\n    <div class=\"lona-main-wrap\">\n        <button class=\"lona-btn\" id=\"lonaOpenBtn\" onclick=\"lonaOpenChat()\">\n            <span class=\"icon\">\n                <img decoding=\"async\" src=\"https:\/\/www.robitcoiot.ir\/wp-content\/themes\/hello-elementor\/assets\/images\/robot-icon.png\" alt=\"\u0631\u0648\u0628\u06cc\u062a\u06a9\u0648\" style=\"width:32px; height:32px; border-radius:50%; object-fit:cover;\">\n            <\/span>\n            <span class=\"title\">\n                \u0631\u0648\u0628\u06cc\u062a\u06a9\u0648\n                <span class=\"sub\">\u0686\u0637\u0648\u0631 \u0645\u06cc\u200c\u062a\u0648\u0646\u0645 \u06a9\u0645\u06a9 \u06a9\u0646\u0645\u061f<\/span>\n            <\/span>\n        <\/button>\n        \n        <div class=\"lona-box\" id=\"lonaBox\">\n            <div class=\"header\">\n                <span>\ud83e\udd16 \u0631\u0648\u0628\u06cc\u062a\u06a9\u0648<\/span>\n                <button class=\"close\" id=\"lonaCloseBtn\" onclick=\"lonaCloseChat()\">\u2715<\/button>\n            <\/div>\n            <div class=\"msgs\" id=\"lonaMsgs\">\n                <div class=\"msg bot\">\u0633\u0644\u0627\u0645! \u0645\u0646 \u0631\u0648\u0628\u06cc\u062a\u06a9\u0648 \u0647\u0633\u062a\u0645\u060c \u062f\u0633\u062a\u06cc\u0627\u0631 \u0647\u0648\u0634\u0645\u0646\u062f \u0641\u0631\u0648\u0634\u06af\u0627\u0647. \ud83e\udd16<\/div>\n            <\/div>\n            <div class=\"input-area\">\n                <input type=\"text\" id=\"lonaInput\" placeholder=\"\u0633\u0648\u0627\u0644\u062a\u0627\u0646 \u0631\u0627 \u0628\u067e\u0631\u0633\u06cc\u062f...\">\n                <button class=\"mic-btn\" id=\"lonaMicBtn\" onclick=\"toggleVoiceRecording()\" title=\"\u06af\u0641\u062a\u0627\u0631 \u0635\u0648\u062a\u06cc\">\ud83c\udfa4<\/button>\n                <button id=\"lonaSendBtn\" onclick=\"lonaSendMessage()\">\u27a4<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n    var recognition = null;\n    var isRecording = false;\n    var audioUnlocked = false;\n\n    var SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;\n    if (SpeechRecognition) {\n        recognition = new SpeechRecognition();\n        recognition.lang = 'fa-IR';\n        recognition.continuous = false;\n        recognition.interimResults = false;\n        \n        recognition.onresult = function(event) {\n            var transcript = event.results[0][0].transcript;\n            var input = document.getElementById('lonaInput');\n            if (input) {\n                input.value = transcript;\n                lonaSendMessage();\n            }\n        };\n        \n        recognition.onerror = function(event) {\n            stopRecording();\n        };\n        \n        recognition.onend = function() {\n            stopRecording();\n        };\n    }\n\n    function unlockAudio() {\n        var audio = new Audio('https:\/\/www.robitcoiot.ir\/wp-content\/themes\/hello-elementor\/assets\/unlock.mp3');\n        audio.volume = 0;\n        audio.play().then(function() {\n            audioUnlocked = true;\n        }).catch(function(e) {\n            if ('speechSynthesis' in window) {\n                var u = new SpeechSynthesisUtterance(\"\");\n                u.volume = 0;\n                window.speechSynthesis.speak(u);\n                audioUnlocked = true;\n            }\n        });\n    }\n\n    function lonaOpenChat() {\n        unlockAudio();\n        var btn = document.getElementById('lonaOpenBtn');\n        var box = document.getElementById('lonaBox');\n        var input = document.getElementById('lonaInput');\n        if (btn) btn.style.display = 'none';\n        if (box) box.style.display = 'flex';\n        setTimeout(function() { if (input) input.focus(); }, 300);\n    }\n\n    function lonaCloseChat() {\n        var btn = document.getElementById('lonaOpenBtn');\n        var box = document.getElementById('lonaBox');\n        if (box) box.style.display = 'none';\n        if (btn) btn.style.display = 'flex';\n        stopRecording();\n        if ('speechSynthesis' in window) {\n            window.speechSynthesis.cancel();\n        }\n    }\n\n    function toggleVoiceRecording() {\n        if (!recognition) {\n            alert('\u0645\u0631\u0648\u0631\u06af\u0631 \u0634\u0645\u0627 \u0627\u0632 \u06af\u0641\u062a\u0627\u0631 \u0635\u0648\u062a\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f \u06cc\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u06cc\u06a9\u0631\u0648\u0641\u0648\u0646 \u0645\u0633\u062f\u0648\u062f \u0627\u0633\u062a. \u0644\u0637\u0641\u0627\u064b \u0627\u0632 \u0637\u0631\u06cc\u0642 \u062a\u0627\u06cc\u067e \u0633\u0648\u0627\u0644 \u0628\u067e\u0631\u0633\u06cc\u062f.');\n            return;\n        }\n        \n        if (isRecording) {\n            recognition.stop();\n        } else {\n            try {\n                recognition.start();\n                isRecording = true;\n                document.getElementById('lonaMicBtn').classList.add('recording');\n            } catch (e) {\n                alert('\u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0645\u06cc\u06a9\u0631\u0648\u0641\u0648\u0646 \u062f\u0627\u062f\u0647 \u0646\u0634\u062f. \u0644\u0637\u0641\u0627\u064b \u0645\u062c\u0648\u0632 \u0631\u0627 \u0627\u0632 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0645\u0631\u0648\u0631\u06af\u0631 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u0627\u0632 \u062a\u0627\u06cc\u067e \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.');\n                recognition.stop();\n            }\n        }\n    }\n\n    function stopRecording() {\n        isRecording = false;\n        var micBtn = document.getElementById('lonaMicBtn');\n        if (micBtn) micBtn.classList.remove('recording');\n    }\n\n    function lonaAddMessage(text, type, audioUrl) {\n        var msgs = document.getElementById('lonaMsgs');\n        if (!msgs) return;\n        \n        var div = document.createElement('div');\n        div.className = 'msg ' + type;\n        \n        var contentSpan = document.createElement('span');\n        contentSpan.textContent = text;\n        contentSpan.style.flex = '1';\n        div.appendChild(contentSpan);\n        \n        if (type === 'bot' && audioUrl) {\n            var speakLink = document.createElement('span');\n            speakLink.textContent = '\ud83d\udd0a';\n            speakLink.style.cursor = 'pointer';\n            speakLink.style.fontSize = '20px';\n            speakLink.style.marginRight = '5px';\n            speakLink.style.color = '#007bff';\n            speakLink.style.fontWeight = 'bold';\n            speakLink.onclick = function() {\n                var voiceAudio = new Audio(audioUrl);\n                voiceAudio.volume = 1;\n                voiceAudio.play();\n            };\n            div.appendChild(speakLink);\n            \n            setTimeout(function() { \n                if (audioUnlocked) {\n                    var voiceAudio = new Audio(audioUrl);\n                    voiceAudio.play();\n                }\n            }, 100);\n        }\n        \n        msgs.appendChild(div);\n        msgs.scrollTop = msgs.scrollHeight;\n    }\n\n    function lonaSendMessage() {\n        var input = document.getElementById('lonaInput');\n        var sendBtn = document.getElementById('lonaSendBtn');\n        if (!input || !sendBtn) return;\n        var text = input.value.trim();\n        if (!text) return;\n        \n        lonaAddMessage(text, 'user');\n        input.value = '';\n        sendBtn.disabled = true;\n        sendBtn.textContent = '\u23f3';\n        stopRecording();\n        \n        var formData = new FormData();\n        formData.append('action', 'lona_chat');\n        formData.append('message', text);\n        formData.append('_wpnonce', '15745fc68d');\n        \n        fetch('https:\/\/www.robitcoiot.ir\/wp-admin\/admin-ajax.php', {\n            method: 'POST',\n            body: formData\n        })\n        .then(function(res) { return res.json(); })\n        .then(function(data) {\n            sendBtn.disabled = false;\n            sendBtn.textContent = '\u27a4';\n            if (data.success && data.data && data.data.reply) {\n                lonaAddMessage(data.data.reply, 'bot', data.data.audio_url);\n            } else {\n                lonaAddMessage('\u0645\u062a\u0623\u0633\u0641\u0645\u060c \u0646\u062a\u0648\u0646\u0633\u062a\u0645 \u067e\u0627\u0633\u062e \u0628\u062f\u0645. \u0644\u0637\u0641\u0627\u064b \u062f\u0648\u0628\u0627\u0631\u0647 \u062a\u0644\u0627\u0634 \u06a9\u0646\u06cc\u062f.', 'bot', null);\n            }\n            if (input) input.focus();\n        })\n        .catch(function(err) {\n            sendBtn.disabled = false;\n            sendBtn.textContent = '\u27a4';\n            lonaAddMessage('\u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627 \u0633\u0631\u0648\u0631 \u0628\u0631\u0642\u0631\u0627\u0631 \u0646\u0634\u062f. \u0644\u0637\u0641\u0627\u064b \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u06cc\u062f.', 'bot', null);\n            if (input) input.focus();\n        });\n    }\n    \n    document.addEventListener('DOMContentLoaded', function() {\n        var input = document.getElementById('lonaInput');\n        if (input) {\n            input.addEventListener('keydown', function(e) {\n                if (e.key === 'Enter') {\n                    e.preventDefault();\n                    lonaSendMessage();\n                }\n            });\n        }\n    });\n    <\/script>\n    \n\n\n\n<figure class=\"wp-block-video\"><video height=\"368\" style=\"aspect-ratio: 368 \/ 368;\" width=\"368\" controls src=\"https:\/\/www.robitcoiot.ir\/wp-content\/uploads\/2026\/09\/VID-20260905-WA00263.mp4\"><\/video><\/figure>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-9","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.robitcoiot.ir\/index.php?rest_route=\/wp\/v2\/pages\/9","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.robitcoiot.ir\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.robitcoiot.ir\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.robitcoiot.ir\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.robitcoiot.ir\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9"}],"version-history":[{"count":2,"href":"https:\/\/www.robitcoiot.ir\/index.php?rest_route=\/wp\/v2\/pages\/9\/revisions"}],"predecessor-version":[{"id":19,"href":"https:\/\/www.robitcoiot.ir\/index.php?rest_route=\/wp\/v2\/pages\/9\/revisions\/19"}],"wp:attachment":[{"href":"https:\/\/www.robitcoiot.ir\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}