WIFI sensorer till Vera

WIFI sensor till VERA (och allt annat som pratar http)

Fortsatte idag med mitt projekt “Den smarta trädgården“, tyvärr har det regnat rätt bra.. Bevattningssystem kändes rätt avlägset…

Började därför kolla lite på hur man eventuellt skulle kunna göra för att skicka data trådlöst från gården. Köpte tidigare ESP8266 vilket är en typ av WIFI kort med inbyggd CPU, priset på dessa är ca 100:- på kjell (20 Kr på ebay). Dessa har tyvärr inte använts, jag tog mig tid och började koppla upp dessa mot en Arduino.

Projektet senast uppdaterat: 2015-07-12 – 16:30

  •  Mer info om och bilder om ESP8266 Webbservern

Rätt så direkt såg jag många som valde att köra LUA kod direkt i ESP8266 utan en Arduino, detta blev självklart riktigt intressant eftersom jag då inte behöver ha en Arduino för att uppnå det jag vill! Hittade några exempel där man valt att använda rörelsesensorer (HC-SR501) ca 80:- på kjell (7kr på ebay). Eftersom jag hade dessa rörelsesensorer va det möjligt att göra rörelsesensor på WIFI för 27kr!

ESP8266Macro

ESP8266 – mått 14.2 x 24.5 mm

 

 

Server&Klient

Här är mina två projekt: en Wifi rörelsesensor för 27kr och en för webserver med två lysdioder för 20kr

Visar här en film på hur enheterna nås över nätverket samt kommunicerar med veran som en Z-Wave sensor.

 

ESP8266 som webbserver

EspSkiss

Jag gjorde en skiss i fritzing på hur jag kopplat min webserver.

Material:

  • 2X 150 Ohm resistorer
  • 2X lysdioder
  • 1X esp8266
  • 1x LD1117 (ger 3.3v, behövde inte några kondensatorer ännu)
  • 1X Batteri

 

Färdig Webbserver med tillhörande batteri.

  • Micro brytare
  • Kopplar upp med WPA2 inom 3 – 4 sekunder från start
  • Batteritiden får jag återkomma med.

WP_20150712_002 WP_20150712_005 WP_20150712_006

Allt förutom ESP8266 är fastlödda på kortet. Jag valde att bygga följande server med två lysdioder, röd och grön. Detta för att tillåta Veran att visa vilket Mode mitt hem är i för tillfället. Jag kan nu enkelt byta programvara genom att plocka bort sensorn eftersom den sitter i en stiftpanel.

Nästa version av min ESP8266 tänker jag försöka programmera på följande sätt:

  1. Tänd en lysdiod i 60 sekunder om ett http anrop tas emot (beroende på port). Tänker nämligen låta veran skicka vilket mode den är i för tillfället när en dörrsensor eller en rörelsesensor triggas i närheten av enheten.
  2. När en lyckad manöver görs på Zipatos RFID läsare ska båda dioder tändas i 60 sekunder för att visa larm på / av fungerat OK.
  3. Lägga upp en pingsensor i Vera som pingar enheten varje timme för att se att den lever.

Startar ESP8266 servern med en Microbrytare, inom 3 sekunder kopplar den upp med WPA2 till mitt WIFI och är redo att ta emot kommandon.

Sensorn drar tyvärr 30 – 60 mA (vilket är ca 0.54w). Ett 9V batteri ger ca 500mA (ca 4.5W).. Vilket verkar stämma rätt så bra eftersom sensorn gav upp efter 8 – 9 timmar..

Fakta

Prototypen fick jag till med hjälp av de två Youtubeklippen nedan, så jag kan inte alls ta creds för att ha skapat varken Lua Koden eller guiden. Det enda jag kan ta nån typ av creds för är att ha kopplat det mot Vera 🙂

Jag kommer inte att förklara hur jag kopplade alls, dessa två filmer förklarar allt väldigt ingående (Han har gjort ett väldigt bra jobb så ge han creds!).

 

 

 

Eftersom jag nu kör en Vera Lite så har jag valt att istället skicka data direkt till min Vera visa en Http URL istället för någon annan..

Följande enhet skapade jag i Veran:

I följande guide så visar jag hur man skapar virtuella enheter i veran, välj följande schema

device_type = urn:schemas-micasaverde-com:device:MotionSensor:1
device_file = D_MotionSensor1.xml (Läggs till när enheten skapas under Upnp Device Filename)
device_json = D_MotionSensor1.json (läggs till när enheten skapats)

Nu har du en ny enhet, trigga den för att verifiera att det fungerar genom att köra http url:en nedan! (händer det inte nått så är det ingen fara, så länge du får ett “OK” tillbaka)

Byt ut följande:

  • DITTVERAIP = ip till din vera
  • 136 = id på din nyskapade givare

http://DITTVERAIP:3480/data_request?id=variableset&DeviceNum=136&serviceId=urn:micasaverde-com:serviceId:SecuritySensor1&Variable=Tripped&Value=1

för att Luup motorn ska visa din nya enhet så starta om luup motorn genom att gå på Apps\ Develop apps \ serial port configuration \  och tryck på reaload LUUP

Nu ska sensorn va ok i vera.

2015-11-22 – Lägger upp all kod på GITHUB för att det ska bli enklare att kopiera och spinna vidare på.

Fortsätt med Givaren

