Tips: Exekvera bsh kommandon via url

Moderators: hekj, Telldus

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

Tips: Exekvera bsh kommandon via url

Post by hekj »

NexaHome kan, från och med version 3.7.0, ta emot bsh kod på url raden.

Lägg till någon av följande textsträngar sist på url raden.

Code: Select all

&bsh=float a=2.23;b=8.5;c=a/b;echo(a+"/"+b+"="+c);
&bsh=echo("The sun is "+(sunIsUp()?"up":"down"));
&bsh=attribute("Workday:set,Weekend:clear,Party:clear");
Första gången man testar bsh kommandon via url raden så får man ett felmeddelande till svar, då ska man titta efter filen BshFilter.xml
Bsh code not valid!
Man lägger in den bsh kod man vill kunna använda.

Code: Select all

<?xml version='1.0' encoding='UTF-8'?>
<BshFilter>
  <filter>
    <block>file</block>
    <allow>mode("Home");</allow>
    <allow>mode("Away");</allow>
    <allow>attribute("Workday:set,Weekend:clear");</allow>
    <allow>attribute("Workday:clear,Weekend:set");</allow>
  </filter>
</BshFilter>
Detta BshFilter gör att all kod förutom den som innehåller texten "file" accepteras.

Code: Select all

<?xml version='1.0' encoding='UTF-8'?>
<BshFilter>
  <filter>
    <block>file</block>
    <allow>*</allow>
  </filter>
</BshFilter>
Raden "<allow>*</allow>" används för att tala om för NH att alla typer av bsh kod ska accepteras.
Mikkar
Posts: 6
Joined: Fri Mar 17, 2023 9:45 am

Re: Tips: Exekvera bsh kommandon via url

Post by Mikkar »

Jag har testat att lägga till bsh kod på url raden och det fungerar fint, men jag skulle vilja köra mina redan skapade bsh filer från url raden.
Att kunna köra bsh filer gör det möjligt att göra mer avancerade saker än att endast kunna köra ett bsh kommando i taget.
Är det någon som vet om det går att köra bsh filer från url raden?
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Tips: Exekvera bsh kommandon via url

Post by hekj »

Mikkar wrote:Jag har testat att lägga till bsh kod på url raden och det fungerar fint, men jag skulle vilja köra mina redan skapade bsh filer från url raden.
Att kunna köra bsh filer gör det möjligt att göra mer avancerade saker än att endast kunna köra ett bsh kommando i taget.
Är det någon som vet om det går att köra bsh filer från url raden?

Code: Select all

&bsh=execFile("hello.bsh");
hello.bsh

Code: Select all

echo("Hejsan!");
Svaret blir...
[[echo, Hejsan!]]
johmei
Posts: 23
Joined: Fri Mar 17, 2023 9:45 am

Re: Tips: Exekvera bsh kommandon via url

Post by johmei »

Fungerar prima! :clap: Kommer säkert på något fiffigt att ha detta till men just nu står det still.. :lol:
Mikkar
Posts: 6
Joined: Fri Mar 17, 2023 9:45 am

Re: Tips: Exekvera bsh kommandon via url

Post by Mikkar »

Hej,
för mig fungerar det inte. Vad gör jag för fel?

Vid tester har jag tex kört: http://192.168.1.10:8080/nexahome&bsh=echo("Test");
Resultat blir alltid: Bsh code not valid!

Jag använder mig av filen BshFilter.xml i Nexahome katalogen och den ser ut som förelogs ovan:
<?xml version='1.0' encoding='UTF-8'?>
<BshFilter>
<filter>
<block></block>
<allow>*</allow>
</filter>
</BshFilter>
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Tips: Exekvera bsh kommandon via url

Post by hekj »

Mikkar wrote:för mig fungerar det inte. Vad gör jag för fel?

Vid tester har jag tex kört: http://192.168.1.10:8080/nexahome&bsh=echo("Test");
Resultat blir alltid: Bsh code not valid!

Jag använder mig av filen BshFilter.xml i Nexahome katalogen och den ser ut som förelogs ovan:
<?xml version='1.0' encoding='UTF-8'?>
<BshFilter>
<filter>
<block></block>
<allow>*</allow>
</filter>
</BshFilter>
Tag bort "<block></block>" raden eller hämta version 4.0.8 så ska det fungera.
Mikkar
Posts: 6
Joined: Fri Mar 17, 2023 9:45 am

Re: Tips: Exekvera bsh kommandon via url

Post by Mikkar »

Tack för tipset. Nu fungerar det.
Post Reply