Page 1 of 2

Nexa Rörelsevakt

Posted: Fri Mar 17, 2023 9:45 am
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!

Re: Nexa Rörelsevakt

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

Re: Nexa Rörelsevakt

Posted: Fri Mar 17, 2023 9:45 am
by marilo
Tror du att du kan utveckla detta triviala?

Re: Nexa Rörelsevakt

Posted: Fri Mar 17, 2023 9:45 am
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

Re: Nexa Rörelsevakt

Posted: Fri Mar 17, 2023 9:45 am
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?

Re: Nexa Rörelsevakt

Posted: Fri Mar 17, 2023 9:45 am
by Zapper
Syns bara inte direkt under unread när man e lite trött :P

Re: Nexa Rörelsevakt

Posted: Fri Mar 17, 2023 9:45 am
by marilo
:D

Re: Nexa Rörelsevakt

Posted: Fri Mar 17, 2023 9:45 am
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.

Re: Nexa Rörelsevakt

Posted: Fri Mar 17, 2023 9:45 am
by marilo
Tack snälla,
Ska genast prova detta!

Re: Nexa Rörelsevakt

Posted: Fri Mar 17, 2023 9:45 am
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 14935 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 14935 times

Re: Nexa Rörelsevakt

Posted: Fri Mar 17, 2023 9:45 am
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?

Re: Nexa Rörelsevakt

Posted: Fri Mar 17, 2023 9:45 am
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?

Re: Nexa Rörelsevakt

Posted: Fri Mar 17, 2023 9:45 am
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.

Re: Nexa Rörelsevakt

Posted: Fri Mar 17, 2023 9:45 am
by marilo
Tusen tack!
Skickat!

Re: Nexa Rörelsevakt

Posted: Fri Mar 17, 2023 9:45 am
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.