Nexa Rörelsevakt

Moderators: hekj, Telldus

marilo
Posts: 10
Joined: Fri Mar 17, 2023 9:45 am

Nexa Rörelsevakt

Post by marilo »

Hej, har en mac + en tellstick duo som håller ordning på alla nexagrejor här i huset.
Fasadbelysningen styrs av Nexa CMR-101 dimmermottagare. Denna går på på 20% vid solnedgång och dimmas sen upp till 40% en timme senare.
Skulle dessutom vilja ha följande funktion;

När man närmar sig huset och aktiverar en Nexa Rörelsevakt LMDT-810 skulle jag vilja att belysningen dimrar upp till 100% ett par minuter och sedan återgår till det svagare läget.
Vill ha samma scenario när man öppnar dörren för att gå ut med hjälp av Nexa Magnetkontakt LMST-606.

Är detta görligt?? Jag är ingen hacker precis.. Alla tips mottages tacksamt!
Zapper
Posts: 212
Joined: Fri Mar 17, 2023 9:45 am
Location: Där det är kallt

Re: Nexa Rörelsevakt

Post by Zapper »

Vet inte om nya scripteventen (i betan) funkar med mac men med de borde det vara rätt trivialt.
marilo
Posts: 10
Joined: Fri Mar 17, 2023 9:45 am

Re: Nexa Rörelsevakt

Post by marilo »

Tror du att du kan utveckla detta triviala?
Zapper
Posts: 212
Joined: Fri Mar 17, 2023 9:45 am
Location: Där det är kallt

Re: Nexa Rörelsevakt

Post by Zapper »

Om du inte skall använda ngt tredjepart som typ nexahome så skulle du kunna göra ngt i stil med.

Om device 1 får läge 1 tag då och tänd device 2 och om 5 minuter släck device 2.
Dock gäller det att telldusd körs som något annat än nobody (nån användare som är tillåten att använda at)

Code: Select all

#!/bin/bash
if [ "${DEVICEID}" -eq 1 -a ${METHOD} -eq 1 ]; then
    tdtool --on 2
    at now + 5 minutes << !! >> /dev/null 2>&1
        tdtool --off 2 >> /dev/null
    !!
fi
marilo
Posts: 10
Joined: Fri Mar 17, 2023 9:45 am

Re: Nexa Rörelsevakt

Post by marilo »

Skrev inte att det just är Nexahome jag använder. Tänkte att kanske alla som skriver under den här rubriken är Nexahomeanvändare! Finns det något mer tips i detta fall tro?
Zapper
Posts: 212
Joined: Fri Mar 17, 2023 9:45 am
Location: Där det är kallt

Re: Nexa Rörelsevakt

Post by Zapper »

Syns bara inte direkt under unread när man e lite trött :P
marilo
Posts: 10
Joined: Fri Mar 17, 2023 9:45 am

Re: Nexa Rörelsevakt

Post by marilo »

:D
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Nexa Rörelsevakt

Post by hekj »

marilo wrote:Hej, har en mac + en tellstick duo som håller ordning på alla nexagrejor här i huset.
Fasadbelysningen styrs av Nexa CMR-101 dimmermottagare. Denna går på på 20% vid solnedgång och dimmas sen upp till 40% en timme senare.
Skulle dessutom vilja ha följande funktion;

När man närmar sig huset och aktiverar en Nexa Rörelsevakt LMDT-810 skulle jag vilja att belysningen dimrar upp till 100% ett par minuter och sedan återgår till det svagare läget.
Vill ha samma scenario när man öppnar dörren för att gå ut med hjälp av Nexa Magnetkontakt LMST-606.

Är detta görligt?? Jag är ingen hacker precis.. Alla tips mottages tacksamt!
På samma ställe som där filen NexaHome.jar finns ska du skapa en bsh fil vars namn är samma som rörelsevaktens Id.

12.bsh

Code: Select all

device = "12";
if (deviceIsOn(device)) {
  execFile("facade_lighting_up.bsh");
}
Skapa filen som ska dimma upp belysningen.

facade_lighting_up.bsh

Code: Select all

device = "15";
level = "100%";
seconds = 120;
timer = "facade_lighting_down";
if (deviceOn(device) && !timerIsRunning(timer)) {
  setData("device_level_" + device, getDeviceLevel(device));
  deviceLevel(device, level);
  startTimer(timer, seconds);
}
Skapa filen som ska dimma ner belysningen.

facade_lighting_down.bsh

Code: Select all

device = "15";
if (deviceOn(device)) {
  level = getData("device_level_" + device);
  if (level != null && level.length() != 0) {
    deviceLevel(device, level + "%");
  }
}
Ändra på device id i ovanstående filer så att dom överenstämmer med dina egna.
marilo
Posts: 10
Joined: Fri Mar 17, 2023 9:45 am

Re: Nexa Rörelsevakt

Post by marilo »

Tack snälla,
Ska genast prova detta!
marilo
Posts: 10
Joined: Fri Mar 17, 2023 9:45 am

Re: Nexa Rörelsevakt

Post by marilo »

Jag får tyvärr inte detta att funka. Har jag missat något device-id tro?

Så här ser det ut i MOTIONSENSOR.bsh

CODE: ‪SELECT ALL‬
device = "MOTIONSENSOR";
if (deviceIsOn(device)) {
  execFile("facade_lighting_up.bsh");
}

Så här i facade_lighting_up.bsh

CODE: ‪SELECT ALL‬
device = "FASAD";
level = "100%";
seconds = 120;
timer = "facade_lighting_down";
if (deviceOn(device) && !timerIsRunning(timer)) {
  setData("device_level_" + device, getDeviceLevel(device));
  deviceLevel(device, level);
  startTimer(timer, seconds);
}

Så här i facade_lighting_down.bsh


CODE: ‪SELECT ALL‬
device = "FASAD";
if (deviceOn(device)) {
  level = getData("device_level_" + device);
  if (level != null && level.length() != 0) {
    deviceLevel(device, level + "%");
  }
}

skickar tvåskärmdumpar från Nexahome;
Skärmavbild 2013-10-27 kl. 08.30.42.png
Skärmavbild 2013-10-27 kl. 08.30.42.png (56.63 KiB) Viewed 14902 times
Skärmavbild 2013-10-27 kl. 13.48.01.png
Skärmavbild 2013-10-27 kl. 13.48.01.png (122.46 KiB) Viewed 14902 times
marilo
Posts: 10
Joined: Fri Mar 17, 2023 9:45 am

Re: Nexa Rörelsevakt

Post by marilo »

Ok, som sagt; Jag är ingen hacker...
Har nu fattat att Device name inte är samma som ID...
Rörelsesensorn är numera döpt till id 31 och fasadbelysningen till id 18.
Jag har dock inte förstått det mest grundläggande. Trodde att jag skulle skriva in koden i ett vanligt textdokument (dock utan .txt eller rtf. extension), men det fungerar föga.
Klara nån att beskriva tillvägagångssättet för en envis novis?
marilo
Posts: 10
Joined: Fri Mar 17, 2023 9:45 am

Re: Nexa Rörelsevakt

Post by marilo »

Jag har möjligtvis fått till att skriva scripten rätt. Är det rätt att skapa ett plain textdokument
kopiera all text förutom CODE: SELECT ALL? Dvs.
device = "31";
if (deviceIsOn(device)) {
execFile("facade_lighting_up.bsh");
}
Kalla filen 31.bsh

Har använt samma metod på alla 3 .bsh-filer
Får dock detta besked i consolen i nexahome;

2013-10-28 11:07:04 RawEvent: class:sensor;model:internal;electric/w:24;
2013-10-28 11:07:07 Script executed (31.bsh), result: [[exec, facade_lighting_up.bsh]]
2013-10-28 11:07:07 Exec (facade_lighting_up.bsh)
2013-10-28 11:07:07 There was an error in evaluating the script (facade_lighting_up.bsh): Sourced file: facade_lighting_up.bsh Token Parsing Error: Lexical error at line 6, column 3. Encountered: "\u2020" (8224), after : "": <at unknown location>

Vad betyder detta tro?
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Nexa Rörelsevakt

Post by hekj »

marilo wrote:Jag har möjligtvis fått till att skriva scripten rätt. Är det rätt att skapa ett plain textdokument
kopiera all text förutom CODE: SELECT ALL? Dvs.
device = "31";
if (deviceIsOn(device)) {
execFile("facade_lighting_up.bsh");
}
Kalla filen 31.bsh

Har använt samma metod på alla 3 .bsh-filer
Får dock detta besked i consolen i nexahome;

2013-10-28 11:07:04 RawEvent: class:sensor;model:internal;electric/w:24;
2013-10-28 11:07:07 Script executed (31.bsh), result: [[exec, facade_lighting_up.bsh]]
2013-10-28 11:07:07 Exec (facade_lighting_up.bsh)
2013-10-28 11:07:07 There was an error in evaluating the script (facade_lighting_up.bsh): Sourced file: facade_lighting_up.bsh Token Parsing Error: Lexical error at line 6, column 3. Encountered: "\u2020" (8224), after : "": <at unknown location>

Vad betyder detta tro?
Skicka filen facade_lighting_up.bsh till mig så kan jag kolla på den.
marilo
Posts: 10
Joined: Fri Mar 17, 2023 9:45 am

Re: Nexa Rörelsevakt

Post by marilo »

Tusen tack!
Skickat!
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Nexa Rörelsevakt

Post by hekj »

Filen som trilskades hade en annan "encoding" än dom andra, konverterade filen samt städade bort det felaktiga tecken som gömde sig i början på den rad som inte NH gillade.

Har skickat filen till dig.
Post Reply