Akıllı Çamaşırhane, yurtlardaki çamaşır ve kurutma makinelerinin 7/24 canlı izlenmesini sağlayan, Firebase tabanlı bir otomasyon platformudur. Öğrenciler boş makine bulabilir, sıraya girebilir ve makine bittiğinde anında bildirim alabilir. Yöneticiler uzaktan müdahale edebilir, enerji tüketimini takip edebilir ve teknik arızaları önceden tespit edebilir. Sistem Frontend 2.73w, Cloud Functions 2.73r (Gen2, Node 22, 59 fonksiyon, FAZ 1+2+3+4 KAPANDI modüler refactor -%35.9) ve FSM v10/gen3.1 ile çalışmaktadır. Sahada 15 makine aktif (M#1-15, M#16 sonra eklenecek; 8+7 split: M#1-8 Çavuş #1, M#9-15 Çavuş #2). Donanım: Hub v56.1 + 2 Çavuş v30.5.1 RELAY-ONLY + 15 İşçi v21.4.
https://akillicamasirhane-6b92f.web.appHer makine bir kart ile gösterilir. Kartın sol paneli makine numarasını ve tipini (çamaşır/kurutma) büyük puntolarla gösterir; sağ panel durum bandı, akım değeri, tahmini kalan süre ve ilerleme çubuğunu içerir. Renkler şunları ifade eder:
Çalışan makinelerde ilerleme çubuğu (shimmer efekti ile) ve tahmini kalan süre dinamik olarak güncellenir. Kartın üzerine tıklayarak detaylı modal penceresini açabilirsiniz.
Sayfanın üst kısmındaki barometre, anlık doluluk oranını gösterir: Sakin (yeşil) → Orta (sarı) → Yoğun (turuncu) → Çok Yoğun (kırmızı). İlerleme çubuğunun ucundaki ibre mevcut seviyeyi işaret eder. Altındaki "Günün Pulsu" bölümünde bugünkü toplam döngü sayısı, tüketilen kWh, en yoğun kullanılan makine (lider) ve zirve saat bilgisi yer alır.
Makine kartlarının hemen üstünde 📊 Yoğunluk Tahmini kartı bulunur. Bu kart, şu anki saat ve sonraki 3 saat için çamaşır ve kurutma makinelerinin tahmini yoğunluk durumunu (Sakin / Orta / Yoğun) gösterir. Tahminler, son 14 günün aynı saatlerindeki döngü başlangıç verilerine dayanır. Veri henüz toplanmamışsa kart gizli kalır.
Çalışan makineler için kalan süre tahmini; seçilen programa, geçmiş döngü sürelerine ve yurt ortalamasına göre hesaplanır. Eğer makine seçilen program süresini aşarsa kart üzerinde "⚠️ Uzadı" uyarısı belirir. Bu, program seçilmiş makineler için gerçek bir alarmdır; program seçilmemişse tahmin aşımı "+X dk" olarak gösterilir. Kalan süre 10 dakikanın altına düştüğünde yazı kırmızı renkte yanıp sönmeye başlar.
Not: iOS cihazlarda push bildirimleri yalnızca ana ekrana eklenmiş PWA üzerinden çalışır (iOS 16.4+).
Makine bittiğinde (sarı kart) detay penceresinden:
Çalışan bir makinenin detay penceresinde, makineyi çalıştıran kişiyseniz ilk 30 dakika içinde bir program seçebilirsiniz. Bu, kalan süre tahmininin daha doğru olmasını sağlar. Seçim yapmak için:
Seçimi kaldırmak için "Bilmiyorum / Seçmek istemiyorum" seçeneğini seçip onaylayabilirsiniz.
Sayfanın üst kısmındaki yeşil banner'da 🧺 Çamaşır veya 🌀 Kurutma butonlarına tıklayarak, o tipte herhangi bir makine boşaldığında anında bildirim alabilirsiniz. Bu özellik tüm makineler doluyken sıra beklemek istemeyenler için idealdir. Abone olduğunuzda buton "✅ Bekliyor — iptal" olarak değişir; tekrar tıklayarak abonelikten çıkabilirsiniz.
Sahip olduğunuz makine dışında, başka bir makineyi de takip edebilirsiniz. Makine detay penceresindeki 🔔 Bitince Bildirim Al butonu ile o makine bittiğinde size özel bildirim gönderilir. Takibi bırakmak için aynı buton "✓ Bildirim Aktif — Vazgeç" olarak değişir.
Bir makinede sorun tespit ederseniz (su almıyor, kapak kırık, anormal ses vb.), detay penceresindeki 🛠 Arıza Bildir butonuna tıklayın. Açılan listeden arıza tipini seçebilir (Kapak/cam kırık, Su almıyor/sızdırıyor, Kapak kilitli kaldı, Elektrik gelmiyor, Anormal ses/titreşim, Kötü koku/kirli, Düğme/panel sorunu, Diğer) veya serbest açıklama yazabilirsiniz. 1 saat içinde 3 farklı kullanıcı aynı makineyi şikayet ederse sistem otomatik olarak makineyi bakıma alır ve yöneticilere WhatsApp bildirimi gönderir.
Sayfanın alt kısmındaki 💡 Öneri / Geri Bildirim bölümünden sistem hakkındaki düşüncelerinizi, hata bildirimlerinizi ve yeni özellik önerilerinizi doğrudan yöneticiye iletebilirsiniz. Konu seçebilir (Genel, Yeni Özellik Önerisi, Sorun/Hata Bildirimi, Diğer) ve 500 karaktere kadar mesaj yazabilirsiniz. Giriş yapmış olmanız zorunludur; spam koruması için 30 dakikada en fazla 3 öneri gönderebilirsiniz.
Sistem yönetici tarafından geçici olarak duraklatıldığında, sayfanın üstünde sarı bir bilgi banner'ı görünür: "⏸ Sistem geçici olarak duraklatıldı. Yetkili kontrol ediyor — kısa süre içinde aktif olacak." Bu durumda makine kartları "Bakımda" rozetiyle gösterilir; gerçek durum alt bilgide yazmaya devam eder. Teslim alma ve sıraya girme butonları gizlenir.
Login yapmış öğrenciler için sağ üstteki kullanıcı menüsünden 📊 Durumum seçeneği açılır. Modal içinde son cycle özetiniz, aktif şikayetiniz varsa durumu, ay içindeki yıkama sayınız ve yurt karşılaştırması (sizin %X — yurt ortalaması %Y) gösterilir. Hızlı bakış için profil sayfasına alternatiftir.
Sağ üst menüden "Profilim" ile her zaman erişilebilir. Profil 5 bölümden oluşur:
Profil sayfasında Heat grid ile Timeline arasında "Şikayetlerim" bölümü bulunur. Açık + son 20 çözülmüş şikayet listelenir; admin cevap yazdığında yeşil sol-bordürlü cevap balonu görünür. Şikayet "Çözüldü" işaretlendiğinde sol-bordür yeşile döner. Ayrıca admin tarafında "📦 Arşivle" butonu ile çözülmüş şikayetler operasyon listesinden çıkarılır ama profil sayfasında görünür kalır (kayıt amaçlı).
| Rol | Yetkiler |
|---|---|
| Memur | Makine boşaltma, bakıma alma, sıra temizleme. Canlı ve Operasyon sekmelerini görüntüleyebilir. |
| Teknik | Tüm ayarlar (konfigürasyon, eşik override), enerji raporları, kullanıcı yönetimi, hub/cavuş reset, cihaz (ESP32) yönetimi, QR kod, teknik analiz, Telegram bildirim kategori filtresi, program yönetimi, bakım takvimi işaretleme. |
| Super Admin | Sistem genelinde tam yetki. Yeni yurt ekleme (çoklu yurt desteği), bütçe kill switch yönetimi, Telegram Bot token yönetimi. Super admin e-postaları hardcoded whitelist ile tanımlanır. |
| Geliştirici | Super Admin + Sistem sekmesi (donanım sürümleri, savunma katmanları, Telegram tanı, Kill Switch), Admin Aksiyonları Audit log, tehlikeli bölge işlemleri. Üretim sisteminde tanı ve derin müdahale için kullanılır. |
Yetkili e-posta ile giriş yaptıktan sonra sağ üstte beliren Yönetici butonuna tıklayarak admin paneline geçiş yapabilirsiniz. Mobil cihazlarda alt kısımda gezinme çubuğu otomatik olarak görünür; masaüstünde üstteki sekmeler kullanılır.
Admin modda herhangi bir makine kartına tıkladığınızda, ekranın sağından bir hızlı müdahale çekmecesi açılır. Bu çekmecede makine detayları (akım, son güncelleme, maks akım, program), hızlı aksiyon butonları (Boşalt, Bakıma Al, Bakımdan Çıkar), detaylı görüntüleme butonu ve son döngüler listesi bulunur. Çekmece dışına tıklayarak veya "✕" butonuyla kapatabilirsiniz.
Operasyon → Özet sekmesinde, her makine için son 24 saatteki koptu sayısı, hub timeout, otomatik bakım ve öğrenci şikayetleri rozetlerle gösterilir. Rozetler yeşil (temiz), sarı (dikkat) veya kırmızı (kritik) olabilir. Son koptu zamanı da gösterilir.
Canlı sekmesindeki öncelik motoru, acil müdahale edilmesi gereken makineleri iki kategoriye ayırır:
Operasyon → Enerji sekmesinde son 30 günlük toplam tüketim (kWh ve TL), bugünkü tüketim, toplam döngü sayısı, döngü başına ortalama maliyet ve son 14 günün sparkline grafiği yer alır. Birim elektrik fiyatı Kontrol sekmesinden güncellenebilir; değişiklik anında maliyet hesaplarına yansır ve "Son güncelleme" tarihi Cloud Functions tarafından sunucu saatiyle yazılır.
Kontrol sekmesinde, hangi olay türlerinin Telegram'a gönderileceğini seçebilirsiniz. Telegram Bot API limitsiz/ücretsiz olsa da, admin gereksiz bildirim spam'ini engellemek için varsayılan ayarlar şöyledir:
Master Telegram toggle kapalıysa tüm kategoriler etkisizdir.
Cihazlar sekmesinde Hub Durumu kartı bulunur. Hub'ın anlık durumunu (Aktif / Duraklatıldı) gösterir. Duraklat butonu ile Hub'ın Firebase yazımlarını geçici olarak durdurabilirsiniz (bakım/temizlik için). Devam Et ile normal çalışmaya döner. Hub v56.1 (14 May gece sahaya alındı) ile tam uyumlu — komut Hub tarafında 30sn içinde algılanır, LoRa RX devam eder, Firebase yazımı durur.
Cihazlar sekmesinde her makine için manuel eşik akımı girebilirsiniz (0.1 – 5.0 A aralığında). Boş bırakılırsa, her gece 03:30'daki otomatik batch doğru eşiği hesaplar. "✓" butonu ile kaydedilir; onay dialog'u yanlış girişlere karşı koruma sağlar.
Cihazlar sekmesinin altında 🏷️ Sistem Sürümleri kartı; frontend, backend (CF), FSM motoru, Hub, Çavuş ve İşçi sürümlerini gösterir. Her sürümün yanında DB'de kayıtlı sürümle eşleşip eşleşmediği (✓ / ⚠) belirtilir. Altında 📋 Audit Log bölümü son 8 sürüm değişimini (tip, sürüm, önceki sürüm, zaman) listeler — "v210'da mıydı v211'de mi?" sorusuna kesin cevap verir.
Admin → Canlı sekmesinde Anlık Durum kartının altında yeni bir Çamaşırhane Skoru banner'ı gösterilir. Bu skor, her makine için beş bileşeni ağırlıklı olarak hesaplayıp ortalar:
Sonuç: 71–100 → Sağlıklı (yeşil), 41–70 → Orta (sarı), 0–40 → Kritik (kırmızı). Banner'ın altında "Müdahale Gerekenler" şeridinde en sorunlu 5 makine sıralanır. Skor her gece 03:30'da güncellenir.
Her makine kartının yanında 40px'lik sağlık halkası (dairesel SVG progress) makineye özgü skoru ve etiketini gösterir.
Operasyon → Özet sekmesinde Bakım Takvimi kartı, her makine için üç tür bakım önerisi sunar:
Her öneri satırında makine no, bakım tipi ve "✓ Yapıldı" butonu bulunur (Teknik + Geliştirici görür). Butona tıklandığında onay dialog'u açılır; onaylanınca bakım kaydı oluşturulur, döngü sayacı sıfırlanır ve öneri listeden kalkar. Sonraki tetik, o bakımdan itibaren sayılmaya başlar.
Cihazlar sekmesinde iki yeni geçmiş kartı bulunur:
Operasyon sekmesinde Şikayet Paneli: açık + son 20 çözülmüş şikayet listelenir. Her satırda:
Her gece 07:55'te sabahRaporuOlustur cron çalışır, gün özetini hazırlar. Raporlar sekmesinde:
Cihazlar sekmesinde her cihaz satırında "Son Görülen" sütunu eklendi v2.73s (saatlik Çavuş MAC raporundan). 24 saatten eski cihazlar (sökülmüş/repurpose edilmiş board'lar) için 🗑 Sil butonu görünür — DB'den temizler. Geliştirici-only güvenlik.
Sistem sekmesinde 🔄 Firmware Güncelleme kartı bulunur (Geliştirici-only). Akış:
Saha kanıtı: 14 May gece OMAR Hub v56.0 → v56.1 + 2 Çavuş v30.5 → v30.5.1 OTA ile başarıyla güncelledi. Sahada söküp flash gerekmez.
Sistemi gerçek veri olmadan test etmek için sağ üstteki 🎭 Demo butonuna tıklayın. 8 sanal makine (4 çamaşır, 4 kurutma) ile gerçekçi bir simülasyon başlatılır; akım değerleri 10 saniyede bir dalgalanır, durumlar otomatik güncellenir. Firebase bağlantısı tamamen kesilir, gerçek verilere dokunulmaz. Demo modundayken mor bir banner ve butonun aktif hali gösterilir. Çıkmak için banner'daki "Çıkış" butonunu kullanın.
Sistem, cihazınızın belleğine ve işlemci gücüne göre otomatik olarak düşük (low), orta (mid) veya yüksek (high) performans modunda çalışır. Düşük güçlü cihazlarda (≤2GB RAM) animasyonlar, blur efektleri, gölgeler ve arka plan gradyanları tamamen kapatılır; dokunma geri bildirimi opacity ile sağlanır. Bu ayar data-perf-tier HTML özelliği ile kontrol edilir ve kullanıcı müdahalesi gerektirmez. Ayrıca data-slow-net özelliği ile yavaş bağlantılarda skeleton shimmer ve logo animasyonu kapatılır.
Cloud Functions tarafında 3 katmanlı fatura koruması aktiftir (17 Nisan 2026 ₺13,218 patlaması sonrası kuruldu):
/_kill_switch/active=true yazan pub/sub fonksiyonu. Bu flag'i gören tüm hassas CF'ler kendini durdurur. Manuel sıfırlama gerektirir.Backend (index.js) ve frontend (script.js) çok sayıda koruma mekanizması içerir:
Her 30 dakikada bir çalışan doktorKontrol cron fonksiyonu makineleri tarar ve Admin → Kontrol → Tanı Merkezi'ne raporlar yazar. Aktif tanı tipleri:
| Tanı | Açıklama | Aksiyon |
|---|---|---|
| SIK_KOPTU | 24 saatte 5+ bağlantı kopması | RSSI, kablo veya Çavuş kontrolü |
| SENSOR_FANTOM | 24 saatlik pencerede akım değeri anormal dar aralıkta takılı kalmış | Çavuş fişini çekip takın |
| SENSOR_DEAD_ZERO YENİ | Cihaz heartbeat veriyor, makine RUNNING/FINISHING durumunda, ama akım <0.2A — sensör sıfırda donmuş | Çavuş fişini çekip takın; saha müdahalesi gerekebilir |
| CYCLE_DRIFT | Son döngü süresi normal medyandan %50+ sapıyor (kireçlenme göstergesi) | Kireç temizliği önerilebilir |
| KULLANILMIYOR | 36+ saat hiç döngü yok (sinyal canlıyken) | Donanım veya yerleşim kontrolü |
| SAGLIK_DUSUK YENİ | Makine sağlık skoru <41/100 (kritik eşik) | Tanı sebeplerine göre çok katmanlı müdahale |
| FLAP_ISITICI, SESSIZ_ARIZA, UZUN_DUSUK_AKIM, SENSOR_YOK | Diğer sensör ve elektronik anomaliler | Teknik servis |
Makine bitişi, sıra sırası ve boş makine bildirimleri Firebase Cloud Messaging (FCM) üzerinden tarayıcı push olarak gelir. Bu, yönetici Telegram bildirimlerinden bağımsız bir sistemdir. Ayarlar Admin → Cihazlar sekmesinde "Cep Push Bildirimleri (PWA)" kartından kontrol edilir.
Sistem, kritik olaylar için Telegram Bot API üzerinden yöneticilere bildirim gönderir (15 May 2026 itibarıyla CallMeBot WhatsApp'tan göç edildi — kotalı sessiz queue problemi tamamen kapandı). Bot token ve chat ID Cloud Functions ortam değişkenlerinde (TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID) saklanır.
S: Bildirim gelmiyor.
C: Cep push (FCM): Chrome'da adres çubuğundaki kilit simgesi → Bildirimler → İzin ver. iOS'ta ana ekrana eklenmiş PWA üzerinden deneyin (iOS 16.4+). Hakkında modal'ında iOS için özel ipucu gösterilir. — Telegram bildirimleri: Yönetici bildirimleri için geçerlidir. Admin → Sistem sekmesindeki Telegram Tanı kartından son gönderim durumu ve devre kesici kontrolü yapılabilir.
S: Makine "Koptu" yazıyor ama aslında çalışıyor.
C: Hub bağlantısı kesilmiş olabilir. Admin panelinden "Hub Resetle" butonunu kullanın veya yurt teknik sorumlusuna haber verin. Hub yeni reset atmışsa (son 5 dakika) zombi temizleyici geçici olarak devre dışı kalır.
S: Kalan süre tahmini hatalı.
C: Kalan süre; seçilen programa, yurt ortalamasına ve geçmiş döngü sürelerine göre hesaplanır. Yeterli veri olmadığında sapma gösterebilir. Program seçerseniz (ilk 30 dakika içinde) tahmin daha isabetli olur.
S: Makine hiç "Bitti" durumuna geçmiyor, sürekli "Çalışıyor" görünüyor.
C: v200'de devreye alınan FSM v10 bu sorunu NEUTRAL band (2.2–3.0A) ile büyük ölçüde çözdü. Hâlâ oluyorsa sensör takılı kalmış olabilir (SENSOR_FANTOM tanısı). Admin paneli → Cihazlar sekmesinden ilgili makinenin "⚠ SENSOR FANTOM" uyarısına bakın. Çavuş fişini çekip takmak genellikle çözer.
S: "Kayıtsız Cihaz Raporları"nda gerçek makineler görünüyor.
C: Bu liste, MAC adresi /cihazlar tablosunda kayıtlı olmayan ancak Çavuş'tan veri gelen cihazları gösterir. Admin paneli → Cihazlar sekmesinden manuel atama yapabilirsiniz.
S: Sistem yavaş çalışıyor.
C: Eski bir cihaz kullanıyorsanız sistem otomatik olarak düşük performans moduna geçer (animasyonlar kapalı). Tarayıcı önbelleğini temizlemeyi ve sayfayı yenilemeyi deneyin. Hâlâ yavaşsa Kompakt Görünüm'e geçin.
Teknik sorunlar, öneriler veya yeni özellik talepleri için: