System schedules arguments

http://karpero.mine.nu/ha

Moderators: tom_rosenback, Daniel, Telldus

Post Reply
aryan
Posts: 88
Joined: Thu Jan 18, 2018 11:08 am

System schedules arguments

Post by aryan » Thu Jan 18, 2018 11:08 am

Hej,

Jag undrar hur System schedules fungerar.

Om jag vill t ex vill köra en url som "HomeAutomation/api.php?do=sensors/setValue&serial=TargetTemp&value=20" vardagar kl 5
provade jag med att lägga in "api.php" i fältet “Executable" och "do=sensors/setValue&serial=TargetTemp&value=20" i “arguments”
Sedan har jag Period: Weekly, Time: 5 och kryss för vardagar, enabled är också "på" men det fungerar inte ändå.

Min url fungerar så nu misstänker jag att formatet i fältet för arguments kanske ska vara annorlunda?

Mvh Aryan

tom_rosenback
Posts: 778
Joined: Thu Jan 18, 2018 11:08 am
Contact:

Re: System schedules arguments

Post by tom_rosenback » Thu Jan 18, 2018 11:08 am

aryan wrote:Hej,

Jag undrar hur System schedules fungerar.

Om jag vill t ex vill köra en url som "HomeAutomation/api.php?do=sensors/setValue&serial=TargetTemp&value=20" vardagar kl 5
provade jag med att lägga in "api.php" i fältet “Executable" och "do=sensors/setValue&serial=TargetTemp&value=20" i “arguments”
Sedan har jag Period: Weekly, Time: 5 och kryss för vardagar, enabled är också "på" men det fungerar inte ändå.

Min url fungerar så nu misstänker jag att formatet i fältet för arguments kanske ska vara annorlunda?

Mvh Aryan
Hej,

I och med att system scheman körs via CLI så går det inte att ange parametrar på det där sättet, parametrar tolkas olika och skall anges på ett annat sätt för CLI. APIt stöder inte formatet som krävs av CLI. Vad du kan göra är att skapa ett bash skript som kör wget mot API urlen, detta skript konfar du i system schemat så att det körs med det interval du behöver.
//Tom

Senaste info och release om/av HomeAutomation hittas här http://karpero.mine.nu/ha
Latest info and release of HomeAutomation can be found here http://karpero.mine.nu/ha

aryan
Posts: 88
Joined: Thu Jan 18, 2018 11:08 am

Re: System schedules arguments

Post by aryan » Thu Jan 18, 2018 11:08 am

Ok tack för dit svar, det förklarar varför det inte funkade :-).
Krävs det då ett bash script med alla parametrar hårdkodade –t ex TargetTemp20.sh, TargetTemp18.sh osv –eller skulle jag även kunna göra ett script som körs med de parametrar som man anger (i arguments under executable i system schemat), så att t ex ett bash script TargetTemp.sh skulle kunna köras med 20 eller 18 som argument ?

aryan
Posts: 88
Joined: Thu Jan 18, 2018 11:08 am

Re: System schedules arguments

Post by aryan » Thu Jan 18, 2018 11:08 am

Kan svara på min fråga själv. Det funkar att skicka ett argument till ett shellscript som jag undrade :-)

Det syns även i syslog.

/Aryan

PS fick ange hela sökvägen till scriptet för att det skulle funka relativ sökväg verkade inte gå.

aryan
Posts: 88
Joined: Thu Jan 18, 2018 11:08 am

Re: System schedules arguments

Post by aryan » Thu Jan 18, 2018 11:08 am

Skulle man inte kunna få api.php även att funka med php cli med något som liknar detta :

Code: Select all

if(isset($argv) AND (count($argv) > 1)) {
	foreach ($argv as $argpair){
	   list($argname,$argvalue) = explode('=', $argpair);
	   $_GET["$argname"] = $argvalue;  
	}
}
och göra cli anrop som skulle se ut någonting så här: api.php do=sensors/setValue serial=TargetTemp value=23

då slipper man lägga upp ett shellscript som använder wget eller curl anrop till api.php (i detta exempel till api.php?do=sensors/setValue&serial=TargetTemp&value=$1)

tom_rosenback
Posts: 778
Joined: Thu Jan 18, 2018 11:08 am
Contact:

Re: System schedules arguments

Post by tom_rosenback » Thu Jan 18, 2018 11:08 am

aryan wrote:Skulle man inte kunna få api.php även att funka med php cli med något som liknar detta :

Code: Select all

if(isset($argv) AND (count($argv) > 1)) {
	foreach ($argv as $argpair){
	   list($argname,$argvalue) = explode('=', $argpair);
	   $_GET["$argname"] = $argvalue;  
	}
}
och göra cli anrop som skulle se ut någonting så här: api.php do=sensors/setValue serial=TargetTemp value=23

då slipper man lägga upp ett shellscript som använder wget eller curl anrop till api.php (i detta exempel till api.php?do=sensors/setValue&serial=TargetTemp&value=$1)
Allt är möjligt, men som sagt inget som stöds i skrivande stund :D
//Tom

Senaste info och release om/av HomeAutomation hittas här http://karpero.mine.nu/ha
Latest info and release of HomeAutomation can be found here http://karpero.mine.nu/ha

aryan
Posts: 88
Joined: Thu Jan 18, 2018 11:08 am

Re: System schedules arguments

Post by aryan » Thu Jan 18, 2018 11:08 am

Tack ja det skulle också kräva att api.php ändrades så att den med CLI skulle funka utan session.

Har nu stött på nått annat med system scedules som jag inte ser vad det beror på men jag inte alla att fungera. Jag ser mina scedules i databastabellen systemschedules, där finns det mina 9 rader, men om jag kollar i crontab med kommandot sudo crontab -u www-data -e
ser jag att det saknas rader, jag ser ingen orsak varför vissa saknas, det verkar helt random.
Jag kan lägga in de rader som saknas “för hand” i crontab och då funkar det men när jag sedan gör en (liten) ändring i HA System schedules i så ser jag att det har försvunnit en rad i cromtab igen, det är f.ö. inte händelsen som jag ändrade. I databas tabellen finns alla händelser kvar där försvinner inte några rader.

tom_rosenback
Posts: 778
Joined: Thu Jan 18, 2018 11:08 am
Contact:

Re: System schedules arguments

Post by tom_rosenback » Thu Jan 18, 2018 11:08 am

aryan wrote:Tack ja det skulle också kräva att api.php ändrades så att den med CLI skulle funka utan session.

Har nu stött på nått annat med system scedules som jag inte ser vad det beror på men jag inte alla att fungera. Jag ser mina scedules i databastabellen systemschedules, där finns det mina 9 rader, men om jag kollar i crontab med kommandot sudo crontab -u www-data -e
ser jag att det saknas rader, jag ser ingen orsak varför vissa saknas, det verkar helt random.
Jag kan lägga in de rader som saknas “för hand” i crontab och då funkar det men när jag sedan gör en (liten) ändring i HA System schedules i så ser jag att det har försvunnit en rad i cromtab igen, det är f.ö. inte händelsen som jag ändrade. I databas tabellen finns alla händelser kvar där försvinner inte några rader.
Det låter märkligt, får nog ta och felsöka lite.
//Tom

Senaste info och release om/av HomeAutomation hittas här http://karpero.mine.nu/ha
Latest info and release of HomeAutomation can be found here http://karpero.mine.nu/ha

aryan
Posts: 88
Joined: Thu Jan 18, 2018 11:08 am

Re: System schedules arguments

Post by aryan » Thu Jan 18, 2018 11:08 am

Jag provade med att ta bort alla från crontab och sedan lägga tillbaka genom att öppna och stänga de en för en i System Schedules och det verkar som att det försvinner rader i crontab när jag har fler än 5 System Schedules.

tom_rosenback
Posts: 778
Joined: Thu Jan 18, 2018 11:08 am
Contact:

Re: System schedules arguments

Post by tom_rosenback » Thu Jan 18, 2018 11:08 am

aryan wrote:Jag provade med att ta bort alla från crontab och sedan lägga tillbaka genom att öppna och stänga de en för en i System Schedules och det verkar som att det försvinner rader i crontab när jag har fler än 5 System Schedules.
Men inte annars? Om du bara har 5 system scheman så fungerar det korrekt? Märkligt.
//Tom

Senaste info och release om/av HomeAutomation hittas här http://karpero.mine.nu/ha
Latest info and release of HomeAutomation can be found here http://karpero.mine.nu/ha

aryan
Posts: 88
Joined: Thu Jan 18, 2018 11:08 am

Re: System schedules arguments

Post by aryan » Thu Jan 18, 2018 11:08 am

Jag har inte kommit fram till exakt vad som händer, jag såg att en rad försvann vid 6:e system schema, sedan kan försvinner flera rader. Sista system schema man läger till brukar finnas men rader innan försvinner när man ägger till nya. Jag hade 3 rader kvar i crontab när jag bode ha 9 stycken…

Jag antar att det är normalt att
01 00 * * * /usr/bin//php /var/www/HomeAutomation/run.php command=updateschedules >/dev/null 2>&1
finns längst upp i crontab? Det finns en / för mkt i /usr/bin//php men det har väll ingen betydelse.

Efter updateschedules radeni crontab har jag en tomrad sedan kommer de rader som system schema (borde) redigera.

Post Reply