Det som saknades i hans guider va följande:

i filen “alarm-public.lua” så ändrade jag följande:

tmr.alarm(0, 1000, 1, function() — Set alarm to one second

if gpio.read(4)==1 then status=”ALARM” else status=”CLEAR” end

if status ~= oldstatus then sendalarm (SensorID,status) end

oldstatus = status

end)

till

tmr.alarm(0, 1000, 1, function() — Set alarm to one second

if gpio.read(4)==1 then status=”1” else status=”0” end

if status ~= oldstatus then sendalarm (SensorID,status) end

oldstatus = status

end)

OCH  (ändra “DITTVERAIP” till ditt och “136” till din givares.

conn:connect(80,’192.168.0.11′)

 

conn:send(“GET xxxxx

till:

conn:connect(3480,’DITTVERAIP‘)

conn:send(“GET /data_request?id=variableset&DeviceNum=136&serviceId=urn:micasaverde-com:serviceId:SecuritySensor1&Variable=Tripped&Value=”..urlencode(status)..” HTTP/1.1\r\n”)

 

Jag valde även att skapa en fil som hette “init.lua” och i den la jag följande: dofile(“alarm-public.lua”)

Laddar upp koden här för att undvika att WordPress editering: ESP Koden

Följande svar lämnas från esp8266 modulen efter http anropet till Veran (läses via ESPlorer)

Open connection…
HTTP/1.1 200 OK
content-Type: text/plain
OK
Disconnected…

 

Kommer att fortsätta fylla på här så fort jag hinner!

 

// Ispep

WIFI sensorer till Vera
Ge ett betyg på innehållet

8 kommentarer

  1. Tjenare

    E du säker på att denna del e rätt skriven

    conn:send(”GET /data_request?id=variableset&DeviceNum=136&serviceId=urn:micasaverde-com:serviceId:SecuritySensor1&Variable=Tripped&Value=”(status)..” HTTP/1.1\r\n”)

    Får nämligen detta fel meddelande när jag kör den

    alarm-public.lua:36: unexpected symbol

  2. Ispep

    2015-10-14 at 07:58

    Kan vara så att du får fel tecken när du kopierar från bloggen tyvärr 🙁
    Testa att skriva tecknet ” manuellt, de brukar vara det tecknet som blir felande

    // Ispep

  3. Kan det variera om man kör mot UI5 eller UI7, Jag kör ju det förstnämnda å får nu
    Error 400: Bad Request
    Can not parse request: [GET]
    Disconnected…
    Open connection…
    HTTP/1.1 400 Bad Request
    Content-Type: text/plain
    Content-Length: 51
    Connection: close

  4. Ispep

    2015-10-16 at 08:06

    Det kan vara så att UI5 kräver inloggning. Tyvärr så har jag inte någon UI5 att testa mot utan alla program jag skriver nu är mot UI7.

    Kolla min klienten fungerar mot din UI5, om den laddar in hela din Vera i gränssnittet utan problem så ska även ESP8266:an url:en fungera korrekt. Båda bygger på samma url:er.
    https://www.automatiserar.se/vera-ui7-windows-klient-v1-2/

    Fungerar programmet inte så kan du testa att ladda hem Powershell modulen och testa att skicka kommandon med inloggningsparametrar. Om det fungerar så kan de va så att UI5 alltid kräver att du autentiserar dig.
    https://www.automatiserar.se/powershell-modul-vera-v1-4/

    Vad är orsaken till att du inte gått upp till UI7? 🙂

    // Ispep

  5. Det måste fortfarande vara nått fel på min länk i ESP8266:an även om jag knappat in den
    manuellt enligt ditt tidigare tips..

    å kör jag denna testlänk så ändrar den ju status
    http://DITTVERAIP:3480/data_request?id=variableset&DeviceNum=136&serviceId=urn:micasaverde-com:serviceId:SecuritySensor1&Variable=Tripped&Value=1

    Bra fråga varför jag inte har uppgraderat till Ui7
    Kör en Vera3 med UI5, Sen en vera Light som kör UI7 mest
    för test, men gillar än så länge UI5 bättre Fråga mig inte varför,,,

  6. Ispep

    2015-10-16 at 10:37

    Bra att du säger till! Jag har gjort en textfil med koden som jag skickade in i min ESP8266 (tror det va de senaste) ändra samma två värden som jag skrev om i guiden.

    https://www.automatiserar.se/wp-content/uploads/2015/07/Koden.txt
    Hör av dig så jag får veta om det fungerade för dig då.

    Många gillar UI5 (Luvan är en av dom 😉 )
    // Ispep

  7. Detta gjorde susen… Måste varit nån skit i min fil som blivit fel ändå.
    För nu lirar det,, Grymt tack..

    Ang UI5/UI7 så tror jag det handlar mer om å våga uppgradera å att allt
    som man har snurrande i den i dag går i gång efter en uppgradering, Så lite feg kanske 🙂

    //Hoffan

  8. styra esp8266 lampor genom att vera går till en specifik web sida tex:
    http://DIN_ESP_IP/lighton

    på esp sidan går en timer på 15 sek när web sidan triggas sen slår den av.

    hur bygger man en device i vera:n för detta?

Kommentera

E-postadressen publiceras inte.

*

© 2017

Tema av Anders NorenUpp ↑

%d bloggare gillar detta: