Jag har börjat på en enklare prototyp som jag tänkte ha i sovrummet. Har inget behov av någon avancerad funktion där. Prototypen består av:
- Billig förhöjningsram och trappbrytare från Jula, Anslut. Ingen impulsfjäder. Ska sättas över hålet där befintlig brytare finns.
- Wemos D1 mini med relämodul
- Kinamodul för att driva Wemos, antingen via 5V eller 3.3V. Tror att bägge funkar men har inte provat med 3.3V än. Detta förutsätter att det finns nolla, annars kan man driva enheten via USB-laddare men då blir det en extra kabel.
Impulsfjädrarna var slut i butiken hos Jula, gjorde en design som inte kräver sådan. Wemos registrerar när brytaren ändrar läge, läget i sig spelar ingen roll.
Wemos startar upp med relät avstängt. Relät kopplar 230V via tändtråden till lampan. Lampan kan antingen vara en vanlig lampa eller en smartlampa. Om det är en vanlig lampa så styrs den av/på med relät, är det en smartlampa så ser Wemos till att relät alltid är till om Wemos är uppkopplad till servern. Om nedkoppling sker så kopplas relät från (just nu, för säkerhets skull).
Normalläget ska vara att lampan styrs via automatik, odefinierat hur just nu. Kan vara simulering av att någon är hemma för att lura tjuven, kan vara wake-up light, kan koppla till rörelse eller ljus, brandlarm, tjuvlarm etc. enligt regler som servern hanterar. Tror att lampan kommer att vara släckt för det mesta och om det blir tillfälligt strömavbrott så kommer lampan att släckas. Servern måste skicka kommando för att aktivera relät och i samband med det så kan även en smartlampa sättas till av fast den får kraft via relät (kollas var 5:e minut redan för övriga lampor).
Man kan styra lampan manuellt via brytaren. Knapptryckning (ändring av brytarens läge) skickas till servern, där tas beslut om vad som ska göras. Kan vara tända/släcka med viss ljusstyrka, färgtemperatur, färg etc. beroende på vilken lampa det är och hur man vill ha det. Är det en helt vanlig lampa så återkopplar den kommando mot Wemos för att styra av/på via relät.
Om något inte fungerar som det ska, då Wemos inte är uppkopplad via MQTT mot brokern i min server, så kan lampan ändå styras helt lokalt, då styr Wemos relät direkt då man trycker på brytaren.
Principiellt montering (ska sättas fast på ett säkert sätt senare med lagom långa kablar etc. USB-kabeln ska inte användas efter slutmontering.).

- Skärmavbild 2017-12-16 kl. 21.41.40.png (245.78 KiB) Visad 2198 gånger
Demo med styrning via servern. Vid ändring av brytarens läge skickas info via MQTT till servern. I exemplet togglas läget genom att kommando skickas tillbaka direkt från servern via MQTT för att ändra läget på relät. Den fungerar även helt lokalt om det inte går att få kontakt via MQTT, då styrs relät direkt från knappen. Ingen lampa i demon men lysdioden speglar reläts tillstånd och kopplar man 230V via tändtråd till lampan så fungerar det precis som det ska.
https://www.youtube.com/watch?v=qObi_q_xS0oDe fula lödningarna är ett pull-up-motstånd. Kunde inte använda intern pull-up för Wemos startar inte om brytaren är i fel läge pga specialfunktion på de pinnar som har pull-up. Jag valde andra pinnar och fick ha extern pull-up.
En lite krånglig hantering är uppkopplingen till Wifi och MQTT. Koden måste hantera att uppkoppling aldrig lyckas och nedkoppling. Så att det alltid går att manövrera lokalt då man inte är uppkopplad, även under uppkopplingsförsöken, utan att man hamnar i något vänteläge där knapptryckningarna inte tar. Har en mycket enkel debounce av brytaren, verkar funkar bra hittills.