Sidehistorik
Info |
---|
Join the "Danske ZenseHome Brugere" Facebook grooupgroup |
Tip |
---|
Rene Olskjær har lavet en fin PWA til at køre på LAMP på en server - se på https://github.com/Rene-Olskjaer/zense.olskjaer.dk |
Indholdsfortegnelse |
---|
Dokumentation fra Zensehome
...
Tip | ||
---|---|---|
For Ubuntu 18.04, add a global repo:
|
Links
http://www.admin-magazine.com/Articles/Automating-with-Expect-Scripts (læs specielt Expect Caveats texten)
https://wiki.tcl-lang.org/page/Expect+Hints+and+Tips
http://stackoverflow.com/questions/7789710/expect-script-to-automate-telnet-login
https://www.pantz.org/software/expect/expect_examples_and_tips.html
https://www.mkssoftware.com/docs/man1/expect.1.asp
Expect Scripts
Grundscriptet
Dette er "grundscriptet, som søger for at logge ind, agere og logge ud - jeg er ikke 100% sikker på om sleeps faktisk er nødvendige....:
Advarsel |
---|
Husker man ikke at lave logout eller fejler scriptet inden, da man få output fra forrige run ved næste run, og i det hele taget lidt "underligheder" |
Advarsel |
Jeg oplever engang imellem ved brug af API at min box bare "dør" - eller at det tager længe før den vil æde en kommando igen... |
Kodeblok |
---|
#!/usr/bin/expect spawn telnet 10.0.0.110 10001 expect "'^]'." send ">>Login 32010<<\r" expect ">>Login Ok<<" sleep .5; ...... ...... ...... sleep .5; send ">>Logout<<\r" expect ">>Logout Ok<<" exit |
Tip |
---|
Brug: exp_internal 1 i koden for at se hvad der egentlig sker hele velen igennem log_user 0 for at supresse output log_file <filename> for at logge til en fil |
List alle forbrugsregistrende devices
...
Kodeblok |
---|
#!/usr/bin/expect
spawn telnet 10.0.0.110 10001
expect "'^]'."
send ">>Login 32010<<\r"
expect ">>Login Ok<<"
sleep .1;
send ">>Set 10604 0<<"
sleep .1;
send ">>Logout<<\r"
expect ">>Logout Ok<<"
exit |
Error handling
Tip |
---|
November 2018 - Dette er en update til ovenstående, efter at have arbejde med scriptet - dette script har error handling og passende output. |
Kodeblok |
---|
#!/usr/bin/expect
log_user 0
spawn telnet 10.0.0.110 10001
expect {
"'^]'" { send ">>Login 32010<<\r"; }
"refused" { catch {exp_close}; send_user "Connection refused\n";exp_wait; exit }
"No route" { catch {exp_close}; send_user "No Route to host\n";exp_wait; exit }
"eof" { catch {exp_close}; send_user "EOF\n";exp_wait; exit }
}
sleep .1;
send ">>Set 10604 1<<";
sleep .1;
send ">>Logout<<\r";
sleep .1;
close;
send_user "Success\n";
exit |
Tip |
---|
December 2018 - Dette er en toogle metode - dvs. der læses og skiftes status |
Kodeblok |
---|
#!/usr/bin/expect
log_user 0
spawn telnet 10.0.0.110 10001
expect {
"'^]'" { send ">>Login 32010<<\r"; }
"refused" { catch {exp_close}; send_user "Connection refused\n";exp_wait; exit }
"No route" { catch {exp_close}; send_user "No Route to host\n";exp_wait; exit }
"eof" { catch {exp_close}; send_user "EOF\n";exp_wait; exit }
}
sleep .1;
send ">>Get 10604<<\r";
sleep .1;
expect {
"'^]'" { send ">>Login 32010<<\r"; }
"refused" { catch {exp_close}; send_user "Connection refused\n";exp_wait; exit }
"No route" { catch {exp_close}; send_user "No Route to host\n";exp_wait; exit }
"eof" { catch {exp_close}; send_user "EOF\n";exp_wait; exit }
}
sleep .1;
send ">>Get 10604<<\r";
expect {
">>Get 100<<" { send ">>Set 10604 0<<\r"; exit }
">>Get 0<<" { send ">>Set 10604 1<<\r"; exit }
">>Get Timeout<<" { catch {exp_close}; send_user "Timeout for Get\n";exp_wait; exit }
}
sleep .1;
send ">>Logout<<\r";
sleep .1;
close;
send_user "Success\n";
exit |