אני חושב שתיקנתי
צריך מספר של חמינאי בשביל טסטים, יש למישהו?
אבי 203
-
התראה על יציאה ממ"ד & שיפור אתר פיקוד העורף -
התראה על יציאה ממ"ד & שיפור אתר פיקוד העורף@אבי-203 לא עבד
השינויים האחרונים הרסו משהו. בודק את זה -
התראה על יציאה ממ"ד & שיפור אתר פיקוד העורףhttps://ph-7php.onrender.com/
הוספתי התראות קוליות לשבת, ועוד כמה שיפורים וערים.
מקווה שהכל תקין.
קשה לעשות טסטים... -
התראה על יציאה ממ"ד & שיפור אתר פיקוד העורף@pcinfogmach למה זה חשוב? בשביל חיפוש מהיר ברשימה?
-
התראה על יציאה ממ"ד & שיפור אתר פיקוד העורף@אבי-203 כתב בהתראה על יציאה ממ"ד & שיפור אתר פיקוד העורף:
הכנתי משהו לפום ריהטא לא בדקתי מספיק
https://ph-7php.onrender.com/אם היה לי זמן וכוח, אני חושב שהדבר החשוב הבא זה רישום למערכת טלפונית, שתשלח צינתוק ממספר X בהתראה מראש, ממספר Y בכניסה לממד וממספר Y ביציאה מהממד. כמובן בהתאם לעיר שנרשמה.
או גם סמס. -
התראה על יציאה ממ"ד & שיפור אתר פיקוד העורףהכנתי משהו לפום ריהטא לא בדקתי מספיק
https://ph-7php.onrender.com/ -
התראה על יציאה ממ"ד & שיפור אתר פיקוד העורףנשאר רק לחבר?
<!DOCTYPE html> <html lang="he" dir="rtl"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>מערכת התראות חכמה - פיקוד העורף</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Segoe UI', Arial, sans-serif; background: #f4f7fa; color: #333; min-height: 100vh; padding: 20px; } .container { max-width: 1200px; margin: 0 auto; background: #fff; border-radius: 12px; box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); overflow: hidden; } .header { background: #cc0000; color: white; padding: 20px; text-align: center; } .header h1 { font-size: 2em; margin-bottom: 8px; } .header p { font-size: 1.1em; opacity: 0.9; } .main-content { padding: 20px; } .city-selector { background: #f8f9fa; border-radius: 10px; padding: 20px; margin-bottom: 20px; text-align: center; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05); } .city-selector h2 { margin-bottom: 15px; color: #2c3e50; font-size: 1.5em; } .city-input { width: 100%; max-width: 300px; padding: 12px; font-size: 1em; border: 2px solid #ddd; border-radius: 8px; text-align: center; transition: border-color 0.3s ease; } .city-input:focus { outline: none; border-color: #4CAF50; } .audio-controls { display: flex; align-items: center; gap: 10px; margin: 15px 0; justify-content: center; } .audio-controls label { font-size: 1em; color: #2c3e50; } .audio-controls input[type="range"] { width: 100px; } .audio-controls button { background: #4CAF50; color: white; border: none; padding: 8px 16px; border-radius: 8px; cursor: pointer; transition: background 0.3s ease; } .audio-controls button:hover { background: #45a049; } .status-section { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 15px; margin-bottom: 20px; } .status-card { background: white; border-radius: 10px; padding: 20px; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08); border-left: 4px solid #ddd; transition: transform 0.3s ease; } .status-card.safe { border-left-color: #4CAF50; } .status-card.warning { border-left-color: #ff9800; animation: pulse 2s infinite; } .status-card.danger { border-left-color: #f44336; animation: pulse 1s infinite; } @keyframes pulse { 0% { box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08); } 50% { box-shadow: 0 6px 15px rgba(244, 67, 54, 0.3); } 100% { box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08); } } .status-title { font-size: 1.2em; font-weight: bold; margin-bottom: 8px; display: flex; align-items: center; gap: 8px; } .status-icon { font-size: 1.3em; } .status-time { color: #666; font-size: 0.9em; margin-bottom: 8px; } .status-description { color: #555; line-height: 1.4; } .history-section { background: white; border-radius: 10px; padding: 20px; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08); } .history-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; padding-bottom: 10px; border-bottom: 2px solid #eee; } .history-item { padding: 12px; border-right: 3px solid #ddd; margin-bottom: 10px; background: #f9f9f9; border-radius: 8px; transition: transform 0.3s ease; } .history-item:hover { transform: translateX(-3px); } .history-item.early-warning { border-right-color: #ff9800; } .history-item.shelter { border-right-color: #f44336; } .history-item.all-clear { border-right-color: #4CAF50; } .history-time { font-weight: bold; color: #2c3e50; margin-bottom: 5px; } .history-type { font-size: 0.9em; color: #666; margin-bottom: 5px; } .history-description { color: #555; } .refresh-btn { background: #2196F3; color: white; border: none; padding: 8px 16px; border-radius: 8px; cursor: pointer; transition: background 0.3s ease; } .refresh-btn:hover { background: #1976D2; } .no-city { text-align: center; color: #666; font-style: italic; padding: 15px; } .connection-status { position: fixed; top: 15px; left: 15px; background: #4CAF50; color: white; padding: 6px 12px; border-radius: 15px; font-size: 0.9em; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); z-index: 1000; } .connection-status.disconnected { background: #f44336; } @media (max-width: 768px) { .main-content { padding: 15px; } .header h1 { font-size: 1.5em; } .status-section { grid-template-columns: 1fr; } } </style> </head> <body> <div class="connection-status" id="connectionStatus">🔗 מחובר לשרת</div> <div class="container"> <div class="header"> <h1>🚨 מערכת התראות חכמה</h1> <p>מעקב אחר התראות פיקוד העורף בזמן אמת</p> </div> <div class="main-content"> <div class="city-selector"> <h2>בחר את העיר שלך</h2> <select id="cityInput" class="city-input"> <option value="">בחר עיר</option> <option value="בני ברק">בני ברק</option> <option value="תל אביב">תל אביב</option> <option value="ירושלים">ירושלים</option> <option value="חיפה">חיפה</option> <option value="אשדוד">אשדוד</option> <option value="אשקלון">אשקלון</option> <option value="באר שבע">באר שבע</option> <option value="נתניה">נתניה</option> <option value="חולון">חולון</option> <option value="רמת גן">רמת גן</option> </select> <div class="audio-controls"> <label for="volume">עוצמת קול:</label> <input type="range" id="volume" min="0" max="1" step="0.1" value="0.5"> <button id="mute">השתק</button> </div> </div> <div id="alertSystem" style="display: none;"> <div class="status-section"> <div class="status-card safe" id="currentStatus"> <div class="status-title"> <span class="status-icon">✅</span> מצב רגיל </div> <div class="status-time" id="statusTime">עדכון אחרון: עכשיו</div> <div class="status-description">אין התראות פעילות באזור שלך</div> </div> <div class="status-card"> <div class="status-title"> <span class="status-icon">📍</span> עיר רשומה </div> <div class="status-description" id="registeredCity">לא נבחרה עיר</div> </div> <div class="status-card"> <div class="status-title"> <span class="status-icon">⏱️</span> זמן לממ"ד </div> <div class="status-description" id="shelterTime">מידע יופיע בעת התראה</div> </div> </div> <div class="history-section"> <div class="history-header"> <h2>🕘 היסטוריית התראות</h2> <button class="refresh-btn" onclick="refreshHistory()">רענן</button> </div> <div id="alertHistory"> <div class="no-city">בחר עיר להצגת היסטוריה</div> </div> </div> </div> </div> </div> <!-- Audio Elements --> <audio id="pre-alert-sound" src="https://cdn.pixabay.com/download/audio/2022/03/10/audio_8d9b4e6f3c.mp3"></audio> <audio id="enter-sound" src="https://cdn.pixabay.com/download/audio/2022/03/10/audio_7b1a4e3f2c.mp3"></audio> <audio id="exit-sound" src="https://cdn.pixabay.com/download/audio/2022/03/10/audio_3f2a1e6b9c.mp3"></audio> <script> let currentCity = ''; let isConnected = true; let lastAlertId = null; let alertHistory = []; let isMuted = localStorage.getItem('isMuted') === 'true'; const volumeControl = document.getElementById('volume'); const muteButton = document.getElementById('mute'); const preAlertSound = document.getElementById('pre-alert-sound'); const enterSound = document.getElementById('enter-sound'); const exitSound = document.getElementById('exit-sound'); // City data with shelter times const cityData = { 'בני ברק': { zone: 'דן', shelterTime: 90 }, 'תל אביב': { zone: 'דן', shelterTime: 90 }, 'ירושלים': { zone: 'ירושלים', shelterTime: 90 }, 'חיפה': { zone: 'חיפה והכרמל', shelterTime: 60 }, 'אשדוד': { zone: 'אשקלון והסביבה', shelterTime: 30 }, 'אשקלון': { zone: 'אשקלון והסביבה', shelterTime: 30 }, 'באר שבע': { zone: 'באר שבע והנגב', shelterTime: 60 }, 'נתניה': { zone: 'שרון', shelterTime: 45 }, 'חולון': { zone: 'דן', shelterTime: 90 }, 'רמת גן': { zone: 'דן', shelterTime: 90 } }; // Initialize audio settings const savedVolume = localStorage.getItem('volume') || 0.5; preAlertSound.volume = savedVolume; enterSound.volume = savedVolume; exitSound.volume = savedVolume; volumeControl.value = savedVolume; muteButton.textContent = isMuted ? 'בטל השתקה' : 'השתק'; if (isMuted) { preAlertSound.muted = true; enterSound.muted = true; exitSound.muted = true; } // Volume control volumeControl.addEventListener('input', (e) => { const volume = e.target.value; preAlertSound.volume = volume; enterSound.volume = volume; exitSound.volume = volume; localStorage.setItem('volume', volume); }); // Mute toggle muteButton.addEventListener('click', () => { isMuted = !isMuted; preAlertSound.muted = isMuted; enterSound.muted = isMuted; exitSound.muted = isMuted; muteButton.textContent = isMuted ? 'בטל השתקה' : 'השתק'; localStorage.setItem('isMuted', isMuted); }); function registerCity() { const cityInput = document.getElementById('cityInput'); const city = cityInput.value; if (!city) { showNotification('אנא בחר עיר', 'danger'); return; } currentCity = city; document.getElementById('registeredCity').textContent = city; document.getElementById('alertSystem').style.display = 'block'; fetchHistory(city); fetchRealTimeAlerts(); showNotification(`נרשמת בהצלחה להתראות עבור ${city}`, 'success'); } function categorizeAlert(alert) { const message = (alert.message || '').toLowerCase(); if (message.includes('התראה מוקדמת') || message.includes('הכן מרחב מוגן')) { return { type: 'early-warning', title: 'התראה מוקדמת', icon: '⚠️', description: 'זוהה שיגור לכיוון האזור - היו מוכנים', class: 'warning' }; } else if (message.includes('כניסה למרחב מוגן') || message.includes('אזעקה')) { return { type: 'shelter', title: 'היכנסו לממ"ד מיידית!', icon: '🚨', description: 'אזעקה באזור - היכנסו לחדר המוגן עכשיו!', class: 'danger' }; } else if (message.includes('שחרור') || message.includes('חזרה לשגרה')) { return { type: 'all-clear', title: 'יציאה מהממ"ד', icon: '🟢', description: 'הסכנה חלפה - ניתן לצאת מהחדר המוגן', class: 'safe' }; } return { type: 'safe', title: 'מצב רגיל', icon: '✅', description: 'אין התראות פעילות באזור שלך', class: 'safe' }; } async function fetchRealTimeAlerts() { try { const response = await fetch('https://www.oref.org.il/WarningMessages/alerts.json'); const data = await response.json(); const statusCard = document.getElementById('currentStatus'); const statusIcon = statusCard.querySelector('.status-icon'); const statusTitle = statusCard.querySelector('.status-title'); const statusDescription = statusCard.querySelector('.status-description'); const statusTime = document.getElementById('statusTime'); const shelterTimeElement = document.getElementById('shelterTime'); if (data.data && currentCity && data.data.some(alert => alert.cities.includes(currentCity))) { const relevantAlert = data.data.find(alert => alert.cities.includes(currentCity)); if (relevantAlert.id !== lastAlertId) { lastAlertId = relevantAlert.id; const alert = categorizeAlert(relevantAlert); updateAlertStatus(alert); addToHistory(alert); if (!isMuted) { if (alert.type === 'early-warning') { preAlertSound.play().catch(e => console.error('Error playing pre-alert sound:', e)); } else if (alert.type === 'shelter') { enterSound.play().catch(e => console.error('Error playing enter sound:', e)); } else if (alert.type === 'all-clear') { exitSound.play().catch(e => console.error('Error playing exit sound:', e)); } } showNotification(`${alert.icon} ${alert.title} ב${currentCity}`, alert.class); document.title = alert.type === 'shelter' ? `🚨 אזעקה - ${currentCity}` : 'מערכת התראות חכמה'; } } else { const safeStatus = { type: 'safe', title: 'מצב רגיל', icon: '✅', description: 'אין התראות פעילות באזור שלך', class: 'safe' }; updateAlertStatus(safeStatus); } updateConnectionStatus(true); } catch (error) { console.error('Error fetching real-time alerts:', error); updateConnectionStatus(false); } updateStatusTime(); } async function fetchHistory(city) { try { const response = await fetch(`https://alerts-history.oref.org.il//Shared/Ajax/GetAlarmsHistory.aspx?lang=he&mode=1&city_0=${encodeURIComponent(city)}`); const data = await response.json(); alertHistory = data.map(alert => { const categorized = categorizeAlert(alert); return { time: alert.time, type: categorized.type, title: categorized.title, description: categorized.description, city: currentCity }; }).slice(0, 20); renderHistory(); } catch (error) { console.error('Error fetching history:', error); showNotification('שגיאה בטעינת היסטוריה', 'danger'); } } function updateAlertStatus(alert) { const statusCard = document.getElementById('currentStatus'); const statusIcon = statusCard.querySelector('.status-icon'); const statusTitle = statusCard.querySelector('.status-title'); const statusDescription = statusCard.querySelector('.status-description'); const shelterTimeElement = document.getElementById('shelterTime'); statusCard.className = `status-card ${alert.class}`; statusIcon.textContent = alert.icon; statusTitle.childNodes[1].textContent = alert.title; statusDescription.textContent = alert.description; if (alert.type === 'shelter' || alert.type === 'early-warning') { const cityInfo = cityData[currentCity]; shelterTimeElement.textContent = cityInfo ? `${cityInfo.shelterTime} שניות` : 'מידע יופיע בעת התראה'; } else { shelterTimeElement.textContent = 'מידע יופיע בעת התראה'; } } function addToHistory(alert) { const now = new Date(); alertHistory.unshift({ time: now.toLocaleString('he-IL'), type: alert.type, title: alert.title, description: alert.description, city: currentCity }); if (alertHistory.length > 20) { alertHistory = alertHistory.slice(0, 20); } renderHistory(); } function renderHistory() { const historyContainer = document.getElementById('alertHistory'); if (alertHistory.length === 0) { historyContainer.innerHTML = '<div class="no-city">אין היסטוריית התראות עדיין</div>'; return; } const historyHTML = alertHistory.map(item => ` <div class="history-item ${item.type}"> <div class="history-time">${item.time}</div> <div class="history-type">${getAlertTypeText(item.type)} - ${item.city}</div> <div class="history-description">${item.description}</div> </div> `).join(''); historyContainer.innerHTML = historyHTML; } function getAlertTypeText(type) { const types = { 'safe': 'מצב רגיל', 'early-warning': 'התראה מוקדמת', 'shelter': 'כניסה לממ"ד', 'all-clear': 'יציאה מממ"ד' }; return types[type] || type; } function refreshHistory() { showNotification('מרענן היסטוריה...', 'info'); fetchHistory(currentCity); } function updateConnectionStatus(connected) { const statusElement = document.getElementById('connectionStatus'); isConnected = connected; statusElement.textContent = connected ? '🔗 מחובר לשרת' : '❌ לא מחובר'; statusElement.classList.toggle('disconnected', !connected); } function updateStatusTime() { const timeElement = document.getElementById('statusTime'); const now = new Date(); timeElement.textContent = `עדכון אחרון: ${now.toLocaleTimeString('he-IL')}`; } function showNotification(message, type) { const notification = document.createElement('div'); notification.style.cssText = ` position: fixed; top: 80px; right: 20px; background: ${type === 'danger' ? '#f44336' : type === 'warning' ? '#ff9800' : type === 'success' ? '#4CAF50' : '#2196F3'}; color: white; padding: 12px 20px; border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.3); z-index: 1001; max-width: 300px; font-weight: bold; animation: slideIn 0.3s ease-out; `; notification.textContent = message; document.body.appendChild(notification); setTimeout(() => { notification.style.animation = 'slideOut 0.3s ease-in'; setTimeout(() => document.body.removeChild(notification), 300); }, 5000); } // Animations for notifications const style = document.createElement('style'); style.textContent = ` @keyframes slideIn { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } @keyframes slideOut { from { transform: translateX(0); opacity: 1; } to { transform: translateX(100%); opacity: 0; } } `; document.head.appendChild(style); // Event listeners document.getElementById('cityInput').addEventListener('change', registerCity); setInterval(fetchRealTimeAlerts, 10000); console.log('מערכת התראות חכמה פועלת'); </script> </body> </html>
-
התראה על יציאה ממ"ד & שיפור אתר פיקוד העורףאולי רק אני לא מוצא את זה.
אבל עדין לא מצאתי את הדרך הנורמלית להתעדכן על כניסה ויציאה ממ"ד
הכל זה רק דרך חדשות וכתבים שמעדכנים.
https://www.oref.org.il/heb/alerts-history
הנה למשל אתר פיקוד העורף נרשמתי 100 פעם לקבל עדכנים על עיר מגורי שום דבר לא מתרחש במיוחד.
אין שמות ברורים למשימות, מבזק, ירי, עדכון. ולך תעשה חיפוש עם העיר שלך במשימה
אשמח לדעת מה הדרך הנורמלית. בפרט בפלאפונים כשרים אין דרך לדעת אני מקבל רק טרטור על השלב הראשון לפני, לא מקבל לא כניסה לפחות יש אזעקה אבל יציאה ממש מחפש בפורומים וצ'אטים...
אולי באמת צריך מישהו שיוסיף איזה תוסף לאתר הזה של פיקוד העורך או משהו אחר. -
איך נכון לעבוד עם AI ללא ידע בקוד? האם אני עובד בצורה עקומה?@dovid כתב באיך נכון לעבוד עם AI ללא ידע בקוד? האם אני עובד בצורה עקומה?:
שנית, מציע לך לצרוך את שירותי המנטור שלי. פעם הבאה שאתה עובד עם AI, אתה "מעלה אותי על הקו". אני לא בטוח, אבל אני חושב שההסברים שלי והאופן שאראה לך איך לעבוד במהירות עם הכלים תסלים את ההבנה שלך ל"נקודת המפנה" (או אולי "פידבק חיובי").
מה זה?
הבנתי טוב או שזה משל? איך מעלים אותך על הקו לסוגיא כזה? -
השלמות בסיסיות לפרויקט מAI@צדיק-תמים כתב בהשלמות בסיסיות לפרויקט מAI:
@אבי-203 תשתמש בזה: https://repomix.com (זה גם אתר וגם כלי אופליין)
נראה מגניב רק הוא מוגבל לי ל 10 MB.
הורדתי את כל התקיות "המיותרות" נשאר לי הבסיס 14 -
השלמות בסיסיות לפרויקט מAI@one1010 לא הצלחתי בכלל לעבוד איתו.
רציתי לעלות לו את כל הקבצים שיש לי התקייה והקבים רק חושב לא עובד.. -
השלמות בסיסיות לפרויקט מAI@one1010 במה השתמשת? קלוד?
-
שימוש יעיל ב AIמצטרף באיחור. אבל יכול לשתף מנסיוני, אני עובד במקביל עם קלוד GPT וגימיני בכולם אני משלם על פרימיום.
קלוד הוא מלך! הוא מגדיל ראש, הוא מביא הרבה דברים משלימים מעבר לבקשה שלך, הכל מטופל טוב. אין לו שני.
אבל הבעיה היא א. לפעמים אני מאבד אותו, וכמובן המגבלות זמן...
בדברים נקודתיים לפתור בעיה GPT מעולה אם ענה בפעם הראשונה לרוב כאשר בפעם הראשונה לא ענה טוב הוא ימשיך להמציא בביטחון ולשרוף שעות לפח. לפעמים באמת מוצא בסוף.
גימיני שעונה הכי מהר, נעזר בו לדברים פשוטים שאני מתעצל... -
אימות תעודת זהות לפי תאריך לידה@Whenever כתב באימות תעודת זהות לפי תאריך לידה:
כל הת.ז שמתחיל עם 203 זה אנשים שנולדו ב 1992 חוץ ממישהו אחד שלדעתי עולה חדש.
אוייש אני מבין שיש בעיה איתי כאן.. אני 203 ויליד 12/1990
-
חיבור נטפרי על תשתית סיב רימון-נטפייבר?הזמנתי בסוף מיוסי תקשורת על נטפייבר.
-
חיבור נטפרי על תשתית סיב רימון-נטפייבר?@Shmuel754 כתב בחיבור נטפרי על תשתית סיב רימון-נטפייבר?:
צריך לבטל את שליפת ההגדרות של ספק האינטרנט (TR-069)
מי עושה את זה?
-
חיבור נטפרי על תשתית סיב רימון-נטפייבר?האם אני חייב לעבור לתשתית אחרת, אין לי כח לסיפור הזה של החזרת ראוטר, הייתי חייב להתחיל דרכם בשביל הקמת התשתית הם הזכיינים בבניין שלי. כעת איך אני עובר לנטפרי.
אשמח לעזרה. -
אני צריך עזרה בהתחברות להתקן בית חכם בAPIרכשתי ציוד בפרוטוקול zigbee
זה גם אמור לעבוד כך? מאיפה מתחילים? נשמע לי פנטסטי לתכנת את הבית. -
אין לכם סיבים בבניין ? כך תוכלו לדאוג לזהואוו תודה על העזרה.
פניתי לכמה חברות כולם אמרו לי שאין לי תשתית באזור שלי.
אז הגשתי פניה לפי האמור כאן, מסתבר שזה תחת זכיון של אינטרנט רימון. הגשתי למשרד התקשורת.
תוך יום יומיים שלחו לי ממשרד התקשורת שהם פנו לרימון ורימון טוענים שהבנין מחובר כבר מאוקטובר 23, ונציג מטעמם יצור איתי קשר. מה שאכן קרה וסגרתי איתם.
א. תודה זה מדהים.
ב. זה מעלה לי כמה שאלות.- האם יש מצב שהזכיינים לא מדווחים על אזורי חיבור בשביל לקבל הם את הלקוחות.
- בל יקשר, האם נטפרי תומך בסיב אופטי (דרך מי עושים) או שיש מגבלה?
-
סקרנות - מה התחליפים הקיימים לתוכנות האקסס של הת"תיים@aaron בשביל זה הוא השאיר את 3 ריק...