Hur få fjärrkontrollen att aktivera enheter????

Moderators: hekj, Telldus

Post Reply
Snoopy
Posts: 253
Joined: Fri Mar 17, 2023 9:45 am
Location: Kalmar
Contact:

Hur få fjärrkontrollen att aktivera enheter????

Post by Snoopy »

Code: Select all

// tänder enhet 16 i 10s när enhet 26 tänts.
//  Sedan släcks enhet 16 och 26.
    dummy1 = "26"; // device villkor
    relay = "16"; // device to turn on
    timeout = 10; // seconds to keep light on
    if (executedByCmd()) {
       if (deviceIsOff(relay)) { // check if relay is off
          if (timerIsRunning(dummy1)) {
             stopTimer(dummy1);
          }
          if (deviceIsOn(dummy1) && deviceIsOff(relay)) {
             deviceOn(relay);
             startTimer(dummy1, timeout);
          }
       }
    } else if (executedByTimer()) {
       if (deviceIsOn(relay)) {
          deviceOff(relay);
	  deviceOff(dummy1);
       }
    }
Scriptet 26.bsh fungerar om jag klickar med musen på enhet 26 i Nexahome.
Jag ser att enheterna och timern aktiveras i konsolen.
Om jag däremot använder en fjärrkontroll att tända enhet 26 så reagerar inte Nexahome
mer än tänder symbolen för dummy1 (enhet 26). Scriptet körs inte, ingen reaktion i konsollen
när jag vill se vad som händer.
Hur löser man detta? :?:
... världen är full av tappade sugar, några är mina....
HA 3.1.1 i en Raspberry Pi 2 + Tellstick Duo
owfs i annan Raspberry B+ + Tellstick och en Tellstick Net som backup
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Hur få fjärrkontrollen att aktivera enheter????

Post by hekj »

Snoopy wrote:

Code: Select all

// tänder enhet 16 i 10s när enhet 26 tänts.
// Sedan släcks enhet 16 och 26.
dummy1 = "26"; // device villkor
relay = "16"; // device to turn on
timeout = 10; // seconds to keep light on
if (executedByCmd()) {
   if (deviceIsOff(relay)) { // check if relay is off
      if (timerIsRunning(dummy1)) {
         stopTimer(dummy1);
      }
      if (deviceIsOn(dummy1) && deviceIsOff(relay)) {
         deviceOn(relay);
         startTimer(dummy1, timeout);
      }
   }
} else if (executedByTimer()) {
   if (deviceIsOn(relay)) {
      deviceOff(relay);
      deviceOff(dummy1);
   }
}
Scriptet 26.bsh fungerar om jag klickar med musen på enhet 26 i Nexahome.
Jag ser att enheterna och timern aktiveras i konsolen.
Om jag däremot använder en fjärrkontroll att tända enhet 26 så reagerar inte Nexahome
mer än tänder symbolen för dummy1 (enhet 26). Scriptet körs inte, ingen reaktion i konsollen
när jag vill se vad som händer.
Hur löser man detta? :?:
Jag kanske har modifierat NH till det sämre när det gäller metoderna executedByTimer och executedByCmd, testa utan executedByCmd.

26.bsh

Code: Select all

// Tänder enhet 16 i 10s när enhet 26 tänts, därefter släcks enhet 16 och 26.
dummy1 = "26"; // device villkor
relay = "16"; // device to turn on
timeout = 10; // seconds to keep light on
if (executedByTimer()) {
   if (deviceIsOn(relay)) {
      deviceOff(relay);
      if (deviceIsOn(dummy1)) {
         deviceOff(dummy1);
      }
   }
} else {
   if (timerIsRunning(dummy1)) {
      stopTimer(dummy1);
   }
   if (deviceIsOn(dummy1)) {
      if (deviceIsOff(relay) {
         deviceOn(relay);
      }
      startTimer(dummy1, timeout);
   } else if (deviceIsOn(relay)) {
      deviceOff(relay);
   }
}
Snoopy
Posts: 253
Joined: Fri Mar 17, 2023 9:45 am
Location: Kalmar
Contact:

Re: Hur få fjärrkontrollen att aktivera enheter????

Post by Snoopy »

Tyvärr.
Det händer inget alls vare sig med eller utan fjärrkontroll. :(
Problemet är väl att NH ska känna fjärrkontrollen, men det gör det
ju på något vis. Dummy1-symbolen tänds ju men scriptet startar inte.
... världen är full av tappade sugar, några är mina....
HA 3.1.1 i en Raspberry Pi 2 + Tellstick Duo
owfs i annan Raspberry B+ + Tellstick och en Tellstick Net som backup
Snoopy
Posts: 253
Joined: Fri Mar 17, 2023 9:45 am
Location: Kalmar
Contact:

Re: Hur få fjärrkontrollen att aktivera enheter????

Post by Snoopy »

Testade lite... om jag byter executedByCmd() mot deviceIsOn(dummy1) så tänds enhet 16 när enhet 26
tänts med fjärrkontrollen (eller klicka på symbolen) men timern tycks inte starta eftersom
ingen enhet släcks efter 10s. :shock:
Med det gick (lite) åt rätt håll.
... världen är full av tappade sugar, några är mina....
HA 3.1.1 i en Raspberry Pi 2 + Tellstick Duo
owfs i annan Raspberry B+ + Tellstick och en Tellstick Net som backup
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Hur få fjärrkontrollen att aktivera enheter????

Post by hekj »

Snoopy wrote:Testade lite... om jag byter executedByCmd() mot deviceIsOn(dummy1) så tänds enhet 16 när enhet 26
tänts med fjärrkontrollen (eller klicka på symbolen) men timern tycks inte starta eftersom
ingen enhet släcks efter 10s. :shock:
Med det gick (lite) åt rätt håll.
Om du lägger in en utskrift (echo) i början i bsh filen så vet du iaf när filen exekveras.

Code: Select all

echo("26.bsh executed");
Följande kodsnutt skriver ut "anropskedjan".

Code: Select all

echo(getExecutedBy());
Förklaring av vad bokstäverna betyder:
public static final String EXECUTED_BY_COMMAND = "C";
public static final String EXECUTED_BY_EVENT = "E";
public static final String EXECUTED_BY_TIMER = "T";
public static final String EXECUTED_BY_UPDATE = "U";
public static final String EXECUTED_BY_WEB = "W";
public static final String EXECUTED_BY_BSH = "B";
public static final String EXECUTED_BY_MENUITEM = "I";
public static final String EXECUTED_BY_START = "S";
public static final String EXECUTED_BY_MODE = "M";
public static final String EXECUTED_BY_ATTRIBUTE = "A";
public static final String EXECUTED_BY_EXCEPTION = "X";
Snoopy
Posts: 253
Joined: Fri Mar 17, 2023 9:45 am
Location: Kalmar
Contact:

Re: Hur få fjärrkontrollen att aktivera enheter????

Post by Snoopy »

Testade och fick följande:
När jag aktiverade med musen i NH blev svaret [echo, CBT] (allt fungerar här)
och när jag använde fjörrkontrollen fick jag [echo,U].
Men att timern inte startar visste jag ju. Undrar bara varför.
... världen är full av tappade sugar, några är mina....
HA 3.1.1 i en Raspberry Pi 2 + Tellstick Duo
owfs i annan Raspberry B+ + Tellstick och en Tellstick Net som backup
Post Reply