Vorteil der ganzen Aktion: Ihr benötigt nur noch die mitgelieferte Fernbedienung, welche natürlich auseinander genommen werden muss (die Taster müssen mit Kabel herausgeführt werden). Gerade wenn man eine große Familie hat, kann man sich so Geld sparen: Man ruft eine feste IP auf, und derjenige, der zuletzt aus dem Haus geht, schaltet komfortabel die Alarmanlage an. Oder man hat im Büro vergessen, zuhause die Alarmanlage einzuschalten, kein Problem. Per VPN verbinden (bei Fritzbox geht das einfach), und schon kann man das aus der Ferne nachholen.
Die Zutaten:
NodeMCU bei amazon.de: NodeMCU
Relais mit Optokoppler: 2 Kanal 5V Relay Relais Module Modul für Arduino Special Sensor Shield V4.0
ggf. Netzteil 5V und Micro-USB-Kabel.
NodeMCU: Was kann das Teil? Einfach mal die Doku lesen (-> Doku). Hier fungiert der NodeMCU als Webserver mit WLAN-Funktionalität, welcher je nach Klick auf einer Schaltfläche (Alarmanlage ein, aus usw.) an dem digitalem Ausgang D1, D2, D3 ein Signal zum Relais gegeben wird, welcher dann die „Taste“ der Fernbedienung drückt.
Einen Blog-Beitrag zu dieser Anlage habe ich geschrieben (Blog-Beitrag). Die Anlage kann man kaufen bei Amazon.de OLYMPIA Protect Alarmanlagenset 9061 5943
Quelltext, als init.lua speichern:
wifi.setmode(wifi.STATION)
wifi.sta.config("SSID","DeinWLANPasswort")
print(wifi.sta.getip())
led0 = 1
led1 = 2
led2 = 3
gpio.mode(led0, gpio.OUTPUT)
gpio.mode(led1, gpio.OUTPUT)
gpio.mode(led2, gpio.OUTPUT)
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive", function(client,request)
local buf = "";
local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
if(method == nil)then
_, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
end
local _GET = {}
if (vars ~= nil)then
for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
_GET[k] = v
end
end
buf = buf.."<HTML><h1> Olympia Protect 9061 WLAN Alarm-Switch</h1>";
buf = buf.."<p>Alarm ausschalten <a href=\"?pin=ON0\"><button>   OK   </button></a></p>";
buf = buf.."<p>Haus-Alarm einschalten <a href=\"?pin=ON1\"><button>  OK </button></a></p>";
buf = buf.."<p>Alarm einschalten <a href=\"?pin=ON2\"><button>   OK   </button></a></p>";
buf = buf.."<p>Lautlos-Alarm einschalten <a href=\"?pin=ON3\"><button>   OK   </button></a></p></HTML>";
local _on,_off = "",""
if(_GET.pin == "ON0")then
gpio.write(led1, gpio.LOW);
tmr.delay(1000000);
gpio.write(led1, gpio.HIGH);
elseif(_GET.pin == "ON1")then
gpio.write(led2, gpio.LOW);
tmr.delay(1000000);
gpio.write(led2, gpio.HIGH);
elseif(_GET.pin == "ON2")then
gpio.write(led0, gpio.LOW);
tmr.delay(1000000);
gpio.write(led0, gpio.HIGH);
elseif(_GET.pin == "ON3")then
gpio.write(led0, gpio.LOW);
gpio.write(led2, gpio.LOW);
tmr.delay(5000000);
gpio.write(led0, gpio.HIGH);
gpio.write(led2, gpio.HIGH);
end
client:send(buf);
client:close();
collectgarbage();
end)
end)
Den Programm-Code muss man mit dem Esplorer eingeben: http://esp8266.ru/esplorer
Die NodeMCU-Firmware und weitere Informationen bekommt ihr hier: https://github.com/nodemcu/nodemcu-firmware
Ich habe noch fertig geflashede NodeMCUs hier, falls jemand Interesse zum Nachbauen hat, kann sich per eMail oder unten in den Kommentaren bei mir melden.
Update: 21.10.2015 -> Aus- und Einschalten der Olympia Alarmanlage mit Fhem.
Hier eine kurzer Programm-Code, wie man per Fhem die Alarmanlage komfortabel ein- oder ausschalten kann.
Hier klickt man in Fhem auf an und schon fängt der Countdown der Olympia Alarmanlage herunterzuzählen.
define alarm dummy
attr alarm alias Olympia Alarmanlage ist
attr alarm devStateIcon an:message_attention@red aus:message_attention@green
attr alarm devStateStyle {($state eq "an")?'style="color:red"':'style="color:green"'}
attr alarm group Alarm-Einstellungen-Cameras
attr alarm room IP-Camera
attr alarm webCmd an:aus
define alarmAUS notify alarm:aus {\
Log 1, "OlympiaAlarmAUS";;\
{system("wget -q -O- 'http://EureWLANSwitchIP/?pin=ON0'");;}\
}\
define alarmAN notify alarm:an {\
Log 1, "OlympiaAlarmAN";;\
{system ("wget -q -O- 'http://EureWLANSwitchIP/?pin=ON3'");;}\
}\
Idealerweise könnt ihr auch per Telegram (-> siehe Blog-Beitrag) die Anlage von überall auf der Welt ohne Firewall ein- und ausschalten. So gebt ihr das Keyword ein und sendet per Telegram.
MeinKeyword set alarm on
oder
MeinKeyword set alarm off
Fhem bestätigt dann den erhaltenen Befehl mit:
XXX: cmd: set alarm aus: result OK
Aber auch ohne Fhem ist es möglich im eigenen WLAN die Anlage ein- und auszuschalten. Über eine spezielle (feste) IP wird ein Webinterface aufgerufen, bei welchem man die Anlage aus- und einschalten kann.
Und wie immer, bei Fragen, fragen.
[sgmb id=“1″]