# # Cyclades PM20 # specification "pm20" { timeout 25 pingperiod 60 plug name { "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" "20" } script login { expect "Username: " send "admin\n" expect "Password: " send "pm8\n" expect "pm>" } script ping { send "\n" expect "pm>" } script status_all { send "status 1-20\n" expect "Users" foreachplug { expect "([0-9]+)[[:space:]]+Unlocked (ON|OFF)" setplugstate $1 $2 on="ON" off="OFF" } expect "pm>" } script on { send "on %s\n" expect "Outlet turned on." expect "pm>" } script on_all { send "on 1-20\n" foreachplug { expect "Outlet turned on." } expect "pm>" } script off { send "off %s\n" expect "Outlet turned off." expect "pm>" } script off_all { send "off 1-20\n" foreachplug { expect "Outlet turned off." } expect "pm>" } script cycle { send "off %s\n" expect "Outlet turned off." expect "pm>" delay 4 send "on %s\n" expect "Outlet turned on." expect "pm>" } script cycle_all { send "off 1-20\n" foreachplug { expect "Outlet turned off." } expect "pm>" delay 4 send "on 1-20\n" foreachplug { expect "Outlet turned on." } expect "pm>" } script status_temp_all { send "temperature\n" expect "IPDU #1: Temperature: ([0-9.]+)" setplugstate "1" $1 setplugstate "2" $1 setplugstate "3" $1 setplugstate "4" $1 setplugstate "5" $1 setplugstate "6" $1 setplugstate "7" $1 setplugstate "8" $1 setplugstate "9" $1 setplugstate "10" $1 setplugstate "11" $1 setplugstate "12" $1 setplugstate "13" $1 setplugstate "14" $1 setplugstate "15" $1 setplugstate "16" $1 setplugstate "17" $1 setplugstate "18" $1 setplugstate "19" $1 setplugstate "20" $1 } }